CONTROLLING AND DYNAMICALLY VARYING AUTOMATIC PARALLELIZATION
First Claim
1. A computer readable storage medium storing program instructions operable to automatically control run-time parallelization of a software application, wherein the program instructions are executable to:
- identify a parallel region within program instructions of a multi-threaded software application;
instrument the software application with instructions executable to;
allocate a buffer;
store demand information in the buffer;
read allocation information from the buffer without waiting for an update of the allocation information; and
determine parallelization information for use in executing the parallel region based at least in part on the allocation information read from the buffer.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for automatically controlling run-time parallelization of a software application. A buffer is allocated during execution of program code of an application. When a point in program code near a parallelized region is reached, demand information is stored in the buffer in response to reaching a predetermined first checkpoint. Subsequently, the demand information is read from the buffer in response to reaching a predetermined second checkpoint. Allocation information corresponding to the read demand information is computed and stored the in the buffer for the application to later access. The allocation information is read from the buffer in response to reaching a predetermined third checkpoint, and the parallelized region of code is executed in a manner corresponding to the allocation information.
-
Citations
20 Claims
-
1. A computer readable storage medium storing program instructions operable to automatically control run-time parallelization of a software application, wherein the program instructions are executable to:
-
identify a parallel region within program instructions of a multi-threaded software application; instrument the software application with instructions executable to; allocate a buffer; store demand information in the buffer; read allocation information from the buffer without waiting for an update of the allocation information; and determine parallelization information for use in executing the parallel region based at least in part on the allocation information read from the buffer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method comprising:
-
identifying a parallel region within program instructions of a multi-threaded software application; and instrumenting the software application with instructions executable to; allocate a buffer; store demand information in the buffer; read allocation information from the buffer without waiting for an update of the allocation information; and determine parallelization information for use in executing the parallel region based at least in part on the allocation information read from the buffer. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A compiler comprising:
-
code generation instructions; and optimization instruction configured to; identify a parallel region within program instructions of a multi-threaded software application; instrument the software application with instructions executable to; allocate a buffer; store demand information in the buffer; read allocation information from the buffer without waiting for an update of the allocation information; and determine parallelization information for use in executing the parallel region based at least in part on the allocation information read from the buffer. - View Dependent Claims (18, 19, 20)
-
Specification