IP Library Granted Patent US 9,772,876
Granted Patent B2
US 9,772,876 · App. 14/148,337 · Granted Sep 26, 2017

Executing an all-to-allv operation on a parallel computer that includes a plurality of compute nodes

Inventors: Charles J. Archer (Hillsboro, OR); Nysal Jan K.A. (Bangalore, IN); Sameh S. Sharkawi (Cypress, TX)
Assignee: International Business Machines Corporation
G06F9/4843G06F9/5061G06F9/546
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,772,876
App. No.
14/148,337
Granted
Sep 26, 2017
Kind
B2
Abstract

Executing an all-to-allv operation on a parallel computer that includes a plurality of compute nodes, including: packing, by each task in an operational group of tasks, vectored contribution data from vectored storage in an all-to-allv contribution data buffer into an all-to-all contribution data buffer, wherein two or more entries in the all-to-allv contribution data buffer are different in size and each entry in the all-to-all contribution data buffer is identical in size; executing with the contribution data as stored in the all-to-all contribution data buffer an all-to-all collective operation by the operational group of tasks; and unpacking, by each task in the operational group of tasks, received contribution data from the all-to-all contribution data buffer into the vectored storage in an all-to-allv contribution data buffer.

Claims (31)

1. An apparatus for executing an all-to-allv operation on a parallel computer that includes a plurality of compute nodes, the apparatus comprising a computer processor, a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:

packing, by each task in an operational group of tasks, vectored contribution data from vectored storage in an all-to-allv contribution data buffer with a variable data element size into an all-to-all contribution data buffer with a fixed data element size, wherein two or more entries in the all-to-allv contribution data buffer are different in size and each entry in the all-to-all contribution data buffer is identical in size, wherein packing includes:

scanning by each task the all-to-allv contribution data buffer for maximum all-to-allv data element size;

communicating, by each task, each task's maximum all-to-allv data element size to each other task in the operational group; and

setting a cell size in the all-to-all contribution data buffer to the maximum all-to-allv data element size;

executing, with the contribution data as stored in the all-to-all contribution data buffer, an all-to-all collective operation by the operational group of tasks; and

unpacking, by each task in the operational group of tasks, received contribution data from the all-to-all contribution data buffer into the vectored storage in an all-to-allv contribution data buffer.

2. The apparatus of claim 1 wherein executing the all-to-all collective operation further comprises executing the all-to-all collective operation according to a Bruck style algorithm.

3. The apparatus of claim 1 wherein unpacking, by each task in the operational group of tasks, received contribution data from the all-to-all contribution data buffer into the vectored storage in an all-to-allv contribution data buffer further comprises:

identifying, in each cell of the all-to-all contribution data buffer, received contribution data; and

storing the received contribution data in the vectored storage in the all-to-allvcontribution data buffer.

4. The apparatus of claim 1 wherein the contribution data is characterized by a datatype that describes the layout of the contribution data in computer memory.

5. The apparatus of claim 1 wherein packing, by each task in an operational group of tasks, vectored contribution data from vectored storage in an all-to-allv contribution data buffer into an all-to-all contribution data buffer further comprises:

inserting, for each entry in the vectored contribution data, the entry into a slot in the all-to-all contribution data buffer; and

inserting, for each entry in the vectored contribution data, predetermined filler data into the slot in the all-to-all contribution data buffer.

6. A computer program product for executing an all-to-allvoperation on a parallel computer that includes a plurality of compute nodes, the computer program product disposed upon a computer readable medium, wherein the computer readable medium is non-transitory, the computer program product comprising computer program instructions that, when executed, cause a computer to carry out the steps of:

packing, by each task in an operational group of tasks, vectored contribution data from vectored storage in an all-to-allv contribution data buffer with a variable data element size into an all-to-all contribution data buffer with a fixed data element size, wherein two or more entries in the all-to-allv contribution data buffer are different in size and each entry in the all-to-all contribution data buffer is identical in size, wherein packing includes:

scanning by each task the all-to-allv contribution data buffer for maximum all-to-allv data element size;

communicating, by each task, each task's maximum all-to-allv data element size to each other task in the operational group; and

setting a cell size in the all-to-all contribution data buffer to the maximum all-to-allv data element size;

executing, with the contribution data as stored in the all-to-all contribution data buffer, an all-to-all collective operation by the operational group of tasks; and

unpacking, by each task in the operational group of tasks, received contribution data from the all-to-all contribution data buffer into the vectored storage in an all-to-allv contribution data buffer.

7. The computer program product of claim 6 wherein executing the all-to-all collective operation further comprises executing the all-to-all collective operation according to a Bruck style algorithm.

8. The computer program product of claim 6 wherein unpacking, by each task in the operational group of tasks, received contribution data from the all-to-all contribution data buffer into the vectored storage in an all-to-allv contribution data buffer further comprises:

identifying, in each cell of the all-to-all contribution data buffer, received contribution data; and

storing the received contribution data in the vectored storage in the all-to-allv contribution data buffer.

9. The computer program product of claim 6 wherein the contribution data is characterized by a datatype that describes the layout of the contribution data in computer memory.

10. The computer program product of claim 6 wherein packing, by each task in an operational group of tasks, vectored contribution data from vectored storage in an all-to-allv contribution data buffer into an all-to-all contribution data buffer further comprises:

inserting, for each entry in the vectored contribution data, the entry into a slot in the all-to-all contribution data buffer; and

inserting, for each entry in the vectored contribution data, predetermined filler data into the slot in the all-to-all contribution data buffer.

11. The computer program product of claim 6 wherein the computer readable medium comprises a storage medium.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2014
From: ARCHER, CHARLES J.; K.A., NYSAL JAN; SHARKAWI, SAMEH S.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 031899/0779 →
Continuity (1)
Related Publication 20150193271A1 · Jul 9, 2015