Analyzing update conditions for shared variable directory information in a parallel computer
First Claim
1. A parallel computer for analyzing update conditions for shared variable directory (SVD) information, the parallel computer comprising a plurality of threads of execution, the threads organized into tasks, the parallel computer further comprising memory partitioned to provide each thread with a private memory and a shared memory, the parallel computer comprising computer processors operatively coupled to the memory having disposed within it computer program instructions that, when executed by the computer processors, cause the parallel computer to function by:
- receiving, by a runtime optimizer of a second task, a compare-and-swap operation header, the compare-and-swap operation header including an SVD key, a first SVD address of resource data, and an updated first SVD address for the resource data, wherein the first SVD address is associated with the SVD key in a first SVD associated with a first task, wherein the first SVD address indicates a first location within a shared memory partition associated with the first task, wherein the resource data is stored at the first location within the shared memory partition;
in response to receiving the compare-and-swap operation header, retrieving from a remote address cache associated with the second task, by the runtime optimizer, a second SVD address indicating a second location within the shared memory partition associated with the first task;
determining, by the runtime optimizer, whether the second SVD address matches the first SVD address;
transmitting, by the runtime optimizer, a result indicating whether the second SVD address matches the first SVD address;
receiving from a plurality of threads, other results, each result indicating whether an SVD address associated with the SVD key in a particular remote address cache associated with a particular task matches the first SVD address;
if the results indicate that at least one of the SVD addresses does not match the first SVD address, updating, by the runtime optimizer, the remote address cache of the second task such that a previously sum-checked SVD address is used to correspond with the SVD key within the remote address cache of the second task; and
if the results indicate that all of the SVD addresses match the first SVD address, updating, by the runtime optimizer, the remote address cache of the second task such that the updated first SVD address is used to correspond with the SVD key within the remote address cache.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods, parallel computers, and computer program products for analyzing update conditions for shared variable directory (SVD) information in a parallel computer are provided. Embodiments include a runtime optimizer receiving a compare-and-swap operation header. The compare-and-swap operation header includes an SVD key, a first SVD address, and an updated first SVD address. The first SVD address is associated with the SVD key in a first SVD associated with a first task. Embodiments also include the runtime optimizer retrieving from a remote address cache associated with the second task, a second SVD address indicating a location within a memory partition associated with the first SVD in response to receiving the compare-and-swap operation header. Embodiments also include the runtime optimizer determining whether the second SVD address matches the first SVD address and transmitting a result indicating whether the second SVD address matches the first SVD address.
-
Citations
12 Claims
-
1. A parallel computer for analyzing update conditions for shared variable directory (SVD) information, the parallel computer comprising a plurality of threads of execution, the threads organized into tasks, the parallel computer further comprising memory partitioned to provide each thread with a private memory and a shared memory, the parallel computer comprising computer processors operatively coupled to the memory having disposed within it computer program instructions that, when executed by the computer processors, cause the parallel computer to function by:
-
receiving, by a runtime optimizer of a second task, a compare-and-swap operation header, the compare-and-swap operation header including an SVD key, a first SVD address of resource data, and an updated first SVD address for the resource data, wherein the first SVD address is associated with the SVD key in a first SVD associated with a first task, wherein the first SVD address indicates a first location within a shared memory partition associated with the first task, wherein the resource data is stored at the first location within the shared memory partition; in response to receiving the compare-and-swap operation header, retrieving from a remote address cache associated with the second task, by the runtime optimizer, a second SVD address indicating a second location within the shared memory partition associated with the first task; determining, by the runtime optimizer, whether the second SVD address matches the first SVD address; transmitting, by the runtime optimizer, a result indicating whether the second SVD address matches the first SVD address; receiving from a plurality of threads, other results, each result indicating whether an SVD address associated with the SVD key in a particular remote address cache associated with a particular task matches the first SVD address; if the results indicate that at least one of the SVD addresses does not match the first SVD address, updating, by the runtime optimizer, the remote address cache of the second task such that a previously sum-checked SVD address is used to correspond with the SVD key within the remote address cache of the second task; and if the results indicate that all of the SVD addresses match the first SVD address, updating, by the runtime optimizer, the remote address cache of the second task such that the updated first SVD address is used to correspond with the SVD key within the remote address cache. - View Dependent Claims (2, 3, 4, 5, 11)
-
-
6. A computer program product for analyzing update conditions for shared variable directory (SVD) information in a parallel computer, the parallel computer comprising a plurality of threads of execution, the threads organized into tasks, the parallel computer further comprising memory partitioned to provide each thread with a private memory and a shared memory, the computer program product disposed upon a computer readable storage medium, wherein the computer readable storage medium is not a signal, the computer program product comprising computer program instructions that, when installed and executed by a computer processor, cause the parallel computer to function by:
-
receiving, by a runtime optimizer of a second task, a compare-and-swap operation header, the compare-and-swap operation header including an SVD key, a first SVD address of resource data, and an updated first SVD address for the resource data, wherein the first SVD address is associated with the SVD key in a first SVD associated with a first task, wherein the first SVD address indicates a first location within a shared memory partition associated with the first task, wherein the resource data is stored at the first location within the shared memory partition; in response to receiving the compare-and-swap operation header, retrieving from a remote address cache associated with the second task, by the runtime optimizer, a second SVD address indicating a location within the shared memory partition associated with the first task; determining, by the runtime optimizer, whether the second SVD address matches the first SVD address; transmitting, by the runtime optimizer, a result indicating whether the second SVD address matches the first SVD address; receiving from a plurality of threads, other results, each result indicating whether an SVD address associated with the SVD key in a particular remote address cache associated with a particular task matches the first SVD address; if the results indicate that at least one of the SVD addresses does not match the first SVD address, updating, by the runtime optimizer, the remote address cache of the second task such that a previously sum-checked SVD address is used to correspond with the SVD key within the remote address cache of the second task; and if the results indicate that all of the SVD addresses match the first SVD address, updating, by the runtime optimizer, the remote address cache of the second task such that the updated first SVD address is used to correspond with the SVD key within the remote address cache. - View Dependent Claims (7, 8, 9, 10, 12)
-
Specification