Method and system for mapping threads or tasks to CPUs in a parallel computer
AssigneeInternational Business Machines Corporation
InventorChristoph Pospiech
Life of this patent
Estimating the term…
Abstract
The present invention provides a new method and system to provide a flexible and easily reconfigurable way to map threads or tasks of a parallel program to CPUs of a parallel computer. The inventive method replaces the necessity of coding the mapping of threads or tasks to CPUs in the parallel computer by looking up in a mapping description which is preferably presented in form of least one table that is provided at runtime. The mapping description specifies various mapping strategies of tasks or threads to CPUs. Selecting of a certain mapping strategy or switching from a specified mapping strategy to a new one can be done manually or automatically at runtime without any decompilation of the parallel program.
Claims15
A method for mapping threads or tasks to CPUs in a parallel computer, wherein at least one parallel program is running in said parallel computer which starts tasks or threads, said method comprising the steps of:
- providing a mapping description at runtime, wherein said mapping description specifies at least one mapping strategy of tasks or threads to CPUs;
- distributing said mapping description to all tasks;
- determining for each task or thread its assigned CPU based on said specified mapping strategy;
- and
- calling a function for binding each of said tasks or threads to its assigned CPU.
A system for mapping threads or tasks to CPUs in a parallel computer, wherein said system having a parallel computer and at least one parallel program is running in said parallel computer which starts tasks or threads, said system further comprising:
- a mapping description stored in nonvolatile memory;
- means for reading said mapping description at runtime, wherein said mapping description specifies at least one mapping strategy of tasks or threads to CPUs;
- means for distributing said mapping description to all tasks;
- means for determining for each task or thread its assigned CPU based on said specified mapping strategy;
- and
- means for calling a function for binding each of said tasks or threads to its assigned CPU.
Dependencies are inferred from the claim text.