WO2011087076A1 - 並列計算機システム、同期方法、及びプログラム - Google Patents

並列計算機システム、同期方法、及びプログラム Download PDF

Info

Publication number
WO2011087076A1
WO2011087076A1 PCT/JP2011/050513 JP2011050513W WO2011087076A1 WO 2011087076 A1 WO2011087076 A1 WO 2011087076A1 JP 2011050513 W JP2011050513 W JP 2011050513W WO 2011087076 A1 WO2011087076 A1 WO 2011087076A1
Authority
WO
WIPO (PCT)
Prior art keywords
synchronization
arrival notification
synchronization point
point arrival
computer
Prior art date
Application number
PCT/JP2011/050513
Other languages
English (en)
French (fr)
Inventor
善之 大野
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2011550011A priority Critical patent/JP5780157B2/ja
Publication of WO2011087076A1 publication Critical patent/WO2011087076A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/522Barrier synchronisation

Definitions

  • the present invention relates to a parallel computer system, a synchronization method, and a program.
  • the present invention relates to a parallel computer system that performs allocation synchronization processing by distributing processing to a plurality of computers, a synchronization method that synchronizes a plurality of devices connected by a network, an N-dimensional torus network, or an N-dimensional mesh network
  • a synchronization method for synchronizing a plurality of devices connected by a network a program for synchronizing a plurality of devices connected by a network, and a plurality of devices connected by an N-dimensional torus network or an N-dimensional mesh network
  • the present invention relates to a program for synchronizing devices.
  • each computer needs a function for synchronizing with other computers. Since each computer is provided with a synchronization function, it is possible to proceed with processing while confirming that other computers have finished certain processing.
  • barrier synchronization For example, a technique called barrier synchronization is known in which all computers confirm that a specific process has been completed and then all computers start the next process (see, for example, Patent Document 1). . Further, in a collective communication algorithm in a broad sense that systematically performs data communication among all computers, desired communication performance can be obtained by starting communication all at once. For this reason, if there is a difference between computers regarding the communication start time, a communication collision may occur, and it may be difficult to improve communication performance. For this reason, the conventional technique not only confirms that the process is completed, but also requires a synchronization process for aligning the start timing of the next process.
  • FIG. 15 shows a synchronization method described in Patent Document 1.
  • the parallel computer system described in Patent Document 1 has one master node that controls synchronization in an inter-node network, and the master node holds the number of nodes that participate in synchronization.
  • each slave node reaches the synchronization point, it sends a synchronization establishment notification to the master node.
  • the master node that has received the synchronization establishment notification increments the value by one each time the synchronization establishment notification is received.
  • the master node determines that all nodes have reached the synchronization point. Then, the master node transmits a synchronization establishment notification to each slave node.
  • Each slave node recognizes the establishment of synchronization by receiving the notification of establishment of synchronization.
  • a synchronization method in which a single master node manages synchronization processing is generally used.
  • the master node confirms that all nodes are synchronized, it notifies all nodes that synchronization is established, and each node confirms that synchronization is established by receiving a notification of synchronization establishment from the master node. It was.
  • each computer can confirm that all computers have reached the synchronization point.
  • the time at which each computer confirms the establishment of synchronization is different. Therefore, it is not possible to synchronize the processing timing between the computers.
  • Japanese Patent Application Laid-Open No. 2004-228561 describes a method of synchronizing in order to match the processing timing in a plurality of computer nodes in a parallel computer system composed of a plurality of computer nodes connected to an inter-node network.
  • FIG. 16 shows a synchronization method described in Patent Document 2.
  • synchronization is achieved by transferring a synchronization notification from a master node to a slave node.
  • the master node transmits a synchronization notification to each slave node.
  • the master node waits for a time until the synchronization notification reaches one slave node, and transmits the synchronization notification to the next slave node.
  • the master node transmits a synchronization notification to the last slave node, completes the synchronization by waiting until the last slave node receives the synchronization notification, and proceeds to the next processing.
  • each slave node waits for a time until a slave node that has not yet received the synchronization notification receives the synchronization notification from the master node. Thereby, each node can complete synchronous processing simultaneously, and can start next processing simultaneously.
  • the computer nodes communicate with each other and do not synchronize, but synchronize via the master node. For this reason, the time from when all the computer nodes actually reach the synchronization point to when all the computer nodes recognize that synchronization is established becomes longer by the amount via the master node.
  • a first aspect is a parallel computer system that performs allocation synchronization processing by distributing processing to a plurality of computers, and includes a plurality of computers constituting a network, and the computers participate in synchronization that they have reached a synchronization point.
  • a synchronization point arrival notification to be sent to all other computers and a synchronization point arrival notification unit that issues a synchronization point arrival notification including the issuer computer information that issued the synchronization point arrival notification, and one clock until it reaches 0 1 when the synchronization point arrival notification is received, a counter update unit that increments the reception synchronization point arrival number counter of the computer when the synchronization point arrival notification is received, and when a synchronization point arrival notification is received
  • the timer update unit that calculates the standby time based on the original computer information and updates the timer value and the longer standby time to the timer, and whether synchronization is completed once per clock And a synchronization processing completion determining section for determining the emergence.
  • the second aspect is a synchronization method for synchronizing a plurality of devices connected via a network, and a device participating in synchronization notifies all other devices participating in synchronization that the synchronization point has been reached.
  • a synchronization point arrival notification is issued, and the synchronization point arrival notification includes information on an issuing source device that has issued the synchronization point arrival notification.
  • the reception synchronization point arrival notification counter for each participating device is incremented by 1, the waiting time is obtained based on the issuing device information, and the timer value and the larger waiting time for each device participating in the synchronization are updated to the timer.
  • the timer decrements by 1 every clock until it reaches 0, and the devices participating in the synchronization issue the synchronization point arrival notification, and the number of received synchronization point arrival notifications is the total number of devices participating in synchronization. 1 less than A have value, it completes the synchronization process when the timer reaches zero.
  • a third aspect is a synchronization method for synchronizing a plurality of devices connected by an N-dimensional torus network or an N-dimensional mesh network, and the devices participating in the synchronization are synchronized with N steps from 1 to N
  • the synchronization process of the i-th step the synchronization process is performed between Ai devices connected in the i-th dimension.
  • the synchronization process of the i-th step the synchronization process of the i-1 step is completed, A synchronization point arrival notification is issued.
  • the synchronization process completion of the Nth step is completed between all devices. The synchronization process is complete.
  • the fourth aspect is a program for synchronizing a plurality of devices connected via a network, and the device that participates in the synchronization is notified to the other devices that participate in the synchronization that the device has reached the synchronization point.
  • the synchronization point arrival notification is issued to the device, and the synchronization point arrival notification includes the issuer device information that issued the synchronization point arrival notification, and the device sends the synchronization point arrival notification to the devices participating in the synchronization.
  • the reception synchronization point arrival notification counter for each device participating in the synchronization is incremented by 1 to obtain a standby time based on the issuing device information, and the timer value and the standby time for each device participating in the synchronization
  • the timer is updated to the timer, and the timer is decremented by 1 every clock until it reaches 0, and the device issues a synchronization point arrival notification to the device participating in synchronization, and the reception synchronization point arrival notification
  • There is one less than the total number of devices that participate in synchronization is determined to be the synchronization process completion when the timer is zero, completes the synchronization process.
  • a fifth aspect is a program for synchronizing a plurality of devices connected by an N-dimensional torus network or an N-dimensional mesh network, and the devices participating in the synchronization are synchronized with 1 to N N steps.
  • the synchronization process of the i-th step the synchronization process is performed between Ai devices connected in the i-th dimension.
  • the synchronization process of the i-1 step is completed at the same time.
  • the synchronization point arrival notification is issued.
  • the synchronization point arrival notification is issued, and the synchronization processing completion determination of the Nth step is performed between all devices.
  • the synchronization process is complete.
  • the time at which all computers complete synchronization can be unified. Further, since no master device is provided, for example, the synchronization process can be completed at high speed.
  • FIG. 1 It is a figure which shows an example of the utilization environment of the parallel computer system which concerns on one Embodiment. It is a figure which shows the structure of the computer node a. It is a figure which shows the structure of the synchronous point arrival notification packet handled with a parallel computer system. It is a block diagram which shows the function structure of a synchronous control apparatus. It is a time chart which shows the flow of processing when a computer node issues a synchronization point arrival notification packet. It is a figure which shows the minimum waiting time information which the computer node hold
  • FIG. 6 is a table showing a synchronization point arrival time, an X-dimensional synchronization completion time, and a synchronization processing completion time of each computer node in an operation example. It is a figure which shows an example of the hardware constitutions of a computer node and a computer node. It is a figure which shows the synchronizing method of patent document 1. FIG. It is a figure which shows the synchronizing method of patent document 2. FIG.
  • FIG. 1 shows an example of a usage environment of a parallel computer system 100 according to an embodiment.
  • the parallel computer system 100 includes a plurality of computer nodes 110a to 110d (hereinafter collectively referred to as computer nodes 110).
  • the computer node 110a is electrically connected to the computer node 110b via a communication cable.
  • the computer node 110b is electrically connected to the computer node 110c via a communication cable.
  • the computer node 110c is electrically connected to the computer node 110d via a communication cable.
  • the computer node 110d is electrically connected to the computer node 110a via a communication cable. In this way, the computer nodes 110a to 110d constitute a ring network.
  • synchronization processing is performed by exchanging synchronization point notification packets for notifying other computer nodes 110 that each computer node 110 has reached the synchronization point.
  • the synchronization completion time can be unified in all the computer nodes 110.
  • FIG. 2 is a diagram showing the configuration of the computer node 110a.
  • the computer node 110a includes a “calculation unit” that controls calculation and a “communication unit” that controls communication. Further, the communication unit has a function of synchronization control between the computer nodes 110 and between the computer units in the computer node 110, and a function of inputting / outputting communication packets to / from the computer units and other computer nodes 110. It consists of “input / output device 11”.
  • the synchronization control device 10 can transmit / receive a synchronization point arrival notification packet to / from another computer node 110 via the input / output device 11.
  • the synchronization control apparatus 10 also notifies the synchronization control apparatus 10 that the calculation unit has reached the synchronization point, and notifies the calculation unit that the synchronization processing of the parallel computer system 100 has been completed.
  • the “synchronization establishment signal” can be communicated directly with the calculation unit.
  • the synchronization point arrival notification packet includes packet information indicating that the packet is a synchronization point arrival notification packet, issue source node information indicating the issue source computer node 110, and end point node information indicating the destination node of the packet.
  • the synchronization point arrival notification packet is transferred from the issuing node 110 to all other computer nodes 110 in the counterclockwise direction along the ring network shown in FIG.
  • the synchronization point arrival notification packet issued by the computer node 110a is transmitted from the computer node 110a, and is sequentially transferred to the computer node 110b, the computer node 110c, and the computer node 110d. Therefore, the issuer computer node information of the synchronization point arrival notification packet issued by the computer node 110a is the computer node 110a, and the end node information is the computer node 110d.
  • the synchronization point arrival notification packet In the parallel computer system 100, not only the synchronization point arrival notification packet is exchanged, but other control packets and data packets may be transmitted and received. However, it is assumed that the synchronization point arrival notification packet does not compete with other packets, and there is no delay in transmission / reception of the synchronization point arrival notification packet. For this reason, in this embodiment, the cable between the computer nodes 110 is composed of a plurality of channels, and the synchronization point arrival notification packet occupies one of the channels.
  • the above-described multiple channel configuration does not limit the scope of the present invention.
  • the input / output device 11 When the input / output device 11 receives a synchronization point arrival notification packet from another computer node 110, it outputs it to the synchronization control device. When a packet other than the synchronization point arrival notification packet is received from another computer node 110, it is output to the calculation unit. On the other hand, the packet input from the calculation unit is output to the outside of the computer node 110 according to a predetermined routing so that the packet reaches the destination held as information. When a synchronization point arrival notification packet is input from the synchronization control device, it is output outside the computer node 110 so as to reach the destination node counterclockwise along the ring network shown in FIG.
  • the synchronization control device 10 receives a synchronization point arrival notification packet from another computer node 110, a “synchronization point arrival notification packet receiving unit 101”, a synchronization point arrival notification packet issued by the own computer node 110 and another computer node 110.
  • the synchronization point arrival notification packet receiving unit 101 receives the synchronization point arrival notification packet issued by the other computer node 110 from the input / output device.
  • a “counter update notification” is sent to the synchronization point arrival node number counter update unit 104 and the notification source determination unit 106 is notified of the source node information of the synchronization point arrival notification packet.
  • the received synchronization point arrival notification packet is discarded.
  • the received synchronization point arrival notification is output to the synchronization point arrival notification packet transmission unit 102 in order to transfer the received synchronization point arrival notification to another computer node 110.
  • the synchronization point arrival notification unit 103 executes “synchronization point arrival notification processing” by receiving a “synchronization point arrival command” issued by the calculation unit when the calculation unit reaches the synchronization point.
  • a counter update notification is sent to the synchronization point arrival node number counter update unit 104 and the own computer node information is notified to the notification source determination unit 106.
  • a synchronization point arrival notification packet is generated with the source node information as its own computer node information and the end node information as the corresponding end node information, and is output to the synchronization point arrival notification packet transmitter 102.
  • the synchronization point arrival notification packet transmitting unit 102 outputs the synchronization point arrival notification packet from the synchronization point arrival notification packet receiving unit 101 and the synchronization point arrival notification unit 103 to the input / output device 11.
  • the synchronization point arrival node number counter updating unit 104 increments the value of the counter 105 by one. Note that the counter value before the start of the synchronization process is initialized to zero.
  • the notification source determination unit 106 Based on the issuer node information received from the synchronization point arrival notification packet receiving unit 101 and the synchronization point arrival notification unit 103, the notification source determination unit 106 derives the time that is required to wait at least before the synchronization processing is completed. It has a function. The derived minimum waiting time is transferred to the synchronization process completion timer update unit 107, and the synchronization process completion timer update unit 107 updates the timer 108 by "synchronization process completion timer update process". The minimum waiting time derived by the notification source determination unit 106 is the time until the value of the counter 105 of the destination node is incremented when the synchronization point arrival notification packet received or issued by the local computer node 110 reaches the destination node. Is the time. As an example, FIG.
  • each computer node 110 sets the time until the counter update process of the computer node 110d is completed as the minimum standby time.
  • each computer node 110 holds a table for referring to the minimum standby time based on the issuing computer node 110, thereby deriving the minimum standby time.
  • FIG. 6 shows an example of the table.
  • the synchronization processing completion timer update unit 107 receives the value of the timer 108 if the minimum standby time input is greater than the value of the timer 108. Update with waiting time.
  • the timer 108 is for counting a minimum waiting time until the synchronization process is completed.
  • the timer 108 is updated by the synchronization processing completion timer updating unit 107, and decrements the value by 1 every clock while the value is positive. Note that the timer value before the start of the synchronization process is initialized to zero.
  • the synchronization process completion determination unit 109 has a function of determining whether to complete the synchronization process.
  • the synchronization processing completion determination unit 109 always performs “synchronization processing completion determination” for each clock while the synchronization processing is being performed. If it is determined in the synchronization process completion determination that the synchronization process can be completed, a synchronization establishment signal is sent to the calculation unit to complete the synchronization process.
  • the synchronization processing completion determination unit refers to the counter value of the counter 105 and the minimum standby time of the timer 108, and when the counter value matches 4 of the total number of computer nodes and the minimum standby time of the timer is 0, It is determined that the synchronization process can be completed.
  • the counter value of the counter 105 is initialized to zero.
  • FIG. 7 is a time chart illustrating the transmission / reception times of the synchronization point arrival notification packet.
  • FIG. 8 shows a time chart showing the state of the counter 105 and the timer 108 when the computer nodes 110a to 110d transmit and receive the synchronization point arrival notification packet.
  • the computer node 110 a reaches the synchronization point at time 80, and issues a synchronization point arrival notification packet (notification 1) by the synchronization point arrival notification processing 103.
  • the counter 105 is updated from 0 to 1 by the synchronization point arrival node number counter updating unit 104.
  • the synchronization processing completion timer update unit 107 sets a time 300 until the notification 1 reaches the computer node 110d in the timer 108.
  • the computer node 110a receives the synchronization point arrival notification packet (notification 3) issued by the computer node 110c.
  • the node number counter updating unit 104 updates the value of the counter 105 from 1 to 2.
  • the synchronization processing completion timer updating unit 107 does not update the timer value because the timer value is larger than the time 100 until the notification 3 reaches the computer node 110b.
  • the computer node 110a receives the synchronization point arrival notification packet (notification 4) issued by the computer node 110d.
  • the node number counter update unit 104 updates the value of the counter 105 from 2 to 3.
  • the synchronization processing completion timer updating unit 107 updates the timer value to 200 because the time 200 until the notification 4 reaches the computer node 110c is larger than the timer value.
  • the computer node 110a receives the synchronization point arrival notification packet (notification 2) issued by the computer node 110b.
  • the node number counter updating unit 104 updates the value of the counter 105 from 3 to 4.
  • the computer node 110a is the destination node of the notification 2, so the timer value is not updated.
  • the synchronization process completion determination unit 109 determines that the synchronization process can be completed, and the synchronization process is completed.
  • the computer node 110b, the computer node 110c, and the computer node 110d similarly have a counter value of 4 and a timer value of 0 at time 500, and the synchronization processing is completed.
  • the parallel computer system 100 can make the completion time of the synchronization processing the same in all the computer nodes 110.
  • FIG. 9 shows an example of a usage environment of a parallel computer system 200 according to another embodiment.
  • the parallel computer system 200 includes a plurality of computer nodes 210a-p (hereinafter collectively referred to as computer nodes 210).
  • the parallel computer system 200 has a configuration in which 16 computer nodes 210a to 210p having functions of calculation and communication are connected by a two-dimensional torus type network. Sixteen computer nodes 210 are connected to each other in four nodes in the X-dimensional direction and four nodes in the Y-dimensional direction.
  • the four computer nodes 210a, b, c, and d are in a ring connection called abbcda.
  • the computer nodes 210e, f, g, and h are connected to each other.
  • Four units, four computer nodes 210i, j, k, and l, and four computer nodes 210m, n, o, and p are in a ring connection.
  • the synchronization processing of the parallel computer system 200 is such that each computer node 210 performs two-stage synchronization, that is, synchronization in the X-dimensional direction and synchronization in the Y-dimensional direction node.
  • the synchronization processing of the parallel computer system 200 is performed by exchanging synchronization point arrival notification packets between the computer nodes 210, and the synchronization processing completion time is set to all the computer nodes 210. There is a feature that can be made the same.
  • the computer node 210a to the computer node 210p have the same configuration. The configuration will be described below with the computer node 210a as an example.
  • FIG. 10 is a diagram showing the configuration of the computer node 210a.
  • the computer node 210a includes a “calculation unit” that controls calculation and a “communication unit” that controls communication. Further, the communication unit has a function of synchronization of communication packets between the computer nodes 210 and between the computer units in the computer node 210, and a communication packet input / output function between the computer units and other computer nodes 210. It has “input / output device 21”.
  • the synchronization control device 20 can transmit / receive a synchronization point arrival notification packet to / from another computer node 210 via the input / output device 21. In addition, the synchronization control device 20 notifies the synchronization unit 20 that the calculation unit has reached the synchronization point, and the synchronization establishment that notifies the calculation unit that the synchronization processing of the parallel computer system 200 has been completed. The signal can be communicated directly with the computing unit.
  • the synchronization point arrival notification packet includes packet information indicating that the packet is a synchronization point arrival notification packet, synchronization dimension information indicating whether the synchronization is in the X dimension or the Y dimension, and the packet.
  • the source node information indicating the source computer node and the end node information indicating the destination node of the packet are used as information.
  • the synchronization point arrival notification packet is transferred to the computer node 210 on the right side in the drawing of FIG. 9 in the X dimension. In the Y dimension, it is transferred to the lower computer node 210 in the drawing of FIG.
  • the synchronization point arrival notification packet issued by the computer node 210f for synchronization in the X dimension direction is sequentially transferred from the computer node 210f to the computer nodes 210g, h, e, and the computer node 210f is synchronized in the Y dimension direction. Therefore, the synchronization point arrival notification packet issued for this purpose is sequentially transferred from the computer node 210f to the computer nodes 210j, n, and b.
  • the synchronization control device 20 has substantially the same configuration as the synchronization control device 10 of the parallel computer system 100 shown in FIG. Therefore, differences from the synchronous control device 10 will be described.
  • the computer system 200 synchronization of the entire system is performed by performing two-stage synchronization of synchronization in the X-dimensional direction and synchronization in the Y-dimensional direction. Therefore, the synchronization control device 20 can synchronize the X dimension and the Y dimension.
  • the counter 205 and the timer 208 have two counter timers for the X dimension and the Y dimension.
  • the synchronization point arrival notification unit 203 issues a synchronization point arrival notification packet when receiving a synchronization point arrival command from the calculation unit or a synchronization completion signal in the X-dimensional direction from the synchronization processing completion determination unit 209.
  • the synchronization dimension information of the synchronization point arrival packet to be issued is issued as the X dimension in order to start the synchronization process in the X dimension direction.
  • the synchronization completion signal in the X dimension direction is received from the synchronization process completion determination unit 209
  • the synchronization dimension information of the synchronization point arrival packet to be issued is issued as the Y dimension in order to start the synchronization process in the Y dimension direction.
  • the synchronization dimension information is also given and notified.
  • the counter update notification is notified from the synchronization point arrival notification packet receiving unit 201 to the synchronization point arrival node number counter updating unit 204, or when the synchronization source arrival notification packet is issued to the notification source determination unit 106 Also in the case of notifying, the synchronous dimension information is added and notified.
  • the synchronization point arrival node number counter updating unit 204 receives the counter update notification and the synchronization dimension information from the synchronization point arrival notification packet receiving unit 201 and the synchronization point arrival notification unit 203, the synchronization point arrival node counter updating unit 204 The counter value is incremented by 1.
  • the notification source determination unit 206 When the notification source determination unit 206 receives the issuer node information and the synchronization dimension information from the synchronization point arrival notification packet reception unit 201 and the synchronization point arrival notification packet 203, the notification source determination unit 206 derives an update value of the timer to be notified to the timer update unit 207.
  • the timer update value to be derived is the time until the corresponding synchronization point arrival notification packet reaches the end point node.
  • the timer update unit 207 is notified of the update value and the synchronization dimension information. If the received timer value is greater than the value of the timer 208 of the dimension specified by the synchronization dimension information, the timer update unit 207 updates the timer update value received from the notification source determination unit 206.
  • the timer 208 decrements each of the two timer values of the X dimension and the Y dimension by 1 while being a positive number once per clock.
  • the synchronization processing completion determination unit 209 performs “synchronization processing completion determination” for each clock while the synchronization processing is being performed. If it is determined in the synchronization processing completion determination that the X-dimensional synchronization processing can be completed, an X-dimensional synchronization processing completion notification is notified to the synchronization point arrival notification processing 203, and the X-dimensional counter value of the counter 205 is initialized to 0. Turn into. If it is determined in the synchronization process completion determination that the Y-dimensional synchronization process can be completed, a synchronization establishment signal is sent to the calculation unit, the Y-dimensional counter value of the counter 205 is initialized to 0, and the synchronization process is completed. To do.
  • the counter value of the counter 205 and the timer value of the timer 208 are referred to. If the X-dimensional counter value of the counter 205 is 4, which is the number of computer nodes connected in the X-dimensional direction, and the X-dimensional timer value of the timer 208 is 0, it is determined that the X-dimensional synchronization processing can be completed. If the Y-dimensional counter value of the counter 205 is four, which is the number of computer nodes connected in the Y-dimensional direction, and the Y-dimensional timer value of the timer 208 is 0, it is determined that the Y-dimensional synchronization process can be completed.
  • the latency of the synchronization point arrival notification packet between the adjacent computer nodes 210 is constant. Assume that this latency is 100 clocks.
  • the four computer nodes are 300 clocks later than the time when the latest synchronization point arrival notification packet is issued among the four computer nodes 210. 210 can complete the synchronization process simultaneously.
  • FIG. 13 shows the time at which the calculation unit of each computer node 210 reaches the synchronization point and the synchronization processing notification unit 203 issues a synchronization point arrival notification packet (synchronization point arrival time), synchronization processing in the synchronization processing of this operation example.
  • the time at which the completion determination unit 209 determines completion of synchronization processing in the X dimension direction (X dimension synchronization completion time), the time at which the synchronization processing completion determination unit 209 determines completion of synchronization processing in the Y dimension direction, that is, the entire parallel computer system 200
  • the table which showed three time of the time (synchronization process completion time) which determines completion of a synchronous process is shown.
  • each computer node 210 When each computer node 210 reaches the synchronization point, the computer node 210 starts synchronization processing with the computer node 210 in the X-dimensional direction. In the synchronization processing in the X-dimensional direction, the four computer nodes 210 complete the synchronization processing at the same time 300 clocks after the time when the synchronization point is reached the latest among the four computer nodes 210 connected in the X-dimensional direction. When the synchronization process in the X-dimensional direction is completed, a synchronization point arrival notification packet is immediately issued for the synchronization process in the Y-dimensional direction.
  • a synchronization point arrival notification packet for the synchronization process in the Y-dimensional direction can be issued at the same time.
  • the four computer nodes 210 connected in the X-dimensional direction simultaneously start the synchronization process in the Y-dimensional direction, the four Y-dimensional direction synchronization processes draw the same time chart. For example, when the computer nodes 210a, 210b, 210c, and 210d respectively transmit a synchronization point arrival notification packet at the time 450, the computer nodes 210e, f, g, and h receive the synchronization point arrival notification packet at the time 550, respectively. To do.
  • the four Y-dimensional synchronization processes have the same completion time.
  • all the 16 computer nodes 210 of the parallel computer system 200 can complete the synchronization processing at the same time.
  • the synchronization processing can be completed simultaneously among all the computer nodes 210.
  • synchronization can be performed at a higher speed than the conventional synchronization processing.
  • operation example 1 of synchronous processing in the parallel computer system 100 of the first embodiment As a premise, it is assumed that the synchronization notification of the prior art and the synchronization point arrival notification of the present embodiment have the same communication latency.
  • the synchronization is performed by the conventional synchronization method, if the node 110a is a master node, the synchronization notification arrives from all the slave nodes at time 420.
  • the node 110a which is the master node, transmits a synchronization establishment notification to the slave node at time 420. Since it takes 300 clocks to reach the farthest node 110d, the synchronization processing is completed at time 720. turn into.
  • the synchronization process can be completed earlier by using the above-described synchronization method.
  • each computer performs the synchronization processing in cooperation.
  • the load is distributed to do.
  • each computer node 210 does not receive at most six synchronization point arrival notification packets.
  • 15 synchronization notifications are concentrated on the master node.
  • FIG. 14 shows an example of a hardware configuration when the computer node 110 and the computer node 210 are each configured by an electronic information processing apparatus such as a computer.
  • the computer node 210 and the computer node 210 include a CPU (Central Processing Unit) peripheral part, an input / output part, and a legacy input / output part.
  • the CPU peripheral section includes a CPU 902, a RAM (Random Access Memory) 903, a graphic controller 904, and a display device 905 that are connected to each other by a host controller 901.
  • the input / output unit includes a communication interface 907, a hard disk drive 908, and a CD-ROM (Compact Disk Read Only Memory) drive 909 connected to the host controller 901 by the input / output controller 906.
  • the legacy input / output unit is a ROM (Read) connected to the input / output controller 906. Only Memory) 910, flexible disk drive 911, and input / output chip 912.
  • the host controller 901 connects the RAM 903, the CPU 902 that accesses the RAM 903 at a high transfer rate, and the graphic controller 904.
  • the CPU 902 operates based on programs stored in the ROM 910 and the RAM 903 to control each unit.
  • the graphic controller 904 acquires image data generated by the CPU 902 or the like on a frame buffer provided in the RAM 903 and displays the image data on the display device 905.
  • the graphic controller 904 may include a frame buffer for storing image data generated by the CPU 902 or the like.
  • the input / output controller 906 connects the host controller 901 to the hard disk drive 908, the communication interface 907, and the CD-ROM drive 909, which are relatively high-speed input / output devices.
  • the hard disk drive 908 stores programs and data used by the CPU 902.
  • the communication interface 907 is connected to the network communication device 991 to transmit / receive programs or data.
  • the CD-ROM drive 909 reads a program or data from the CD-ROM 992 and provides it to the hard disk drive 908 and the communication interface 907 via the RAM 903.
  • the input / output controller 906 is connected to a ROM 910, a flexible disk drive 911, and a relatively low-speed input / output device such as an input / output chip 912.
  • the ROM 910 stores a boot program executed when the computer node 110 and the computer node 210 are started, or a program depending on the hardware of the computer node 110 and the computer node 210.
  • the flexible disk drive 911 reads a program or data from the flexible disk 993 and provides it to the hard disk drive 908 and the communication interface 907 via the RAM 903.
  • the input / output chip 912 connects various input / output devices via the flexible disk drive 911 or a parallel port, a serial port, a keyboard port, a mouse port, and the like.
  • the program executed by the CPU 902 is stored in a recording medium such as the flexible disk 993, the CD-ROM 992, or an IC (Integrated Circuit) card and provided by the user.
  • the program stored in the recording medium may be compressed or uncompressed.
  • the program is installed in the hard disk drive 908 from the recording medium, read into the RAM 903, and executed by the CPU 902.
  • the program executed by the CPU 902 causes the computer node 110 to function as the communication unit and the calculation unit described with reference to FIGS.
  • the program executed by the CPU 902 causes the computer node 210 to function as the communication unit and the calculation unit described with reference to FIGS. 9 to 13.
  • the programs shown above may be stored in an external storage medium.
  • a storage medium in addition to a flexible disk 993 and a CD-ROM 992, an optical recording medium such as a DVD (Digital Versatile Disk) or PD (Phase Disk), a magneto-optical recording medium such as an MD (MiniDisk), a tape medium, and an IC card
  • an optical recording medium such as a DVD (Digital Versatile Disk) or PD (Phase Disk)
  • a magneto-optical recording medium such as an MD (MiniDisk), a tape medium, and an IC card
  • MD Magneto-optical recording medium
  • tape medium a tape medium
  • an IC card IC card
  • the computer system 100 may be provided as a program via a network using a storage medium such as a hard disk or RAM provided in a server system connected to a dedicated communication network or the Internet as a recording medium.
  • the present invention can be applied to, for example, a computer system that uses a plurality of computers in parallel.
  • synchronization point arrival notification packet transmission unit 203 ... synchronization point arrival notification unit 204 ... synchronization point arrival node number counter update unit 205 ... counter 206 ... notification source determination unit 207 ... synchronization process completion timer update Unit 208 ... timer 209 ... synchronization processing completion determination unit 901 ... host controller Over La 902 ... CPU 903 ... RAM 904 ... Graphic controller 905 ... Display device 906 ... Input / output controller 907 ... Communication interface 908 ... Hard disk drive 909 ... CD-ROM drive 910 ... ROM 911 ... Flexible disk drive 912 ... Input / output chip 991 ... Network communication device 992 ... CD-ROM 993 ... Flexible disk

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

 複数装置間の同期に参加する装置は、同期点に到達したことを他の全ての装置に通知する同期点到達通知を発行する。同期点到達通知は、該同期点到達通知を発行した発行元装置情報を含む。同期に参加する装置は、同期点到達通知を受信したときに装置ごとの受信同期点到達通知数カウンタを1インクリメントし、発行元装置情報に基づいて待機時間を求め、該同期に参加する装置ごとのタイマの値と前記待機時間の大きい方を用いて前記タイマを更新する。各装置は、前記タイマを0になるまで1クロックに1ずつデクリメントする。各装置は、自身が前記同期点到達通知を発行しており、前記受信同期点到達通知数が前記同期に参加する全装置数より1小さい値であり、前記タイマが0になったときに同期処理を完了する。

