WO2018097015A1 - 分散システム - Google Patents

分散システム Download PDF

Info

Publication number
WO2018097015A1
WO2018097015A1 PCT/JP2017/041159 JP2017041159W WO2018097015A1 WO 2018097015 A1 WO2018097015 A1 WO 2018097015A1 JP 2017041159 W JP2017041159 W JP 2017041159W WO 2018097015 A1 WO2018097015 A1 WO 2018097015A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
ring
channel
data
order
Prior art date
Application number
PCT/JP2017/041159
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 JP2018552529A priority Critical patent/JPWO2018097015A1/ja
Priority to US16/464,677 priority patent/US20190347241A1/en
Priority to CN201780068924.7A priority patent/CN109937409A/zh
Publication of WO2018097015A1 publication Critical patent/WO2018097015A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17375One dimensional, e.g. linear array, ring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17381Two dimensional, e.g. mesh, torus

Definitions

  • the present invention relates to a data transfer technique in a distributed system composed of a plurality of nodes.
  • a table consisting of a plurality of records is divided into records and assigned to each node, and each node performs processing on the table.
  • each node performs a portion for each assigned record, when sorting is performed using the value of the record of the record as a key as processing for the table, it is assigned from each of the other nodes to the other node.
  • a technique is known that collects information on the number of records assigned to other nodes for each record value, and calculates the order in the table of each record assigned to itself (for example, a patent). Reference 1).
  • each node (N0, N1, N2, N3) is connected in a ring shape with bidirectional channels to form a ring network, as shown in FIG. 22b.
  • the information created in the ring by the information source node is transferred to all other nodes.
  • the number of channels may be small, but when the number of nodes increases, the transmission of the information of the source node will start. It takes a long time to complete the transfer to the node, and the processing response deteriorates.
  • FIG. 22c a full-connect type network configuration in which each node is directly connected to all other nodes through a channel is adopted so that the source node directly transfers information to all other nodes. If this is done, the time required to complete the transfer will be shortened, but if the number of nodes increases, the number of required channels will also increase dramatically.
  • an object of the present invention is to provide a distributed system capable of completing transfer of node information to all other nodes in a relatively short time while suppressing the number of channels.
  • the present invention provides a distributed system in which a plurality of nodes are connected by channels, and has a plurality of rings in which n (where n is an arbitrary natural number of 2 or more) nodes are connected in a ring shape by channels.
  • the number of nodes included in each ring is equal, and each node of each ring is a channel having the node as a transmission side, and each node included in the same ring as a node of each ring other than the ring including the node.
  • a distributed system in which nodes are connected so as to be respectively connected to different nodes of other rings through a channel having the node as a transmission side.
  • the maximum value of the number of hops expressed as the number of nodes followed by data can be kept small compared to a ring network in which all nodes included in the distributed system are connected in a ring shape. Since the node data can be transferred to all other nodes, the time required to complete the transfer of the node data to all other nodes can be shortened. On the other hand, the number of channels required for nodes that connect each node directly to all other nodes through a channel is smaller than that of a fully connected network.
  • the load on each channel between nodes in the same ring or between each node in different rings can be relatively equalized. Therefore, the transfer of all the node data to other nodes can be completed in a relatively short time while suppressing the number of channels. That is, more specifically, for example, a channel connected to a node of each ring of such a distributed system is connected to a node in the order of connection in the ring of the ring in which the node is included before the node.
  • the data that is the source of the node is connected to the node of each ring of such a distributed system, and the connection order in the ring of the ring including the node is connected to the node in the next order of the node To the channel connected to the node of the other ring other than the ring including the node and the channel including the node on the connection in the ring.
  • the order of connection in the ring of the ring including the node is the next to the node
  • a channel connected to a node in the order of and a channel having the node as a transmission side and including the node So as to include the transfer control means for transferring the channel to be connected to a node of another ring other than ring.
  • the node of each ring of such a distributed system receives data received from a channel connected to a node in which the order of connection in the ring including the node is connected to the node in the order before the node.
  • the connection order of the ring including the ring can be transferred to the channel connected to the node in the next order of the node, and the node includes data received from the channel connected to the node of the other ring.
  • a transfer control means capable of transferring to a channel connected to a node connected to a node in the next order of the node.
  • the data that is the source of the node is connected to the node of each ring of such a distributed system, and the connection order in the ring of the ring including the node is connected to the node in the next order of the node Data transmitted from a channel connected to a node of another ring and transmitted to a channel connected to a node of another ring other than the ring including the node.
  • the connection order of the ring including the node is transferred to the channel connected to the node in the next order of the node, and the connection order of the ring including the node is the order before the node.
  • the node is not the source and the node Is not transferred to the channel connected to the next node of the node in the connection order in the ring including the node
  • the connection order in the ring of the ring including the node is the node Transfer control means for transferring to a channel connected to the next node in the next order.
  • the order of connection in the ring of nodes is the order of the nodes, and the j-th node of each ring (where j is an arbitrary natural number less than or equal to n), the node is the transmission side May be connected to the j-th node of each other ring.
  • the order of connection in the ring of nodes is the order of the nodes
  • the j-th node of each ring (where j is an arbitrary natural number less than n) is the transmission node. Is connected to the j + 1st node of each other ring, and the nth node of each ring is a channel having the node as a transmission side, and is connected to the first node of each other ring. You may do it.
  • the present invention provides a distributed system in which a plurality of nodes are connected by a channel, and m (where n is an arbitrary natural number of 2 or more) nodes connected in a ring shape by a channel.
  • Each ring has the same number of nodes, and the number of nodes included in each ring is equal, and each node of the i-th ring (where i is an arbitrary natural number less than or equal to m) is ,
  • the channel is set to be the transmission side of the node and is connected to a different node of the i-1 th ring, and the i + 1 th ring exists.
  • a distributed system is provided which is connected to a different node of the (i + 1) -th ring through a channel having the node as a transmission side.
  • the maximum value of the number of hops represented as the number of nodes followed by the data is reduced compared to a ring network in which all nodes of the distributed system are connected in a ring shape, Therefore, it is possible to reduce the time required to complete the transfer of the node data to all the other nodes.
  • the number of channels required for a node that directly connects each node to all other nodes through a channel is smaller than that of a fully connected network.
  • each node of the i-th ring of such a distributed system is connected to a channel in which the order of connection in the i-th ring is connected to the node in the order before the node.
  • the received data can be transferred to a channel connected to the node in the next order of the node in the connection order in the i-th ring, and if the i-1 th ring exists, the data Can be transferred to a channel connected to the node of the (i-1) -th ring and the i + 1-th ring exists, and the data is transferred to the node Can be transferred to the channel connected to the node of the (i + 1) -th ring and received from the channel connected to the node of the (i-1) -th ring.
  • the data can be transferred to a channel having the node as a transmission side and connected to the node of the i + 1 th ring, and the i + 1 th ring
  • the data received from the channel connected to the node of the ring is transmitted to the channel connected to the node of the i-1st ring.
  • a transfer control means capable of transferring is provided.
  • the data that is the source of the node is connected to each node of the i-th ring of such a distributed system, and the connection order in the i-th ring is connected to the node in the next order of the node.
  • the data is transferred to a channel having the node as a transmission side and connected to the node of the i-1st ring, If the i + 1 th ring exists, the data is transferred to a channel connected to the node of the i + 1 th ring, the channel having the node as the transmission side, and the i th th Of the data received from the channel connected to the node in the order of connection in the ring before the node, the data that is not the source of the node is transmitted to the i-th ring.
  • the data is a channel with the node as the transmission side. If the i + 1 th ring exists and the data is transferred to the channel connected to the node of the i-1 th ring, the data is a channel having the node as a transmission side, i + 1
  • a transfer control means for transferring a channel for the transmitting side to the node in the channel that connects to a node of the i-1 th ring.
  • each node of the i-th ring of such a distributed system receives data received from a channel connected to a node in the order of connection in the i-th ring before the node of the i-th ring.
  • the connection order in the ring can be transferred to the channel connected to the node in the next order of the node, and the data received from the channel connected to the node of the i-1 th ring is connected to the channel in the i th ring.
  • the channel is the channel having the node as the transmission side, i + 1
  • the data received from the channel connected to the node of the (i + 1) -th ring can be transferred to the channel connected to the node of the i-th ring. If the i-1st ring is present and the connection order in the network is transferable to the channel connected to the next node of the node, Transfer control means capable of transferring to a channel connected to the node of the i-1 th ring is provided.
  • a channel for connecting data originating from the node to each node of the i-th ring of such a distributed system and a node in the order of connection in the i-th ring in the next order of the node is transferred to a channel having the node as a transmission side and connected to the node of the i-1 th ring, and ,
  • the i + 1 th ring is present, the data is transferred to a channel connected to the node of the i + 1 th ring, the channel having the node as a transmission side, and the i ⁇ 1 th ring is transmitted.
  • the data received from the channel connected to the node of the ring is transferred to the channel connected to the next node in the order of connection in the i-th ring, and i + 1 If there is an eye ring, transfer to the channel connected to the node of the (i + 1) -th ring from the channel connected to the node of the (i + 1) -th ring from the channel connected to the node of the (i + 1) -th ring.
  • the received data is transferred to the channel connected to the node in the next order of the node in the connection order in the i-th ring, and if the i-1 th ring exists, the node is transmitted.
  • the data received from the channel connected to the node of the i-th ring and transferred to the channel connected to the node in the order before the node is transferred to the channel connected to the node of the i-th ring.
  • the node is not a source, and the connection order of the node in the i-th ring is the channel connected to the node in the next order of the node.
  • the data that is not sent, the order of the connection in the i-th ring is so provided with a transfer control means for transferring the channel to be connected to the next sequential node of the node.
  • j (where i is an arbitrary natural number equal to or less than m) -th ring (where j is n) If the i-1st ring exists, the following arbitrary natural number) th node is connected to the jth node of the i-1st ring through a channel having that node as the transmitting side. In addition, when the i + 1 th ring exists, it may be connected to the j th node of the i + 1 th ring through a channel having the node as a transmission side.
  • the j-th node of the i-th ring (where j is an arbitrary natural number less than n), i ⁇
  • the channel having the node as a transmission side is connected to the j + 1st node of the i ⁇ 1th ring and the nth node of the i th ring is
  • the channel is set to be the transmitting side and is connected to the first node of the i-1 th ring and the j th node of the i th ring is the i + 1 th ring
  • a channel having the node as a transmission side and connected to a j + 1-th node of the i + 1-th ring, and an n-th node of the i-th ring is a channel having the node as a transmission side, i + 1st node of 1st ring It may be connected.
  • the present invention is also a distributed system as described above, and the distributed system is divided into a plurality of distributed systems as described above in which the number of nodes included in each ring is smaller than that of the distributed system.
  • a distributed system including a switch for changing the channel connection is also provided.
  • FIG. 1 shows a configuration of a distributed system according to the first embodiment.
  • the distributed system has a plurality of rings (Ri), and each ring Ri includes the same number of nodes (Nij). Ri represents the i-th ring, and Nij represents the j-th node of the i-th ring.
  • the distributed system has three ring cages (ring R1, ring R2, and ring R3), ring 1 includes nodes N11, N12, N13, and N14, and ring 2 includes node N21, N3 includes N22, N23, and N24, and the ring 3 includes nodes N31, 32, N33, and N34.
  • ring R1, ring R2, and ring R3 ring 1 includes nodes N11, N12, N13, and N14
  • ring 2 includes node N21
  • N3 includes N22, N23, and N24
  • the ring 3 includes nodes N31, 32, N33, and N34.
  • a ring network is formed in which each node included in the ring is sequentially connected in a ring shape with a channel. That is, for example, in the illustrated example, in the ring R2, a ring-type network is formed in which the nodes are connected by channels in the order of N21-N22-N23-N24-N21.
  • the j-th node of the i-th ring is connected to the j-th node of each ring other than the i-th ring by bidirectional channels. That is, for example, in the illustrated example, the second node N12 of the ring R1 is connected to the second node N22 of the ring R2 and the node N32 of the ring R3 by channels, respectively, and the fourth node of the ring R2 N24 is connected to the fourth node N14 of the ring R1 and the fourth node N34 of the ring R3 through channels.
  • FIG. 2 shows the configuration of each node.
  • the node includes a storage 1 and a processor 2, and the processor 2 can perform data processing independently of other nodes using the storage 1.
  • the node performs data transfer using a channel connected to the node, and a channel interface 4 provided for each channel for data transfer with another node. It has.
  • the transfer control device 3 may be provided in a node as a function that the processor 2 realizes by executing software.
  • the transfer control device 3 controls data relay between each channel connected to the node and the processor 2.
  • the transfer control device 3 includes a reception buffer 31, a transmission buffer 32, and a duplicate transfer suppression unit CHK33.
  • the reception buffer 31 includes a buffer P (r) for storing data to be transmitted to the other node by the processor 2, and a channel interface from the previous node in the order of the ring included in the same ring as the node.
  • 4 includes a buffer RS (r) in which received data is stored.
  • the order on the ring is the order of the nodes that pass through the ring in the channel data transfer direction.
  • the next node is N22
  • the node immediately before N22 is N21
  • the next node is N23
  • the node before N23 is N22
  • the next node is N24
  • the node immediately preceding N24 is N23
  • the node immediately following N24 is N21.
  • the reception buffer 31 stores data received by the channel interface 4 from a node in the same ring in another ring different from the ring in which the node is included, and has the same number of buffers Ri as the number of the other rings. (R).
  • the reception buffer 31 also includes a buffer R1 (r) that stores data received from the third node N13 of the ring R1, and a buffer R3 (r) that stores data received from the third node N33 of the ring R3. ).
  • the transmission buffer 32 is connected to the buffer P (s) in which data to be transmitted to the processor 2 is stored and the node on the ring included in the same ring as the node via the channel interface 4.
  • the transmission buffer 32 stores the data to be transmitted via the channel interface 4 to the node in the same ring in another ring different from the ring including the node, and the same number of buffers as the number of the other rings.
  • Ri (s) is provided.
  • the transmission buffer 32 also includes a buffer R1 (s) that stores data to be transmitted to the third node N13 of the ring R1, and a buffer R3 (s) that stores data to be transmitted to the third node N33 of the ring R3. ).
  • the transfer control device 3 performs the transfer between the buffers as follows. That is, the data stored by the processor 2 in the buffer P (r) of the reception buffer 31 is transferred to the buffer RS (s) and each buffer Ri (s) of the transmission buffer 32 and included in the same ring as the node concerned. The transmission is transmitted to the node having the same order in the ring and the node having the same order in the ring of each of the other rings different from the ring including the node.
  • Duplicate transfer suppression unit CHK33 checks whether or not the transferred data is data that has been transmitted to other nodes by the local node in the past, and is not data that has been transmitted by the local node to other nodes. Only when the data is output.
  • whether or not the data is data that has been transmitted to other nodes by the local node in the past is determined by, for example, transmitting the data by adding the identifier of the node of the transmission source to the received data.
  • the received data can be used as data transmitted from the own node to another node.
  • the counter value is added to the data, and the count value of the data is incremented every time data is transmitted / transferred at each node, and the count value of the received data matches the number of nodes in the ring.
  • the received data can be used as data transmitted from the own node to another node.
  • the distributed system is configured so that each node synchronizes and transmits data from which the node is a transmission source
  • the number of nodes in the ring is M, and the node originates from the node.
  • the Mth received data can be used as data transmitted from the own node to the other node as a transmission source.
  • the transfer control device 3 transfers the data output from the duplicate transfer suppression unit CHK33 to the buffer P (s), the buffer RS (s), and each buffer Ri (s) of the transmission buffer 32, and the data is
  • the processor 2 and the node in the ring that is included in the same ring as the node are the next node in the ring, and the nodes in the rings of the other rings that are different from the ring in which the node is included are in the same node. Send.
  • the data received from each of the nodes in the ring of the other rings different from the ring including the node and stored in each Ri (r) is transferred to the buffer P (s) of the transmission buffer 32. To the processor 2.
  • the processor 2 transmits the data transmitted from the transfer control device 3 in this way, that is, the data received from the node whose order on the ring included in the same ring as the node is the previous one. Receives data that has not been transmitted from the processor 2 to other nodes in the past and data received from each of the nodes in the same ring in a different ring from the ring in which the node is included. Do.
  • each round rectangle representing the node to which the data DN22 has been transferred is shown in gray.
  • the node N23 that has received the transfer of the data DN22 from the node N22 sends the transferred data DN22 to the node N24 next to the node N23 on the ring R2 and the node N23 of another ring.
  • the data DN22 is taken into the processor 2 at the node N24, the node N13, and the node N33.
  • the node N24 that has received the transfer of the data DN22 from the node N23 sends the transferred data DN22 to the next node N21 of the node N24 on the ring R2 and the other ring N2.
  • the data is transferred to the node N14 of the ring R1 and the node N34 of the ring R3, which are nodes in the same order as the node N24.
  • the data DN22 is taken into the processor 2 at the node N21, the node N14, and the node N34.
  • the node N21 that has received the transfer of the data DN22 from the node N24 sends the transferred data DN22 to the next node N22 of the node N21 on the ring R2 and the other ring N2.
  • the data is transferred to the node N11 of the ring R1 and the node N31 of the ring R3, which are nodes in the same order as the node N21.
  • the data DN22 is taken into the processor 2 at the nodes N11 and N31.
  • the node N22 since the transferred data DN22 is data transmitted by its own processor 2, it is discarded.
  • the data DN22 originating from the node N22 of the ring R2 is completely transferred to all the nodes of the ring R1, the ring R2, and the ring R3.
  • FIG. 6 shows a transfer in the case where all nodes synchronize and transmit data originating from the own node at the same time in such a distributed system.
  • DNij in the figure represents data originating from the j-th node of the i-th ring.
  • 6a shows the first transfer
  • FIG. 6b shows the second transfer
  • FIG. 6c shows the third transfer
  • FIG. 6d shows the fourth transfer.
  • the data transmitted from each node and transmitted from the node is transferred to all other nodes in four transfers. That is, in other words, each node can acquire the data of the origin of all other nodes by four transfers.
  • each data is transferred using a different channel, and all channels are used for data transfer. Therefore, data transfer is performed using each channel equally and efficiently.
  • the first embodiment of the present invention has been described above.
  • the data when data to be transferred from the processor 2 to each other node occurs, the data is transferred to the node in the same order as that node of the other ring in the node.
  • this may be such that when the data returns around the ring, the data is transferred to the node in the same order as the node of the other ring.
  • the number of channels required for nodes that connect each node directly to all other nodes through a channel is smaller than that of a fully connected network.
  • the distributed system according to the second embodiment has the same configuration as the configuration of the distributed system according to the first embodiment shown in FIG.
  • the configuration of each node according to the second embodiment is the same as the configuration of the node according to the first embodiment shown in FIG.
  • the buffer provided in the transfer control device 3 of each node according to the second embodiment is the same as the buffer provided in the transfer control device 3 of each node in the first embodiment shown in FIG.
  • the transfer operation between the buffers performed by the transfer control device 3 of each node according to the second embodiment is different from that of the first embodiment. That is, in the second embodiment, as shown in FIG. 7, the transfer control device 3 uses the buffer RS (s) of the transmission buffer 32 to store the data stored in the buffer P (r) of the reception buffer 31 by the processor 2.
  • the transfer control device 3 uses the buffer RS (s) of the transmission buffer 32 to store the data stored in the buffer P (r) of the reception buffer 31 by the processor 2.
  • Duplicate transfer deterrence unit CHK33 transmits the transferred data in the past to the other node from which the own node originated, or on the ring in which the own node is included in the same ring as the node in the past. Check whether the data is the data transferred to the next node in the order, and the data transmitted to the other node as a source of the local node, or on the ring that is included in the same ring as the local node This data is output only when the order is not the data transferred to the next node.
  • the transfer control device 3 transfers the data output from the duplicate transfer suppression unit CHK33 to the buffer P (s) and the buffer RS (s) of the transmission buffer 32, and the data is transmitted to the processor 2, the node, and the node.
  • the order on the ring included in the same ring is transmitted to the next node.
  • the data received from each of the nodes in the rings of the other rings different from the ring including the node and stored in each Ri (r) is the buffer P (s) of the transmission buffer 32 and the buffer. Transfer to RS (s), and transmit to the processor 2 and the node that is in the same ring as that node and that is on the ring that is next in sequence.
  • the processor 2 transmits the data transmitted from the transfer control device 3 in this way, that is, the data received from the node whose order on the ring included in the same ring as the node is the previous one. Receives data that has not been transmitted from the processor 2 to other nodes in the past and data received from each of the nodes in the same ring in a different ring from the ring in which the node is included. Do.
  • each round rectangle representing the node to which the data DN22 has been transferred is shown in gray.
  • the node N23 that has received the transfer of the data DN22 from the node N22 transfers the transferred data DN22 to the node N24 next to the node N23 on the ring R2.
  • the node N12 that has received the transfer of the data DN22 from the node N22 transfers the transferred data DN22 to the node N13 next to the node N12 on the ring R1, and the node N32 that has received the transfer of the data DN22 from the node N22.
  • the data DN22 is taken into the processor 2 at the node N24, the node N13, and the node N33.
  • the node N24 that has received the transfer of the data DN22 from the node N23 transfers the transferred data DN22 to the node N21 next to the node N24 on the ring R2.
  • the node N13 that has received the transfer of the data DN22 from the node N12 transfers the transferred data DN22 to the node N14 next to the node N13 on the ring R1, and the node N33 that has received the transfer of the data DN22 from the node N32. Transfers the transferred data DN22 to the node N34 next to the node N33 on the ring R3. Then, the data DN22 is taken into the processor 2 at the node N21, the node N14, and the node N34.
  • the node N21 that has received the transfer of the data DN22 from the node N24 transfers the transferred data DN22 to the node N22 next to the node N21 on the ring R2.
  • the node N14 that has received the transfer of the data DN22 from the node N13 transfers the transferred data DN22 to the node N11 next to the node N14 on the ring R1, and the node N34 that has received the transfer of the data DN22 from the node N33. Transfers the transferred data DN22 to the node N31 next to the node N34 on the ring R3.
  • the data DN22 is taken into the processor 2 at the nodes N11 and N31.
  • the node N22 since the transferred data DN22 is data transmitted by its own processor 2, it is discarded.
  • the data DN22 originating from the node N22 of the ring R2 is completely transferred to all the nodes of the ring R1, the ring R2, and the ring R3.
  • the number of hops expressed as the number of nodes that the data follows is compared with a ring network that connects all the nodes included in the distributed system in a ring shape. Since the maximum value can be kept small, the time required to complete the transfer of all the node data to other nodes can be shortened. On the other hand, the number of channels required for nodes that connect each node directly to all other nodes through a channel is smaller than that of a fully connected network.
  • the second embodiment transfer of node data to all other nodes can be completed in a relatively short time while suppressing the number of channels.
  • the load of the channel in each ring increases in the second embodiment compared to the first embodiment. Therefore, in the second embodiment, the load may be distributed by multiplexing channels in each ring.
  • the connections between the rings are both the j-th node of the i-th ring and the j-th node of each ring other than the i-th ring.
  • the channel where each node of the i-th ring is the transmitting side is connected to a different node of each other ring as the receiving side channel.
  • nodes may be connected between rings in any connection form.
  • the connections between the rings in the first embodiment and the second embodiment are unidirectional channels in which the j-th node of the i-th ring is the transmission side, respectively. This is done by connecting to the j + 1 node of each ring other than the ring so that it becomes a unidirectional channel on the receiving side of the j + 1 node of each ring other than the i th ring. It may be. However, a unidirectional channel in which Z is the number of nodes in each ring and the Z-th node of the i-th ring is the transmission side is connected to the first node of each ring other than the i-th ring. Connection is made so as to be a unidirectional channel on the receiving side of the first node of each ring other than the ring.
  • the thick line in FIG. 10b shows the transfer route of the data generated in the node N22 of the ring R2 when the connection between the rings is performed as shown in FIG. 10a in the first embodiment.
  • X in #x represents the x-th node transfer of data.
  • a thick line in FIG. 10c indicates a transfer route of data generated in the node N22 of the ring R2 when the connection between the rings is performed as illustrated in FIG. 10a in the second embodiment.
  • X in #x represents the x-th node transfer of data.
  • the distributed system according to the first and second embodiments described above may be configured such that the distributed system can be divided into a plurality of distributed systems. That is, when the connection between the rings of the distributed systems according to the first and second embodiments is the connection shown in FIG. 1, for example, as shown in FIG.
  • the configuration may be changeable by setting the switch 100.
  • the illustrated switch 100 enables the reception channel of the node N13 to be selectively connected to the transmission channel of the node N12 and the transmission channel of the node N14 in the configuration of the distributed system illustrated in FIG. 1, and the reception channel of the node N11.
  • the reception channel of node N23 can be selectively connected to the transmission channel of node N22 and the transmission channel of node N24.
  • the reception channel of the node N21 can be selectively connected to the transmission channel of the node N24 and the transmission channel of the node N22
  • the reception channel of the node N33 is transmitted to the transmission channel of the node N32 and the transmission of the node N34.
  • the node N3 can be selectively connected to the channel and the node N3
  • the receive channel, the transmission channel of the node N34 is a transmission channel of the node N32 that a selectively connectable.
  • the reception channel of the node N13 is connected to the transmission channel of the node N12
  • the reception channel of the node N11 is connected to the transmission channel of the node N14
  • the reception of the node N23 is performed.
  • the channel is connected to the transmission channel of node N22
  • the reception channel of node N21 is connected to the transmission channel of node N24
  • the reception channel of node N33 is connected to the transmission channel of node N32
  • the reception channel of node N31 is connected to the node
  • the reception channel of node N13 is connected to the transmission channel of node N14
  • the reception channel of node N11 is connected to the transmission channel of node N12
  • the reception channel of node N23 is connected to node N24.
  • Connect to the transmission channel connect the reception channel of node N21 to the transmission channel of node N22, connect the reception channel of node N33 to the transmission channel of node N34, and change the reception channel of node N31 to the transmission channel of node N32. If connected, it is possible to configure two distributed systems, a distributed system SYS1 and a distributed system SYS2, each having three rings with two nodes shown in FIG. 11c.
  • connection between the rings of the distributed system according to the first embodiment and the second embodiment is a unidirectional channel in which the j-th node of the i-th ring as shown in FIG.
  • a switch 100 is provided, and the network configuration of the switch 100 is It can be changed by setting.
  • FIG. 12a as an example of a distributed system having two rings with four nodes, the switch 100 is provided as shown in FIG.
  • a single distributed system having three rings with four nodes can be configured, or two distributed systems having three rings with two nodes can be configured as shown in FIG. 12b.
  • FIG. 12c shows a connection between rings when the setting of the switch 100 shown in FIG. 12b is performed
  • FIG. 12d is configured when the setting of the switch 100 shown in FIG. 12b is performed. 2 distributed systems SYS1 and SYS2.
  • FIG. 13 shows the configuration of the distributed system according to the third embodiment.
  • the distributed system has a plurality of rings (Ri), as in the first embodiment, and each ring i includes the same number of nodes (Nij).
  • a ring network is formed in which each node included in the ring is sequentially connected in a ring shape with a channel.
  • the j-th node of the i-th ring is connected to the j-th node of the i + 1-th ring through a bidirectional channel.
  • the second node N12 of the ring R1 is connected to the second node N22 of the ring R2 next to the ring R1 through a channel
  • the second node N22 of the ring R2 is The channel is connected to the second node N32 of the ring R3 next to the ring R2.
  • the configuration of the node according to the third embodiment is the same as the configuration according to the first embodiment shown in FIG.
  • the transfer control device 3 according to the third embodiment has a buffer configuration shown in FIG. 14 instead of the configuration according to the first embodiment shown in FIG. That is, the transfer control device 3 according to the third embodiment includes the reception buffer 31, the transmission buffer 32, and the duplicate transfer suppression unit CHK33 as in the configuration according to the first embodiment illustrated in FIG.
  • the reception buffer 31 has a buffer P (r) for storing data to be transmitted to the other node by the processor 2 and the order on the ring included in the same ring as the node is one.
  • the buffer RS (r) in which the data received by the channel interface 4 from the previous node is stored, and the channel interface 4 receives from the node in the same order in the ring of the ring immediately preceding the ring including the node.
  • the data received from the node N22 is stored in the buffer RS (r).
  • the buffer RP (r) stores data received from the third node N13 of the ring R1
  • the buffer RN (r) stores data received from the third node N33 of the ring R3. .
  • the transmission buffer 32 is connected to the buffer P (s) in which data to be transmitted to the processor 2 is stored and the node on the ring included in the same ring as the node via the channel interface 4.
  • (S) includes a buffer RN (s) in which data to be transmitted via the channel interface 4 is stored in a node having the same order in the ring of the next ring after the ring including the node.
  • the data to be transmitted to the node N24 is stored in the buffer RS (s).
  • the buffer RP (s) stores data to be transmitted to the third node N13 of the ring R1
  • the buffer RN (s) stores data to be transmitted to the third node N33 of the ring R3. .
  • the transfer control device 3 performs the transfer between the buffers as follows. That is, the data stored by the processor 2 in the buffer P (r) of the reception buffer 31 is transferred to the buffer RS (s), the buffer RP (s), and the buffer RN (s) of the transmission buffer 32, and is the same as that node.
  • the node in the ring that is included in the ring is the next node in the order of the ring, the node in the ring of the ring in the previous order of the ring that includes the node, and the ring that includes the node
  • the next ring in the next order is transmitted to the same node in the ring.
  • Duplicate transfer suppression unit CHK33 checks whether or not the transferred data is data that has been transmitted to other nodes by the local node in the past, and is not data that has been transmitted by the local node to other nodes. Only when the data is output.
  • the transfer control device 3 transfers the data output from the duplicate transfer inhibiting unit CHK33 to the buffer P (s), the buffer RS (s), the buffer RP (s), and the buffer RN (s) of the transmission buffer 32.
  • the data in the ring of the processor 2, the node that is included in the same ring as the node, the node that is in the next order on the ring, and the ring that is in the previous order of the ring that includes the node The node in the same order and the order of the rings in the next ring after the ring including the node are transmitted to the same node.
  • the data received from the node in the ring of the ring in the order immediately preceding the ring including the node and stored in the buffer RP (r) is the buffer P (s) of the transmission buffer 32, and The data is transferred to the buffer RN (s), transmitted to the processor 2, and transmitted to the same node in the ring of the next ring in the ring including the node.
  • the data received from the same node in the ring of the ring in the order of the ring immediately after the ring including the node and stored in the buffer RN (r) is the buffer P (s) of the transmission buffer 32, and The data is transferred to the buffer RP (s), transmitted to the processor 2, and transmitted to the same node in the ring of the ring in the previous order of the ring including the node.
  • the processor 2 transmits the data transmitted from the transfer control device 3 in this way, that is, the data received from the node whose order on the ring included in the same ring as the node is the previous one.
  • Data that has not been transmitted from the processor 2 to another node in the past, data received from a node in the same ring order of the ring immediately preceding the ring in which the node is included, and the node are included
  • the data received from the nodes in the same ring order of the ring immediately after the ring is received and processed.
  • each round rectangle representing the node to which the data DN12 is transferred is shown in gray.
  • the node N13 that has received the transfer of the data DN12 from the node N12 sends the transferred data DN12 to the next node N14 of the node N13 on the ring R1 and the next ring of the ring R1.
  • the data is transferred to the node N23 which is the same node as the node N13 of R2.
  • the node N22 of the ring R2 that has received the transfer of the data DN12 from the node N12 transfers the transferred data DN12 to the node N32 that is the same node as the node N22 of the next ring R3 of the ring R2.
  • the data DN12 is taken into the processor 2 at the node N14, the node N23, and the node N32.
  • the node N14 that has received the transfer of the data DN12 from the node N13 sends the transferred data DN12 to the next node N11 of the node N14 on the ring R1 and the next ring of the ring R1.
  • the data is transferred to the node N24 which is the same node as the node N14 of R2.
  • the node N23 of the ring R2 that has received the transfer of the data DN12 from the node N13 transfers the transferred data DN12 to the node N33 that is the same node as the node N23 of the next ring R3 of the ring R2.
  • the data DN12 is taken into the processor 2 at the node N11, the node N24, and the node N33.
  • the node N11 that has received the transfer of the data DN12 from the node N14 sends the transferred data DN12 to the next node N12 of the node N11 on the ring R1 and the next ring of the ring R1. Transfer to node N21 which is the same node as node N11 of R2.
  • the node N24 of the ring R2 that has received the transfer of the data DN12 from the node N14 transfers the transferred data DN12 to the node N34 that is the same node as the node N24 of the next ring R3 of the ring R2.
  • the data DN12 is taken into the processor 2 at the nodes N21 and N34.
  • the node N12 since the transferred data DN12 is data transmitted by its own processor 2, it is discarded.
  • the node N21 of the ring R2 that has received the transfer of the data DN12 from the node N11 has the same order as the node N21 of the next ring R3 of the ring R2 of the transferred data DN12.
  • the data is transferred to the node N31 that is a node.
  • the data DN12 originating from the node N12 of the ring R1 is completely transferred to all the nodes of the ring R1, the ring R2, and the ring R3.
  • the data DN22 to be transferred from the processor 2 to another node is generated in the node N22 of the ring R2 as shown in FIG. 17a
  • the data DN22 is transferred from the node N22 to the next node of the node N22 on the ring R2.
  • the data DN22 is taken into the processor 2 at the node N23, the node N12, and the node N32.
  • the node N23 that has received the transfer of the data DN22 from the node N22 sends the transferred data DN22 to the next node N24 of the node N23 on the ring R2 and the ring before the ring R2. It is transferred to the node N13 that is the same node as the node N23 of R1, and the node N33 that is the same node as the node N23 of the next ring R3 of the ring R2. Then, the data DN22 is taken into the processor 2 at the node N24, the node N13, and the node N33.
  • the node N24 that has received the transfer of the data DN22 from the node N23 sends the transferred data DN22 to the next node N21 of the node N24 on the ring R2 and the previous ring R2.
  • the node N14 is the same node as the node N24 of the ring R1
  • the node N34 is the same node as the node N24 of the next ring R3 of the ring R2. Then, the data DN22 is taken into the processor 2 at the node N21, the node N14, and the node N34.
  • the node N21 that has received the transfer of the data DN22 from the node N24 transfers the transferred data DN22 to the next node N22 of the node N21 on the ring R2 and the previous ring R2.
  • the data DN22 is taken into the processor 2 at the nodes N11 and N31.
  • the node N22 since the transferred data DN22 is data transmitted by its own processor 2, it is discarded.
  • the data DN22 originating from the node N12 of the ring R1 is completely transferred to all the nodes of the ring R1, the ring R2, and the ring R3.
  • the third embodiment of the present invention has been described above.
  • the data when data to be transferred from the processor 2 to each other node is generated, the data is transferred to that node of the other ring in the node.
  • the data When the data circulates around the ring and returns, the data may be transferred from the node to the node of another ring.
  • the time required to complete the transfer of all the node data to other nodes becomes longer depending on the number of rings.
  • the number of required channels can be reduced compared to the configuration.
  • the distributed system according to the fourth embodiment has the same configuration as the configuration of the distributed system according to the third embodiment shown in FIG.
  • the configuration of each node according to the fourth embodiment is the same as the configuration of the node according to the third embodiment.
  • the buffer provided in the transfer control device 3 of each node according to the fourth embodiment is the same as the buffer provided in the transfer control device 3 of each node in the second embodiment shown in FIG.
  • the transfer operation between the buffers performed by the transfer control device 3 of each node according to the fourth embodiment is different from that of the third embodiment. That is, the transfer control device 3 performs the transfer between the buffers as shown in FIG. That is, the data stored by the processor 2 in the buffer P (r) of the reception buffer 31 is transferred to the buffer RS (s), the buffer RP (s), and the buffer RN (s) of the transmission buffer 32, and is the same as that node.
  • the node in the ring that is included in the ring is the next node in the order of the ring, the node in the ring of the ring in the previous order of the ring that includes the node, and the ring that includes the node
  • the next ring in the next order is transmitted to the same node in the ring.
  • Duplicate transfer deterrence unit CHK33 transmits the transferred data in the past to the other node from which the own node originated, or on the ring in which the own node is included in the same ring as the node in the past. Check whether the data is the data transferred to the next node in the order, and the data transmitted to the other node as a source of the local node, or on the ring that is included in the same ring as the local node This data is output only when the order is not the data transferred to the next node.
  • the transfer control device 3 transfers the data output from the duplicate transfer suppression unit CHK33 to the buffer P (s) and the buffer RS (s) of the transmission buffer 32, and the data is transmitted to the processor 2, the node, and the node.
  • the order on the ring included in the same ring is transmitted to the next node.
  • the data received from the node in the ring of the ring in the order immediately preceding the ring including the node and stored in the buffer RP (r) is the buffer P (s) of the transmission buffer 32, and
  • the buffer RN (s) and the buffer RS (s) are transferred to the processor 2 and transmitted to the processor 2;
  • the order on the ring included in the same ring is transmitted to the next node.
  • the data received from the same node in the ring of the ring in the order of the ring immediately after the ring including the node and stored in the buffer RN (r) is the buffer P (s) of the transmission buffer 32, and
  • the buffer RP (s) and the buffer RS (s) are transferred to the processor 2 and transmitted to the processor 2.
  • the order on the ring included in the same ring is transmitted to the next node.
  • the processor 2 transmits the data transmitted from the transfer control device 3 in this way, that is, the data received from the node whose order on the ring included in the same ring as the node is the previous one.
  • Data that has not been transmitted from the processor 2 to another node in the past, data received from a node in the same ring order of the ring immediately preceding the ring in which the node is included, and the node are included
  • the data received from the nodes in the same ring order of the ring immediately after the ring is received and processed.
  • the transfer route of data generated in the node N12 of the ring R1 is shown in FIG. 20a, and the transfer of data generated in the node N22 of the ring R2 is shown in FIG. As indicated by the bold line in the route, the data transfer of each node is performed as follows.
  • a node that is a data transmission source transmits data to a node immediately after the node of the ring in which the node is included, and transmits the data to nodes of other rings connected by the channel.
  • Each node transmits the data received from the node of the previous ring connected by the channel to the node immediately after the node of the ring including the node and connected by the channel.
  • To the next ring node Each node transmits the data received from the node of the next ring connected by the channel to the node immediately after the node of the ring including the node and connected by the channel.
  • each node is not the source of the data received from the node immediately preceding the node of the ring in which the node is included, and the node has been identified as one of the nodes of the ring in the past. Data that has not been transferred to the next node is transferred to the node immediately after the node in the ring including the node.
  • x of #x in FIGS. 20a and 20b represents the x-th internode transfer of data.
  • x of #x in FIGS. 20a and 20b represents the x-th internode transfer of data.
  • the load on the channels in each ring increases compared to the third embodiment. Therefore, in the fourth embodiment, the load may be distributed by multiplexing channels in each ring.
  • both the connection of the node between rings, jth node of i-th ring, and j-th node of each ring other than i-th ring respectively
  • the node connection between the rings is performed in each of the i-th rings. If the channel on which the node is the transmitting side is connected to different nodes in the previous ring and the next ring as the receiving side channel, the nodes can be connected between the rings in any connection form. May go.
  • a unidirectional channel in which the j-th node of the i-th ring is the transmission side is represented by i + 1.
  • the j + 1 node of the i th ring is connected so as to be a unidirectional channel on the receiving side, and the unidirectional channel in which the j th node of the i th ring is the transmitting side is i ⁇ 1.
  • the j + 1-th node of the th ring may be connected so as to be a unidirectional channel on the receiving side.
  • the unidirectional channel in which Z is the number of nodes in each ring and the Z-th node of the i-th ring is the transmitting side is the receiving side of the first node of the i + 1st and i-1st rings Connect to be a unidirectional channel.
  • the distributed system according to the third embodiment and the fourth embodiment may be configured to be provided with a switch so that the distributed system can be divided into a plurality of distributed systems.
  • a switch for example, when connecting between the rings shown in FIG. 13, as shown in FIG. 11, when connecting between the rings shown in FIG. 21, if a switch is provided as shown in FIG. All nodes can constitute a single distributed system, or each ring node can be divided into two distributed systems.
  • Each ring in each of the above embodiments may be formed by connecting a plurality of nodes in a ring shape with a bidirectional channel. However, in this case, the processing on the data received from the node immediately preceding the turn on the ring included in the same ring, performed in the transfer control device 3 as described above, is performed in each direction. Like that.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)
  • Small-Scale Networks (AREA)

