IP Library › Granted Patent US 9,009,711
Granted Patent B2
US 9,009,711 · App. 13/386,885 · Granted Apr 14, 2015

Grouping and parallel execution of tasks based on functional dependencies and immediate transmission of data results upon availability

Inventors: Enno Wein (Munich, DE); Vahagn Poghosyan (Munich, DE)
Assignee: Enno Wein
G06F9/4881G06F9/546
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,009,711
App. No.
13/386,885
Granted
Apr 14, 2015
Kind
B2
Abstract

The present invention provides a particular efficient system of scheduling of tasks for parallel processing, and data communication between tasks running in parallel in a computer system. A particular field of application of the present invention is the platform-independent simulation of decomposition/partitioning of an application, in order to obtain an optimal implementation for parallel processing.

Claims (37)

1. A computing system comprising:

a plurality of processors for parallel processing of tasks, and

a distributed scheduling system including:

a group divider that groups a plurality of individual tasks belonging to one application into a plurality of task groups by taking into account application-specific functional dependencies between the individual tasks and a number of data communication processes between the individual tasks based on the functional dependencies, wherein the data communication processes are established by defining a number of ports and connecting the ports through a number of data communication channels;

a first scheduler operating at the computing system level, to schedule the task groups together with other functions of the computing system not belonging to the one application over the plurality of processors, such that only a single one of the task groups is assigned to an individual one of the plurality of processors, and

a plurality of second schedulers operating at each of the plurality of processors to schedule the tasks of each of the task groups assigned to the respective individual processor according to a non-preemptive multitasking scheme,

wherein the distributed scheduling system further schedules direct communication between a first task that is performed at a first of the plurality of processors and a second task performed at a second of the plurality of processors such that all data items resulting from the first task that have to be used by the second task are transmitted together, via one of the data communication channels, to at least one of: a local memory or a local cache communicably coupled to the second processor acting as a receiver; as soon as the data items are available in at least one of: a local memory or a local cache communicably coupled to the first processor, which acts as a sender, and wherein the second scheduler operating at the second processor schedules the second task to begin as soon as the data items has been transmitted.

2. The computing system according to claim 1 , wherein the data communication channels are implemented by a communication First In First Out (FIFO) structure.

3. The computing system according to claim 2 , wherein the second scheduler operating at the second processor polls the communication FIFO structure for newly written data items to be loaded into the local memory or the local cache communicably coupled to the second processor.

4. The computing system according to claim 2 , wherein the second scheduler operating at the first processor issues a signal indicating to the receiver that newly written data is available in the communication FIFO structure to be loaded into the local memory or the local cache communicably coupled to the second processor.

5. The computing system according to claim 1 , wherein the plurality of processors include at least one of: a plurality of central processing units (CPUs) and a plurality of graphical processing units (GPUs).

6. The computing system according to claim 1 , wherein local memory communicably coupled to each of the plurality of processors form an address space of a shared memory.

7. The computing system according to claim 6 , comprising at least one Non-Uniform Memory Architecture (NUMA) node.

8. A nontransitory computer readable medium that stores computer-executable code for performing, when executed on a computer system comprising a plurality of processors, an application designed by a design process enabling parallel processing of tasks belonging to the application, wherein the design process comprises:

grouping a plurality of individual tasks belonging to the application into a plurality of task groups by taking into account application-specific functional dependencies between individual tasks and a number of data communication processes between the individual tasks based on the functional dependencies, wherein the data communication processes are established by defining a number of ports and connecting the ports through a number of data communication channels;

scheduling, at the computing system level, the task groups together with other functions of the computing system not belonging to the application over the plurality of processors, such that only a single one of the task groups is assigned to an individual one of the plurality of processors, and

scheduling, at each of the plurality of processors, the tasks of each of the task groups assigned to the respective individual processor according to a non-preemptive multitasking scheme;

scheduling direct communication between a first task that is performed at a first of the plurality of processors and a second task performed at a second of the plurality of processors such that all data items resulting from the first task that have to be used by the second task are transmitted together, via at least one of the data communication channels, to at least one of: a local memory or a local cache communicably coupled to the second processor acting as a receiver, as soon as the data items are available in at least one of: a local memory or a local cache communicably coupled to the first processor, which acts as a sender; and

scheduling, at the second processor, the second task to begin as soon as the data items has been transmitted.

9. The nontransitory computer readable medium according to claim 8 , wherein the design process further comprises mapping the application onto an execution platform.

10. The nontransitory computer readable medium according to claim 9 , wherein the design process further comprises simulating the performance of the application on said execution platform.

11. The nontransitory computer readable medium according to claim 8 , wherein the data items include a communication header indicating a current access status of the data items.

12. A method of executing an application including a plurality of individual tasks on a computing system comprising a plurality of processors, by means of parallel processing of tasks belonging to the application, the method comprising:

grouping the plurality of individual tasks belonging to the application into a plurality of task groups by taking into account application-specific functional dependencies between individual tasks and a number of data communication processes between the individual tasks based on the functional dependencies, wherein the data communication processes are established by defining a number of ports and connecting the ports through a number of data communication channels;

scheduling, at the computing system level, the task groups together with other functions of the computing system not belonging to the application over the plurality of processors, such that only a single one of the task groups is assigned to an individual one of the plurality of processors, and

scheduling, at each of the plurality of processors, the tasks of each of the task groups assigned to the respective individual processor according to a non-preemptive multitasking scheme;

scheduling direct communication between a first task that is performed at a first of the plurality of processors and a second task performed at a second of the plurality of processors such that all data items resulting from the first task that have to be used by the second task are transmitted together, via at least one of the data communication channels, to at least one of: a local memory or a local cache communicably coupled to the second processor acting as a receiver, as soon as the data items are available in at least one of: a local memory or a local cache communicably coupled to the first processor, which acts as a sender; and

scheduling, at the second processor, the second task to begin as soon as the data items has been transmitted.

13. The method according to claim 12 , wherein the scheduling at the computing system level is performed according to a preemptive multitasking scheme.

14. The method according to claim 12 , wherein

the at least one data communication channel is implemented by means of a communication First In First Out (FIFO) structure, and

wherein the method further comprising polling the communication FIFO structure for newly written data items to be loaded into the local memory or the local cache communicably coupled to the second processor.

15. The method according to claim 12 , wherein

the at least one data communication channel is implemented by means of a communication First In First Out (FIFO) structure, and

wherein the first processor issuing a signal indicating to the receiver that newly written data items are available in the communication FIFO structure to be loaded into the local memory or the local cache communicably coupled to the second processor.

16. The method according to claim 12 , wherein the transmitted data items are pre-fetched into the local cache of the second processor.

17. The method according to claim 12 , wherein the scheduling at each individual processor takes into account input/output dependencies between individual tasks.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 4, 2015
From: WEIN, ENNO
To: PROXIMUSDA GMBH
Reel/Frame 036961/0949 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2012
From: WEIN, ENNO; POGHOSYAN, VAHAGN
To: WEIN, ENNO
Reel/Frame 027966/0164 →
Priority Claims (1)
EP 09009632 · Jul 24, 2009 · regional
Continuity (1)
Related Publication 20120180068A1 · Jul 12, 2012