Description

並列計算機システム、同期方法、及びプログラム
 本発明は、並列計算機システム、同期方法、及びプログラムに関する。特に本発明は、複数の計算機に処理を分散して割り当て同期処理を行う並列計算機システム、ネットワークで接続された複数の装置間で同期をとる同期方法、N次元トーラス網又はN次元メッシュ網のネットワークで接続された複数の装置間で同期をとる同期方法、ネットワークで接続された複数の装置間で同期をとるためのプログラム、及びN次元トーラス網又はN次元メッシュ網のネットワークで接続された複数の装置間で同期をとるためのプログラムに関する。
 本願は、2010年1月14日に、日本に出願された特願2010-006059号に基づき優先権を主張し、その内容をここに援用する。
 並列計算機システムでは、複数の計算機に処理を分散して割り当て、同時に計算や処理を行う。そのため、各計算機には、他の計算機と同期を計るための機能が必要となる。各計算機は、同期機能を備えることによって、他の計算機が一定の処理を終えたことを確認しながら処理を進めることができるようになる。
 例えば、全ての計算機が特定の処理が完了したことを確認してから、全ての計算機が次の処理を開始するようなバリア同期と呼ばれる手法が知られている(例えば、特許文献1参照。)。また、全計算機間で体系的にデータ通信を行うような広い意味での集団通信のアルゴリズムでは、全計算機が一斉に通信を開始することで所望の通信性能を得ることができる。このため、通信の開始時刻について計算機間で差があると、通信衝突が発生し、通信性能を向上させにくいことがあり得る。そのため、従来技術では、処理が終わったことを確認するだけでなく、次処理の開始タイミングをそろえるための同期処理も必要とされる。
 図15は、特許文献1に記載の同期方法を示す。特許文献1に記載の並列計算機システムは、ノード間ネットワークに、同期を制御する1つのマスタノードを有しており、該マスタノードは、同期に参加するノード数を保持している。各スレーブノードは、同期点に達すると、マスタノードに対して同期成立通知を送信する。同期成立通知を受信したマスタノードは、同期成立通知を受信するたびに1ずつ値をインクリメントする。同期成立通知を受信し、受信同期成立通知数が同期に参加するノード数と一致した場合、マスタノードは全ノードが同期点に到達したと判断する。そして、マスタノードは各スレーブノードに同期成立通知を送信する。各スレーブノードは同期成立通知を受信することで、同期成立を認識する。
 このように、従来の並列計算機システムでは、1台のマスタノードに同期処理を管理させる同期方法が一般的である。その場合、マスタノードは全ノードの同期成立を確認すると、全ノードに対して同期が成立したことを通知し、各ノードはマスタノードからの同期成立の通知の受信することで同期成立を確認していた。
 このような同期方式により、マスタノードから各スレーブノードに対する同期成立通知の通信時間が異なる場合、各計算機は、全計算機が同期点に到達したことを確認することはできる。しかしながら、各計算機が同期成立を確認する時刻は異なってしまう。そのため、各計算機間の処理タイミングを合わせる同期をとることができない。
 また、並列計算機システムの別の同期方法としては、マスタノードから各スレーブノードに対する通知の通信時間の差に起因する同期時刻のずれを発生させない方法が知られている(例えば、特許文献2参照。)。特許文献2には、ノード間ネットワークに接続された複数の計算機ノードからなる並列計算機システムにおいて、複数の計算機ノードで処理タイミングを合わせるための同期をとる方法が記載されている。
 図16は、特許文献2に記載の同期方法を示す。特許文献2に記載の同期方法では、マスタノードからスレーブノードに対して同期通知を転送することで同期をとる。マスタノードは、各スレーブノードに対して、同期通知を送信する。このとき、マスタノードは1つのスレーブノードに同期通知が到達するまでの時間だけ待機し、次のスレーブノードに対して同期通知を送信する。そしてマスタノードは最後のスレーブノードに同期通知を送信し、最後のスレーブノードが同期通知を受信するまで待機することで同期を完了して、次処理に移行する。一方、各スレーブノードは、マスタノードからの同期通知を受信後、まだ同期通知を受信していないスレーブノードがマスタノードから同期通知を受信するまでの時間だけ待機する。これにより、各ノードが同期処理を同時に完了し、次処理を同時に開始することができる。
