Mechanism to support generic collective communication across a variety of programming models
First Claim
1. A system for supporting collective communications on a plurality of processors that use different parallel programming paradigms, comprising:
- a processor;
a schedule module for defining one or more tasks in a collective operation, the collective operation being a function supported at least in a message passing interface (MPI) including at least a reduce operation, all-reduce operation, and all-to-all operation, in which a group of processors in parallel computer system participate to perform a global operation where each of the processors contribute to the global operation;
an executor module for executing said one or more tasks;
a multisend module for performing one or more data transfer functions in said one or more tasks;
a connection manager for controlling one or more connections and identifying an available connection,the multisend module further for using the available connection in performing the one or more data transfer functions; and
a language adaptor for interfacing at least to the multisend module,wherein the plurality of processors that use different parallel programming paradigms can use a common implementation of the schedule module, the executor module, the connection manager and the multisend module via the language adaptor specific to a parallel programming paradigm implemented on the processor,wherein the multisend module sends many messages at the same time, each message or a group of messages identified by a connection identifier.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for supporting collective communications on a plurality of processors that use different parallel programming paradigms, in one aspect, may comprise a schedule defining one or more tasks in a collective operation, an executor that executes the task, a multisend module to perform one or more data transfer functions associated with the tasks, and a connection manager that controls one or more connections and identifies an available connection. The multisend module uses the available connection in performing the one or more data transfer functions. A plurality of processors that use different parallel programming paradigms can use a common implementation of the schedule module, the executor module, the connection manager and the multisend module via a language adaptor specific to a parallel programming paradigm implemented on a processor.
131 Citations
17 Claims
-
1. A system for supporting collective communications on a plurality of processors that use different parallel programming paradigms, comprising:
-
a processor; a schedule module for defining one or more tasks in a collective operation, the collective operation being a function supported at least in a message passing interface (MPI) including at least a reduce operation, all-reduce operation, and all-to-all operation, in which a group of processors in parallel computer system participate to perform a global operation where each of the processors contribute to the global operation; an executor module for executing said one or more tasks; a multisend module for performing one or more data transfer functions in said one or more tasks; a connection manager for controlling one or more connections and identifying an available connection, the multisend module further for using the available connection in performing the one or more data transfer functions; and a language adaptor for interfacing at least to the multisend module, wherein the plurality of processors that use different parallel programming paradigms can use a common implementation of the schedule module, the executor module, the connection manager and the multisend module via the language adaptor specific to a parallel programming paradigm implemented on the processor, wherein the multisend module sends many messages at the same time, each message or a group of messages identified by a connection identifier. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of supporting collective communications on a plurality of processors that use different parallel programming paradigms, comprising:
-
receiving an application call invoking a collective operation from a processor of the plurality of processors via a language adaptor, the collective operation being a function supported at least in a message passing interface (MPI) including at least a reduce operation, all-reduce operation, and all-to-all operation, in which a group of processors in parallel computer system participate to perform a global operation where each of the processors contribute to the global operation; creating a schedule module for defining one or more tasks in the collective operation; creating an executor module for executing said one or more tasks; invoking a multisend module to perform one or more data transfer functions associated with said one or more tasks, creating a connection manager to control one or more connections and identifying an available connection; and the multisend module further uses the available connection in performing the one or more data transfer functions, wherein the plurality of processors that use different parallel programming paradigms can use a common implementation of the schedule module, the executor module, the connection manager and the multisend module via the language adaptor specific to a parallel programming paradigm implemented on the processor, and wherein the multisend module sends many messages at the same time, each message or a group of messages identified by a connection identifier. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A non-transitory program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform a method of supporting collective communications on a plurality of processors that use different parallel programming paradigms, comprising:
-
receiving an application call invoking a collective operation from a processor of the plurality of processors via a language adaptor, the collective operation being a function supported at least in a message passing interface (MPI) including at least a reduce operation, all-reduce operation, and all-to-all operation, in which a group of processors in parallel computer system participate to perform a global operation where each of the processors contribute to the global operation; creating a schedule module for defining one or more tasks in the collective operation; creating an executor module for executing said one or more tasks; invoking a multisend module to perform one or more data transfer functions associated with said one or more tasks; creating a connection manager to control one or more connections and identifying an available connection; and the multisend module further uses the available connection in performing the one or more data transfer functions, wherein the plurality of processors that use different parallel programming paradigms can use a common implementation of the schedule module, the executor module, the connection manager and the multisend module via the language adaptor specific to a parallel programming paradigm implemented on the processor, and wherein the multisend module sends many messages at the same time, each message or a group of messages identified by a connection identifier. - View Dependent Claims (17)
-
Specification