Broadcasting shared variable directory (SVD) information in a parallel computer
First Claim
1. A parallel computer for broadcasting 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:
- creating, by a runtime optimizer of the parallel computer, a broadcast message header for each entry in an SVD associated with a first thread, including determining whether to select a header type and data schedule, wherein the header type indicates a type of communication operation, and wherein the data schedule indicates a communications pattern based on desired latency, bandwidth, and message size characteristics;
storing, by a runtime optimizer of the parallel computer, the broadcast message header with each entry in the SVD associated with the first thread;
detecting, by the runtime optimizer of the parallel computer, a change in SVD information within the SVD associated with the first thread, each entry in the SVD including an SVD key and an address in shared memory of the first thread, including identifying the SVD key for the entry in the SVD whose corresponding address in the SVD has changed from a first address in shared memory of the first thread to a second address in the shared memory of the first thread;
identifying, by the runtime optimizer, a plurality of threads requiring notification of the change in the SVD information, including tracking which threads are utilizing all SVD keys and identifying one or more threads that utilize the SVD key for the entry in the SVD whose corresponding address in the SVD has changed from the first address in shared memory of the first thread to the second address in the shared memory of the first thread;
in response to detecting the change in the SVD information, broadcasting, via a system-level messaging layer in a protocol stack of the parallel computer to each thread of the identified plurality of threads, wherein the broadcast message header for the entry in the SVD and update data indicating the change in the SVD information, wherein the broadcasting of the broadcast message header for the entry in the SVD and the update data include transmitting a notification message indicating an update of SVD information, and transmitting the update data as an active GET message using a parallel active message interface (PAMI), and wherein broadcasting the broadcast message header via the system-level messaging layer comprises calling a system-level messaging layer function.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods, parallel computers, and computer program products for broadcasting shared variable directory (SVD) information in a parallel computer are provided. Embodiments include a runtime optimizer detecting, by a runtime optimizer of the parallel computer, a change in SVD information within an SVD associated with a first thread. Embodiments also include a runtime optimizer identifying a plurality of threads requiring notification of the change in the SVD information. Embodiments also include the runtime optimizer in response to detecting the change in the SVD information, broadcasting to each thread of the identified plurality of threads, a broadcast message header and update data indicating the change in the SVD information.
22 Citations
6 Claims
-
1. A parallel computer for broadcasting 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:
-
creating, by a runtime optimizer of the parallel computer, a broadcast message header for each entry in an SVD associated with a first thread, including determining whether to select a header type and data schedule, wherein the header type indicates a type of communication operation, and wherein the data schedule indicates a communications pattern based on desired latency, bandwidth, and message size characteristics; storing, by a runtime optimizer of the parallel computer, the broadcast message header with each entry in the SVD associated with the first thread; detecting, by the runtime optimizer of the parallel computer, a change in SVD information within the SVD associated with the first thread, each entry in the SVD including an SVD key and an address in shared memory of the first thread, including identifying the SVD key for the entry in the SVD whose corresponding address in the SVD has changed from a first address in shared memory of the first thread to a second address in the shared memory of the first thread; identifying, by the runtime optimizer, a plurality of threads requiring notification of the change in the SVD information, including tracking which threads are utilizing all SVD keys and identifying one or more threads that utilize the SVD key for the entry in the SVD whose corresponding address in the SVD has changed from the first address in shared memory of the first thread to the second address in the shared memory of the first thread; in response to detecting the change in the SVD information, broadcasting, via a system-level messaging layer in a protocol stack of the parallel computer to each thread of the identified plurality of threads, wherein the broadcast message header for the entry in the SVD and update data indicating the change in the SVD information, wherein the broadcasting of the broadcast message header for the entry in the SVD and the update data include transmitting a notification message indicating an update of SVD information, and transmitting the update data as an active GET message using a parallel active message interface (PAMI), and wherein broadcasting the broadcast message header via the system-level messaging layer comprises calling a system-level messaging layer function. - View Dependent Claims (2, 3)
-
-
4. A computer program product for broadcasting 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:
-
creating, by a runtime optimizer of the parallel computer, a broadcast message header for each entry in an SVD associated with a first thread, including determining whether to select a header type and data schedule, wherein the header type indicates a type of communication operation, and wherein the data schedule indicates a communications pattern based on desired latency, bandwidth, and message size characteristics; storing, by a runtime optimizer of the parallel computer, the broadcast message header with each entry in the SVD associated with the first thread; detecting, by the runtime optimizer of the parallel computer, a change in SVD information within the SVD associated with the first thread, wherein each entry in the SVD including an SVD key and an address in private memory of the first thread, including identifying the SVD key for the entry in the SVD whose corresponding address in the SVD has changed from a first address in private memory of the first thread to a second address in the private memory of the first thread; identifying, by the runtime optimizer, a plurality of threads requiring notification of the change in the SVD information, including tracking which threads are utilizing all SVD keys and identifying one or more threads that utilize the SVD key for the entry in the SVD whose corresponding address in the SVD has changed from the first address in private memory of the first thread to the second address in the private memory of the first thread; and in response to detecting the change in the SVD information, broadcasting, via a system-level messaging layer in a protocol stack of the parallel computer to each thread of the identified plurality of threads, wherein the broadcast message header for the entry in the SVD and update data indicating the change in the SVD information, wherein the broadcasting of the broadcast message header for the entry in the SVD and the update data include transmitting a notification message indicating an update of SVD information, and transmitting the update data as an active GET message using a parallel active message interface (PAMI), and wherein broadcasting the broadcast message header via the system-level messaging layer comprises calling a system-level messaging layer function. - View Dependent Claims (5, 6)
-
Specification