Abstract

複数のノードで構成された分散システムにおいて、チャネル数を抑制しつつ、ノードのデータの他の全てのノードへの転送を短時間で完了する。このため、複数のリングによって分散システムを形成する。また、各リングは、同数のノードをチャネルでリング状に順次接続して形成する。また、各リングのノードは、他の各リングのリング上での順番が同じノードとチャネルで接続する。各ノードは、リング上での順番が一つ前のノードから受信したデータを、リング上での順番が一つ後のノードと、他の各リングのリング中の順番が同じノードに送信する。

Description

分散システム
 本発明は、複数のノードで構成された分散システムにおけるデータ転送の技術に関するものである。
 複数のノードで構成された分散システムにおいて処理対象のデータを分割して各ノードに割り当てて各ノードに処理を行わせる場合、各ノードにおいて他の全てのノードから情報を収集する場合がある。
 そして、このような分散システムの各ノードにおいて他の全てのノードから情報を収集する技術としては、複数のレコードよりなるテーブルをレコード単位で分割して各ノードに割り当て、各ノードにおいてテーブルに対する処理の割り当てられた各レコードについての部分を行う分散システムにおいて、テーブルに対する処理としてレコードの当該レコードの値をキーとするソートを行う場合に、他のノードの各々から、当該他のノードに割り当てられているレコードの値毎の当該他のノードに割り当てられているレコードの数の情報を収集して、自己に割り当てられている各レコードのテーブル中の順番を算出する技術が知られている(たとえば、特許文献1)。
 また、この技術では、図22aに示すように、各ノード(N0,N1,N2,N3)を双方向のチャネルでリング状に接続してリング型のネットワークを構成し、図22bに示すように、各ノードにおいてリングに沿って情報を順次中継していくことにより、情報発信元のノードがリングに創出した情報を他の全てのノードに転送している。