特許第3482897号公報 特許第4080397号公報
 特許文献2に記載の並列計算機によると、ネットワークを構成する計算機間で真に正確な同期をとることができる。但し、特許文献2で開示された同期方法を用いるには、特許文献1で開示された同期方法のように、1つのマスタノードに同期を管理させる必要がある。
 しかしながら、マスタノードが同期を管理する方法の場合、各計算機ノードは、互いにやり取りして同期をとらず、マスタノードを経由して同期をとる。そのため、実際に全計算機ノードが同期点に到達してから、全計算機ノードが同期成立を認識するまでの時間が、マスタノードを経由する分だけ長くなってしまう。
 上記の従来技術に関し、本発明は、例えば、以下の側面を有する。
 第1の側面は複数の計算機に処理を分散して割り当て同期処理を行う並列計算機システムであって、ネットワークを構成する複数の計算機を備え、計算機は、同期点に到達したことを同期に参加する他の全ての計算機に通知する同期点到達通知であって、当該同期点到達通知を発行した発行元計算機情報を含む同期点到達通知を発行する同期点到達通知部と、0になるまで1クロックに1ずつ値をデクリメントするタイマと、同期点到達通知を受信したときに該計算機が有する受信同期点到達通知数カウンタを1インクリメントするカウンタ更新部と、同期点到達通知を受信したときに、発行元計算機情報に基づいて待機時間を求め、タイマの値と待機時間の大きい方をタイマに更新するタイマ更新部と、1クロックに1度同期が完了したかどうかを判定する同期処理完了判定部とを有する。
 第2の側面はネットワークで接続された複数の装置間で同期をとる同期方法であって、同期に参加する装置は、同期点に到達したことを同期に参加する他の全ての装置に通知する同期点到達通知を発行し、同期点到達通知は、該同期点到達通知を発行した発行元装置情報を含んでおり、同期に参加する装置は、同期点到達通知を受信したときに該同期に参加する装置ごとの受信同期点到達通知数カウンタを1インクリメントし、発行元装置情報に基づいて待機時間を求め、該同期に参加する装置ごとのタイマの値と待機時間の大きい方をタイマに更新し、タイマは0になるまで1クロックに1ずつデクリメントし、同期に参加する装置は、該装置が同期点到達通知を発行しており、受信同期点到達通知数が同期に参加する全装置数より1小さい値であり、タイマが0になったときに同期処理を完了する。
 第3の側面はN次元トーラス網又はN次元メッシュ網のネットワークで接続された複数の装置間で同期をとる同期方法であって、同期に参加する装置は、1からNのNステップの同期処理を行い、第iステップの同期処理では、第i次元方向に接続するAi個の装置間で同期処理を行い、第iステップの同期処理では、第i-1ステップの同期処理が完了すると同時に、同期点到達通知を発行し、ただし、第1ステップの同期処理では、該装置が同期点に到達したときに、同期点到達通知を発行し、第Nステップの同期処理完了を全装置間での同期処理完了とする。
 第4の側面はネットワークで接続された複数の装置間で同期をとるためのプログラムであって、同期に参加する装置に、該装置が同期点に到達したことを同期に参加する他の全ての装置に通知する同期点到達通知を発行させ、同期点到達通知は、該同期点到達通知を発行した発行元装置情報を含んでおり、同期に参加する装置に、該装置が同期点到達通知を受信したときに該同期に参加する装置ごとの受信同期点到達通知数カウンタを1インクリメントさせ、発行元装置情報に基づいて待機時間を求め、該同期に参加する装置ごとのタイマの値と待機時間の大きい方をタイマに更新させ、タイマには0になるまで1クロックに1ずつデクリメントさせ、同期に参加する装置に、該装置が同期点到達通知を発行しており、受信同期点到達通知数が同期に参加する全装置数より1小さい値であり、タイマが0である場合に同期処理完了可能であると判定させ、同期処理を完了する。
 第5の側面はN次元トーラス網又はN次元メッシュ網のネットワークで接続された複数の装置間で同期をとるためのプログラムであって、同期に参加する装置は、1からNのNステップの同期処理を行い、第iステップの同期処理では、第i次元方向に接続するAi個の装置間で同期処理を行い、第iステップの同期処理では、第i-1ステップの同期処理が完了すると同時に、同期点到達通知を発行し、ただし、第1ステップの同期処理では、該装置が同期点に到達したときに、同期点到達通知を発行し、第Nステップの同期処理完了判定を以て全装置間での同期処理完了とする。
 なお、上記の側面は本発明の範囲を限定するものではない。
 上記の側面によれば、複数の計算機に処理を分散して割り当て同期処理を行うにあたり、例えば、全ての計算機が同期を完了する時刻を統一することができる。また、マスタ装置を設けることがないため、例えば、高速に同期処理を完了することができる。
