Data Parallel Programming Model
First Claim
Patent Images
1. A method that facilitates production of data parallel (DP) executable programs, the method comprising:
- obtaining a representation of how to call a DP call-site function, wherein the representation includes indicators of arguments associated with the call for the DP call-site function;
based at least in part upon the DP call-site function representation, generating a set of executable instructions based upon the DP call-site function with its associated arguments, wherein the executable instructions perform, when executed on one or more computing devices, operations comprising;
defining a data set based upon the arguments, the data set being stored in a memory that is part of a DP capable hardware of the one or more computing devices;
performing the data parallel call-site function call upon the data set stored in the DP capable memory.
2 Assignments
0 Petitions
Accused Products
Abstract
Described herein are techniques for enabling a programmer to express a call for a data parallel call-site function in a way that is accessible and usable to the typical programmer. With some of the described techniques, an executable program is generated based upon expressions of those data parallel tasks. During execution of the executable program, data is exchanged between non-data parallel (non-DP) capable hardware and DP capable hardware for the invocation of data parallel functions.
-
Citations
20 Claims
-
1. A method that facilitates production of data parallel (DP) executable programs, the method comprising:
-
obtaining a representation of how to call a DP call-site function, wherein the representation includes indicators of arguments associated with the call for the DP call-site function; based at least in part upon the DP call-site function representation, generating a set of executable instructions based upon the DP call-site function with its associated arguments, wherein the executable instructions perform, when executed on one or more computing devices, operations comprising; defining a data set based upon the arguments, the data set being stored in a memory that is part of a DP capable hardware of the one or more computing devices; performing the data parallel call-site function call upon the data set stored in the DP capable memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. One or more computer-readable media storing processor-executable instructions that, when executed, cause one or more processors to perform operations, the operations comprising:
-
selecting a data set to be used for data parallel (DP) computation, the data set being stored in a memory that is not part of DP capable hardware of one or more computing devices; transferring the selected data set from the non-DP capable memory to another memory that is part of DP capable hardware of the one or more computing devices; defining data of the data set stored in the DP capable memory as a field; generating multiple instances of a DP kernel; receiving as input, by each instance of the DP kernel, a portion of the data from the field; invoking, in parallel, the multiple instances of the DP kernel in the DP capable hardware; obtaining output resulting from the invoked multiple instances of the DP kernel, the resulting output being stored in the DP capable memory; concurrent with parallel invocation of the multiple instances of the DP kernel, performing one or more non-DP computations by hardware that is not part of DP capable hardware of the one or more computing devices; and transferring the resulting output from the DP capable memory to the non-DP capable memory.
-
-
17. A method that facilitates execution of a data parallel (DP) executable program, the method comprising:
-
selecting a data set to be used for DP computation, the data set being stored in a memory that is not part of DP capable hardware of one or more computing devices; transferring the selected data set from the non-DP capable memory to another memory that is part of DP capable hardware of the one or more computing devices; invoking, in parallel, multiple instances of a DP kernel in the DP capable hardware; and obtaining output resulting from the invoked multiple instances of the DP kernel, the resulting output being stored in the DP capable memory. - View Dependent Claims (18, 19, 20)
-
Specification