国際公開第2005/073880号
 さて、図22aに示したリング型のネットワークを用いる情報の転送の技術によれば、チャネル数は少なくて済むが、ノードの数が多くなると、発信元のノードの情報の送信から、全ての他のノードへの転送が完了するまでに長時間を要してしまい、処理のレスポンスが劣化する。
 一方、図22cに示すように各ノードを全ての他のノードと直接チャネルで接続したフルコネクト型のネットワーク構成を採用し、発信元のノードが全ての他のノードに直接情報を転送するようにすれば、転送の完了までに要する時間は短縮化されるが、ノードの数が多数となると、必要となるチャネルの数も飛躍的に増大してしまう。
 そこで、本発明は、チャネル数を抑制しつつ、ノードの情報の他の全てのノードへの転送を比較的短時間で完了することのできる分散システムを提供することを課題とする。
 前記課題達成のために本発明は、複数のノードをチャネルで接続した分散システムとして、n(但し、nは2以上の任意の自然数)個のノードをチャネルでリング状に接続したリングを複数有し、各リングに含まれるノードの数は等しく、前記各リングの各ノードは、当該ノードを送信側とするチャネルで、当該ノードを含むリング以外の各リングのノードと、同じリングに含まれる各ノードが、当該ノードを送信側とするチャネルで、他のリングの異なるノードにそれぞれ接続されるように接続されている分散システムを提供する。
 このような分散システムの構成によれば、分散システムに含まれる全てのノードをリング状に接続したリング型のネットワークに比べ、データが辿るノード数として表されるホップ数の最大値を小さく抑えて、ノードのデータの全ての他のノードへの転送を行うことができるので、ノードのデータの全ての他のノードへの転送を完了するまでの時間を短くすることができる。一方で、各ノードを全ての他のノードと直接チャネルで接続するノードをフルコネクト型のネットワークに比べ必要となるチャネル数は充分に少なくて済む。
 また、同じリング内のノード間の各チャネルや異なるリングのノード間の各チャネルの負荷を比較的均等化することができる。
 したがって、チャネル数を抑制しつつ、ノードのデータの全ての他のノードへの転送を比較的短時間で完了することができる。
 すなわち、より具体的には、たとえば、このような分散システムの前記各リングのノードに、当該ノードが含まれるリングの当該リングにおける接続上の順番が当該ノードの前の順番のノードに接続したチャネルから受信したデータを、当該ノードが含まれるリングの当該リングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルと、当該ノードを送信側とするチャネルであって当該ノードが含まれるリング以外の他のリングのノードに接続するチャネルに転送可能な転送制御手段を備えるようにする。
 または、このような分散システムの前記各リングのノードに、当該ノードが発信元となるデータを、当該ノードが含まれるリングの当該リングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルと、当該ノードを送信側とするチャネルであって当該ノードが含まれるリング以外の他のリングのノードに接続するチャネルに送信すると共に、当該ノードが含まれるリングの当該リングにおける接続上の順番が当該ノードの前の順番のノードに接続するチャネルから受信したデータのうちの、当該ノードが発信元でないデータを、当該ノードが含まれるリングの当該リングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルと、当該ノードを送信側とするチャネルであって当該ノードが含まれるリング以外の他のリングのノードに接続するチャネルに転送する転送制御手段を備えるようにする。
 または、このような分散システムの前記各リングのノードに、当該ノードが含まれるリングの当該リングにおける接続上の順番が当該ノードの前の順番のノードに接続したチャネルから受信したデータを、当該ノードが含まれるリングの当該リングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルに転送可能であると共に、他のリングのノードに接続したチャネルから受信したデータを当該ノードが含まれるリングの当該リングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルに転送可能な転送制御手段を備えるようにする。
 または、このような分散システムの前記各リングのノードに、当該ノードが発信元となるデータを、当該ノードが含まれるリングの当該リングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルと、当該ノードを送信側とするチャネルであって当該ノードが含まれるリング以外の他のリングのノードに接続するチャネルに送信し、他のリングのノードに接続したチャネルから受信したデータを当該ノードが含まれるリングの当該リングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルに転送し、当該ノードが含まれるリングの当該リングにおける接続上の順番が当該ノードの前の順番のノードに接続するチャネルから受信したデータのうちの、当該ノードが発信元でなく、かつ、当該ノードが当該ノードが含まれるリングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルに転送していないデータを、当該ノードが含まれるリングの当該リングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルに転送する転送制御手段を備えるようにする。
 ここで、以上の分散システムは、ノードのリングにおける接続上の順番を当該ノードの順番として、各リングのj(但し、jはn以下の任意の自然数)番目のノードを、当該ノードを送信側とするチャネルで、他の各リングのj番目のノードと接続するようにしてもよい。
 または、以上の分散システムは、ノードのリングにおける接続上の順番を当該ノードの順番として、各リングのj(但し、jはn未満の任意の自然数)番目のノードを、当該ノードを送信側とするチャネルで、他の各リングのj+1番目のノードと接続され、各リングのn番目のノードは、当該ノードを送信側とするチャネルで、他の各リングの1番目のノードと接続するようにしてもよい。
 また、前記課題達成のために、本発明は、複数のノードをチャネルで接続した分散システムとして、n(但し、nは2以上の任意の自然数)個のノードをチャネルでリング状に接続したm個(但し、mは2以上の任意の自然数)のリングを有し、各リングに含まれるノードの数は等しく、i(但し、iはm以下の任意の自然数)番目のリングの各ノードは、i-1番目のリングが存在する場合には、当該ノードを送信側とするチャネルで、i-1番目のリングの異なるノードにそれぞれ接続されており、かつ、i+1番目のリングが存在する場合には、当該ノードを送信側とするチャネルで、i+1番目のリングの異なるノードにそれぞれ接続されている分散システムを提供する。
 このような分散システムの構成によれば、分散システムの全てのノードをリング状に接続したリング型のネットワークに比べ、データが辿るノード数として表されるホップ数の最大値を小さく抑えて、ノードのデータの全ての他のノードへの転送を行うことができるので、ノードのデータの全ての他のノードへの転送を完了するまでの時間を短くすることができる。一方で、各ノードを全ての他のノードと直接チャネルで接続するノードをフルコネクト型のネットワークに比べ必要となるチャネル数は少なくて済む。
 したがって、チャネル数を抑制しつつ、ノードのデータの全ての他のノードへの転送を比較的短時間で完了することができる。
 すなわち、より具体的には、たとえば、このような分散システムの前記i番目のリングの各ノードに、当該i番目のリングにおける接続上の順番が当該ノードの前の順番のノードに接続したチャネルから受信したデータを、当該i番目のリングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルに転送可能であると共に、i-1番目のリングが存在する場合には、当該データを、当該ノードを送信側とするチャネルであってi-1番目のリングのノードに接続するチャネルに転送可能、かつ、i+1番目のリングが存在する場合には、当該データを、当該ノードを送信側とするチャネルであってi+1番目のリングのノードに接続するチャネルに転送可能、かつ、i-1番目のリングのノードに接続したチャネルから受信したデータを、i+1番目のリングが存在する場合には、当該ノードを送信側とするチャネルであってi+1番目のリングのノードに接続するチャネルに転送可能、かつ、i+1番目のリングのノードに接続したチャネルから受信したデータを、i-1番目のリングが存在する場合には、当該ノードを送信側とするチャネルであってi-1番目のリングのノードに接続するチャネルに転送可能な転送制御手段を備えるようにする。
 または、このような分散システムの前記i番目のリングの各ノードに、当該ノードが発信元となるデータを、当該i番目のリングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルに送信すると共に、i-1番目のリングが存在する場合には、当該データを、当該ノードを送信側とするチャネルであってi-1番目のリングのノードに接続するチャネルに転送し、かつ、i+1番目のリングが存在する場合には、当該データを、当該ノードを送信側とするチャネルであってi+1番目のリングのノードに接続するチャネルに転送し、当該i番目のリングにおける接続上の順番が当該ノードの前の順番のノードに接続したチャネルから受信したデータのうちの当該ノードが発信元でないデータを、当該i番目のリングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルに転送すると共に、i-1番目のリングが存在する場合には、当該データを、当該ノードを送信側とするチャネルであってi-1番目のリングのノードに接続するチャネルに転送し、かつ、i+1番目のリングが存在する場合には、当該データを、当該ノードを送信側とするチャネルであってi+1番目のリングのノードに接続するチャネルに転送し、i-1番目のリングのノードに接続したチャネルから受信したデータを、i+1番目のリングが存在する場合には、当該ノードを送信側とするチャネルであってi+1番目のリングのノードに接続するチャネルに転送し、i+1番目のリングのノードに接続したチャネルから受信したデータを、i-1番目のリングが存在する場合には、当該ノードを送信側とするチャネルであってi-1番目のリングのノードに接続するチャネルに転送する転送制御手段を備えるようにする。
 または、このような分散システムの前記i番目のリングの各ノードに、当該i番目のリングにおける接続上の順番が当該ノードの前の順番のノードに接続したチャネルから受信したデータを、i番目のリングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルに転送可能であり、i-1番目のリングのノードに接続したチャネルから受信したデータを、当該i番目のリングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルに転送可能であると共に、i+1番目のリングが存在する場合には、当該ノードを送信側とするチャネルであってi+1番目のリングのノードに接続するチャネルに転送可能であり、i+1番目のリングのノードに接続したチャネルから受信したデータを、当該i番目のリングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルに転送可能であると共に、i-1番目のリングが存在する場合には、当該ノードを送信側とするチャネルであってi-1番目のリングのノードに接続するチャネルに転送可能な転送制御手段を備えるようにする。
 または、このような分散システムの前記i番目のリングの各ノードに、当該ノードが発信元となるデータを、i番目のリングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルに送信すると共に、i-1番目のリングが存在する場合には、当該データを、当該ノードを送信側とするチャネルであってi-1番目のリングのノードに接続するチャネルに転送し、かつ、i+1番目のリングが存在する場合には、当該データを、当該ノードを送信側とするチャネルであってi+1番目のリングのノードに接続するチャネルに転送し、i-1番目のリングのノードに接続したチャネルから受信したデータを、当該i番目のリングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルに転送すると共に、i+1番目のリングが存在する場合には、当該ノードを送信側とするチャネルであってi+1番目のリングのノードに接続するチャネルに転送し、i+1番目のリングのノードに接続したチャネルから受信したデータを、当該i番目のリングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルに転送すると共に、i-1番目のリングが存在する場合には、当該ノードを送信側とするチャネルであってi-1番目のリングのノードに接続するチャネルに転送し、当該i番目のリングにおける接続上の順番が当該ノードの前の順番のノードに接続したチャネルから受信したデータのうちの当該ノードが発信元でなく、かつ、当該ノードが当該i番目のリングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルに転送していないデータを、当該i番目のリングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルに転送する転送制御手段を備えるようにする。
 ここで、以上のような分散システムは、ノードのリングにおける接続上の順番を当該ノードの順番として、i(但し、iはm以下の任意の自然数)番目のリングのj(但し、jはn以下の任意の自然数)番目のノードを、i-1番目のリングが存在する場合には、当該ノードを送信側とするチャネルで、i-1番目のリングのj番目のノードに接続されており、かつ、i+1番目のリングが存在する場合には、当該ノードを送信側とするチャネルで、i+1番目のリングのj番目のノードに接続するようにしてもよい。
 または、以上のような分散システムは、ノードのリングにおける接続上の順番を当該ノードの順番として、i番目のリングのj(但し、jはn未満の任意の自然数)番目のノードを、i-1番目のリングが存在する場合には、当該ノードを送信側とするチャネルで、i-1番目のリングのj+1番目のノードと接続すると共に、i番目のリングのn番目のノードを、当該ノードを送信側とするチャネルで、i-1番目のリングの1番目のノードと接続し、かつ、i番目のリングのj番目のノードを、i+1番目のリングが存在する場合には、当該ノードを送信側とするチャネルで、i+1番目のリングのj+1番目のノードと接続し、i番目のリングのn番目のノードは、当該ノードを送信側とするチャネルで、i+1番目のリングの1番目のノードと接続するようにしてもよい。
 また、併せて本発明は、以上のような分散システムであって、当該分散システムが、当該分散システムよりも各リングに含まれるノード数の少ない、複数の以上のような分散システムに分割されるように前記チャネルの接続を変更するスイッチを備えた分散システムも提供する。
 以上のように、本発明によれば、チャネル数を抑制しつつ、ノードの情報の他の全てのノードへの転送を比較的短時間で完了することのできる分散システムを提供することができる。