一実施形態に係る並列計算機システムの利用環境の一例を示す図である。 計算機ノードaの構成を示す図である。 並列計算機システムで扱う同期点到達通知パケットの構成を示す図である。 同期制御装置の機能構成を示すブロック図である。 計算機ノードが同期点到達通知パケットを発行した場合の、処理の流れを示すタイムチャートである。 計算機ノードが保持している最低待機時間情報を示す図である。 動作例における同期点到達通知パケットの送受信時間を示したタイムチャートである。 動作例における各計算機ノードのカウンタ値とタイマ値の変遷を示した図である。 別の実施形態に係る並列計算機システムの利用環境の一例を示す図である。 計算機ノードの構成を示す図である。 並列計算機システムで扱う同期点到達通知パケットの構成を示す図である。 同期制御装置の機能構成を示すブロック図である。 動作例における、各計算機ノードの同期点到達時刻、X次元同期完了時刻、同期処理完了時刻を示した表である。 計算機ノード及び計算機ノードのハードウェア構成の一例を示す図である。 特許文献1に記載の同期方法を示す図である。 特許文献2に記載の同期方法を示す図である。
 以下、実施の形態を説明する。以下の実施形態は発明の範囲を限定するものではない。また、実施形態の中で説明されている特徴及び組み合わせの全てが発明の解決手段に必須であるとは限らない。
 図1は、一実施形態に係る並列計算機システム100の利用環境の一例を示す。並列計算機システム100は、複数の計算機ノード110a~d(以下、計算機ノード110と総称する。)を備える。
 計算機ノード110aは、通信ケーブルを介して計算機ノード110bと電気的に接続されている。また、計算機ノード110bは、通信ケーブルを介して計算機ノード110cと電気的に接続されている。また、計算機ノード110cは、通信ケーブルを介して計算機ノード110dと電気的に接続されている。また、計算機ノード110dは、通信ケーブルを介して計算機ノード110aと電気的に接続されている。このようにして、計算機ノード110a~dは、リング型ネットワークを構成している。
 並列計算機システム100では、各計算機ノード110が同期点に達したことを他の計算機ノード110に通知するための、同期点通知パケットをやりとりすることで同期処理を行う。これにより、並列計算機システム100では、同期の完了時刻を全計算機ノード110で統一することができる。
 次に、計算機ノード110a~dの構成を説明するが、計算機ノード110a~dは同一の構成であるため、計算機ノード110aを例に構成を説明する。図2は、計算機ノード110aの構成を示した図である。計算機ノード110aは、計算をつかさどる「計算ユニット」と、通信をつかさどる「通信ユニット」から構成される。さらに通信ユニットは、計算機ノード110間、及び計算機ノード110内の計算ユニット間の同期機能を有する「同期制御装置10」、計算ユニットや他の計算機ノード110との通信パケットの入出力の機能を有する「入出力装置11」からなる。同期制御装置10は、入出力装置11を介して、他の計算機ノード110と同期点到達通知パケットの送受信が可能である。また、同期制御装置10は、計算ユニットが同期点に達したことを同期制御装置10に通知する「同期点到達信号」や、並列計算機システム100の同期処理が完了したことを計算ユニットに通知する「同期成立信号」を計算ユニットと直接通信することができる。
 次に、並列計算機システム100で扱う同期点到達通知パケットについて説明する。図3で示すように、同期点到達通知パケットは、パケットが同期点到達通知パケットであることを示すパケット情報、発行元計算機ノード110を示す発行元ノード情報、パケットの宛先ノードを示す終点ノード情報を情報として持つ。同期点到達通知パケットは、発行元ノード110から、図1が示すリング網にそって反時計回りに他の全ての計算機ノード110に転送される。例えば、計算機ノード110aが発行した同期点到達通知パケットは、計算機ノード110aから送信され、順に計算機ノード110b、計算機ノード110c、計算機ノード110dに転送される。したがって、計算機ノード110aが発行する同期点到達通知パケットの発行元計算機ノード情報は計算機ノード110aであり、終点ノード情報は計算機ノード110dとなる。
 また、並列計算機システム100では同期点到達通知パケットのみがやり取りされるわけではなく、他の制御パケットやデータパケットが送受信されてもよい。しかし、同期点到達通知パケットが他のパケットと競合し、同期点到達通知パケットの送受信に遅延がおきることはないものとする。そのため、本実施例では、計算機ノード110間のケーブルは複数チャネルから構成され、同期点到達通知パケットはそのなかの1チャネルを占有するものとする。ただし、上記の複数チャネル構成にするというものは、本発明の範囲を限定するものではない。
 入出力装置11では、他の計算機ノード110から同期点到達通知パケットを受信すると同期制御装置に対して出力する。また、同期点到達通知パケット以外のパケットを他の計算機ノード110から受信した場合は計算ユニットに対して出力する。一方で、計算ユニットから入力されたパケットは、パケットが情報として持つ宛先に届くように、あらかじめ決められたルーティングにしたがって計算機ノード110外に出力される。同期制御装置から同期点到達通知パケットが入力された場合は、先に記したとおり図1が示すリング網にそって反時計回りに宛先ノードに届くように計算機ノード110外に出力される。
 次に、同期制御装置10が有する機能について、図4に示すブロック図を参照して説明する。同期制御装置10は、他の計算機ノード110からの同期点到達通知パケットを受信する「同期点到達通知パケット受信部101」、自計算機ノード110及び他の計算機ノード110が発行した同期点到達通知パケットを他の計算機ノード110に対して出力する「同期点到達通知パケット送信部102」、直接接続する計算ユニットが同期点に到達したことを管理する「同期点到達通知部103」、受信した同期点到達通知パケットをもとに同期点に到達した計算機ノード110の数をカウントする「同期点到達ノード数カウンタ更新部104」及び「カウンタ105」、受信した同期点到達通知パケットの通知元を判定する「通知元判定部106」、同期処理の完了時刻までの最低待機時間を管理する「タイマ108」、及びタイマ108を更新する「同期処理完了タイマ更新部107」、同期処理が完了したことを判定する「同期処理完了判定部109」を機能として有する。以下、各機能の詳細を説明する。
 同期点到達通知パケット受信部101は、入出力装置より他計算機ノード110が発行した同期点到達通知パケットを受信する。同期点到達通知パケットを受信すると、同期点到達ノード数カウンタ更新部104に対して「カウンタ更新通知」を送り、通知元判定部106に対して同期点到達通知パケットの発行元ノード情報を通知する。また、同期点到達通知パケットの終点ノード情報を参照し、自計算機ノード110が終点ノードである場合は、受信した同期点到達通知パケットを破棄する。一方、自計算機ノード110が終点ノードでない場合は、受信した同期点到達通知を他の計算機ノード110に転送するために、同期点到達通知パケット送信部102に出力する。
 同期点到達通知部103では、計算ユニットが同期点に到達したときに計算ユニットが発行する「同期点到達命令」を受けることで「同期点到達通知処理」が実行される。同期点到達通知処理では、同期点到達ノード数カウンタ更新部104に対してカウンタ更新通知を送り、通知元判定部106に対して、自計算機ノード情報を通知する。また、発行元ノード情報を自計算機ノード情報、終点ノード情報を対応する終点ノード情報とする同期点到達通知パケットを生成し、同期点到達通知パケット送信部102に対して出力する。
 同期点到達通知パケット送信部102は、同期点到達通知パケット受信部101や同期点到達通知部103から同期点到達通知パケットを入出力装置11に出力する。
 同期点到達ノード数カウンタ更新部104は、同期点到達通知パケット受信部101や同期点到達通知部103からカウンタ更新通知を受けると、カウンタ105の値を1インクリメントする。なお、同期処理開始前のカウンタ値は0に初期化されている。
 通知元判定部106は、同期点到達通知パケット受信部101や同期点到達通知部103から受けとった発行元ノード情報を元に、同期処理が完了するまでに最低待機する必要のある時間を導出する機能を有する。導出した最低待機時間は、同期処理完了タイマ更新部107に受け渡し、同期処理完了タイマ更新部107は、「同期処理完了タイマ更新処理」によりタイマ108を更新する。通知元判定部106が導出する最低待機時間は、受信、もしくは自計算機ノード110で発行した同期点到達通知パケットが、宛先ノードに到達したことにより、宛先ノードのカウンタ105の値がインクリメントされるまでの時間である。例として図5に、計算機ノード110aが同期点到達通知パケットを発行した場合のタイムタイムチャートを記す。計算機ノード110aが発行した同期点到達通知パケットは、順に計算機ノード110b、計算機ノード110c、計算機ノード110dに転送される。したがって、各計算機ノード110は、計算機ノード110dのカウンタ更新処理が完了するまでの時間を最低待機時間とする。本実施例では、各計算機ノード110が、発行元計算機ノード110を元に最低待機時間を参照するテーブルを保持することで、最低待機時間の導出を行う。図6に、テーブルの例を記す。
 同期処理完了タイマ更新部107は、通知元判定部106より最低待機時間が入力されると、タイマ108の値より入力された最低待機時間の方が大きければ、タイマ108の値を入力された最低待機時間で更新する。
 タイマ108は、同期処理を完了させるまでに最低待機するべき時間をカウントしておくためのものである。タイマ108は、同期処理完了タイマ更新部107によって更新され、値が正である間は1クロックに1ずつ値をデクリメントする。なお、同期処理開始前のタイマ値は0に初期化されている。
 同期処理完了判定部109は、同期処理を完了するかどうかを判定する機能を有する。
