Information processing apparatus and computer-readable storage medium storing parallel computing program
Gespeichert in:
| Titel: | Information processing apparatus and computer-readable storage medium storing parallel computing program |
|---|---|
| Patent Number: | 11656,920 |
| Publikationsdatum: | May 23, 2023 |
| Appl. No: | 17/064625 |
| Application Filed: | October 07, 2020 |
| Abstract: | A processing unit generates, in the initial setting of all-to-all communication between processes, a unique node-order process number for each process on the basis of hardware information, computes the virtual rank number of each process on the basis of the node-order process number of the process, and stores the computed virtual rank numbers in a storage unit. When performing the al-to-all communication between the processes, the processing unit determines the communication partner process of each process for the current step in the all-to-all communication by performing an exclusive OR operation between the virtual rank number of the process, stored in, the storage unit, and the step number of the current step. Then, the processing unit performs communication from each process to the corresponding communication partner process. |
| Inventors: | FUJITSU LIMITED (Kawasaki, JP) |
| Assignees: | FUJITSU LIMITED (Kawasaki, JP) |
| Claim: | 1. An information processing apparatus, comprising: a memory configured to store therein virtual rank numbers of each of a plurality of processes, the virtual rank numbers being respectively unique to the plurality of processes; and a processor configured to perform procedures including generating, in initial setting of all-to-all communication between the plurality of processes, node-order process numbers of each of the plurality of processes, based on hardware information, the node-order process numbers being respectively unique to the plurality of processes, computing the virtual rank numbers of the plurality of processes, based on the node-order process numbers and storing the computed virtual rank numbers in the memory, determining, in performing the all-to-all communication between the plurality of processes, a communication partner process of each of the plurality of processes for a current step in the all-to-all communication by performing an exclusive OR operation between a virtual rank number of said each process, stored in the memory, and a step number of the current step, the exclusive OR operation, between the virtual rank number of a first process among the plurality of processes and the step number of the current step, calculating a node-order process number of the communication partner process of the first process for the current step, and performing a communication session from said each process to the determined communication partner process, the hardware information includes a node number of each of a plurality of nodes that perform the plurality of processes and a core number of each of a plurality of cores included in each of the plurality of nodes, and the generating of the node-order process numbers includes obtaining core numbers of cores each assigned one of the plurality of processes and generating the node-order process numbers of the plurality of processes assigned to the cores in order of node numbers corresponding to the obtained core numbers, based on the hardware information. |
| Claim: | 2. The information processing apparatus according to claim 1 , wherein the procedures further include synchronizing completion of communication sessions from the plurality of processes and incrementing the step number. |
| Claim: | 3. The information processing apparatus according to claim 1 , wherein: the processor includes a plurality of nodes that perform the plurality of processes, and a ring bus to which the plurality of nodes are connected, the ring bus including a first communication path that is a clockwise path and a second communication path that is a counterclockwise path; and the exclusive OR operation is performed to determine the communication partner process of said each process so as to prevent a partial zone of the first communication path and a partial zone of the second communication path from being shared by communication sessions of two or more pairs of processes among the plurality of processes. |
| Claim: | 4. The information processing apparatus according to claim 1 , wherein: the determining of the communication partner process includes determining a data transmission destination process of said each process for the current step by performing a first exclusive OR operation between the virtual rank number and the step number, and determining a data transmission source process of said each process for the current step by performing a second exclusive OR operation between the virtual rank number and the step number; and the performing of the communication session from said each process to the determined communication partner process includes data transmission from said each process to the data transmission destination process and data reception of said each process from the data transmission source process. |
| Claim: | 5. The information processing apparatus according to claim 1 , wherein the procedures further include updating, in response to a reduction in a number of processes after the computing of the virtual rank numbers, the node-order process numbers and the virtual rank numbers with respect to remaining processes of the plurality of processes. |
| Claim: | 6. A non-transitory computer-readable storage medium storing a parallel computing program that causes a computer to perform a procedure comprising: generating, in initial setting of all-to-all communication between a plurality of processes, node-order process numbers of each of the plurality of processes based on hardware information, the node-order process numbers being respectively unique to the plurality of processes, computing virtual rank numbers of the plurality of processes, based on the node-order process numbers and storing the computed virtual rank numbers in a memory the virtual rank numbers being respectively unique to the plurality of processes; determining, in performing the all-to-all communication between the plurality of processes, a communication partner process of each of the plurality of processes for a current step in the all-to-all communication by performing an exclusive OR operation between a virtual rank number of said each process, stored in the memory, and a step number of the current step, the exclusive OR operation, between the virtual rank number of a first process among the plurality of processes and the step number of the current step, calculating a node-order process number of the communication partner process of the first process for the current step, and performing a communication session from said each process to the determined communication partner process, the hardware information includes a node number of each of a plurality of nodes that perform the plurality of processes and a core number of each of a plurality of cores included in each of the plurality of nodes, and the generating of the node-order process numbers includes obtaining core numbers of cores each assigned one of the plurality of processes and generating the node-order process numbers of the plurality of processes assigned to the cores in order of node numbers corresponding to the obtained core numbers, based on the hardware information. |
| Claim: | 7. An information processing method implemented by a computer, comprising: generating, in initial setting of all-to-all communication between a plurality of processes, node-order process numbers of each of the plurality of processes, based on hardware information, the node-order process numbers being respectively unique to the plurality of processes, computing virtual rank numbers of the plurality of processes, based on the node-order process numbers and storing the computed virtual rank numbers in a memory, the virtual rank numbers being respectively unique to the plurality of processes; determining, in performing the all-to-all communication between the plurality of processes, a communication partner process of each of the plurality of processes for a current step in the all-to-all communication by performing an exclusive OR operation between a virtual rank number of said each process, stored in the memory, and a step number of the current step, the exclusive OR operation, between the virtual rank number of a first process among the plurality of processes and the step number of the current step, calculating a node-order process number of the communication partner process of the first process for the current step, and performing a communication session from said each process to the determined communication partner process, the hardware information includes a node number of each of a plurality of nodes that perform the plurality of processes and a core number of each of a plurality of cores included in each of the plurality of nodes, and the generating of the node-order process numbers includes obtaining core numbers of cores each assigned one of the plurality of processes and generating the node-order process numbers of the plurality of processes assigned to the cores in order of node numbers corresponding to the obtained core numbers, based on the hardware information. |
| Patent References Cited: | 6038604 March 2000 Bender 20080148013 June 2008 Jia 20090067334 March 2009 Archer 20100017420 January 2010 Archer 20110125824 May 2011 Naruse et al. 20110225226 September 2011 Archer H11-110362 April 1999 2011-108202 June 2011 5056844 October 2012 |
| Primary Examiner: | Anya, Charles E |
| Attorney, Agent or Firm: | Fujitsu Patent Center |
| Dokumentencode: | edspgr.11656920 |
| Datenbank: | USPTO Patent Grants |
| Abstract: | A processing unit generates, in the initial setting of all-to-all communication between processes, a unique node-order process number for each process on the basis of hardware information, computes the virtual rank number of each process on the basis of the node-order process number of the process, and stores the computed virtual rank numbers in a storage unit. When performing the al-to-all communication between the processes, the processing unit determines the communication partner process of each process for the current step in the all-to-all communication by performing an exclusive OR operation between the virtual rank number of the process, stored in, the storage unit, and the step number of the current step. Then, the processing unit performs communication from each process to the corresponding communication partner process. |
|---|