IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
US-0882295
(2010-09-15)
|
등록번호 |
US-8549259
(2013-10-01)
|
발명자
/ 주소 |
- Archer, Charles J.
- Blocksome, Michael A.
- Ratterman, Joseph D.
- Smith, Brian E.
|
출원인 / 주소 |
- International Business Machines Corporation
|
대리인 / 주소 |
|
인용정보 |
피인용 횟수 :
6 인용 특허 :
7 |
초록
▼
Systems, methods and articles of manufacture are disclosed for performing a vector collective operation on a parallel computing system that includes multiple compute nodes and a network connecting the compute nodes that includes an ALU. A collective operation may be performed to determine displaceme
Systems, methods and articles of manufacture are disclosed for performing a vector collective operation on a parallel computing system that includes multiple compute nodes and a network connecting the compute nodes that includes an ALU. A collective operation may be performed to determine displacements for the vector collective operation. Descriptors for the vector collective operation may be generated based on the displacements. The vector collective operation may then be performed using the descriptors.
대표청구항
▼
1. A computer-implemented method to implement a vector collective operation on a parallel computer comprising a plurality of compute nodes operatively connected via a first network having a network processing element, each compute node having at least a processor and a memory, the method comprising:
1. A computer-implemented method to implement a vector collective operation on a parallel computer comprising a plurality of compute nodes operatively connected via a first network having a network processing element, each compute node having at least a processor and a memory, the method comprising: performing a collective operation using the network processing element, in order to determine a plurality of displacements for the vector collective operation;generating descriptors for the vector collective operation based on the plurality of displacements, wherein the descriptors for the vector collective operation comprise a descriptor for each of the plurality of compute nodes, and wherein each descriptor comprises a base address of data and a message length of the data for the respective compute node for performing the vector collective operation; andperforming the vector collective operation by the plurality of compute nodes and using the generated descriptors. 2. The computer-implemented method of claim 1, wherein the plurality of displacements specifies a displacement for each of the plurality of compute nodes, and wherein each displacement comprises a memory location for storing data for the respective compute node for performing the vector collective operation. 3. The computer-implemented method of claim 1, wherein performing the collective operation comprises: storing, by each of the plurality of compute nodes, a displacement contribution array having a length of at least the count of the compute nodes, wherein the displacement contribution array specifies, for the respective compute node, the contribution of the respective compute node to a displacement of each other compute node; anddetermining the plurality of displacements by using an allreduce operation to sum the displacement contribution arrays. 4. The computer-implemented method of claim 3, wherein storing each displacement contribution array comprises: storing, by a first compute node, a plurality of displacement contributions, each comprising the sum of a base offset of data and a message length of the data of the first compute node for performing the vector collective operation; andstoring, by each of the other compute nodes, a plurality of displacement contributions, each selected from at least one of zero and a message length of the data of the respective compute node for performing the vector collective operation, wherein each of the other compute nodes stores at least one zero displacement contribution, and wherein each of the other compute nodes stores a different total count of zero displacement contributions. 5. The computer-implemented method of claim 4, wherein the collective operation comprises an allreduce operation. 6. The computer-implemented method of claim 5, wherein the plurality of compute nodes is configured to independently perform each individual vector collective operation selected from gatherv, scatterv, allgathery and alltoallv. 7. A computer-readable memory containing a program which, when executed, performs an operation to implement a vector collective operation on a parallel computer comprising a plurality of compute nodes operatively connected via a first network having a network processing element, each compute node having at least a processor and a memory, the operation comprising: performing a collective operation using the network processing element, in order to determine a plurality of displacements for the vector collective operation;generating descriptors for the vector collective operation based on the plurality of displacements, wherein the descriptors for the vector collective operation comprise a descriptor for each of the plurality of compute nodes, and wherein each descriptor comprises a base address of data and a message length of the data for the respective compute node for performing the vector collective operation; andperforming the vector collective operation by the plurality of compute nodes and using the generated descriptors. 8. The computer-readable memory of claim 7, wherein the plurality of displacements specifies a displacement for each of the plurality of compute nodes, and wherein each displacement comprises a memory location for storing data for the respective compute node for performing the vector collective operation. 9. The computer-readable memory of claim 8, wherein performing the collective operation comprises: storing, by each of the plurality of compute nodes, a displacement contribution array having a length of at least the count of the compute nodes, wherein the displacement contribution array specifies, for the respective compute node, the contribution of the respective compute node to a displacement of each other compute node; anddetermining the plurality of displacements by using an allreduce operation to sum the displacement contribution arrays. 10. The computer-readable memory of claim 9, wherein storing each displacement contribution array comprises: storing, by a first compute node, a plurality of displacement contributions, each comprising the sum of a base offset of data and a message length of the data of the first compute node for performing the vector collective operation; andstoring, by each of the other compute nodes, a plurality of displacement contributions, each selected from at least one of zero and a message length of the data of the respective compute node for performing the vector collective operation, wherein each of the other compute nodes stores at least one zero displacement contribution, and wherein each of the other compute nodes stores a different total count of zero displacement contributions. 11. The computer-readable memory of claim 10, wherein the collective operation comprises an allreduce operation. 12. The computer-readable memory of claim 11, wherein the plurality of compute nodes is configured to independently perform each individual vector collective operation selected from gatherv, scatterv, allgathery and alltoallv. 13. A parallel computing system to implement a vector collective operation, the system comprising: a plurality of compute nodes operatively connected via a first network having a network processing element, each compute node having at least a processor and a memory, wherein the plurality of compute nodes are configured to perform an operation comprising: performing a collective operation by the plurality of compute nodes using the network processing element, in order to determine a plurality of displacements for a vector collective operation;generating descriptors for the vector collective operation based on the plurality of displacements, wherein the descriptors for the vector collective operation comprise a descriptor for each of the plurality of compute nodes, and wherein each descriptor comprises a base address of data and a message length of the data for the respective compute node for performing the vector collective operation; andperforming the vector collective operation by the plurality of compute nodes and using the generated descriptors. 14. The parallel computing system of claim 13, wherein the plurality of displacements specifies a displacement for each of the plurality of compute nodes, and wherein each displacement comprises a memory location for storing data for the respective compute node for performing the vector collective operation. 15. The parallel computing system of claim 14, wherein performing the collective operation comprises: storing, by each of the plurality of compute nodes, a displacement contribution array having a length of at least the count of the compute nodes, wherein the displacement contribution array specifies, for the respective compute node, the contribution of the respective compute node to a displacement of each other compute node; anddetermining the plurality of displacements by using an allreduce operation to sum the displacement contribution arrays. 16. The parallel computing system of claim 15, wherein storing each displacement contribution array comprises: storing, by a first compute node, a plurality of displacement contributions, each comprising the sum of a base offset of data and a message length of the data of the first compute node for performing the vector collective operation; andstoring, by each of the other compute nodes, a plurality of displacement contributions, each selected from at least one of zero and a message length of the data of the respective compute node for performing the vector collective operation, wherein each of the other compute nodes stores at least one zero displacement contribution, and wherein each of the other compute nodes stores a different total count of zero displacement contributions. 17. The parallel computing system of claim 16, wherein the collective operation comprises an allreduce operation. 18. The parallel computing system of claim 17, wherein the plurality of compute nodes is configured to independently perform each individual vector collective operation selected from gatherv, scatterv, allgathery and alltoallv. 19. The parallel computer system of claim 18, wherein the plurality of compute nodes are operatively connected via each of a plurality of networks of distinct characteristics, wherein the plurality of networks includes the first network and a second network, wherein the first network is configured to transfer data with lower latency than the second network, wherein the second network is configured to transfer data at a higher bandwidth than the first network. 20. The parallel computer system of claim 19, wherein the network processing element is separate from the plurality of compute nodes, wherein the descriptors are provided via direct memory access (DMA) and not via any rendezvous messaging between the plurality of compute nodes, thereby avoiding latency otherwise incurred in determining the displacements by the plurality of compute nodes, wherein rendezvous messaging comprises messaging via the second network, wherein the first network comprises a collective network, wherein the second network comprises a point-to-point network. 21. The parallel computer system of claim 20, wherein each descriptor comprises a DMA descriptor, wherein the network processing element includes hardware and comprises an arithmetic logic unit (ALU), wherein the point-to-point network comprises a torus network.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.