同期処理完了判定部109は、同期処理を実施している間は常に、1クロック毎に「同期処理完了判定」を行う。同期処理完了判定で、同期処理完了可能と判定されれば、計算ユニットに対して同期成立信号を送り、同期処理を完了する。同期処理完了判定部では、カウンタ105のカウンタ値とタイマ108の最低待機時間を参照し、カウンタ値が全計算機ノード数の4に一致し、なおかつ、タイマの最低待機時間が0である場合に、同期処理完了可能と判定する。それ以外の場合、カウンタ値が全計算機ノード数の4に満たない場合や、タイマの最低待機時間が正数である場合は同期処理完了可能ではないと判定する。
また、同期処理を完了する際には、カウンタ105のカウンタ値を0に初期化する。
 次に、並列計算機システム100で同期処理を行った場合の動作例を記す。本動作例は、計算機ノード110a~dがそれぞれ順に、時刻 80、120、20、200に同期点に到達して同期点到達通知パケットを発行した場合を例にとる。図7に同期点到達通知パケットの送受信時刻を図示したタイムチャートを示す。図8には、計算機ノード110a~dが同期点到達通知パケットを送受信したときの、カウンタ105とタイマ108の様子を示すタイムチャートを記す。
 計算機ノード110aは、時刻80に同期点に到達し、同期点到達通知処理103により、同期点到達通知パケット(通知1)を発行する。このとき、同期点到達ノード数カウンタ更新部104によりカウンタ105は0から1に更新される。また、同期処理完了タイマ更新部107により、通知1が計算機ノード110dに到達するまでの時間300をタイマ108に設定する。時刻220に、計算機ノード110aは、計算機ノード110cが発行した同期点到達通知パケット(通知3)を受信する。これにより、ノード数カウンタ更新部104はカウンタ105の値を1から2に更新する。また、このときカウンタ値は時刻80から140クロック経過しているため160(=300-140)になっている。同期処理完了タイマ更新部107は、通知3が計算機ノード110bに到達するまでの時間100よりタイマ値の方が大きいためタイマ値の更新はしない。時刻300では、計算機ノード110aは、計算機ノード110dが発行した同期点到達通知パケット(通知4)を受信する。これにより、ノード数カウンタ更新部104はカウンタ105の値を2から3に更新する。また、このときカウンタ値は、時刻220から80クロック経過しているために80(=160-80)になっている。同期処理完了タイマ更新部107は、通知4が計算機ノード110cに到達するまでの時間200の方が、タイマ値より大きいためタイマ値を200に更新する。時刻420では、計算機ノード110aは、計算機ノード110bが発行した同期点到達通知パケット(通知2)を受信する。これにより、ノード数カウンタ更新部104はカウンタ105の値を3から4に更新する。また、このときのカウンタ値は、時刻300から120クロック経過しているために80(=200-120)になっている。同期処理完了タイマ更新部107では、計算機ノード110aが通知2の宛先ノードであるため、タイマの値は更新しない。時刻420から80クロック経過した時刻500に、カウンタ値が4かつタイマ値が0になるので、同期処理完了判定部109により同期処理完了可能と判定し、同期処理は完了する。
 図8でわかるように、計算機ノード110b、計算機ノード110c、計算機ノード110dも同様に時刻500に、カウンタ値が4、タイマ値が0になり同期処理は完了する。このように、並列計算機システム100は、全計算機ノード110で同期処理の完了時刻を同じにすることができる。
 図9は、別の実施形態に係る並列計算機システム200の利用環境の一例を示す。並列計算機システム200は、複数の計算機ノード210a~p(以下、計算機ノード210と総称する。)。
 並列計算機システム200は、計算と通信の機能を備えた16個の計算機ノード210a~pが2次元トーラス型のネットワークで接続された構成になっている。16台の計算機ノード210がX次元方向に4ノードずつ、Y次元方向に4ノードずつ接続されている。
 X次元方向の接続は、計算機ノード210a、b、c、dの4台が、a-b-c-d-aというリング接続になっており、同様に計算機ノード210e、f、g、hの4台、計算機ノード210i、j、k、lの4台、計算機ノード210m、n、o、pの4台がリング接続になっている。また、Y次元方向には、計算機ノード210a、e、i、mの4台、計算機ノード210b、f、j、nの4台、計算機ノード210c、g、k、oの4台、計算機ノード210d、h、l、pの4台がリングで接続した構成になっている。X次元方向、Y次元方向ともに、隣接する計算機ノード210間の通信レイテンシは、どの計算機ノード210間も同じである。
 並列計算機システム200の同期処理は、各計算機ノード210がX次元方向の同期、Y次元方向ノードの同期という2段階の同期を行うものである。並列計算機システム200の同期処理も、並列計算機システム100と同様に、同期点到達通知パケットを計算機ノード210間でやり取りすることで同期処理を行うものであり、同期処理の完了時刻を全計算機ノード210で同じにできるという特徴がある。
 計算機ノード210a~計算機ノード210pは、同一の構成である。以下に、計算機ノード210aを例に構成を説明する。図10は、計算機ノード210aの構成を示した図である。計算機ノード210aは、計算をつかさどる「計算ユニット」と、通信をつかさどる「通信ユニット」から構成される。さらに、通信ユニットは、計算機ノード210間、及び計算機ノード210内の計算ユニット間の同期機能を有する「同期制御装置20」、計算ユニットや他の計算機ノード210との通信パケットの入出力の機能を有する「入出力装置21」からなる。同期制御装置20は、入出力装置21を介して、他の計算機ノード210と同期点到達通知パケットの送受信が可能である。また、同期制御装置20は、計算ユニットが同期点に達したことを同期制御装置20に通知する同期点到達信号や、並列計算機システム200の同期処理が完了したことを計算ユニットに通知する同期成立信号を計算ユニットと直接通信することができる。
 次に、並列計算機システム200で扱う同期点到達通知パケットについて説明する。図11で示すように、同期点到達通知パケットは、パケットが同期点到達通知パケットであることを示すパケット情報、X次元とY次元のどちらの段階の同期であるかを示す同期次元情報、パケットの発行元計算機ノードを示す発行元ノード情報、パケットの宛先ノードを示す終点ノード情報を情報として持つ。同期点到達通知パケットは、X次元では図9の図面上で右側の計算機ノード210に転送される。また、Y次元では、図9の図面上で下側の計算機ノード210に転送される。例えば、計算機ノード210fがX次元方向の同期のために発行した同期点到達通知パケットは、計算機ノード210fから計算機ノード210g、h、eへと順に転送され、計算機ノード210fがY次元方向の同期のために発行した同期点到達通知パケットは、計算機ノード210fから計算機ノード210j、n、bへと順に転送される。
 次に、同期制御装置20が有する機能について、図12に示すブロック図を参照して説明する。同期制御装置20は、図4で示す並列計算機システム100の同期制御装置10とほぼ同一の構成となっている。したがって、同期制御装置10との差異について説明する。計算機システム200では、X次元方向の同期とY次元方向の同期という2段階の同期を行うことで、システム全体の同期を行う。したがって、同期制御装置20においては、X次元とY次元の2つの同期ができるようになっている。具体的には、カウンタ205やタイマ208は、X次元用とY次元用の2つのカウンタ・タイマを有している。
 同期点到達通知部203は、計算ユニットからの同期点到達命令や、同期処理完了判定部209からX次元方向の同期完了信号を受け取った場合に、同期点到達通知パケットを発行する。計算ユニットからの同期点到達命令を受けた場合は、X次元方向の同期処理を開始するため、発行する同期点到達パケットの同期次元情報をX次元として発行する。一方、同期処理完了判定部209からX次元方向の同期完了信号を受け取った場合は、Y次元方向の同期処理を開始するため、発行する同期点到達パケットの同期次元情報をY次元として発行する。また、同期点到達ノード数カウンタ更新部204へのカウンタ更新通知や、通知元判定部206への計算機ノード情報を通知するときに、同期次元情報も付与して通知する。
 また、同期点到達通知パケット受信部201から、同期点到達ノード数カウンタ更新部204へカウンタ更新通知を通知する場合や、通知元判定部106に対して、同期点到達通知パケットの発行元ノード情報を通知する場合にも、同期次元情報を付与して通知する。
 同期点到達ノード数カウンタ更新部204は、同期点到達通知パケット受信部201や同期点到達通知部203からカウンタ更新通知と同期次元情報を受けると、カウンタ205の同期次元情報が指定する次元側のカウンタ値を1インクリメントする。
 通知元判定部206は、同期点到達通知パケット受信部201や同期点到達通知パケット203から発行元ノード情報と同期次元情報を受けると、タイマ更新部207に通知するタイマの更新値を導出する。導出するタイマ更新値は、対応する同期点到達通知パケットが終点ノードに到達するまでの時間である。タイマの更新値を導出すると、タイマ更新部207に対して、更新値及び同期次元情報を通知する。タイマ更新部207は、受け取ったタイマ値が同期次元情報の指定する次元のタイマ208の値より大きければ、通知元判定部206から受けたタイマ更新値で更新する。
 タイマ208は、1クロックに1度、X次元とY次元の2つのタイマ値それぞれを、正数である間1ずつデクリメントする。
 同期処理完了判定部209は、同期処理を実施している間は、1クロック毎に「同期処理完了判定」を行う。同期処理完了判定で、X次元同期処理完了可能と判定されれば、同期点到達通知処理203に対して、X次元同期処理完了通知を通知し、カウンタ205のX次元のカウンタ値を0に初期化する。また、同期処理完了判定で、Y次元同期処理完了可能と判定されれば、計算ユニットに対して、同期成立信号を送り、カウンタ205のY次元のカウンタ値を0に初期化し、同期処理を完了する。同期処理完了判定では、カウンタ205のカウンタ値とタイマ208のタイマ値を参照する。カウンタ205のX次元のカウンタ値がX次元方向に接続された計算機ノード数の4であり、タイマ208のX次元のタイマ値が0であれば、X次元同期処理完了可能と判定する。カウンタ205のY次元のカウンタ値がY次元方向に接続された計算機ノード数の4であり、タイマ208のY次元のタイマ値が0であれば、Y次元同期処理完了可能と判定する。
 次に、並列計算機システム200で同期処理を行った場合の動作例を記す。並列計算機システム200は、隣接する各計算機ノード210間での同期点到達通知パケットのレイテンシは一定である。このレイテンシが100クロックであるとする。X次元方向もしくはY次元方向に接続された4つの計算機ノード210間で同期をとると、4つの計算機ノード210のうち最も遅く同期点到達通知パケットを発行した時刻から300クロック後に、4つの計算機ノード210が同時に同期処理を完了することができる。図13には、本動作例の同期処理において、各計算機ノード210の計算ユニットが同期点に達して同期処理通知部203が同期点到達通知パケットを発行する時刻(同期点到達時刻)、同期処理完了判定部209がX次元方向の同期処理完了を判定する時刻(X次元同期完了時刻)、同期処理完了判定部209がY次元方向の同期処理完了を判定する時刻、つまり並列計算機システム200全体の同期処理の完了を判定する時刻(同期処理完了時刻)の3つの時刻を示した表を示す。各計算機ノード210は、同期点に到達すると、X次元方向の計算機ノード210との同期処理を開始する。このX次元方向の同期処理は、X次元方向に接続された4つの計算機ノード210のうち最も遅く同期点に到達した時刻の300クロック後に、4つの計算機ノード210が同時に同期処理を完了する。X次元方向の同期処理が完了すると、即座にY次元方向の同期処理のために同期点到達通知パケットを発行する。したがって、X次元方向に接続された計算機ノード210は同時にX次元方向の同期処理を完了するので、同時にY次元方向の同期処理のための同期点到達通知パケットを発行できる。X次元方向に接続された4つの計算機ノード210が同時にY次元方向の同期処理を開始するため、4個のY次元方向の同期処理は、同じタイムチャートを描くことになる。例えば、計算機ノード210a、b、c、dがそれぞれ時刻450に同期点到達通知パケットをY次元方向に送信すると、計算機ノード210e、f、g、hがそれぞれ時刻550に同期点到達通知パケットを受信する。このように、4個のY次元方向の同期処理が同タイミングで処理されるため、4個のY次元方向の同期処理は完了時刻が同じになる。また、それぞれの同期処理は、参加する4つの計算機ノード210ともに同時に同期処理を完了できるので、並列計算機システム200の16台の計算機ノード210全てが同時に同期処理を完了することができる。
 以上のように、上記の同期方法を用いれば、全計算機ノード210間で同期処理を同時に完了することができる。
 また、上記の同期方法を用いれば、従来技術の同期処理より高速に同期をとることができる。例えば、第1の実施形態の並列計算機システム100における同期処理の動作例1を考えてみる。前提として、従来技術の同期通知と本実施例の同期点到達通知は同じ通信レイテンシであるとする。もし、従来技術の同期方式で同期をとる場合、ノード110aがマスタノードであったとすると、全スレーブノードから同期通知が到達するのは、時刻420である。マスタノードであるノード110aは、時刻420に同期成立通知をスレーブノードに対して送信するが、最も遠くにあるノード110dに到達するには300クロックかかるため、同期処理が完了するのは時刻720となってしまう。このように上記の同期方法を用いた方が早く同期処理を完了できる。
 また、従来技術のようにマスタ‐スレーブ型の同期処理では、マスタノードに全計算機ノードからの同期点到達通知が集中していたが、上記の同期方法では、各計算機が協調して同期処理を行うため負荷が分散されている。例えば、第2の実施例の並列計算機システム200の同期処理では、各計算機ノード210は、高々6個の同期点到達通知パケットを受信しない。一方で、並列計算機システム200と同様に16台の計算機ノード210が従来技術の同期方法で同期処理を行おうとすると、マスタノードに15個の同期通知が集中する。たとえば、さらに規模を大きくして、3次元トーラス網で接続された4096(=16×16×16)台の計算機ノード210で同期をとる場合、上記の同期方式では、各計算機ノード210それぞれが45(=(16-1)×3)個の同期点到達通知パケットを受信すればよいが、従来技術の同期方式では4095個もの同期通知を処理しなければならない。
 図14は、計算機ノード110及び計算機ノード210をコンピュータ等の電子情報処理装置でそれぞれ構成した場合のハードウェア構成の一例を示す。計算機ノード210及び計算機ノード210は、CPU(Central Processing Unit)周辺部と、入出力部と、レガシー入出力部とを備える。CPU周辺部は、ホスト・コントローラ901により相互に接続されるCPU902、RAM(Random Access Memory)903、グラフィック・コントローラ904、及び表示装置905を有する。入出力部は、入出力コントローラ906によりホスト・コントローラ901に接続される通信インターフェイス907、ハードディスクドライブ908、及びCD-ROM(Compact Disk Read Only Memory)ドライブ909を有する。レガシー入出力部は、入出力コントローラ906に接続されるROM(Read
 Only Memory)910、フレキシブルディスク・ドライブ911、及び入出力チップ912を有する。
 ホスト・コントローラ901は、RAM903と、高い転送レートでRAM903をアクセスするCPU902、及びグラフィック・コントローラ904とを接続する。CPU902は、ROM910、及びRAM903に格納されたプログラムに基づいて動作して、各部の制御をする。グラフィック・コントローラ904は、CPU902等がRAM903内に設けたフレーム・バッファ上に生成する画像データを取得して、表示装置905上に表示させる。これに代えて、グラフィック・コントローラ904は、CPU902等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
 入出力コントローラ906は、ホスト・コントローラ901と、比較的高速な入出力装置であるハードディスクドライブ908、通信インターフェイス907、CD-ROMドライブ909を接続する。ハードディスクドライブ908は、CPU902が使用するプログラム、及びデータを格納する。通信インターフェイス907は、ネットワーク通信装置991に接続してプログラム又はデータを送受信する。CD-ROMドライブ909は、CD-ROM992からプログラム又はデータを読み取り、RAM903を介してハードディスクドライブ908、及び通信インターフェイス907に提供する。
 入出力コントローラ906には、ROM910と、フレキシブルディスク・ドライブ911、及び入出力チップ912の比較的低速な入出力装置とが接続される。ROM910は、計算機ノード110及び計算機ノード210が起動時に実行するブート・プログラム、あるいは計算機ノード110及び計算機ノード210のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ911は、フレキシブルディスク993からプログラム又はデータを読み取り、RAM903を介してハードディスクドライブ908、及び通信インターフェイス907に提供する。入出力チップ912は、フレキシブルディスク・ドライブ911、あるいはパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を接続する。
 CPU902が実行するプログラムは、フレキシブルディスク993、CD-ROM992、又はIC(Integrated Circuit)カード等の記録媒体に格納されて利用者によって提供される。記録媒体に格納されたプログラムは圧縮されていても非圧縮であってもよい。プログラムは、記録媒体からハードディスクドライブ908にインストールされ、RAM903に読み出されてCPU902により実行される。CPU902により実行されるプログラムは、計算機ノード110を、図1から図8に関連して説明した通信ユニット及び計算ユニットとして機能させる。同様に、CPU902により実行されるプログラムは、計算機ノード210を、図9から図13に関連して説明した通信ユニット及び計算ユニットとして機能させる。
 以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク993、CD-ROM992の他に、DVD(Digital Versatile Disk)又はPD(Phase Disk)等の光学記録媒体、MD(MiniDisk)等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークあるいはインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶媒体を記録媒体として使用して、ネットワークを介したプログラムとして計算機システム100を提供してもよい。
 以上、各実施の形態を説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能である。その様な変更又は改良を加えた形態も本発明の技術的範囲に含まれ得る。
 本発明は、例えば、複数の計算機を並列して使用するコンピュータシステムに適用できる。