本発明の第1実施形態に係る分散システムの構成を示す図である。 本発明の第1実施形態に係るノードの構成を示すブロック図である。 本発明の第1実施形態に係る転送制御装置のバッファ構成を示すブロック図である。 本発明の第1実施形態に係る分散システムのデータ転送のようすを示す図である。 本発明の第1実施形態に係る分散システムのデータ転送のようすを示す図である。 本発明の第1実施形態に係る分散システムのデータ転送のようすを示す図である。 本発明の第2実施形態に係る転送制御装置のバッファ構成を示すブロック図である。 本発明の第2実施形態に係る分散システムのデータ転送のようすを示す図である。 本発明の第2実施形態に係る分散システムのデータ転送のようすを示す図である。 本発明の第1、第2実施形態に係る分散システムの他の構成例を示す図である。 本発明の第1、第2実施形態に係る分散システムの他の構成例を示す図である。 本発明の第1、第2実施形態に係る分散システムの他の構成例を示す図である。 本発明の第3実施形態に係る分散システムの構成を示す図である。 本発明の第3実施形態に係る転送制御装置のバッファ構成を示すブロック図である。 本発明の第3実施形態に係る分散システムのデータ転送のようすを示す図である。 本発明の第3実施形態に係る分散システムのデータ転送のようすを示す図である。 本発明の第3実施形態に係る分散システムのデータ転送のようすを示す図である。 本発明の第3実施形態に係る分散システムのデータ転送のようすを示す図である。 本発明の第4実施形態に係る転送制御装置のバッファ構成を示すブロック図である。 本発明の第4実施形態に係る分散システムのデータ転送のようすを示す図である。 本発明の第3、第4実施形態に係る分散システムの他の構成例を示す図である。 公知の分散システムを示す図である。
 以下、本発明に係る分散システムの実施形態について説明する。
 まず、本発明の第1実施形態について説明する。
 図1に、本第1実施形態に係る分散システムの構成を示す。
 図示するように、分散システムは、複数のリング(Ri)を有し、各リングRiは、それぞれ同数のノード(Nij)を含んでいる。なお、Riは、i番目のリングを表しており、Nijは、i番目のリングのj番目のノードを表している。
 すなわち、たとえば、図示した例では、分散システムは、3つのリング (リングR1、リングR2、リングR3)を有し、リング1はノードN11、N12、N13、N14を含み、リング2はノードN21、N22、N23、N24を含み、リング3は、ノードN31、32、N33、N34を含んでいる。
 そして、各リング中において、当該リングに含まれる各ノードをチャネルでリング状に順次接続したリング型のネットワークが形成されている。
 すなわち、たとえば、図示した例では、リングR2では、N21-N22-N23-N24-N21の順に各ノードがチャネルで接続されたリング型のネットワークが形成されている。
 そして、i番目のリングのj番目のノードは、i番目のリング以外の各リングのj番目のノードとそれぞれ双方向のチャネルで接続されている。
 すなわち、たとえば、図示した例では、リングR1の2番目のノードN12は、リングR2の2番目のノードN22と、リングR3のノードN32とそれぞれチャネルで接続されており、リングR2の4番目のノードN24は、リングR1の4番目のノードN14と、リングR3の4番目のノードN34とそれぞれチャネルで接続されている。
 次に、図2に各ノードの構成を示す。
 図示するように、ノードは、ストレージ1とプロセッサ2を備えており、プロセッサ2はストレージ1を用いて他のノードとは独立にデータ処理を行うことができる。
 また、ノードは、他のノードとの間のデータ転送のために、転送制御装置3と、当該ノードに接続しているチャネルを用いたデータ伝送を行う、チャネル毎に設けられたチャネルインタフェース4とを備えている。ただし、転送制御装置3は、プロセッサ2がソフトウエアの実行による実現する機能として、ノードに備えるようにしてもよい。
 ここで、転送制御装置3は、当該ノードに接続している各チャネルとプロセッサ2との各々間のデータの中継を制御する。
 そして、転送制御装置3は、図3に示すように、受信バッファ31、送信バッファ32、重複転送抑止部CHK33を備えている。
 そして、受信バッファ31は、プロセッサ2が他のノードに送信するデータを格納するバッファP(r)、当該ノードと同じリングに含まれている当該リング上の順番が一つ前のノードからチャネルインタフェース4が受信したデータが格納されるバッファRS(r)を備えている。
 ここで、リング上の順番とは、リングに沿ってチャネルのデータの転送方向に進んだときに通るノードの順番であり、図1に示したリングR2であれば、N21の一つ前のノードはN24、一つ後のノードはN22となり、N22の一つ前のノードはN21、一つ後のノードはN23となり、N23の一つ前のノードはN22、一つ後のノードはN24となり、N24の一つ前のノードはN23、一つ後のノードはN21となる。
 また、受信バッファ31は、当該ノードが含まれるリングと異なる他のリングのリング中の順番が同じノードからチャネルインタフェース4が受信したデータが格納される、当該他のリングの数と同数のバッファRi(r)を備えている。
 すなわち、たとえば、図1におけるリングR2の3番目のノードN23であれば、バッファRS(r)にはノードN22から受信したデータが格納される。また、受信バッファ31は、リングR1の3番目のノードN13から受信したデータが格納されるバッファR1(r)と、リングR3の3番目のノードN33から受信したデータが格納されるバッファR3(r)とを備える。
 また、送信バッファ32は、プロセッサ2に送信するデータが格納されるバッファP(s)、当該ノードと同じリングに含まれている当該リング上の順番が一つ後のノードにチャネルインタフェース4を介して送信するデータを格納するバッファRS(s)を備えている。また、送信バッファ32は、当該ノードが含まれるリングと異なる他のリングのリング中の順番が同じノードにチャネルインタフェース4を介して送信するデータを格納する、当該他のリングの数と同数のバッファRi(s)を備えている。
 すなわち、たとえば、図1におけるリングR2の3番目のノードN23であれば、バッファRS(s)にはノードN24に送信するデータが格納される。また、送信バッファ32は、リングR1の3番目のノードN13に送信するデータが格納されるバッファR1(s)と、リングR3の3番目のノードN33に送信するデータが格納されるバッファR3(s)とを備える。
 そして、転送制御装置3は、バッファ間の転送を次のように行う。
 すなわち、受信バッファ31のバッファP(r)にプロセッサ2によって格納されたデータは、送信バッファ32のバッファRS(s)と各バッファRi(s)に転送し、当該ノードと同じリングに含まれている当該リング上の順番が一つ後のノードと、当該ノードが含まれるリングと異なる他の各リングのリング中の順番が同じノードの各々に送信する。
 また、当該ノードと同じリングに含まれている当該リング上の順番が一つ前のノードから受信し、受信バッファ31のバッファRS(r)に格納されたデータは、重複転送抑止部CHK33に転送する。重複転送抑止部CHK33は、転送されたデータが過去に自ノードが発信元となって他ノードに送信したデータであるかどうかを調べ、自ノードが発信元となって他ノードに送信したデータでない場合のみ、当該データを出力する。
 データが過去に自ノードが発信元となって他ノードに送信したデータであるかどうかの判定は、たとえば、発信元においてデータに発信元のノードの識別子を付加して送信し、受信したデータに付加された識別子が自ノードの識別子である場合に、受信したデータを自ノードが発信元となって他ノードに送信したデータとすることにより行うことができる。または、当該判定は、たとえば、データにカウンタ値を付加し、各ノードにおいてデータの送信/転送の度にデータのカウンタ値をインクリメントし、受信したデータのカウント値がリング内のノード数と一致した場合に、受信したデータを自ノードが発信元となって他ノードに送信したデータとすることにより行うこともできる。または、当該判定は、各ノードが同期して当該ノードが発信元となるデータの送信を行うように分散システムを構成した場合には、リング内のノード数をMとして、ノードから自ノードが発信元となるデータの送信を行ってから、M番目に受信したデータを自ノードが発信元となって他ノードに送信したデータとすることにより行うこともできる。
 そして、転送制御装置3は、重複転送抑止部CHK33から出力されたデータを、送信バッファ32のバッファP(s)とバッファRS(s)と各バッファRi(s)に転送し、当該データを、プロセッサ2と、当該ノードと同じリングに含まれている当該リング上の順番が一つ後のノードと、当該ノードが含まれるリングと異なる他の各リングのリング中の順番が同じノードの各々に送信する。
 また、当該ノードが含まれるリングと異なる他の各リングのリング中の順番が同じノードの各々から受信し各Ri(r)に格納されたデータは、送信バッファ32のバッファP(s)に転送し、プロセッサ2に送信する。
 さて、プロセッサ2は、このようにして転送制御装置3から送信されたデータ、すなわち、当該ノードと同じリングに含まれている当該リング上の順番が一つ前のノードから受信したデータのうちの当該プロセッサ2から他のノードに過去に送信していないデータと、当該ノードが含まれるリングと異なる他の各リングのリング中の順番が同じノードの各々から受信したデータを受信し、その処理を行う。
 以下、このような転送制御装置3の動作によって実現されるデータ転送動作について説明する。
 いま、図4aに示すようにリングR2のノードN22においてプロセッサ2から他のノードに転送すべきデータDN22が発生すると、このデータDN22は、ノードN22から、リングR2上のノードN22の次のノードN23と、他のリングのノードN22と順番が同じノードであるリングR1のノードN12とリングR3のノードN32に転送される。そして、ノードN23、ノードN13、ノードN33において、データDN22がプロセッサ2に取り込まれる。
 なお、以下の各図中では、データDN22が転送されたノードを表す各丸四角形を灰色に塗りつぶして示す。
 次に、図4bに示すように、ノードN22からデータDN22の転送を受けたノードN23は、転送されたデータDN22を、リングR2上のノードN23の次のノードN24と、他のリングのノードN23と順番が同じノードであるリングR1のノードN13とリングR3のノードN33に転送する。そして、ノードN24、ノードN13、ノードN33において、データDN22がプロセッサ2に取り込まれる。
 また、次に、図4cに示すように、ノードN23からデータDN22の転送を受けたノードN24は、転送されたデータDN22を、リングR2上のノードN24の次のノードN21と、他のリングのノードN24と順番が同じノードであるリングR1のノードN14とリングR3のノードN34に転送する。そして、ノードN21、ノードN14、ノードN34において、データDN22がプロセッサ2に取り込まれる。
 そして、次に、図5aに示すように、ノードN24からデータDN22の転送を受けたノードN21は、転送されたデータDN22を、リングR2上のノードN21の次のノードN22と、他のリングのノードN21と順番が同じノードであるリングR1のノードN11とリングR3のノードN31に転送する。そして、ノードN11、ノードN31において、データDN22がプロセッサ2に取り込まれる。一方、ノードN22においては、転送されたデータDN22は自身のプロセッサ2が送信したデータであるので、これを廃棄する。
 そして、これにより図5bに示すように、リングR2のノードN22が発信元となったデータDN22は、リングR1、リングR2、リングR3の全てのノードへの転送が完了する。
 次に、図6は、このような分散システムにおいて、全てのノードが同期して同時に自ノードを発信元とするデータを送信した場合の転送のようすを示したものである。
 ここで、図中のDNijは、i番目のリングのj番目のノードが発信元のデータを表す。また、図6aが1回目の転送を、図6bが2回目の転送を、図6cが3回目の転送を、図6dが4回目の転送を表している。
 図示するように、この場合、各ノードから送信された当該ノードが発信元のデータは4回の転送で他の全てのノードへの転送が完了する。すなわち、換言すれば、各ノードは4回の転送で他の全てのノードが発信元のデータを取得することができる。
 また、図示するように、各回の転送において、各データは異なるチャネルを用いて転送されると共に、全てのチャネルがデータの転送に用いられる。したがって、各チャネルを均等かつ効率的に用いて、データの転送が行われる。
 以上、本発明の第1実施形態について説明した。
 ところで、以上の第1実施形態では、プロセッサ2から他の各ノードに転送すべきデータが発生したときに、当該ノードにおいてデータを、他のリングの当該ノードと順番が同じノードに転送するようにしたが、これは、当該データがリングを周回して戻ってきたときに、当該ノードにおいてデータを、他のリングの当該ノードと順番が同じノードに転送するようにしてもよい。
 このように本第1実施形態に係る分散システムの構成によれば、分散システムに含まれる全てのノードをリング状に接続するリング型のネットワークに比べ、データが辿るノード数として表されるホップ数の最大値を小さく抑えることができるので、ノードのデータの全ての他のノードへの転送を完了するまでの時間を短くすることができる。一方で、各ノードを全ての他のノードと直接チャネルで接続するノードをフルコネクト型のネットワークに比べ必要となるチャネル数は充分に少なくて済む。
 また、本第1実施形態によれば、同じリング内のノード間の各チャネルや異なるリングのノード間の各チャネルの負荷を均等化すると共に、各チャネルを効率的に用いることができる。
 したがって、チャネル数を抑制しつつ、ノードのデータの全ての他のノードへの転送を比較的短時間で完了することができる。
 よって、本実施形態によれば、チャネル数を抑制しつつ、ノードのデータの他の全てのノードへの転送を比較的短時間で完了することができる。
 以下、本発明の第2の実施形態について説明する。
 本第2実施形態に係る分散システムは、図1に示した第1実施形態に係る分散システムの構成と同じ構成を備えている。また、本第2実施形態に係る各ノードの構成も、図2に示した第1実施形態に係るノードの構成と同じ構成を備えている。
 また、第2実施形態に係る各ノードの転送制御装置3が備えるバッファも、図3に示した第1実施形態において各ノードの転送制御装置3が備えるバッファと同様である。
 一方、第2実施形態に係る各ノードの転送制御装置3が行うバッファ間の転送動作は、第1実施形態とは異なる。
 すなわち、本第2実施形態では、図7に示すように、転送制御装置3は、受信バッファ31のバッファP(r)にプロセッサ2によって格納されたデータは、送信バッファ32のバッファRS(s)と各バッファRi(s)に転送し、当該ノードと同じリングに含まれている当該リング上の順番が一つ後のノードと、当該ノードが含まれるリングと異なる他の各リングのリング中の順番が同じノードの各々に送信する。
 また、当該ノードと同じリングに含まれている当該リング上の順番が一つ前のノードから受信し、受信バッファ31のバッファRS(r)に格納されたデータは、重複転送抑止部CHK33に転送する。重複転送抑止部CHK33は、転送されたデータが過去に自ノードが発信元となって他ノードに送信したデータや、過去に自ノードが、当該ノードと同じリングに含まれている当該リング上の順番が一つ後のノードに転送したデータであるかどうかを調べ、自ノードが発信元となって他ノードに送信したデータや、自ノードが当該ノードと同じリングに含まれている当該リング上の順番が一つ後のノードに転送したデータでない場合のみ、当該データを出力する。
 そして、転送制御装置3は、重複転送抑止部CHK33から出力されたデータを、送信バッファ32のバッファP(s)とバッファRS(s)に転送し、当該データを、プロセッサ2と、当該ノードと同じリングに含まれている当該リング上の順番が一つ後のノードに送信する。
 また、当該ノードが含まれるリングと異なる他の各リングのリング中の順番が同じノードの各々から受信し各Ri(r)に格納されたデータは、送信バッファ32のバッファP(s)とバッファRS(s)に転送し、プロセッサ2と、当該ノードと同じリングに含まれている当該リング上の順番が一つ後のノードとに送信する。
 さて、プロセッサ2は、このようにして転送制御装置3から送信されたデータ、すなわち、当該ノードと同じリングに含まれている当該リング上の順番が一つ前のノードから受信したデータのうちの当該プロセッサ2から他のノードに過去に送信していないデータと、当該ノードが含まれるリングと異なる他の各リングのリング中の順番が同じノードの各々から受信したデータを受信し、その処理を行う。
 以下、このような転送制御装置3の動作によって実現されるデータ転送動作について説明する。
 いま、図8aに示すようにリングR2のノードN22においてプロセッサ2から他のノードに転送すべきデータDN22が発生すると、このデータDN22は、ノードN22から、リングR2上のノードN22の次のノードN23と、他のリングのノードN22と順番が同じノードであるリングR1のノードN12とリングR3のノードN32に転送される。そして、ノードN23、ノードN13、ノードN33において、データDN22がプロセッサ2に取り込まれる。
 なお、以下の各図中では、データDN22が転送されたノードを表す各丸四角形を灰色に塗りつぶして示す。
 次に、図8bに示すように、ノードN22からデータDN22の転送を受けたノードN23は、転送されたデータDN22を、リングR2上のノードN23の次のノードN24に転送する。また、ノードN22からデータDN22の転送を受けたノードN12は、リングR1上のノードN12の次のノードN13に、転送されたデータDN22を転送し、ノードN22からデータDN22の転送を受けたノードN32は、リングR3上のノードN32の次のノードN33に、転送されたデータDN22を転送する。そして、ノードN24、ノードN13、ノードN33において、データDN22がプロセッサ2に取り込まれる。
 また、次に、図8cに示すように、ノードN23からデータDN22の転送を受けたノードN24は、転送されたデータDN22を、リングR2上のノードN24の次のノードN21に転送する。また、ノードN12からデータDN22の転送を受けたノードN13は、リングR1上のノードN13の次のノードN14に、転送されたデータDN22を転送し、ノードN32からデータDN22の転送を受けたノードN33は、リングR3上のノードN33の次のノードN34に、転送されたデータDN22を転送する。そして、ノードN21、ノードN14、ノードN34において、データDN22がプロセッサ2に取り込まれる。
 また、次に、図9aに示すように、ノードN24からデータDN22の転送を受けたノードN21は、転送されたデータDN22を、リングR2上のノードN21の次のノードN22に転送する。また、ノードN13からデータDN22の転送を受けたノードN14は、リングR1上のノードN14の次のノードN11に、転送されたデータDN22を転送し、ノードN33からデータDN22の転送を受けたノードN34は、リングR3上のノードN34の次のノードN31に、転送されたデータDN22を転送する。
 そして、ノードN11、ノードN31において、データDN22がプロセッサ2に取り込まれる。一方、ノードN22においては、転送されたデータDN22は自身のプロセッサ2が送信したデータであるので、これを廃棄する。
 そして、これにより図9bに示すように、リングR2のノードN22が発信元となったデータDN22は、リングR1、リングR2、リングR3の全てのノードへの転送が完了する。
 このように本第2実施形態に係る分散システムの構成によっても、分散システムに含まれる全てのノードをリング状に接続するリング型のネットワークに比べ、データが辿るノード数として表されるホップ数の最大値を小さく抑えることができるので、ノードのデータの全ての他のノードへの転送を完了するまでの時間を短くすることができる。一方で、各ノードを全ての他のノードと直接チャネルで接続するノードをフルコネクト型のネットワークに比べ必要となるチャネル数は充分に少なくて済む。
 よって、本第2実施形態によれば、チャネル数を抑制しつつ、ノードのデータの他の全てのノードへの転送を比較的短時間で完了することができる。
 ただし、本第2実施形態は、第1実施形態に比べ各リング内のチャネルの負荷が増大する。そこで、本第2実施形態においては各リング内のチャネルを多重化等して当該負荷を分散するようにしてもよい。
 以上、本発明の第2実施形態について説明した。
 ところで、以上の第1実施形態、第2実施形態では、リング間のノードの接続を、i番目のリングのj番目のノードを、i番目のリング以外の各リングのj番目のノードとそれぞれ双方向のチャネルで接続することにより行ったが、リング間のノードの接続は、i番目のリングの各ノードが送信側となるチャネルが、各他のリングの相互に異なるノードに受信側のチャネルとして接続される形態であれば、任意の接続形態でリング間のノードの接続は行ってよい。
 すなわち、たとえば、第1実施形態、第2実施形態におけるリング間の接続は、図10aに示すように、i番目のリングのj番目のノードが送信側となる単方向のチャネルを、それぞれi番目のリング以外の各リングのj+1番目のノードに、当該i番目のリング以外の各リングのj+1番目のノードの受信側の単方向のチャネルとなるように、接続することにより行うようにしてもよい。ただし、Zを各リングのノード数として、i番目のリングのZ番目のノードが送信側となる単方向のチャネルは、i番目のリング以外の各リングの1番目のノードに、当該i番目のリング以外の各リングの1番目のノードの受信側の単方向のチャネルとなるように接続する。
 ここで、図10b中の太線は、第1実施形態においてリング間の接続を図10aのように行った場合の、リングR2のノードN22において発生したデータの転送ルートを示しており、図中の#xのxは、データのx回目のノード間転送であることを表している。
 図10bと、図4、5との比較より理解されるように、このようなリング間の接続によっても、第1実施形態と同じ転送回数(図10b、図4、5の場合は4回)で、任意のノードからデータを他の全てのノードに転送することができる。
 次に、図10c中の太線は、第2実施形態においてリング間の接続を図10aのように行った場合の、リングR2のノードN22において発生したデータの転送ルートを示しており、図中の#xのxは、データのx回目のノード間転送であることを表している。
 図10cと、図8-図9との比較より理解されるように、このようなリング間の接続によっても、第2実施形態と同じ転送回数(図10c、図8-図9の場合は4回)で、任意のノードからデータを他の全てのノードに転送することができる。
 ところで、以上の第1、第2実施形態に係る分散システムは、分散システムを複数の分散システムに分割可能に構成してもよい。
 すなわち、第1実施形態、第2実施形態に係る分散システムのリング間の接続を図1に示した接続とした場合には、たとえば、図11aに示したように、スイッチ100を設け、ネットワークの構成をスイッチ100の設定によって変更可能としてよい。
 図示したスイッチ100は、図1に示した分散システムの構成においてノードN13の受信チャネルを、ノードN12の送信チャネルと、ノードN14の送信チャネルに選択的に接続可能とすると共に、ノードN11の受信チャネルを、ノードN14の送信チャネルと、ノードN12の送信チャネルに選択的に接続可能とすると共に、ノードN23の受信チャネルを、ノードN22の送信チャネルと、ノードN24の送信チャネルに選択的に接続可能とすると共に、ノードN21の受信チャネルを、ノードN24の送信チャネルと、ノードN22の送信チャネルに選択的に接続可能とすると共に、ノードN33の受信チャネルを、ノードN32の送信チャネルと、ノードN34の送信チャネルに選択的に接続可能とすると共に、ノードN31の受信チャネルを、ノードN34の送信チャネルと、ノードN32の送信チャネルに選択的に接続可能としたものである。
 このようなスイッチ100によって、図11aに示すように、ノードN13の受信チャネルを、ノードN12の送信チャネルに接続し、ノードN11の受信チャネルを、ノードN14の送信チャネルに接続し、ノードN23の受信チャネルをノードN22の送信チャネルに接続し、ノードN21の受信チャネルをノードN24の送信チャネルに接続し、ノードN33の受信チャネルを、ノードN32の送信チャネルに接続し、ノードN31の受信チャネルを、ノードN34の送信チャネルに接続すれば、図1に示した分散システムと同じ、ノード数4のリングを3つ備えた一つの分散システムを構成することができる。
 一方、図11bに示すように、ノードN13の受信チャネルを、ノードN14の送信チャネルに接続し、ノードN11の受信チャネルを、ノードN12の送信チャネルに接続し、ノードN23の受信チャネルをノードN24の送信チャネルに接続し、ノードN21の受信チャネルをノードN22の送信チャネルに接続し、ノードN33の受信チャネルを、ノードN34の送信チャネルに接続し、ノードN31の受信チャネルを、ノードN32の送信チャネルに接続すれば、図11cに示すノード数2のリングを3つ備えた分散システムSYS1と分散システムSYS2の二つの分散システムを構成することができる。
 なお、第1実施形態、第2実施形態に係る分散システムのリング間の接続を、図10aに示したようなi番目のリングのj番目のノードが送信側となる単方向のチャネルを、i番目のリング以外の各リングのj+1番目のノードの受信側の単方向のチャネルとなるようにそれぞれ接続する接続とした場合についても同様に、スイッチ100を設けて、ネットワーク構成をスイッチ100の設定によって変更可能とすることができる。
 すなわち、図12aに、ノード数4のリングを二つ備えた分散システムを例にとり示すように、この場合も、図示するようにスイッチ100を設けることにより、スイッチ100の設定によって、図12aに示すようにノード数4のリングを3つ備えた一つの分散システムを構成したり、図12bに示すようにノード数2のリングを3つ備えた二つの分散システムを構成することができる。
 なお、図12cは、図12bに示すスイッチ100の設定を行ったときのリング間の接続を太線で表したものであり、図12dは図12bに示すスイッチ100の設定を行ったときに構成される二つの分散システムSYS1、SYS2を表している。
 以下、本発明の第3の実施形態について説明する。
 図13に、本第3実施形態に係る分散システムの構成を示す。
 図示するように、分散システムは、上記第1実施形態と同様に、複数のリング (Ri)を有し、各リングiは、それぞれ同数のノード(Nij)を含んでいる。
 そして、各リング中において、当該リングに含まれる各ノードをチャネルでリング状に順次接続したリング型のネットワークが形成されている。
 そして、i番目のリングのj番目のノードは、i+1番目のリングのj番目のノードと双方向のチャネルで接続されている。
 すなわち、たとえば、図示した例では、リングR1の2番目のノードN12は、リングR1の次のリングR2の2番目のノードN22とチャネルで接続されており、リングR2の2番目のノードN22は、リングR2の次のリングR3の2番目のノードN32とチャネルで接続されている。
 次に、本第3実施形態に係るノードの構成は、図2に示した上記第1実施形態に係る構成と同じ構成を備えている。
 ただし、本第3実施形態に係る転送制御装置3は、図3に示した上記第1実施形態に係る構成に代えて、図14に示すバッファ構成を備えている。
 すなわち、本第3実施形態に係る転送制御装置3は、図2に示した上記第1実施形態に係る構成と同様に受信バッファ31、送信バッファ32、重複転送抑止部CHK33を備えている。
 ただし、第1実施形態と異なり、受信バッファ31は、プロセッサ2が他のノードに送信するデータを格納するバッファP(r)、当該ノードと同じリングに含まれている当該リング上の順番が一つ前のノードからチャネルインタフェース4が受信したデータが格納されるバッファRS(r)、当該ノードが含まれるリングの一つ前の順番のリングのリング中の順番が同じノードからチャネルインタフェース4が受信したデータが格納されるバッファRP(r)、当該ノードが含まれるリングの一つ後の順番のリングのリング中の順番が同じノードからチャネルインタフェース4が受信したデータが格納されるバッファRN(r)を備えている。
 すなわち、たとえば、図13におけるリングR2の3番目のノードN23であれば、バッファRS(r)にはノードN22から受信したデータが格納される。また、バッファRP(r)には、リングR1の3番目のノードN13から受信したデータが格納され、バッファRN(r)には、リングR3の3番目のノードN33から受信したデータが格納される。
 また、送信バッファ32は、プロセッサ2に送信するデータが格納するバッファP(s)、当該ノードと同じリングに含まれている当該リング上の順番が一つ後のノードにチャネルインタフェース4を介して送信するデータを格納するバッファRS(s)、当該ノードが含まれるリングの一つ前の順番のリングのリング中の順番が同じノードにチャネルインタフェース4を介して送信するデータが格納されるバッファRP(s)、当該ノードが含まれるリングの一つ後の順番のリングのリング中の順番が同じノードにチャネルインタフェース4を介して送信するデータが格納されるバッファRN(s)を備えている。
 すなわち、たとえば、図13におけるリングR2の3番目のノードN23であれば、バッファRS(s)にはノードN24に送信するデータが格納される。また、バッファRP(s)には、リングR1の3番目のノードN13に送信するデータが格納され、バッファRN(s)には、リングR3の3番目のノードN33に送信するデータが格納される。
 そして、転送制御装置3は、バッファ間の転送を次のように行う。
 すなわち、受信バッファ31のバッファP(r)にプロセッサ2によって格納されたデータは、送信バッファ32のバッファRS(s)とバッファRP(s)とバッファRN(s)に転送し、当該ノードと同じリングに含まれている当該リング上の順番が一つ後のノードと、当該ノードが含まれるリングの一つ前の順番のリングのリング中の順番が同じノードと、当該ノードが含まれるリングの一つ後の順番のリングのリング中の順番が同じノードに送信する。
 また、当該ノードと同じリングに含まれている当該リング上の順番が一つ前のノードから受信し、受信バッファ31のバッファRS(r)に格納されたデータは、重複転送抑止部CHK33に転送する。重複転送抑止部CHK33は、転送されたデータが過去に自ノードが発信元となって他ノードに送信したデータであるかどうかを調べ、自ノードが発信元となって他ノードに送信したデータでない場合のみ、当該データを出力する。
 そして、転送制御装置3は、重複転送抑止部CHK33から出力されたデータを、送信バッファ32のバッファP(s)とバッファRS(s)とバッファRP(s)とバッファRN(s)に転送し、当該データを、プロセッサ2と、当該ノードと同じリングに含まれている当該リング上の順番が一つ後のノードと、当該ノードが含まれるリングの一つ前の順番のリングのリング中の順番が同じノードと、当該ノードが含まれるリングの一つ後の順番のリングのリング中の順番が同じノードに送信する。
 また、当該ノードが含まれるリングの一つ前の順番のリングのリング中の順番が同じノードから受信しバッファRP(r)に格納されたデータは、送信バッファ32のバッファP(s)と、バッファRN(s)に転送し、プロセッサ2に送信すると共に、当該ノードが含まれるリングの一つ後の順番のリングのリング中の順番が同じノードに送信する。
 また、当該ノードが含まれるリングの一つ後の順番のリングのリング中の順番が同じノードから受信しバッファRN(r)に格納されたデータは、送信バッファ32のバッファP(s)と、バッファRP(s)に転送し、プロセッサ2に送信すると共に、当該ノードが含まれるリングの一つ前の順番のリングのリング中の順番が同じノードに送信する。
 さて、プロセッサ2は、このようにして転送制御装置3から送信されたデータ、すなわち、当該ノードと同じリングに含まれている当該リング上の順番が一つ前のノードから受信したデータのうちの当該プロセッサ2から他のノードに過去に送信していないデータと、当該ノードが含まれるリングの一つ前の順番のリングのリング中の順番が同じノードから受信したデータと、当該ノードが含まれるリングの一つ後の順番のリングのリング中の順番が同じノードから受信したデータを受信し、その処理を行う。
 以下、このような転送制御装置3の動作によって実現されるデータ転送動作について説明する。
 いま、図15aに示すようにリングR1のノードN12においてプロセッサ2から他のノードに転送すべきデータDN12が発生すると、このデータDN12は、ノードN12から、リングR1上のノードN12の次のノードN13と、リングR1の次のリングR2のノードN12と順番が同じノードであるノードN22に転送される。そして、ノードN13、ノードN22において、データDN12がプロセッサ2に取り込まれる。
 なお、以下の各図中では、データDN12が転送されたノードを表す各丸四角形を灰色に塗りつぶして示す。
 次に、図15bに示すように、ノードN12からデータDN12の転送を受けたノードN13は、転送されたデータDN12を、リングR1上のノードN13の次のノードN14と、リングR1の次のリングR2のノードN13と順番が同じノードであるノードN23に転送する。また、ノードN12からデータDN12の転送を受けたリングR2のノードN22は、転送されたデータDN12を、リングR2の次のリングR3のノードN22と順番が同じノードであるノードN32に転送する。
 そして、ノードN14、ノードN23、ノードN32において、データDN12がプロセッサ2に取り込まれる。
 次に、図15cに示すように、ノードN13からデータDN12の転送を受けたノードN14は、転送されたデータDN12を、リングR1上のノードN14の次のノードN11と、リングR1の次のリングR2のノードN14と順番が同じノードであるノードN24に転送する。また、ノードN13からデータDN12の転送を受けたリングR2のノードN23は、転送されたデータDN12を、リングR2の次のリングR3のノードN23と順番が同じノードであるノードN33に転送する。
 そして、ノードN11、ノードN24、ノードN33において、データDN12がプロセッサ2に取り込まれる。
 次に、図16aに示すように、ノードN14からデータDN12の転送を受けたノードN11は、転送されたデータDN12を、リングR1上のノードN11の次のノードN12と、リングR1の次のリングR2のノードN11と順番が同じノードであるノードN21に転送する。また、ノードN14からデータDN12の転送を受けたリングR2のノードN24は、転送されたデータDN12を、リングR2の次のリングR3のノードN24と順番が同じノードであるノードN34に転送する。
 そして、ノードN21、ノードN34において、データDN12がプロセッサ2に取り込まれる。一方、ノードN12においては、転送されたデータDN12は自身のプロセッサ2が送信したデータであるので、これを廃棄する。
 次に、図16bに示すように、また、ノードN11からデータDN12の転送を受けたリングR2のノードN21は、転送されたデータDN12を、リングR2の次のリングR3のノードN21と順番が同じノードであるノードN31に転送する。
 そして、これにより図16cに示すように、リングR1のノードN12が発信元となったデータDN12は、リングR1、リングR2、リングR3の全てのノードへの転送が完了する。
 次に、図17aに示すようにリングR2のノードN22においてプロセッサ2から他のノードに転送すべきデータDN22が発生すると、このデータDN22は、ノードN22から、リングR2上のノードN22の次のノードN23と、リングR2の前のリングR1のノードN22と順番が同じノードであるノードN12と、リングR2の次のリングR3のノードN22と順番が同じノードであるノードN32に転送される。そして、ノードN23、ノードN12、ノードN32において、データDN22がプロセッサ2に取り込まれる。
 次に、図17bに示すように、ノードN22からデータDN22の転送を受けたノードN23は、転送されたデータDN22を、リングR2上のノードN23の次のノードN24と、リングR2の前のリングR1のノードN23と順番が同じノードであるノードN13と、リングR2の次のリングR3のノードN23と順番が同じノードであるノードN33に転送される。そして、ノードN24、ノードN13、ノードN33において、データDN22がプロセッサ2に取り込まれる。
 また、次に、図17cに示すように、ノードN23からデータDN22の転送を受けたノードN24は、転送されたデータDN22を、リングR2上のノードN24の次のノードN21と、リングR2の前のリングR1のノードN24と順番が同じノードであるノードN14と、リングR2の次のリングR3のノードN24と順番が同じノードであるノードN34に転送される。そして、ノードN21、ノードN14、ノードN34において、データDN22がプロセッサ2に取り込まれる。
 そして、次に、図18aに示すように、ノードN24からデータDN22の転送を受けたノードN21は、転送されたデータDN22を、リングR2上のノードN21の次のノードN22と、リングR2の前のリングR1のノードN21と順番が同じノードであるノードN11と、リングR2の次のリングR3のノードN21と順番が同じノードであるノードN31に転送される。そして、ノードN11、ノードN31において、データDN22がプロセッサ2に取り込まれる。一方、ノードN22においては、転送されたデータDN22は自身のプロセッサ2が送信したデータであるので、これを廃棄する。
 そして、これにより図18bに示すように、リングR1のノードN12が発信元となったデータDN22は、リングR1、リングR2、リングR3の全てのノードへの転送が完了する。
 以上、本発明の第3実施形態について説明した。
 ところで、以上の第3実施形態では、プロセッサ2から他の各ノードに転送すべきデータが発生したときに、当該ノードにおいてデータを、他のリングの当該ノードに転送するようにしたが、これは、当該データがリングを周回して戻ってきたときに、当該ノードにおいてデータを、他のリングの当該ノードに転送するようにしてもよい。
 以上のような第3実施形態によれば、第1実施形態に比べ、ノードのデータの全ての他のノードへの転送を完了するまでの時間はリング数に応じて長くなるが、第1実施形態に比べ必要となるチャネル数を少なくすることができる。
 以下、本発明の第4の実施形態について説明する。
 本第4実施形態に係る分散システムは、図13に示した第3実施形態に係る分散システムの構成と同じ構成を備えている。また、本第4実施形態に係る各ノードの構成も、第3実施形態に係るノードの構成と同じ構成を備えている。
 また、第4実施形態に係る各ノードの転送制御装置3が備えるバッファも、図14に示した第2実施形態において各ノードの転送制御装置3が備えるバッファと同様である。
 一方、第4実施形態に係る各ノードの転送制御装置3が行うバッファ間の転送動作は、第3実施形態とは異なる。
 すなわち、そして、転送制御装置3は、バッファ間の転送を図19に示すように行う。
 すなわち、受信バッファ31のバッファP(r)にプロセッサ2によって格納されたデータは、送信バッファ32のバッファRS(s)とバッファRP(s)とバッファRN(s)に転送し、当該ノードと同じリングに含まれている当該リング上の順番が一つ後のノードと、当該ノードが含まれるリングの一つ前の順番のリングのリング中の順番が同じノードと、当該ノードが含まれるリングの一つ後の順番のリングのリング中の順番が同じノードに送信する。
 また、当該ノードと同じリングに含まれている当該リング上の順番が一つ前のノードから受信し、受信バッファ31のバッファRS(r)に格納されたデータは、重複転送抑止部CHK33に転送する。重複転送抑止部CHK33は、転送されたデータが過去に自ノードが発信元となって他ノードに送信したデータや、過去に自ノードが、当該ノードと同じリングに含まれている当該リング上の順番が一つ後のノードに転送したデータであるかどうかを調べ、自ノードが発信元となって他ノードに送信したデータや、自ノードが当該ノードと同じリングに含まれている当該リング上の順番が一つ後のノードに転送したデータでない場合のみ、当該データを出力する。
 そして、転送制御装置3は、重複転送抑止部CHK33から出力されたデータを、送信バッファ32のバッファP(s)とバッファRS(s)に転送し、当該データを、プロセッサ2と、当該ノードと同じリングに含まれている当該リング上の順番が一つ後のノードに送信する。
 また、当該ノードが含まれるリングの一つ前の順番のリングのリング中の順番が同じノードから受信しバッファRP(r)に格納されたデータは、送信バッファ32のバッファP(s)と、バッファRN(s)と、バッファRS(s)に転送し、プロセッサ2に送信すると共に、当該ノードが含まれるリングの一つ後の順番のリングのリング中の順番が同じノードと、当該ノードと同じリングに含まれている当該リング上の順番が一つ後のノードに送信する。
 また、当該ノードが含まれるリングの一つ後の順番のリングのリング中の順番が同じノードから受信しバッファRN(r)に格納されたデータは、送信バッファ32のバッファP(s)と、バッファRP(s)と、バッファRS(s)に転送し、プロセッサ2に送信すると共に、当該ノードが含まれるリングの一つ前の順番のリングのリング中の順番が同じノードと、当該ノードと同じリングに含まれている当該リング上の順番が一つ後のノードに送信する。
 さて、プロセッサ2は、このようにして転送制御装置3から送信されたデータ、すなわち、当該ノードと同じリングに含まれている当該リング上の順番が一つ前のノードから受信したデータのうちの当該プロセッサ2から他のノードに過去に送信していないデータと、当該ノードが含まれるリングの一つ前の順番のリングのリング中の順番が同じノードから受信したデータと、当該ノードが含まれるリングの一つ後の順番のリングのリング中の順番が同じノードから受信したデータを受信し、その処理を行う。
 このような転送制御装置3の転送動作によって、本第4実施形態では、図20aにリングR1のノードN12において発生したデータの転送ルートを、図20bにリングR2のノードN22において発生したデータの転送ルートを太線で示したように、各ノードのデータ転送が以下のように行われる。
 すなわち、データの発信元となるノードは、データを当該ノードが含まれるリングの当該ノードの一つ後のノードに送信すると共に、チャネルで接続している他の各リングのノードに送信する。また、各ノードは、チャネルで接続している一つ前のリングのノードから受信したデータを、当該ノードが含まれるリングの当該ノードの一つ後のノードに送信すると共に、チャネルで接続している一つ後のリングのノードに送信する。また、各ノードは、チャネルで接続している一つ後のリングのノードから受信したデータを、当該ノードが含まれるリングの当該ノードの一つ後のノードに送信すると共に、チャネルで接続している一つ前のリングのノードに送信する。また、各ノードは、当該ノードが含まれるリングの当該ノードの一つ前のノードから受信したデータのうちの、当該ノードが発信元でなく、かつ、過去に当該ノードがリングの当該ノードの一つ後のノードに転送していないデータを、当該ノードが含まれるリングの当該ノードの一つ後のノードに転送する。
 ここで、図20a、b中の#xのxは、データのx回目のノード間転送であることを表している。
 図20aと図15-図16との比較、図20bと図17-図18との比較より理解されるように、このように転送を行っても、第3実施形態と同じ転送回数(図20aと図15-図16の場合は5回、図20bと図17-図18の場合は4回)で、任意のノードからデータを他の全てのノードに転送することができる。
 ただし、本第4実施形態は、第3実施形態に比べ各リング内のチャネルの負荷が増大する。そこで、本第4実施形態においては各リング内のチャネルを多重化等して当該負荷を分散するようにしてもよい。
 ところで、以上の第3実施形態、第4実施形態では、リング間のノードの接続を、i番目のリングのj番目のノードを、i番目のリング以外の各リングのj番目のノードとそれぞれ双方向のチャネルで接続することにより行ったが、本第3実施形態、第4実施形態においても、第1、第2実施形態と同様に、リング間のノードの接続は、i番目のリングの各ノードが送信側となるチャネルが、一つ前のリングと一つ後のリングの相互に異なるノードに受信側のチャネルとして接続される形態であれば、任意の接続形態でリング間のノードの接続は行ってよい。
 すなわち、たとえば、第3実施形態、第4実施形態におけるリング間の接続は、図21に示すように、i番目のリングのj番目のノードが送信側となる単方向のチャネルを、i+1番目のリングのj+1番目のノードの受信側の単方向のチャネルとなるようにそれぞれ接続すると共に、i番目のリングのj番目のノードが送信側となる単方向のチャネルを、i-1番目のリングのj+1番目のノードの受信側の単方向のチャネルとなるようにそれぞれ接続することにより行うようにしてもよい。ただし、Zを各リングのノード数として、i番目のリングのZ番目のノードが送信側となる単方向のチャネルは、i+1番目とi-1番目のリングの1番目のノードの受信側の単方向のチャネルとなるように接続する。
 このようなリング間の接続としても、同様にデータ転送を行うことができる。
 また、本第3実施形態、第4実施形態に係る分散システムも、第1、第2実施形態と同様に、スイッチを設けて、分散システムを複数の分散システムに分割可能に構成してもよい。たとえば、図13に示したリング間の接続を行う場合には図11に示したように、図21に示したリング間の接続を行う場合には図12に示したようにスイッチを設ければ、全てのノードで一つの分散システムを構成したり、各リングのノードを分割して二つの分散システムを構成することができる。
 以上、本発明の実施形態について説明した。
 なお、以上の各実施形態の各リングは、双方向のチャネルで複数のノードをリング状に接続して形成するようにしてもよい。ただし、この場合には、転送制御装置3において上述のように行った、同じリングに含まれている当該リング上の順番が一つ前のノードから受信したデータについての処理を、各方向について行うようにする。
 1…ストレージ、2…プロセッサ、3…転送制御装置、4…チャネルインタフェース、31…受信バッファ、32…送信バッファ、33…重複転送抑止部CHK、100…スイッチ。

