Method and apparatus for exploiting data locality in dynamic task scheduling
AssigneeSiemens Aktiengesellschaft
InventorsSebastian Mattheis, Tobias Schule
Life of this patent
Estimating the term…
Abstract
A method for scheduling tasks to processor cores of a parallel computing system may include the steps of processing a source code which comprises at least one parallel lambda function having a function body called by a task and having a capture list specifying the data structures accessed in the function body of said parallel lambda function and used to derive data location information; executing the task calling said function body on the processor core which is associated to a memory unit of the parallel computing system where the data of the data structures specified by said capture list is stored, wherein the memory unit is selected or localized based on the derived data location information.
Claims15
A method for scheduling tasks to processor cores of a parallel computing system, the method comprising:
- (a) processing a source code, by a compiler unit, that comprises at least one parallel lambda function containing a function body called by a task, a capture list specifying data structures accessed by the function body of said parallel lambda function, and a parameter list, that are used to derive data location information,
- wherein the data structures of the capture list indicate which variables or objects declared outside the lambda function are visible inside the lambda function and the processing of the source code causes the compiler unit to automatically generate code to derive the data location information from the capture list and the parameter list of the parallel lambda function whose function body is called by said task;
- (b) executing in parallel the task calling said function body on the processor core associated with a memory unit of the parallel computing system and the generated code to derive the data location information from the capture and parameter list, wherein the memory unit is selected or localized based on the derived data location information determined from the generated code.
An apparatus for scheduling of tasks to processor cores of a parallel computing system comprising:
- a compiler unit configured to automatically process a source code comprising at least one parallel lambda function having a function body called by a task and having a capture list specifying data structures accessed in the function body of said parallel lambda function and used to derive data location information, wherein the data structures of the capture list indicate which variables or objects declared outside the lambda function are visible inside the lambda function and the processing of the source code causes the compiler unit to automatically generate code to derive the data location information from the capture list and the parameter list of the parallel lambda function whose function body is called by said task;
- and
- a processor core configured to execute in parallel the calling task, wherein the processor core is associated with a memory unit of the parallel computing system and the generated code to derive the data location information from the capture and parameter list, wherein the memory unit is selected based on the derived data location information determined from the generated code.
A computing system comprising:
- several processors each having at least one processor core and distributed memory units each being associated with a corresponding processor core, and
- an apparatus for scheduling of tasks to processor cores of a parallel computing system, the apparatus comprising:
- a compiler unit configured to automatically process a source code comprising at least one parallel lambda function containing a function body called by a task, a capture list specifying data structures accessed by the function body of said parallel lambda function, and a parameter list, that are used to derive data location information, wherein the data structures of the capture list indicate which variables or objects declared outside the lambda function are visible inside the lambda function and the processing of the source code causes the compiler unit to automatically generate code to derive the data location information from the capture list and the parameter list of the parallel lambda function whose function body is called by said task;
- and
- a processor core of one of the several processors being configured to execute in parallel the calling task, wherein the processor core is associated with one of the distributed memory units of the parallel computing system and the generated code to derive the data location information from the capture and parameter list, wherein the memory unit is selected based on the derived data location information determined from the generated code.
Dependencies are inferred from the claim text.