100…計算機システム
110…計算機ノード
10…同期制御装置
11…入出力装置
101…同期点到達通知パケット受信部
102…同期点到達通知パケット送信部
103…同期点到達通知部
104…同期点到達ノード数カウンタ更新部
105…カウンタ
106…通知元判定部
107…同期処理完了タイマ更新部
108…タイマ
109…同期処理完了判定部
200…並列計算機システム
210…計算機ノード
20…同期制御装置
21…入出力装置
201…同期点到達通知パケット受信部
202…同期点到達通知パケット送信部
203…同期点到達通知部
204…同期点到達ノード数カウンタ更新部
205…カウンタ
206…通知元判定部
207…同期処理完了タイマ更新部
208…タイマ
209…同期処理完了判定部
901…ホスト・コントローラ
902…CPU
903…RAM
904…グラフィック・コントローラ
905…表示装置
906…入出力コントローラ
907…通信インターフェイス
908…ハードディスクドライブ
909…CD-ROMドライブ
910…ROM
911…フレキシブルディスク・ドライブ
912…入出力チップ
991…ネットワーク通信装置
992…CD-ROM
993…フレキシブルディスク

Claims (11)

  1.  ネットワークに接続された複数の計算機を有する並列計算機システムにおける第1の計算機であって、
     前記第1の計算機に関する情報である発行元計算機情報を含み、同期点に到達したことを通知する同期点到達通知を他の計算機へ送信する同期点到達通知部と、
     単位時間ごとに値をデクリメントするタイマと、
     前記他の計算機から同期点到達通知を受信したときにカウンタをインクリメントするカウンタ更新部と、
     前記他の計算機から同期点到達通知を受信したときに、前記他の計算機から受信した同期点到達通知に含まれる発行元計算機情報に基づいて待機時間を求め、前記タイマの値と前記待機時間の大きい方を用いて前記タイマを更新するタイマ更新部と、
     前記タイマと前記カウンタの値に基づいて同期処理が完了したか否かを判定する同期処理完了判定部と、を有する計算機。
  2.  請求項1に記載の第1の計算機を含む複数の計算機を有する並列計算機システム。
  3.  前記タイマは0になるまでデクリメントを繰り返し、
     前記同期処理完了判定部は、該第1の計算機が前記同期点到達通知の送信を完了しており、前記カウンタの値が前記同期に参加する全計算機数より1小さい値であり、かつ、前記タイマが0であるときに、同期処理が完了したと判断する請求項2に記載の並列計算機システム。
  4.  前記待機時間は、前記同期に参加する計算機のうち最後の計算機が該同期点到達通知を受信する時刻までの時間である、請求項2に記載の並列計算機システム。
  5.  前記複数の計算機が、N次元トーラス型ネットワーク又はN次元メッシュ型ネットワークである場合(Nは2以上の整数)、
     前記第1の計算機は、
     1からNのNステップの同期処理を行うために、N個のカウンタと、N個のタイマを有し、
     前記同期点到達通知部は、第iステップの同期処理では、第i-1ステップの同期処理が完了すると同時に、前記同期点到達通知を発行し(iは2~Nの整数)、
     前記同期点到達通知部は、第1ステップの同期処理では、該装置が同期点に到達したときに、前記同期点到達通知を発行し、
     前記同期処理完了判定部は、第Nステップの同期処理完了を並列計算機システム全体での同期処理完了とする、請求項2に記載の並列計算機システム。
  6.  ネットワークで接続された、第1の装置を含む複数の装置の間で同期をとる同期方法であって、
     前記第1の装置が同期点に到達したときに、前記第1の装置に関する情報である発行元装置情報を含む同期点到達通知を、前記第1の装置から他の装置へ送信するステップと、
     前記他の装置から前記第1の装置が同期点到達通知を受信したときにカウンタを1インクリメントし、前記他の装置から受信した前記同期点到達通知の発行元装置情報に基づいて待機時間を求め、タイマの値と前記待機時間の大きい方を用いて前記タイマを更新するステップと、
     0になるまで前記タイマを単位時間に1ずつデクリメントするステップと、
     前記第1の装置が前記同期点到達通知の送信を完了しており、前記カウンタが全装置数より1小さい値であり、かつ、前記タイマが0になったときに同期処理の完了を決定するステップと、
     を具備する同期方法。
  7.  前記待機時間は、前記同期に参加する装置のうち最後の装置が該同期点到達通知を受信するまでの時間とする請求項6に記載の同期方法。
  8.  N次元トーラス網又はN次元メッシュ網のネットワークで接続された、第1の装置を含む複数の装置間で同期をとる同期方法であって(Nは2以上の自然数)、
     前記第1の装置は、1からNのNステップの同期処理を行い、
     第iステップの同期処理では、第i次元方向に接続するAi個の装置間で、請求項5の同期処理を行い(iは2~Nの整数、Aiは1以上の整数)、
     第iステップの同期処理では、第i-1ステップの同期処理が完了すると前記同期点到達通知を発行し、
     第1ステップの同期処理では、該装置が同期点に到達したときに、前記同期点到達通知を送信し、
     第Nステップの同期処理完了を全装置間での同期処理完了とする同期方法。
  9.  ネットワークで接続された、第1の装置を含む複数の装置間で同期をとるための、前記第1の装置のコンピュータ読み出し可能な非一時的記録媒体に格納されたコンピュータプログラムであって、
     前記第1の装置に、前記第1の装置に関する情報である発行元装置情報を含み、前記第1の装置が同期点に到達したことを他の装置に通知する同期点到達通知を、前記他の装置へ送信する命令と、
     前記第1の装置が前記他の装置から同期点到達通知を受信したときに、カウンタを1インクリメントさせ、前記他の装置から受信した同期点到達通知の発行元装置情報に基づいて待機時間を求め、タイマの値と前記待機時間の大きい方を用いて前記タイマを更新する命令と、
     前記タイマを0になるまで単位時間ごとにデクリメントする命令と、
     前記第1の装置が前記同期点到達通知の送信を完了しており、前記カウンタが前記複数の全装置数より1小さい値であり、前記タイマが0である場合に、同期処理の完了を判断する命令と、を具備するコンピュータプログラム。
  10.  前記待機時間は、前記同期に参加する装置のうち最後の装置が該同期点到達通知を受信する時刻までの時間である請求項9に記載のプログラム。
  11.  N次元トーラス網又はN次元メッシュ網のネットワークで接続された、第1の装置を含む複数の装置間で同期をとるための、前記第1の装置のコンピュータ読み出し可能な非一時的記録媒体に格納されたコンピュータプログラムであって(Nは2以上の整数)、
     前記第1の装置に、1からNのNステップの同期処理を行わせる命令と、
     第iステップの同期処理では、第i次元方向に接続するAi個の装置間で、請求項8に記載のプログラムを実行して同期処理を行う命令と(iは2~Nの整数、Aiは1以上の整数)、
     前記第iステップの同期処理では、第i-1ステップの同期処理が完了すると同時に、前記同期点到達通知を発行する命令と、
     第1ステップの同期処理では、該装置が同期点に到達したときに、前記同期点到達通知を発行する命令と、
     第Nステップの同期処理完了判定を以て全装置間での同期処理の完了を判定する命令と、を具備するコンピュータプログラム。