Claims (15)

  1.  複数のノードをチャネルで接続した分散システムであって、
     n(但し、nは2以上の任意の自然数)個のノードをチャネルでリング状に接続したリングを複数有し、
     各リングに含まれるノードの数は等しく、
     前記各リングの各ノードは、当該ノードを送信側とするチャネルで、当該ノードを含むリング以外の各リングのノードと、同じリングに含まれる各ノードが、当該ノードを送信側とするチャネルで、他のリングの異なるノードにそれぞれ接続されるように、接続されていることを特徴とする分散システム。
  2.  請求項1記載の分散システムであって、
     前記各リングのノードは、当該ノードが含まれるリングの当該リングにおける接続上の順番が当該ノードの前の順番のノードに接続したチャネルから受信したデータを、当該ノードが含まれるリングの当該リングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルと、当該ノードを送信側とするチャネルであって当該ノードが含まれるリング以外の他のリングのノードに接続するチャネルに転送可能な転送制御手段を有することを特徴とする分散システム。
  3.  請求項1記載の分散システムであって、
     前記各リングのノードは、当該ノードが発信元となるデータを、当該ノードが含まれるリングの当該リングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルと、当該ノードを送信側とするチャネルであって当該ノードが含まれるリング以外の他のリングのノードに接続するチャネルに送信すると共に、当該ノードが含まれるリングの当該リングにおける接続上の順番が当該ノードの前の順番のノードに接続するチャネルから受信したデータのうちの、当該ノードが発信元でないデータを、当該ノードが含まれるリングの当該リングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルと、当該ノードを送信側とするチャネルであって当該ノードが含まれるリング以外の他のリングのノードに接続するチャネルに転送する転送制御手段を有することを特徴とする分散システム。
  4.  請求項1記載の分散システムであって、
     前記各リングのノードは、当該ノードが含まれるリングの当該リングにおける接続上の順番が当該ノードの前の順番のノードに接続したチャネルから受信したデータを、当該ノードが含まれるリングの当該リングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルに転送可能であると共に、他のリングのノードに接続したチャネルから受信したデータを当該ノードが含まれるリングの当該リングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルに転送可能な転送制御手段を有することを特徴とする分散システム。
  5.  請求項1記載の分散システムであって、
     前記各リングのノードは、当該ノードが発信元となるデータを、当該ノードが含まれるリングの当該リングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルと、当該ノードを送信側とするチャネルであって当該ノードが含まれるリング以外の他のリングのノードに接続するチャネルに送信し、
     他のリングのノードに接続したチャネルから受信したデータを当該ノードが含まれるリングの当該リングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルに転送し、
     当該ノードが含まれるリングの当該リングにおける接続上の順番が当該ノードの前の順番のノードに接続するチャネルから受信したデータのうちの、当該ノードが発信元でなく、かつ、当該ノードが当該ノードが含まれるリングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルに転送していないデータを、当該ノードが含まれるリングの当該リングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルに転送する転送制御手段を有することを特徴とする分散システム。
  6.  請求項1、2、3、4または5記載の分散システムであって、
     ノードのリングにおける接続上の順番を当該ノードの順番として、各リングのj(但し、jはn以下の任意の自然数)番目のノードは、当該ノードを送信側とするチャネルで、他の各リングのj番目のノードと接続されていることを特徴とする分散システム。
  7.  請求項1、2、3、4、5または6記載の分散システムであって、
     ノードのリングにおける接続上の順番を当該ノードの順番として、各リングのj(但し、jはn未満の任意の自然数)番目のノードは、当該ノードを送信側とするチャネルで、他の各リングのj+1番目のノードと接続され、各リングのn番目のノードは、当該ノードを送信側とするチャネルで、他の各リングの1番目のノードと接続されていることを特徴とする分散システム。
  8.  複数のノードをチャネルで接続した分散システムであって、
     n(但し、nは2以上の任意の自然数)個のノードをチャネルでリング状に接続したm個(但し、mは2以上の任意の自然数)のリングを有し、
     各リングに含まれるノードの数は等しく、
     i(但し、iはm以下の任意の自然数)番目のリングの各ノードは、i-1番目のリングが存在する場合には、当該ノードを送信側とするチャネルで、i-1番目のリングの異なるノードにそれぞれ接続されており、かつ、i+1番目のリングが存在する場合には、当該ノードを送信側とするチャネルで、i+1番目のリングの異なるノードにそれぞれ接続されていることを特徴とする分散システム。
  9.  請求項8記載の分散システムであって、
     前記i番目のリングの各ノードは、
     当該i番目のリングにおける接続上の順番が当該ノードの前の順番のノードに接続したチャネルから受信したデータを、当該i番目のリングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルに転送可能であると共に、i-1番目のリングが存在する場合には、当該データを、当該ノードを送信側とするチャネルであってi-1番目のリングのノードに接続するチャネルに転送可能、かつ、i+1番目のリングが存在する場合には、当該データを、当該ノードを送信側とするチャネルであってi+1番目のリングのノードに接続するチャネルに転送可能、かつ、
     i-1番目のリングのノードに接続したチャネルから受信したデータを、i+1番目のリングが存在する場合には、当該ノードを送信側とするチャネルであってi+1番目のリングのノードに接続するチャネルに転送可能、かつ、i+1番目のリングのノードに接続したチャネルから受信したデータを、i-1番目のリングが存在する場合には、当該ノードを送信側とするチャネルであってi-1番目のリングのノードに接続するチャネルに転送可能な転送制御手段を有することを特徴とする分散システム。
  10.  請求項8記載の分散システムであって、
     前記i番目のリングの各ノードは、
     当該ノードが発信元となるデータを、当該i番目のリングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルに送信すると共に、i-1番目のリングが存在する場合には、当該データを、当該ノードを送信側とするチャネルであってi-1番目のリングのノードに接続するチャネルに転送し、かつ、i+1番目のリングが存在する場合には、当該データを、当該ノードを送信側とするチャネルであってi+1番目のリングのノードに接続するチャネルに転送し、
     当該i番目のリングにおける接続上の順番が当該ノードの前の順番のノードに接続したチャネルから受信したデータのうちの当該ノードが発信元でないデータを、当該i番目のリングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルに転送すると共に、i-1番目のリングが存在する場合には、当該データを、当該ノードを送信側とするチャネルであってi-1番目のリングのノードに接続するチャネルに転送し、かつ、i+1番目のリングが存在する場合には、当該データを、当該ノードを送信側とするチャネルであってi+1番目のリングのノードに接続するチャネルに転送し、
     i-1番目のリングのノードに接続したチャネルから受信したデータを、i+1番目のリングが存在する場合には、当該ノードを送信側とするチャネルであってi+1番目のリングのノードに接続するチャネルに転送し、i+1番目のリングのノードに接続したチャネルから受信したデータを、i-1番目のリングが存在する場合には、当該ノードを送信側とするチャネルであってi-1番目のリングのノードに接続するチャネルに転送する転送制御手段を有することを特徴とする分散システム。
  11.  請求項8記載の分散システムであって、
     前記i番目のリングの各ノードは、
     当該i番目のリングにおける接続上の順番が当該ノードの前の順番のノードに接続したチャネルから受信したデータを、i番目のリングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルに転送可能であり、
     i-1番目のリングのノードに接続したチャネルから受信したデータを、当該i番目のリングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルに転送可能であると共に、i+1番目のリングが存在する場合には、当該ノードを送信側とするチャネルであってi+1番目のリングのノードに接続するチャネルに転送可能であり、
     i+1番目のリングのノードに接続したチャネルから受信したデータを、当該i番目のリングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルに転送可能であると共に、i-1番目のリングが存在する場合には、当該ノードを送信側とするチャネルであってi-1番目のリングのノードに接続するチャネルに転送可能な転送制御手段を有することを特徴とする分散システム。
  12.  請求項8記載の分散システムであって、
     前記i番目のリングの各ノードは、
     当該ノードが発信元となるデータを、i番目のリングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルに送信すると共に、i-1番目のリングが存在する場合には、当該データを、当該ノードを送信側とするチャネルであってi-1番目のリングのノードに接続するチャネルに転送し、かつ、i+1番目のリングが存在する場合には、当該データを、当該ノードを送信側とするチャネルであってi+1番目のリングのノードに接続するチャネルに転送し、
     i-1番目のリングのノードに接続したチャネルから受信したデータを、当該i番目のリングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルに転送すると共に、i+1番目のリングが存在する場合には、当該ノードを送信側とするチャネルであってi+1番目のリングのノードに接続するチャネルに転送し、
     i+1番目のリングのノードに接続したチャネルから受信したデータを、当該i番目のリングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルに転送すると共に、i-1番目のリングが存在する場合には、当該ノードを送信側とするチャネルであってi-1番目のリングのノードに接続するチャネルに転送し、
     当該i番目のリングにおける接続上の順番が当該ノードの前の順番のノードに接続したチャネルから受信したデータのうちの当該ノードが発信元でなく、かつ、当該ノードが当該i番目のリングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルに転送していないデータを、当該i番目のリングにおける接続上の順番が当該ノードの次の順番のノードに接続するチャネルに転送する転送制御手段を有することを特徴とする分散システム。
  13.  請求項8、9、10、11または12記載の分散システムであって、
     ノードのリングにおける接続上の順番を当該ノードの順番として、i(但し、iはm以下の任意の自然数)番目のリングのj(但し、jはn以下の任意の自然数)番目のノードは、i-1番目のリングが存在する場合には、当該ノードを送信側とするチャネルで、i-1番目のリングのj番目のノードに接続されており、かつ、i+1番目のリングが存在する場合には、当該ノードを送信側とするチャネルで、i+1番目のリングのj番目のノードに接続されていることを特徴とする分散システム。
  14.  請求項8、9、10、11または12記載の分散システムであって、
     ノードのリングにおける接続上の順番を当該ノードの順番として、i番目のリングのj(但し、jはn未満の任意の自然数)番目のノードは、i-1番目のリングが存在する場合には、当該ノードを送信側とするチャネルで、i-1番目のリングのj+1番目のノードと接続されると共に、i番目のリングのn番目のノードは、当該ノードを送信側とするチャネルで、i-1番目のリングの1番目のノードと接続されており、
     かつ、i番目のリングのj番目のノードは、i+1番目のリングが存在する場合には、当該ノードを送信側とするチャネルで、i+1番目のリングのj+1番目のノードと接続され、i番目のリングのn番目のノードは、当該ノードを送信側とするチャネルで、i+1番目のリングの1番目のノードと接続されていることを特徴とする分散システム。
  15.  請求項1、2、3、4、5、6、7、8、9、10、11、12、13または14記載の分散システムであって、
     当該分散システムが、当該分散システムよりも各リングに含まれるノード数の少ない複数の請求項1、2、3、4、5、6、7、8、9、10、11、12、13または14記載の分散システムに分割されるように前記チャネルの接続を変更するスイッチを有することを特徴とする分散システム。
PCT/JP2017/041159 2016-11-28 2017-11-15 分散システム WO2018097015A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018552529A JPWO2018097015A1 (ja) 2016-11-28 2017-11-15 分散システム
US16/464,677 US20190347241A1 (en) 2016-11-28 2017-11-15 Distributed system
CN201780068924.7A CN109937409A (zh) 2016-11-28 2017-11-15 分布式系统

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016230213 2016-11-28
JP2016-230213 2016-11-28

Publications (1)

Publication Number Publication Date
WO2018097015A1 true WO2018097015A1 (ja) 2018-05-31

Family

ID=62195072

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/041159 WO2018097015A1 (ja) 2016-11-28 2017-11-15 分散システム

Country Status (4)

Country Link
US (1) US20190347241A1 (ja)
JP (1) JPWO2018097015A1 (ja)
CN (1) CN109937409A (ja)
WO (1) WO2018097015A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11520640B2 (en) * 2020-01-30 2022-12-06 Alibaba Group Holding Limited Efficient and more advanced implementation of ring-AllReduce algorithm for distributed parallel deep learning

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03102455A (ja) * 1989-09-18 1991-04-26 Fujitsu Ltd 並列計算機を構成する計算機ノード
JPH06259583A (ja) * 1993-03-10 1994-09-16 Sharp Corp データ駆動型プロセッサの接続方法
JP2006215816A (ja) * 2005-02-03 2006-08-17 Fujitsu Ltd 情報処理システムおよび情報処理システムの制御方法
WO2009139024A1 (ja) * 2008-05-15 2009-11-19 富士通株式会社 コンピュータを相互接続するネットワーク
JP2011008541A (ja) * 2009-06-25 2011-01-13 Canon Inc データ処理装置、データ処理方法およびプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100555976C (zh) * 2006-02-24 2009-10-28 阿拉克斯拉网络株式会社 环形网络和主节点
US20090125637A1 (en) * 2007-11-09 2009-05-14 Nokia Corporation Method, Apparatus and Computer Program Product for Providing Data Management in a P2P Network
JP5195933B2 (ja) * 2009-01-30 2013-05-15 富士通株式会社 情報処理システム、情報処理装置、情報処理装置の制御方法、情報処理装置の制御プログラム及びコンピュータ読み取り可能な記録媒体
JP2010218364A (ja) * 2009-03-18 2010-09-30 Fujitsu Ltd 情報処理システム、通信制御装置および方法
CN104662525B (zh) * 2012-09-24 2017-05-03 富士通株式会社 并行计算机、节点装置以及并行计算机的控制方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03102455A (ja) * 1989-09-18 1991-04-26 Fujitsu Ltd 並列計算機を構成する計算機ノード
JPH06259583A (ja) * 1993-03-10 1994-09-16 Sharp Corp データ駆動型プロセッサの接続方法
JP2006215816A (ja) * 2005-02-03 2006-08-17 Fujitsu Ltd 情報処理システムおよび情報処理システムの制御方法
WO2009139024A1 (ja) * 2008-05-15 2009-11-19 富士通株式会社 コンピュータを相互接続するネットワーク
JP2011008541A (ja) * 2009-06-25 2011-01-13 Canon Inc データ処理装置、データ処理方法およびプログラム