PCT/JP2011/050513 2010-01-14 2011-01-14 並列計算機システム、同期方法、及びプログラム WO2011087076A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011550011A JP5780157B2 (ja) 2010-01-14 2011-01-14 計算機、並列計算機システム、同期方法、及びコンピュータプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010006059 2010-01-14
JP2010-006059 2010-03-12

Publications (1)

Publication Number Publication Date
WO2011087076A1 true WO2011087076A1 (ja) 2011-07-21

Family

ID=44304345

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/050513 WO2011087076A1 (ja) 2010-01-14 2011-01-14 並列計算機システム、同期方法、及びプログラム

Country Status (2)

Country Link
JP (1) JP5780157B2 (ja)
WO (1) WO2011087076A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013018218A1 (ja) * 2011-08-03 2013-02-07 富士通株式会社 同期制御装置、演算処理装置、並列計算機システムおよび同期制御装置の制御方法
WO2014202387A1 (en) * 2013-06-18 2014-12-24 Thomson Licensing Local network and method of updating a device in a local network
JPWO2013018218A1 (ja) * 2011-08-03 2015-03-05 富士通株式会社 同期制御装置、演算処理装置、並列計算機システムおよび同期制御装置の制御方法
JP2016154279A (ja) * 2015-02-20 2016-08-25 日本電気株式会社 リングバス転送システム、マスタノード、スレーブノード、リングバス転送方法
JP2020194398A (ja) * 2019-05-29 2020-12-03 株式会社オービック 動作実行装置、動作実行方法および動作実行プログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03230226A (ja) * 1990-02-05 1991-10-14 Nec Corp 同期待ち時間測定方式
JPH04260962A (ja) * 1990-06-14 1992-09-16 Fujitsu Ltd 並列計算機における同期制御方式
JPH1049507A (ja) * 1996-07-31 1998-02-20 Fujitsu Ltd 並列計算機
JPH10187634A (ja) * 1996-12-24 1998-07-21 Hitachi Ltd 同期制御方法および主記憶共有型並列プロセッサ
JP2001175618A (ja) * 1999-12-17 2001-06-29 Nec Eng Ltd 並列計算機システム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100592752B1 (ko) * 2001-02-24 2006-06-26 인터내셔널 비지네스 머신즈 코포레이션 토러스 및 트리 네트워크에서의 산술 기능
JP4117721B2 (ja) * 2001-04-03 2008-07-16 株式会社日立製作所 並列計算機のバリア同期制御方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03230226A (ja) * 1990-02-05 1991-10-14 Nec Corp 同期待ち時間測定方式
JPH04260962A (ja) * 1990-06-14 1992-09-16 Fujitsu Ltd 並列計算機における同期制御方式
JPH1049507A (ja) * 1996-07-31 1998-02-20 Fujitsu Ltd 並列計算機
JPH10187634A (ja) * 1996-12-24 1998-07-21 Hitachi Ltd 同期制御方法および主記憶共有型並列プロセッサ
JP2001175618A (ja) * 1999-12-17 2001-06-29 Nec Eng Ltd 並列計算機システム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013018218A1 (ja) * 2011-08-03 2013-02-07 富士通株式会社 同期制御装置、演算処理装置、並列計算機システムおよび同期制御装置の制御方法
JPWO2013018218A1 (ja) * 2011-08-03 2015-03-05 富士通株式会社 同期制御装置、演算処理装置、並列計算機システムおよび同期制御装置の制御方法
WO2014202387A1 (en) * 2013-06-18 2014-12-24 Thomson Licensing Local network and method of updating a device in a local network
US10103940B2 (en) 2013-06-18 2018-10-16 Thomson Licensing Local network and method of updating a device in a local network
JP2016154279A (ja) * 2015-02-20 2016-08-25 日本電気株式会社 リングバス転送システム、マスタノード、スレーブノード、リングバス転送方法
JP2020194398A (ja) * 2019-05-29 2020-12-03 株式会社オービック 動作実行装置、動作実行方法および動作実行プログラム