Also Published As

Publication number Publication date
US20190347241A1 (en) 2019-11-14
JPWO2018097015A1 (ja) 2019-10-17
CN109937409A (zh) 2019-06-25

Similar Documents

Publication Publication Date Title
US11461617B2 (en) Neural network device
US5461614A (en) Method and a device for resequencing
JP2016015750A (ja) ネットワークトラフィック減少方法
WO2015177902A1 (ja) 中継装置
CZ283783B6 (cs) Seriově vázaný komunikační systém
JP5821624B2 (ja) 通信制御装置、並列計算機システム及び通信制御方法
JP2008017160A (ja) パケット転送装置
JP6064989B2 (ja) 制御装置、通信システム、ノード制御方法及びプログラム
WO2018097015A1 (ja) 分散システム
CN106936732B (zh) 一种基于反馈和逆向传输机制的负载均衡结构实现方法
JP5287759B2 (ja) ネットワークシステム及び経路検索方法
JP2005045626A (ja) データ転送システム及びそれに用いるマルチキャスト転送方法
JP2007116350A (ja) 負荷分散装置
US8792514B2 (en) Packet switching system and method
JP6437175B1 (ja) ネットワーク管理システムおよびネットワーク管理方法
CN108737265A (zh) 控制器协调系统
KR960027648A (ko) 장애 허용 망 구조
JP2007013511A (ja) パケット通信システムおよびパケット中継装置
US7792029B2 (en) Network data transmission based on predefined receive times
JP6219233B2 (ja) 無瞬断切替装置および無瞬断切替方法
EP3379865B1 (en) Method for scheduling transmissions in a meshed wireless network
JP6312196B2 (ja) 伝送装置の終端手段、伝送装置、伝送方法および終端手段のプログラム
US20160373369A1 (en) Data transfer via a communication device
MXPA04012475A (es) Aparato enrutador de transmision linealmente expansible.
JP6572539B2 (ja) 時刻同期装置及び通信ネットワーク装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17874802

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2018552529

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17874802

Country of ref document: EP

Kind code of ref document: A1