Also Published As

Publication number Publication date
JPWO2011087076A1 (ja) 2013-05-20
JP5780157B2 (ja) 2015-09-16

Similar Documents

Publication Publication Date Title
US10944852B2 (en) Computer network packet transmission timing
JP5780157B2 (ja) 計算機、並列計算機システム、同期方法、及びコンピュータプログラム
US11843529B2 (en) Slave-to-master data and out-of-sequence acknowledgements on a daisy-chained bus
KR100981461B1 (ko) 통신 칩 및 메시지 관리자에 의한 통신 칩의 메시지 메모리의 데이터에 대한 액세스 제어 방법
CN102164071A (zh) 用于在设备布局中进行音频/视频流送的消息传递框架
KR20070039120A (ko) 통신 구성 요소의 메시지 메모리의 데이터를 액세스하기위한 방법 및 장치
EP2494742B1 (en) Network control architecture and protocol for a distributed control, data acquisition and data distribution system and process
CN107947888B (zh) 一种基于网络通信的任务级同步方法
CN209149287U (zh) 大数据运算加速系统
US8589614B2 (en) Network system with crossbar switch and bypass route directly coupling crossbar interfaces
CN108020996B (zh) 一种总线同步控制架构及控制方法
JP2022093387A (ja) 制御システム、装置および制御方法
TW201510727A (zh) 用於多晶片減少引腳交叉觸發以增強除錯體驗的方法和裝置
CN108401454A (zh) 事务调度方法、处理器、分布式系统和无人机
US20120106334A1 (en) Asynchronous logic circuit, congestion avoiding path calculation module, semiconductor circuit, and path calculation method in asynchronous logic circuit
ES2265055T3 (es) Proceso para el funcionamiento de un usuario final de un sistema de comunicacion isocrono y ciclico.
CN107408092B (zh) 用于多端口物理层(phy)的锁相环(pll)的共享控制
JP5840088B2 (ja) 端末通信装置および分散制御システム
CN110912634B (zh) 基于spi实现时钟同步的方法、存储介质及终端设备
EP4055800A1 (en) Systems and methods for nodes communicating using a time-synchronized transport layer
CN113992470B (zh) 数据发送方法和接收方法、主设备、从设备及电子设备
TWI734072B (zh) Gpu加速優化方法、裝置及電腦存儲介質
TW201802665A (zh) 用於音訊匯流排之流量控制
JP2009098778A (ja) ハブ装置
CN118018418A (zh) 一种高速串行接口中适配层带宽配置方法及系统

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 2011550011

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11732946

Country of ref document: EP

Kind code of ref document: A1