WO2010125859A1 - ネットワークスイッチ、経路設定方法、プログラムおよび並列計算機システム - Google Patents

ネットワークスイッチ、経路設定方法、プログラムおよび並列計算機システム Download PDF

Info

Publication number
WO2010125859A1
WO2010125859A1 PCT/JP2010/053993 JP2010053993W WO2010125859A1 WO 2010125859 A1 WO2010125859 A1 WO 2010125859A1 JP 2010053993 W JP2010053993 W JP 2010053993W WO 2010125859 A1 WO2010125859 A1 WO 2010125859A1
Authority
WO
WIPO (PCT)
Prior art keywords
multicast
route setting
network switch
output
control information
Prior art date
Application number
PCT/JP2010/053993
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 US13/258,892 priority Critical patent/US8792488B2/en
Priority to JP2011511346A priority patent/JP5435024B2/ja
Publication of WO2010125859A1 publication Critical patent/WO2010125859A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/254Centralised controller, i.e. arbitration or scheduling

Definitions

  • a predetermined purpose can be achieved by transmitting the packet from the transfer source calculation node to each of the different transfer destination calculation nodes.
  • the interconnection network has a function of copying a packet to be transferred and transmitting it to a plurality of calculation nodes, the load imposed on the interconnection network by the transfer calculation node is reduced, and the data transfer The data transfer time required for this can be shortened.
  • the function of transmitting the same data from one computing node to a plurality of computing nodes is called a multicast communication function.
  • MPI_Bcast defined by MPI is a function for sending data held by a process to all processes included in the same communicator. This communicator may specify a set of processes for the entire system, but may also specify a subset of processes. “MPI_Allgather” is a function that sends specified data from any process in the communicator to all processes included in the same communicator.
  • Non-Patent Document 1 For example, as shown in FIG. 14, multicast packets reciprocate between the network switch 1100-1 and the network switch 1200. There is a problem that the network cannot be used efficiently because the network goes through the upstream and downstream twice.
  • a network switch includes a plurality of input ports and a plurality of output ports respectively associated with the input ports, and outputs a multicast packet from the output port.
  • a multicast control information holding unit for holding multicast control information, which is information for designating an output port for outputting the multicast packet from the plurality of output ports, and the multicast control information holding unit.
  • a multicast control unit configured to set a transfer route for setting a transfer route of the packet, and the multicast control unit receives the route setting command for instructing the transfer route setting to the network switch.
  • the interconnection network 2 includes a plurality of network switches 21-1 to 21-4, 22.
  • the form of the interconnection network 2 is arbitrary, and may be a multistage interconnection network, for example.
  • the interconnection network 2 is a tree structure network.
  • each of the calculation nodes 11-1 to 11-4, 12-1 to 12-4, 13-1 to 13-4, and 14-1 to 14-4 receives a multicast packet transmitted to a plurality of specific destinations. Generate.
  • each of the calculation nodes stores group identification information of a process group to which a process operating on the calculation node belongs.
  • the group identification information may be arbitrary as long as it is information that can uniquely identify the process group.
  • each input port and each output port of each of the network switches 21-1 to 21-4 and 22 are associated with each other on a one-to-one basis.
  • numbers 1 to 5 are assigned and numbers 1 to 5 are assigned to the output ports will be described.
  • the first input port corresponds to the first output port.
  • a general method may be used for associating the input port with the output port.
  • the output buffer units 202-1 to 202-5 are connected to the output ports O1 to O5 included in the multicast control unit 205 shown in FIG. 4 in a one-to-one correspondence.
  • the packet input unit 301 outputs the destination information in the route setting command output from the input buffer units 201-1 to 201-5 to the destination determination unit 308.
  • the packet input unit 301 outputs the command information “11” and the multicast ID included in the multicast packet output from the input buffer units 201-1 to 201-5 to the information management unit 305.
  • the packet output unit 302 uses the multicast control information 3051 indicating the output port for outputting the multicast packet output from the information management unit 305, and sends the setting completion notification output from the completion notification generation unit 307 to each of the setting completion notifications.
  • the data is output to the output buffer units 202-1 to 202-5. That is, the packet output unit 302 transmits a setting completion notification to the destination via the same output port as the output port that outputs the multicast packet.
  • the output port O1 corresponding to the first bit from the left, which is the highest bit of the bit string B0, is set as an output port for outputting a multicast packet.
  • the data structure of the multicast control information 3051 is not limited to a bit string having the same number of bits as the number of output ports O1 to O5 included in the multicast control unit 205, and may be arbitrary.
  • the completion notification generation unit 307 notifies the information management unit 305 that the generation of the setting completion notification has been completed, the information management unit 305 stores the information management unit 305 in association with the same multicast ID output from the completion notification generation unit 307.
  • the output bit string is output to the packet output unit 302.
  • the destination determination unit 308 determines that the destination of the route setting command is not the network switch 21-1 and the destination information.
  • the information management unit 305 is notified.
  • the correction unit 309 changes the bit corresponding to the output port for transferring the multicast packet to the multicast control switch to “0” in the bit string corresponding to the multicast ID assigned to this process group.
  • step 401 If it is determined in step 401 that the received command is a path setting command, in step 402, the packet input unit 301 outputs the path setting command output from the input buffer units 201-1 to 201-5 as a packet output. To the unit 302.
  • the packet input unit 301 also includes command information “01” and a multicast ID included in the route setting commands from the input buffer units 201-1 to 201-5, information indicating the input port that has input the route setting command, and Is output to the information management unit 305.
  • step 404 the information management unit 305 sets the value of the bit corresponding to the output port stored in association with the same switch identification information as the destination information notified from the destination determination unit 308 to “1”. To do. Then, the information management unit 305 notifies the packet output unit 302 of the output port set to “1” (that is, the output port to which the network switch to which the same switch identification information as the destination information is assigned is connected).
  • step 405 the packet output unit 302 outputs a route setting command from the output port notified from the information management unit 305.
  • the process number holding unit 303 has the same multicast ID as the multicast ID output from the packet input unit 301.
  • the number of group affiliation processes stored in association with is output to the comparison unit 306.
  • the packet output unit 302 outputs the setting completion notification from the completion notification generating unit 307 from the output ports O1 to O5 corresponding to the bits set to “1” in the bit string output from the information management unit 305. .
  • a setting completion notification is transmitted to the computation node where each process included in the process group operates.
  • the packet input unit 301 outputs the multicast ID included in the setting completion notification to the process number holding unit 303. Then, the process number holding unit 303 outputs the number of group belonging processes stored in association with the multicast ID to the comparison unit 306.
  • the network switch 21-1 connects the output port stored in association with the same switch identification information as the destination information (that is, the network switch 22 provided with the same switch identification information as the destination information is connected). Output a route setting command from the output port). Thereby, the network switch 21-1 transfers the route setting command transmitted from the calculation node 11-1 to the network switch 22.
  • the network switch 21-1 then stores the number of group belonging processes stored in association with the same multicast ID as the multicast ID included in the setting completion notification, and the same multicast ID as the multicast ID included in the setting completion notification. The number of setting completion processes stored in association with the ID is compared.
  • the network switch 21-1 receives the multicast packet transmitted from the computation node 11-1. Then, the network switch 21-1 identifies the input port I1 to which the multicast packet from the calculation node 11-1 has been input.
  • the multicast packet is output to the output port O3 other than the output port O5 associated with the identified input port I5 among the output ports corresponding to the bits set to “1”.
  • the network switch 21-3 transfers the multicast packet transmitted by the calculation node 11-1 to the calculation node 13-3 connected to the output port O3.
  • the network switch 21-4 receives the multicast packet transferred from the network switch 22, and identifies the input port I5 that has input the multicast packet.
  • the network switch 21-1 receives the multicast packet transmitted from the computation node 11-1. Then, the network switch 21-1 identifies the input port I1 to which the multicast packet from the calculation node 11-1 has been input.
  • the multicast packet is output to output ports (in this example, output ports O2, O3, and O4) other than the output port associated with the identified input port I1 among the output ports corresponding to the bits set in To do.
  • the network switch 21-1 transmits the multicast packet transmitted from the calculation node 11-1 to the calculation node 11-2 connected to the output port O2 and the calculation node 11 connected to the output port O3. -3 and the computation node 11-4 connected to the output port O4.
  • the total amount of multicast packets transmitted on the interconnection network 2 can be suppressed to be smaller.
  • the traffic of packets that are multicasted in the present invention shown in FIG. 12 is smaller than the traffic of packets that are multicasted in the network having the tree structure shown in FIG.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

 複数の入力ポートに対応付けられた複数の出力ポートからマルチキャストパケットを出力するネットワークスイッチにて、マルチキャスト制御部は、経路設定コマンドを受信した入力ポートおよび該経路設定コマンドで指定される宛先へと該経路設定コマンドを転送するために出力する出力ポートを、マルチキャストパケットを出力するポートであると設定を行う。マルチキャスト通信では、先にマルチキャスト部が設定したマルチキャストパケットを出力するとしたポートのうち、マルチキャストパケットを受信した入力ポート以外のポートへと該マルチキャストパケットを転送する。

Description

ネットワークスイッチ、経路設定方法、プログラムおよび並列計算機システム
  本発明は、ネットワークスイッチ、経路設定方法、プログラムおよび並列計算機システムに関する。
 一般的に大規模な問題を高速に処理するために、複数の計算ノードを相互結合網で接続した並列計算機システムが用いられる。この並列計算機システムでは、対象となる問題の処理に付随する演算を複数の計算ノードで分割して行うが、その際、各計算ノード間で演算に必要なデータや演算結果のデータを相互に通信する必要がある。そのため、1つの計算ノードから別の計算ノードに対するデータ転送は、相互結合網を介して行われる。
 1つの計算ノードから複数の計算ノードに同一のデータを含むパケットを送信する場合、転送元の計算ノードから互いに異なる転送先の各計算ノードにパケットをそれぞれ送信すれば、所定の目的を達成できる。しかし、データ転送されるパケットを複製して複数の計算ノードに送信する機能を相互結合網が有しているのであれば、転送元の計算ノードが相互結合網に与える負荷が低減され、データ転送に要するデータ転送時間の短縮が可能になる。このように1つの計算ノードから複数の計算ノードに同一のデータを送信する機能をマルチキャスト通信機能と呼ぶ。
 並列計算機上で実行するプログラムを記述する一般的な方式として知られるMPI(Message Passing Interface)では、互いに通信を行うプロセスの集合をコミュニケータとして管理し、このコミュニケータに含まれるプロセスに対してマルチキャスト通信を行う関数が複数準備されている。
 例えば、MPIが定める「MPI_Bcast」は、あるプロセスが保持するデータを、同一のコミュニケータに含まれる全プロセスに送る関数である。このコミュニケータは、システム全体のプロセスの集合を指定することもあるが、プロセスの部分集合を指定することもある。また、「MPI_Allgather」は、指定されたデータを、コミュニケータ内のいずれかのプロセスから同一のコミュニケータに含まれる全プロセスに送る関数である。
 「MPI_Bcast」や「MPI_Allgather」のようなマルチキャスト通信を行う関数が有する機能は、1対1の通信であるユニキャスト通信を複数回実行することでも実現できるが、相互結合網がパケットを複製して複数の計算ノードに送信する機能を有している場合、相互結合網が有する機能を利用することが望ましい。これによって、データ転送時間の短縮を図り、プログラム全体の実行性能を向上させる観点からである。
 このようなデータ転送時間を低減し、プログラム全体の実行性能を向上させるための各種技術が提案されている。
 例えば、非特許文献1では、マルチキャスト通信機能を備えた相互結合網が開示されている。この方法では、図14に示すネットワークスイッチ1100-1~1100-4とネットワークスイッチ1200とが、ツリー構造のネットワークを構成するように接続されている。また、計算ノード1300-1~1300-4とネットワークスイッチ1100-1とが接続され、計算ノード1400-1~1400-4とネットワークスイッチ1100-2とが接続され、計算ノード1500-1~1500-4とネットワークスイッチ1100-3とが接続され、計算ノード1600-1~1600-4とネットワークスイッチ1100-4とが接続されている。この場合、例えば、計算ノード1300-1から送信されたマルチキャストパケットは、ネットワークスイッチ1100-1を介して、ツリー構造の根(root)にあたるネットワークスイッチ1200のような特定のネットワークスイッチを宛先として送信される。そして、宛先であるネットワークスイッチ1200が、常時、マルチキャストパケットを受信する。そして、ネットワークスイッチ1200が、そのマルチキャストパケットを、マルチキャストパケットを伝送するための通信経路情報に従って、マルチキャスト通信を行うプロセスグループに含まれる各計算ノードへ転送する。
 非特許文献1で開示された技術では、例えば、図14で示すように、ネットワークスイッチ1100-1とネットワークスイッチ1200の間で、マルチキャストパケットが往復しており、ネットワークスイッチ1100-1にはマルチキャストパケットを上りと下りの2度経由していることになり、ネットワークを効率的に使用することができないという問題がある。
 本発明は、上述した課題を解決するネットワークスイッチ、経路設定方法、プログラムおよび並列計算機システムを提供することを目的とする。
 上記課題を解決するために、本発明のネットワークスイッチは、複数の入力ポートと該入力ポートにそれぞれ対応づけられた複数の出力ポートとを有し、前記出力ポートからマルチキャストパケットを出力するネットワークスイッチにおいて、前記複数の出力ポートのうちから前記マルチキャストパケットを出力するための出力ポートを指定する情報であるマルチキャスト制御情報を保持するマルチキャスト制御情報保持部と、前記マルチキャスト制御情報保持部に対して、前記マルチキャストパケットの転送経路を設定する転送経路設定を行うマルチキャスト制御部とを有し、前記マルチキャスト制御部は、当該ネットワークスイッチに対して転送経路設定を指示する経路設定コマンドを受信したときに、該経路設定コマンドを受信した入力ポートに対応する出力ポートおよび、該経路設定コマンドが指定する宛先に届くように該経路設定コマンドを出力する出力ポートを、前記マルチキャストパケットを転送する出力ポートとして設定し、マルチキャストパケットを受信した場合、前記マルチキャスト制御情報保持部が保持するマルチキャスト制御情報が指定する出力ポートのうち、該マルチキャストパケットを受信した入力ポートに対応する出力ポート以外の出力ポートに対して該マルチキャストパケットを出力する。
 上記課題を解決するために、本発明の経路設定方法は、複数の入力ポートと該入力ポートにそれぞれ対応づけられた複数の出力ポートとを有し、前記出力ポートからマルチキャストパケットを出力するネットワークスイッチにおけるマルチキャスト経路設定方法であって、前記複数の出力ポートのうちから前記マルチキャストパケットを出力するための出力ポートを指定する情報であるマルチキャスト制御情報を保持するマルチキャスト制御情報保持処理と、前記マルチキャスト制御情報保持処理に対して、前記マルチキャストパケットの転送経路を設定する転送経路設定を行うマルチキャスト制御処理とを有し、前記マルチキャスト制御処理は、前記ネットワークスイッチに対して転送経路設定を指示する経路設定コマンドをネットワークスイッチが受信したときに、該経路設定コマンドを受信した入力ポートに対応する出力ポートおよび、該経路設定コマンドが指定する宛先に届くように該経路設定コマンドを出力する出力ポートを、前記マルチキャストパケットを転送する出力ポートとして設定し、ネットワークスイッチがマルチキャストパケットを受信した場合に、前記マルチキャスト制御情報保持処理が保持するマルチキャスト制御情報が指定する出力ポートのうち、該マルチキャストパケットを受信した入力ポートに対応する出力ポート以外の出力ポートに対して該マルチキャストパケットを出力するマルチキャスト転送処理を有する。
 また、コンピュータに実行させるプログラムであって、並列計算機システムに実行させるプログラムであって、ネットワークスイッチが具備する複数の入力ポートと該入力ポートにそれぞれ対応づけられた複数の出力ポートのうちからマルチキャストパケットを出力するための出力ポートを指定する情報であるマルチキャスト制御情報を保持するマルチキャスト制御情報保持手順と、前記マルチキャスト制御情報保持手順に対して、前記マルチキャストパケットの転送経路を設定する転送経路設定を行うマルチキャスト制御手順とを並列計算機システムに実行させ、前記マルチキャスト制御手順は、前記ネットワークスイッチに対して転送経路設定を指示する経路設定コマンドをネットワークスイッチが受信したときに、該経路設定コマンドを受信した入力ポートに対応する出力ポートおよび、該経路設定コマンドが指定する宛先に届くように該経路設定コマンドを出力する出力ポートを、前記マルチキャストパケットを転送する出力ポートとして設定し、ネットワークスイッチがマルチキャストパケットを受信した場合に、前記マルチキャスト制御情報保持手順にて保持するマルチキャスト制御情報が指定する出力ポートのうち、該マルチキャストパケットを受信した入力ポートに対応する出力ポート以外の出力ポートに対して該マルチキャストパケットを出力するマルチキャスト転送手順を実行させる。
 本発明によれば、ネットワークを効率的に使用することができる。
本発明の実施形態に従った並列計算機システムの構成を示す図である。 ユニキャストパケットのデータ構造の一例と、経路設定コマンドのデータ構造の一例と、設定完了通知のデータ構造の一例と、マルチキャストパケットのデータ構造の一例とを示す図である。 図1に示したネットワークスイッチの構成を示す図である。 図3に示したマルチキャスト制御部の構成を示す図である。 マルチキャスト制御情報のデータ構造の一例を示す図である。 ネットワークスイッチが、経路設定コマンドや経路設定完了通知を受信したときの動作を示すフローチャートである。 並列計算機システムにて、マルチキャストパケットを出力する出力ポートを設定する場合の動作シーケンスを示す図である。 第1の動作例における、並列計算機システム内で送信される経路設定コマンドの流れを示す図である。 第1の動作例における、並列計算機システム内で送信される設定完了通知の流れを示す図である。 第1の動作例における、並列計算機システム内で送信されるマルチキャストパケットの流れを示す図である。 第2の動作例における、並列計算機システム内で送信される経路設定コマンドの流れを示す図である。 第2の動作例における、並列計算機システム内で送信される設定完了通知の流れを示す図である。 第2の動作例における、並列計算機システム内で送信されるマルチキャストパケットの流れを示す図である。 非特許文献1で開示される、マルチキャスト機能を備えたツリー構造のネットワークにて送信されるマルチキャストパケットの流れの一例を示す図である。
 以下、本発明の実施形態に従った並列計算機システム(ネットワークスイッチ、経路設定方法、プログラムを含む)を説明する。
 まず、本実施形態の並列計算機システムの構成を、図1を参照して説明する。図1に示すように、この並列計算機システムは、計算ノード群1と相互結合網2とから構成されている。
 計算ノード群1に含まれる各計算ノード11-1~11-4,12-1~12-4,13-1~13-4,14-1~14-4は、相互結合網2とそれぞれ接続されている。
 相互結合網2は、複数のネットワークスイッチ21-1~21-4,22から構成されている。相互結合網2の形態は任意であり、例えば、多段結合網でもよい。本実施形態では、相互結合網2は、ツリー構造のネットワークである。
 各ネットワークスイッチ21-1~21-4、22には、各ネットワークスイッチ21-1~21-4、22を固有に識別するための「スイッチ識別情報」がそれぞれ付与されている。
 ネットワークスイッチ21-1~21-4は、計算ノード群1と直接接続されている。また、ネットワークスイッチ22は、各ネットワークスイッチ21-1~21-4と相互に接続されている。ネットワークスイッチ22の数は複数でもよい。
 各計算ノード11-1~11-4,12-1~12-4,13-1~13-4,14-1~14-4は、演算器とメモリとをそれぞれ有する互いに独立した「端末」である。
 各計算ノード11-1~11-4,12-1~12-4,13-1~13-4,14-1~14-4上では、この並列計算機システムが解決する問題に付随する演算処理などを含む所定の処理を実行するプロセスが動作している。本実施形態では、各計算ノード11-1~11-4,12-1~12-4,13-1~13-4,14-1~14-4において、それぞれ1つのプロセスが動作している場合を例に挙げて説明する。
 また、各計算ノード11-1~11-4,12-1~12-4,13-1~13-4,14-1~14-4は、特定の複数の宛先へ送信されるマルチキャストパケットを生成する。
 このマルチキャストパケットには、マルチキャスト通信を実行する計算ノードから構成される「プロセスグループ」に固有に付与された「グループ識別情報」であるマルチキャストIDが含まれる。プロセスグループの例としては、MPI通信にて通信を行うプロセスの集合として扱われるコミュニケータなどが挙げられる。
 また、計算ノードのそれぞれは、当該計算ノード上で動作するプロセスが属するプロセスグループのグループ識別情報を記憶している。グループ識別情報は、プロセスグループを固有に識別可能な情報であれば、任意でよい。
 また、各計算ノード11-1~11-4,12-1~12-4,13-1~13-4,14-1~14-4のうちマルチキャストパケットを送信する計算ノードは、マルチキャストパケットを転送する経路を設定するための「経路設定コマンド」を生成してマルチキャスト制御スイッチへ送信する。
 ここで、「マルチキャスト制御スイッチ」とは、マルチキャストパケットの転送を制御するネットワークスイッチである。
 なお、本実施形態では、各ネットワークスイッチ21-1~21-4、22は、ある計算ノードから送信されてきたマルチキャストパケットを、その送信元の計算ノードを含むプロセスグループのうち送信元以外の計算ノードすべてへ転送する。
 なお、1つのプロセスグループごとに、各ネットワークスイッチ21-1~21-4,22のうちのいずれか1つのネットワークスイッチがマルチキャスト制御スイッチとして指定される。
 本実施形態では、各計算ノード11-1~11-4,12-1~12-4,13-1~13-4,14-1~14-4上で動作するプロセスが、ネットワークスイッチ22をマルチキャスト制御スイッチとして指定した経路設定コマンドを送信する場合を例に挙げて説明する。
 つぎに、本実施形態の並列計算機システムにおいて伝送されるパケットデータについて、図2を参照して説明する。
 本実施形態の並列計算機システムは、図2に示すユニキャストパケット、経路設定コマンド、設定完了通知およびマルチキャストパケットの4種類の「パケットデータ」を扱う。以下では、これらのパケットデータのそれぞれが、ビット数が32ビットのパケットデータである場合を例に挙げて説明する。
 これら4種類のパケットデータは、それぞれのパケットデータの先頭2ビットに割り当てられたコマンド情報により、当該パケットデータがユニキャストパケットと経路設定コマンドと設定完了通知とマルチキャストパケットとのうちのどのパケットデータであるかを識別することができる。
 ユニキャストパケットは、各計算ノード11-1~11-4,12-1~12-4,13-1~13-4,14-1~14-4のうち特定の1計算ノードと他の1計算ノードとの間で行われる1対1の通信にて送受信されるパケットデータである。
 本実施形態では、ユニキャストパケットは、ビット数が2ビットのコマンド情報「00」と、送信先の計算ノードを固有に識別するための4ビットの行先情報と、残り26ビットのデータ部とからなる。
 「経路設定コマンド」は、上述したようにマルチキャストパケットを転送する経路を設定するためのパケットデータである。
 本実施形態では、経路設定コマンドは、ビット数が2ビットのコマンド情報「01」と、ビット数が4ビットのマルチキャストIDと、ビット数が6ビットの「宛先情報」と、ビット数が6ビットの「グループ所属プロセス数」とを含む。
 「宛先情報」は、経路設定コマンドの宛先を示す情報である。本実施形態では、宛先情報として、マルチキャスト制御スイッチであるネットワークスイッチに付与されたスイッチ識別情報と同じ情報が指定される。
 「グループ所属プロセス数」は、ある1つのプロセスグループに含まれる各プロセスが動作する計算ノードの数である。例えば、各計算ノード11-1、11-2、12-1、13-1,14-1上でそれぞれ動作する1つのプロセスが同じプロセスグループに所属する場合、グループ所属プロセス数は「5」である。
 なお、経路設定コマンドは、マルチキャスト通信を行う同じプロセスグループに所属する各計算ノードがそれぞれ生成する。そのため、これらのプロセスを含む各計算ノード11-1~11-4,12-1~12-4,13-1~13-4,14-1~14-4は、経路設定コマンドへ書込むためのマルチキャストIDと、宛先情報と、グループ所属プロセス数とをあらかじめ記憶している。
 「設定完了通知」は、マルチキャストパケットの転送経路の設定が完了した際、マルチキャスト制御スイッチが生成するものであり、当該設定が完了した旨を示す「経路設定コマンドに対する応答信号」である。
 本実施形態では、設定完了通知は、ビット数が2ビットのコマンド情報「10」と、ビット数が4ビットのマルチキャストIDとを含む。
 設定完了通知は、設定完了通知内のマルチキャストIDが付与されたプロセスグループのマルチキャスト通信に関わるネットワークスイッチを介して、そのプロセスグループに含まれる計算ノードへ送信される。
 マルチキャストパケットは、「マルチキャスト通信されるパケットデータ」である。
 本実施形態では、マルチキャストパケットは、ビット数が2ビットのコマンド情報「11」と、ビット数が4ビットのマルチキャストIDと、ビット数が26ビットのデータ部とから成る。
 設定完了通知を受信した計算ノードから送信されたマルチキャストパケットは、そのマルチキャストパケット内のマルチキャストIDが示すプロセスグループに含まれる全プロセスに届く。つまり、マルチキャストIDでインデキシングすることにより、複数のマルチキャスト通信の経路設定やマルチキャスト通信自体を並行に実行することが可能になる。
 なお、本実施形態では並列計算機システムにおいて送受信されるパケットの種類を上述の4種類のみとしたが、それ以外の種類のパケットデータが存在してもよい。また、パケットデータのフォーマット(パケットデータのサイズや制御情報など)は、図2に示した例に限らず任意でよい。
 つぎに、ネットワークスイッチ21-1~21-4,22の構成について、図3を参照して説明する。なお、各ネットワークスイッチ21-1~21-4,22の構成は互いに同じであるため、以下では、ネットワークスイッチ21-1を例に挙げて説明する。
 図3に示すように、ネットワークスイッチ21-1は、入力バッファ部201-1~201-5と、出力バッファ部202-1~202-5と、クロスバスイッチ部203と、クロスバ制御部204と、マルチキャスト制御部205とを有する。
 クロスバスイッチ部203、マルチキャスト制御部205は、複数の入力ポートと複数の出力ポートとをそれぞれ有している。入力ポート数および出力ポート数は任意でよい。この説明例では、各ネットワークスイッチ21-1~21-4,22がそれぞれ有するクロスバスイッチ部203、マルチキャスト制御部205は、入力ポート数が「5」であり、出力ポート数が「5」(以下、「5入力5出力」と呼ぶ)である。
 また、本実施形態では、各ネットワークスイッチ21-1~21-4,22がそれぞれ有する各入力ポートと各出力ポートとが、互いに1対1で対応付けられており、さらに、各入力ポートには1~5の番号がそれぞれ付与され、各出力ポートには1~5の番号がそれぞれ付与されている場合を例に挙げて説明する。例えば、1番目の入力ポートは1番目の出力ポートと対応している。入力ポートと出力ポートとを対応付ける方法は一般的な方法でよい。
 なお、図1に示した例では、各ネットワークスイッチ21-1~21-4,22が有する5つの入力ポートのうち1番目~4番目の入力ポートは、図1における上り方向(ネットワークスイッチ21-1~21-4からネットワークスイッチ22へ向かう方向)に接続されている。また、各ネットワークスイッチ21-1~21-4,22が有する5つの出力ポートのうち1番目~4番目の出力ポートは、図1における下り方向(ネットワークスイッチ22からネットワークスイッチ21-1~21-4へ向かう方向)に接続されている。また、ネットワークスイッチ22が有する5番目の入力ポートおよび5番目の出力ポートは未使用となっている。また、各ネットワークスイッチ21-1~21-4が有する5番目の入力ポートは、図1における下り方向に接続されている。また、各ネットワークスイッチ21-1~21-4が有する5番目の出力ポートは、図1における上り方向に接続されている。
 本実施形態では、各入力バッファ部201-1~201-5は、図4に示すマルチキャスト制御部205が有する各入力ポートI1~I5と1対1で対応して接続されている。
 また、本実施形態では、各入力バッファ部201-1~201-5は、クロスバスイッチ部203が有する5つの入力ポート(図示せず)のそれぞれと、クロスバ制御部204が有する5つの入力ポート(図示せず)のそれぞれとに1対1で対応して接続されている。
 入力バッファ部201-1~201-5は、外部からパケットが送信されてきた場合、そのパケット内のコマンド情報に基づいて、そのパケットがユニキャストパケットと経路設定コマンドと設定完了通知とマルチキャストパケットとのうちどのパケットであるかを識別する。そして、入力バッファ部201-1~201-5は、外部から送信されてきたパケットを、識別したパケットの種類に応じて、クロスバスイッチ部203またはマルチキャスト制御部205へ出力する。
 より具体的には、入力バッファ部201-1~201-5は、外部から送信されてきたパケットがユニキャストパケットであると識別した場合、そのユニキャストパケットをクロスバスイッチ部203へ出力する。
 また、入力バッファ部201-1~201-5は、外部から送信されてきたパケットが経路設定コマンドと設定完了通知とマルチキャストパケットとのいずれかであると識別した場合、識別したそのパケット(経路設定コマンドと設定完了通知とマルチキャストパケットとのいずれか)をマルチキャスト制御部205へ出力する。
 本実施形態では、各出力バッファ部202-1~202-5は、図4に示すマルチキャスト制御部205が有する各出力ポートO1~O5に1対1で対応して接続されている。
 また、本実施形態では、各出力バッファ部202-1~202-5は、クロスバスイッチ部203が有する5つの出力ポート(図示せず)のそれぞれと1対1で対応して接続されている。
 出力バッファ部202-1~202-5は、ユニキャストパケットが当該出力バッファ部202-1~202-5と接続されているクロスバスイッチ部203が有する出力ポート(図示せず)から出力されてきた場合、そのユニキャストパケットを当該出力バッファ部202-1~202-5と接続されているネットワークスイッチ22および各計算ノード11-1~11-4へ出力する。
 また、出力バッファ部202-1~202-5は、経路設定コマンド、設定完了通知またはマルチキャストパケットが当該出力バッファ部202-1~202-5と1対1で接続されているマルチキャスト制御部205が有する出力ポートO1~O5から出力されてきた場合、その経路設定コマンド、設定完了通知またはマルチキャストパケットを、当該出力バッファ部202-1~202-5と接続されているネットワークスイッチ22および各計算ノード11-1~11-4へ出力する。
 クロスバスイッチ部203は、入力バッファ部201-1~201-5から出力されてきたユニキャストパケットを、クロスバ制御部204から通知された出力バッファ部202-1~202-5へ出力する。
 クロスバ制御部204は、入力バッファ部201-1~201-5から出力されてきたユニキャストパケット内の行先情報が示す送信先と接続されている出力バッファ部202-1~202-5を識別して、当該ユニキャストパケットを出力すべき出力バッファ部をクロスバスイッチ部203へ通知する。
 マルチキャスト制御部205は、各入力バッファ部201-1~201-5から出力されてきたマルチキャストパケットを、当該マルチキャストパケットを出力する出力ポートとして設定されている出力ポートから出力する。このとき、マルチキャスト制御部205は、当該マルチキャストパケットを出力してきた入力バッファ部と接続された入力ポートと対応付けられている出力ポートからは出力しない。
 以下に、マルチキャスト制御部205の構成について、図4を参照して詳細に説明する。図4に示すように、マルチキャスト制御部205は、パケット入力部301と、パケット出力部302と、プロセス数保持部303と、カウンタ部304と、情報管理部305と、比較部306と、完了通知生成部307と、宛先判定部308と、修正部309とを有する。
 パケット入力部301は、入力ポートI1~I5と1対1でそれぞれ接続されている入力バッファ部201-1~201-5から出力されてきたパケットデータ(マルチキャストパケットと経路設定コマンドと設定完了通知とのいずれか)をパケット出力部302へ出力する。
 また、パケット入力部301は、入力バッファ部201-1~201-5から出力されてきたパケットデータ内のコマンド情報に基づいて、そのパケットデータが、マルチキャストパケットと経路設定コマンドと設定完了通知とのいずれであるかを識別する。
 まず、パケット入力部301が、入力バッファ部201-1~201-5から出力されてきたパケットデータが経路設定コマンドであると識別した場合の動作を説明する。
 この場合、パケット入力部301は、入力バッファ部201-1~201-5から出力されてきた経路設定コマンド内の宛先情報を宛先判定部308へ出力する。
 また、パケット入力部301は、経路設定コマンドに含まれているマルチキャストIDとグループ所属プロセス数とをプロセス数保持部303へ出力する。
 また、パケット入力部301は、経路設定コマンドに含まれているマルチキャストIDをカウンタ部304へ出力する。
 また、パケット入力部301は、経路設定コマンドに含まれているコマンド情報「01」およびマルチキャストIDと、経路設定コマンドを入力した入力ポートを示す情報とを情報管理部305へ出力する。
 また、パケット入力部301は、経路設定コマンドに含まれているマルチキャストIDを完了通知生成部307へ出力する。
 つぎに、パケット入力部301が、入力バッファ部201-1~201-5から出力されてきたパケットデータが設定完了通知であると識別した場合の動作を説明する。
 この場合、パケット入力部301は、入力バッファ部201-1~201-5から出力されてきた設定完了通知に含まれているマルチキャストIDと、その設定完了通知を入力した入力ポートを示す情報とを修正部309へ出力する。
 また、パケット入力部301は、設定完了通知に含まれているマルチキャストIDをプロセス数保持部303へ出力する。
 また、パケット入力部301は、設定完了通知に含まれているコマンド情報「10」とマルチキャストIDとをカウンタ部304へ出力する。
 また、パケット入力部301は、設定完了通知に含まれているマルチキャストIDを完了通知生成部307へ出力する。
 つぎに、パケット入力部301が、入力バッファ部201-1~201-5から出力されてきたパケットデータがマルチキャストパケットであると識別した場合の動作を説明する。
 この場合、パケット入力部301は、入力バッファ部201-1~201-5から出力されてきたマルチキャストパケットに含まれているコマンド情報「11」とマルチキャストIDとを、情報管理部305へ出力する。
 また、パケット入力部301は、マルチキャストパケットを入力した入力ポートを示す情報をパケット出力部302へ出力する。
 パケット出力部302は、情報管理部305から出力されてきたマルチキャストパケットを出力する出力ポートを示すマルチキャスト制御情報3051を用いて、パケット入力部301から出力されてきたマルチキャストパケットを、各出力バッファ部202-1~202-5と1対1で接続されている各出力ポートO1~O5から出力する。
 より具体的には、パケット出力部302は、パケット入力部301から出力されてきたマルチキャストパケットを、情報管理部305から出力されてきたビット列において値が「1」に設定されているビットに対応する出力ポートから出力する。このとき、パケット出力部302は、パケット入力部301から出力されてきた情報が示すマルチキャストパケットを入力した入力ポートと対応付けられた出力ポートからは出力しない。
 また、パケット出力部302は、情報管理部305から通知された宛先情報と同じスイッチ識別情報が付与されたネットワークスイッチが接続されている出力ポートへ、経路設定コマンドを出力する。
 また、パケット出力部302は、情報管理部305から出力されてきたマルチキャストパケットを出力する出力ポートを示すマルチキャスト制御情報3051を用いて、完了通知生成部307から出力されてきた設定完了通知を、各出力バッファ部202-1~202-5へ出力する。つまり、パケット出力部302は、マルチキャストパケットを出力する出力ポートと同じ出力ポートを経由して、設定完了通知をその宛先へ送信する。
 より具体的には、パケット出力部302は、情報管理部305から出力されてきたビット列において値が「1」に設定されているビットに対応する出力ポートへ、パケット入力部301から出力されてきた設定完了通知を出力する。
 プロセス数保持部303は、パケット入力部301から出力されてきたマルチキャストIDとグループ所属プロセス数とを対応付けて記憶するレジスタ群である。
 また、プロセス数保持部303は、経路設定コマンドの宛先が当該ネットワークスイッチ21-1である旨が宛先判定部308から通知された場合、パケット入力部301から出力されてきたマルチキャストIDと同じマルチキャストIDと対応付けて記憶しているグループ所属プロセス数を比較部306へ出力する。
 また、プロセス数保持部303は、パケット入力部301からマルチキャストIDが出力されてきた場合、そのマルチキャストIDと対応付けて記憶しているグループ所属プロセス数を比較部306へ出力する。
 カウンタ部304は、設定完了プロセス数をカウントし、カウントした設定完了プロセス数とパケット入力部301から出力されてきたマルチキャストIDとを対応付けて記憶する。
 ここで、設定完了プロセス数とは、1つの計算ノードが生成した1つの経路設定コマンドに対して、情報管理部305が「通信経路を設定したプロセスの数」である。
 本実施形態では、カウンタ部304は、ビットの設定を行った旨が情報管理部305から通知されるごとに、パケット入力部301から出力されてきたマルチキャストIDと同じマルチキャストIDと対応付けて記憶している設定完了プロセス数に「1」を加算する。なお、カウンタ部304が記憶している設定完了プロセス数は、マルチキャストパケットを出力する出力ポートの設定を開始していない状態においては「0」である。
 また、カウンタ部304は、経路設定コマンドの宛先が当該ネットワークスイッチ21-1である旨が宛先判定部308から通知された場合、パケット入力部301から出力されてきたマルチキャストIDと対応付けて記憶している設定完了プロセス数を比較部306へ出力する。
 また、カウンタ部304は、パケット入力部301からコマンド情報「10」とマルチキャストIDとが出力されてきた場合、コマンド情報「10」と、そのマルチキャストIDと対応付けて記憶している設定完了プロセス数とを比較部306へ出力する。
 情報管理部305は、マルチキャスト制御情報3051を記憶する。
 マルチキャスト制御情報3051は、マルチキャスト通信の通信経路として設定された、マルチキャストパケットを出力する出力ポートを指定するための情報である。
 図5に示すように、本実施形態においては、マルチキャスト制御情報3051は、ビット数がそれぞれ5ビットである16個のビット列B0~B15と、マルチキャストID「0」~「15」とをそれぞれ1対1で対応付けて記憶している。
 また、本実施形態では、各ビット列B0~B15にそれぞれ含まれる5つのビットと5つの出力ポートO1~O5とは、それぞれ1対1で対応付けられている。
 さらに、本実施形態では、情報管理部305は、各ビット列B0~B15において、マルチキャストパケットを出力する出力ポートに対応するビットには、マルチキャストパケットを出力する出力ポートであることを示す「1」を設定する。
 また、情報管理部305は、各ビット列B0~B15において、マルチキャストパケットを出力しない出力ポートに対応するビットには、マルチキャストパケットを出力しない出力ポートであることを示す「0」を設定する。
 図5に示したビット列B0の例では、このビット列B0の最上位である左から1番目のビットに対応する出力ポートO1が、マルチキャストパケットを出力する出力ポートとして設定されている。
 なお、マルチキャスト制御情報3051のデータ構造は、マルチキャスト制御部205が有する出力ポートO1~O5の数と同じ数のビットを有するビット列に限らず、任意でよい。
 なお、経路設定コマンドであることを示すコマンド情報「01」と、マルチキャストIDと、経路設定コマンドを入力した入力ポートを示す情報とがパケット入力部301から出力されてきた場合、情報管理部305は、以下のように動作する。
 まず、情報管理部305は、パケット入力部301から出力されてきたマルチキャストIDと同じマルチキャストIDと対応付けて記憶しているビット列B0~B15を読出す。例えば、パケット入力部301から出力されてきたマルチキャストIDが「4」である場合、情報管理部305は、マルチキャストID「4」と対応付けて記憶しているビット列B4を読出す。
 つぎに、情報管理部305は、1つの経路設定コマンドを入力した1つの入力ポートを示す情報がパケット入力部301から出力された場合、読出したビット列において、その入力ポートと対応付けられた出力ポートと1対1で対応する1つのビットの値を「1」に設定する。そして、ビットの設定を1回行うごとに、その旨をカウンタ部304へ通知する。
 なお、本実施形態では、情報管理部305は、宛先情報と、宛先情報と同じスイッチ識別情報が付与されたネットワークスイッチが接続されている出力ポートとを対応付けて記憶している。
 そして、情報管理部305は、経路設定コマンドの宛先が当該ネットワークスイッチ21-1でない旨が宛先判定部308から通知された場合、宛先判定部308から通知された宛先情報と同じスイッチ識別情報と対応付けて記憶している出力ポートに対応するビットの値を「1」に設定する。さらに、情報管理部305は、「1」に設定した出力ポート(つまり、宛先情報と同じスイッチ識別情報が付与されたネットワークスイッチが接続されている出力ポート)を、パケット出力部302へ通知する。
 なお、経路設定コマンドの宛先が当該ネットワークスイッチ21-1である旨が宛先判定部308から情報管理部305へ通知された場合、ネットワークスイッチ21-1は、経路設定コマンドを他のネットワークスイッチ21-2~21-4、22へ転送しない。そのため、この場合、情報管理部305は、宛先判定部308から通知された宛先情報と同じスイッチ識別情報と対応付けて記憶している出力ポートに対応するビットの値を「1」に設定しない。
 また、情報管理部305は、設定完了通知であることを示すコマンド情報「10」とマルチキャストIDとがパケット入力部301から出力されてきた場合、ビット列B0~B15のうちそのマルチキャストIDと同じマルチキャストIDと対応付けて記憶しているビット列をパケット出力部302へ出力する。
 また、情報管理部305は、設定完了通知の生成が完了した旨が完了通知生成部307から通知された場合、完了通知生成部307から出力されてきたマルチキャストIDと同じマルチキャストIDと対応付けて記憶しているビット列をパケット出力部302へ出力する。
 また、情報管理部305は、マルチキャストパケットであることを示すコマンド情報「11」とマルチキャストIDとがパケット入力部301から出力されてきた場合、ビット列B0~B15のうちそのマルチキャストIDと同じマルチキャストIDと対応付けて記憶しているビット列をパケット出力部302へ出力する。
 比較部306は、プロセス数保持部303から出力されてきたグループ所属プロセス数と、カウンタ部304から出力された設定完了プロセス数とを比較する。そして、比較部306は、比較結果を、完了通知生成部307へ出力する。
 また、比較部306は、カウンタ部304からコマンド情報「10」が出力されてきた場合、プロセス数保持部303から出力されてきたグループ所属プロセス数と、カウンタ部304から出力されてきた設定完了プロセス数とを比較する。そして、比較部306は、その比較結果を、修正部309へ出力する。
 完了通知生成部307は、比較部306による比較の結果、グループ所属プロセス数と設定完了プロセス数とが同じである場合、マルチキャストパケットを出力する出力ポートの設定が完了したことを示し、経路設定コマンドの送信元の計算ノードを宛先として指定した設定完了通知を生成する。なお、完了通知生成部307は、この設定完了通知に、パケット入力部301から出力されてきたマルチキャストIDを書込む。そして、完了通知生成部307は、その設定完了通知をパケット出力部302に出力する。
 また、完了通知生成部307は、設定完了通知の生成が完了した場合、その旨を情報管理部305へ通知するとともに、設定完了通知に書き込んだマルチキャストIDを情報管理部305へ出力する。
 なお、パケット出力部302は、完了通知生成部307から出力されてきた設定完了通知を、情報管理部305から出力されてきたビット列において「1」に設定されているビットと対応する出力ポートO1~O5から出力する。
 宛先判定部308は、当該ネットワークスイッチ21-1に付与されたスイッチ識別情報を記憶している。そして、宛先判定部308は、パケット入力部301から出力されてきた宛先情報と、記憶しているスイッチ識別情報とを比較する。
 比較の結果、宛先情報と記憶しているスイッチ識別情報とが同じである場合、宛先判定部308は、経路設定コマンドの宛先が当該ネットワークスイッチ21-1である旨を、プロセス数保持部303とカウンタ部304と情報管理部305とへ通知する。
 また、比較の結果、宛先情報と記憶しているスイッチ識別情報とが異なっている場合、宛先判定部308は、経路設定コマンドの宛先が当該ネットワークスイッチ21-1でない旨と、その宛先情報とを情報管理部305に通知する。
 修正部309は、比較部306による比較の結果、グループ所属プロセス数と設定完了プロセス数とが同じである場合、パケット入力部301から出力されてきたマルチキャストIDと同じマルチキャストIDと対応付けて情報管理部305が記憶しているビット列を読出す。そして、修正部309は、読み出したビット列において、パケット入力部301からの情報が示す設定完了通知を入力した入力ポートと対応付けられた出力ポートに対応するビットの値を「1」から「0」へ変更する。
 例えば、ネットワークスイッチ22から送信されてきた設定完了通知がネットワークスイッチ21-1の入力ポートI5に入力された場合、修正部309は、設定完了通知内のマルチキャストIDと対応付けて記憶しているマルチキャスト制御情報3051内のビット列に含まれる、入力ポートI5と対応付けられた出力ポートO5に対応する5番目のビットを「1」から「0」へ変更する。
 なお、マルチキャストパケットを出力する出力ポートの設定が完了した時点において、マルチキャスト制御スイッチでないネットワークスイッチが記憶しているグループ所属プロセス数と設定完了プロセス数とが同じである場合、マルチキャスト制御スイッチのみならず当該ネットワークスイッチにも、マルチキャスト制御スイッチを宛先とした特定の1プロセスグループに含まれる全計算ノードから送信された経路設定コマンドが到達したことに相当する。
 このような場合、当該プロセスグループに含まれるプロセス間のマルチキャスト通信を、マルチキャスト制御スイッチを経由することなしに行うことが可能である。このような観点より、修正部309は、このプロセスグループに付与されたマルチキャストIDに対応するビット列において、マルチキャストパケットをマルチキャスト制御スイッチへ転送するための出力ポートに対応するビットを「0」に変更する。
 つぎに、上記構成を有するネットワークスイッチ21-1~21-4,22の動作について、経路設定に関するコマンドパケットである経路設定コマンドや経路設定完了通知を受信したときの動作を、図6を参照して説明する。なお、以下の説明の前提として、あるプロセスグループに含まれる各プロセスが動作する計算ノードのそれぞれが、マルチキャスト制御スイッチであるネットワークスイッチ22に付与されたスイッチ識別情報と同じ宛先情報を含む図2に示した経路設定コマンドを、これらの計算ノードが接続されているネットワークスイッチ21-1~21-4へ送信した場合を例に挙げて説明する。
 ネットワークスイッチが経路設定コマンドを受信した場合、入力バッファ部201-1~201-5のうち経路設定コマンドを送信してきた計算ノードと接続されている入力バッファ部は、その経路設定コマンドをパケット入力部301へ出力する。
 すると、図6に示すステップ401にて、パケット入力部301は、入力バッファ部201-1~201-5から出力されてきたパケットが、経路設定コマンドであるか判定する。
 ステップ401にて、受信コマンドが経路設定コマンドであると判定した場合、ステップ402にて、パケット入力部301は、入力バッファ部201-1~201-5から出力されてきた経路設定コマンドをパケット出力部302へ出力する。
 また、パケット入力部301は、入力バッファ部から出力されてきたパケットデータが経路設定コマンドであると識別する。そして、パケット入力部301は、その経路設定コマンド内の宛先情報を宛先判定部308へ出力する。
 また、パケット入力部301は、経路設定コマンドに含まれているマルチキャストIDとグループ所属プロセス数とをプロセス数保持部303へ出力する。すると、プロセス数保持部303は、パケット入力部301から出力されてきたマルチキャストIDとグループ所属プロセス数とを対応付けて記憶する。
 また、パケット入力部301は、経路設定コマンドに含まれているマルチキャストIDをカウンタ部304へ出力する。
 また、パケット入力部301は、入力バッファ部201-1~201-5からの経路設定コマンドに含まれているコマンド情報「01」およびマルチキャストIDと、経路設定コマンドを入力した入力ポートを示す情報とを情報管理部305へ出力する。
 また、パケット入力部301は、経路設定コマンドに含まれているマルチキャストIDを完了通知生成部307へ出力する。
 その後、ステップ403にて、宛先判定部308は、パケット入力部301から出力されてきた宛先情報と、記憶しているスイッチ識別情報とを比較する。
 比較の結果、宛先情報と記憶しているスイッチ識別情報とが異なっている場合、宛先判定部308は、その宛先情報と、経路設定コマンドの宛先が当該ネットワークスイッチ21-1でない旨を情報管理部305に通知する。
 すると、ステップ404にて、情報管理部305は、パケット入力部301から出力されてきたマルチキャストIDと同じマルチキャストIDと対応付けて記憶しているビット列B0~B15を指定する。続いて、情報管理部305は、指定したビット列において、パケット入力部301から出力されてきた情報が示す1つの経路設定コマンドが出力されてきた1つの入力ポートと対応付けられた出力ポートと1対1で対応する1つのビットの値を「1」に設定する。そして、ビットの設定を1回行うごとに、その旨をカウンタ部304へ通知する。なお、カウンタ部304は、ビットの設定を行った旨が情報管理部305から通知されるごとに、パケット入力部301から出力されてきたマルチキャストIDと対応付けて記憶している設定完了プロセス数に「1」を加算していく。
 さらに、ステップ404にて、情報管理部305は、宛先判定部308から通知された宛先情報と同じスイッチ識別情報と対応付けて記憶している出力ポートに対応するビットの値を「1」に設定する。そして、情報管理部305は、「1」に設定した出力ポート(つまり、宛先情報と同じスイッチ識別情報が付与されたネットワークスイッチが接続されている出力ポート)を、パケット出力部302へ通知する。
 すると、ステップ405にて、パケット出力部302は、情報管理部305から通知された出力ポートから経路設定コマンドを出力する。
 その後、ネットワークスイッチ21-1は、コマンドの受信待ちになり、経路設定コマンドまたは経路設定完了通知の受信を待つ。
 一方、宛先判定部308は、ステップ403における比較の結果、宛先情報と記憶しているスイッチ識別情報とが同じである場合、経路設定コマンドの宛先が当該ネットワークスイッチ21-1である旨を、プロセス数保持部303とカウンタ部304と情報管理部305とへ通知する。
 すると、ステップ406にて、情報管理部305は、パケット入力部301から出力されてきたマルチキャストIDと同じマルチキャストIDと対応付けて記憶しているビット列B0~B15を指定する。続いて、情報管理部305は、指定したビット列において、パケット入力部301から出力されてきた情報が示す1つの経路設定コマンドが出力されてきた1つの入力ポートと対応付けられた出力ポートに1対1で対応する1つのビットの値を「1」に設定する。そして、情報管理部305は、ビットの設定を1回行うごとに、その旨をカウンタ部304へ通知する。
 すると、ステップ407にて、カウンタ部304は、ビットの設定を行った旨が情報管理部305から通知されるごとに、パケット入力部301から出力されてきたマルチキャストIDと対応付けて記憶している設定完了プロセス数に「1」を加算していく。なお、カウンタ部304は、経路設定コマンドの宛先が当該ネットワークスイッチ21-1である旨が宛先判定部308から通知されたことに応じて、記憶している設定完了プロセス数を比較部306へ出力する。
 また、経路設定コマンドの宛先が当該ネットワークスイッチである旨が宛先判定部308から通知されたことに応じて、プロセス数保持部303は、パケット入力部301から出力されてきたマルチキャストIDと同じマルチキャストIDと対応付けて記憶しているグループ所属プロセス数を比較部306に出力する。
 続いて、ステップ408にて、比較部306は、プロセス数保持部303から出力されてきたグループ所属プロセス数と、カウンタ部304から出力されてきた設定完了プロセス数とを比較し、比較結果を、情報管理部305と完了通知生成部307とへ出力する。
 比較の結果、グループ所属プロセス数と設定完了プロセス数とが同じでない場合、マルチキャスト通信を実行するプロセスグループに含まれるすべてのプロセスからは経路設定コマンドが届いていないため、再度経路設定コマンドの受信待ちになる。
 一方、比較の結果、グループ所属プロセス数と設定完了プロセス数とが同じである場合、マルチキャスト通信を実行するプロセスグループに含まれるすべてのプロセスから経路設定コマンドが到達したことに相当する。
 そのため、ステップ409にて、完了通知生成部307は、プロセスグループに対するマルチキャストパケットを出力する出力ポートの設定が完了した旨を示す設定完了通知を生成してパケット出力部302に出力する。なお、完了通知生成部307は、パケット入力部301から出力されてきたマルチキャストIDを、設定完了通知へ書き込む。
 また、完了通知生成部307は、設定完了通知の生成が完了した場合、その旨を情報管理部305へ通知するとともに、設定完了通知に書き込んだマルチキャストIDを情報管理部305へ出力する。すると、情報管理部305は、完了通知生成部307から出力されてきたマルチキャストIDと同じマルチキャストIDと対応付けて記憶しているビット列をパケット出力部302へ出力する。
 そして、パケット出力部302は、完了通知生成部307から設定完了通知を、情報管理部305から出力されてきたビット列において「1」に設定されているビットと対応する出力ポートO1~O5から出力する。これにより、設定完了通知が、プロセスグループに含まれる各プロセスが動作する計算ノードへ送信される。
 一方、ネットワークスイッチ21-1が経路設定完了通知を受信した場合を説明する。
 入力バッファ部201-1~201-5のうち設定完了通知を送信してきたマルチキャスト制御スイッチ(この例では、ネットワークスイッチ22)と接続されている入力バッファ部は、その設定完了通知をパケット入力部301へ出力する。
 すると、ステップ401にて、パケット入力部301は、入力バッファ部201-1~201-5から出力されてきたパケットデータが設定完了通知であると識別する。
 この場合、ステップ410にて、パケット入力部301は、入力バッファ部201-1~201-5からの設定完了通知に含まれているマルチキャストIDと、設定完了通知を入力した入力ポートを示す情報とを修正部309へ出力する。
 また、パケット入力部301は、設定完了通知に含まれているマルチキャストIDをプロセス数保持部303へ出力する。すると、プロセス数保持部303は、そのマルチキャストIDと対応付けて記憶しているグループ所属プロセス数を比較部306へ出力する。
 また、パケット入力部301は、設定完了通知に含まれているコマンド情報「10」とマルチキャストIDとをカウンタ部304へ出力する。すると、カウンタ部304は、そのコマンド情報「10」と、そのマルチキャストIDと対応付けて記憶している設定完了プロセス数とを比較部306へ出力する。
 カウンタ部304からコマンド情報「10」が出力されてくると、ステップ411にて、比較部306は、プロセス数保持部303から出力されてきたグループ所属プロセス数と、カウンタ部304から出力された設定完了プロセス数とを比較する。そして、比較部306は、その比較結果を、修正部309へ出力する。
 比較の結果、グループ所属プロセス数と設定完了プロセス数とが同じである場合、ステップ412にて、修正部309は、パケット入力部301から出力されてきたマルチキャストIDと同じマルチキャストIDと対応付けて情報管理部305が記憶しているビット列を読出す。続いて、修正部309は、読み出したビット列において、パケット入力部301からの情報が示す設定完了通知を入力した入力ポートと対応付けられた出力ポートに対応するビットの値を「1」から「0」へ変更する。
 つぎに、上記構成を有する並列計算機システムの動作について説明する。
 まず、並列計算機システムにてマルチキャストパケットの転送経路を設定する動作を、図7を参照して説明する。この説明例では、計算ノード11-1と、ネットワークスイッチ21-1と、ネットワークスイッチ22との各動作を例に挙げて説明する。
 なお、以下の説明の前提として、ある1つのプロセスグループに含まれる各プロセスが動作する計算ノードは、そのプロセスグループのマルチキャストIDと、そのプロセスグループ内の計算ノード間で送受信されるマルチキャストパケットを制御するネットワークスイッチ22のスイッチ識別情報と同じ宛先情報と、そのプロセスグループに含まれる各プロセスが動作する計算ノードの数であるグループ所属プロセス数をあらかじめ記憶している。
 図7に示すステップ501にて、ある1つのプロセスグループに所属する各プロセスが動作する計算ノードのそれぞれは、当該計算ノードと接続されているネットワークスイッチ21-1~21-4へ、経路設定コマンドを生成して送信する。
 この例では、計算ノード11-1は、記憶しているマルチキャストIDと宛先情報とグループ所属プロセス数とを含む経路設定コマンドを生成し、その経路設定コマンドをネットワークスイッチ21-1へ送信する。なお、経路設定コマンド内の宛先情報と同じスイッチ識別情報が付与されたネットワークスイッチ22が、この経路設定コマンドの宛先となる。
 すると、ステップ502にて、ネットワークスイッチ21-1は、計算ノード11-1から送信されてきた経路設定コマンドを受信する。そして、ネットワークスイッチ21-1は、経路設定コマンドに含まれているマルチキャストIDとグループ所属プロセス数とを対応付けて記憶する。
 続いて、ステップ503にて、ネットワークスイッチ21-1は、経路設定コマンドに含まれているマルチキャストIDと同じマルチキャストIDと対応付けて記憶しているビット列B0~B15を指定する。続いて、ネットワークスイッチ21-1は、指定したビット列において、経路設定コマンドを入力した入力ポートと対応付けられた出力ポートと1対1で対応する1つのビットの値を「1」に設定する。
 なお、ネットワークスイッチ21-1は、1つのビットの設定を行うごとに、経路設定コマンドに含まれているマルチキャストIDと同じマルチキャストIDと対応付けて記憶している設定完了プロセス数に「1」を加算していく。
 また、ネットワークスイッチ21-1は、経路設定コマンドに含まれている宛先情報と、自己が記憶しているネットワークスイッチ21-1に付与されたスイッチ識別情報とを比較する。
 比較の結果、宛先情報と記憶しているスイッチ識別情報とが異なるため、ステップ503にて、ネットワークスイッチ21-1は、指定したビット列において、経路設定コマンド内の宛先情報と同じスイッチ識別情報と対応付けて記憶している出力ポートに対応するビットの値を「1」に設定する。
 その後、ステップ504にて、ネットワークスイッチ21-1は、宛先情報と同じスイッチ識別情報と対応付けて記憶している出力ポート(つまり、宛先情報と同じスイッチ識別情報が付与されたネットワークスイッチ22が接続されている出力ポート)から、経路設定コマンドを出力する。これにより、ネットワークスイッチ21-1は、計算ノード11-1から送信されてきた経路設定コマンドを、ネットワークスイッチ22へ転送する。
 すると、ステップ505にて、ネットワークスイッチ22は、ネットワークスイッチ21-1から転送されてきた経路設定コマンドを受信する。
 そして、ネットワークスイッチ22は、経路設定コマンドに含まれているマルチキャストIDとグループ所属プロセス数とを対応付けて記憶する。
 続いて、ステップ506にて、ネットワークスイッチ22は、ビット列B0~B15のうちから経路設定コマンドに含まれているマルチキャストIDと同じマルチキャストIDと対応付けて記憶しているビット列を指定する。続いて、ネットワークスイッチ22は、指定したビット列において、経路設定コマンドを入力した入力ポートと対応付けられた出力ポートと1対1で対応する1つのビットの値を「1」に設定する。
 なお、ネットワークスイッチ22は、1つのビットの設定を行うごとに、経路設定コマンドに含まれているマルチキャストIDと同じマルチキャストIDと対応付けて記憶している設定完了プロセス数に「1」を加算していく。
 続いて、ネットワークスイッチ22は、経路設定コマンドに含まれている宛先情報と、自己が記憶しているネットワークスイッチ22に付与されたスイッチ識別情報とを比較する。
 比較の結果、宛先情報と記憶しているスイッチ識別情報とが同じであるため、ネットワークスイッチ22は、設定完了プロセス数と、グループ所属プロセス数とを比較する。
 そして、比較の結果、グループ所属プロセス数と設定完了プロセス数とが同じになった場合、ステップ507において、ネットワークスイッチ22は、経路設定コマンド内のマルチキャストIDが付与されたプロセスグループに対するマルチキャストパケットを出力する出力ポートの設定が完了した旨を示す設定完了通知を生成する。なお、本実施形態では、ネットワークスイッチ22は、設定完了通知に、設定を完了したプロセスグループのマルチキャストIDを書込む。そして、ネットワークスイッチ22は、経路設定コマンドの送信元の計算ノード11-1を宛先として指定した設定完了通知を、ネットワークスイッチ21-1へ送信する。なお、ネットワークスイッチ22は、このマルチキャストIDが付与されたプロセスグループ内のプロセスが動作する計算ノード11-1以外の計算ノードにも、設定完了通知を送信する。
 すると、ステップ508にて、ネットワークスイッチ21-1は、ネットワークスイッチ22から送信されてきた設定完了通知を受信する。
 そして、ネットワークスイッチ21-1は、設定完了通知に含まれているマルチキャストIDと同じマルチキャストIDと対応付けて記憶しているグループ所属プロセス数と、設定完了通知に含まれているマルチキャストIDと同じマルチキャストIDと対応付けて記憶している設定完了プロセス数とを比較する。
 比較の結果、グループ所属プロセス数と設定完了プロセス数とが同じである場合、ステップ509にて、ネットワークスイッチ21-1は、設定完了通知に含まれているマルチキャストIDと同じマルチキャストIDと対応付けて記憶しているビット列を読出す。続いて、ネットワークスイッチ21-1は、読み出したビット列において、設定完了通知を入力した入力ポートと対応付けられた出力ポートに対応するビットの値を「1」から「0」へ変更する。
 ステップ510にて、ネットワークスイッチ21-1は、ネットワークスイッチ22から送信されてきた設定完了通知を、その宛先である計算ノード11-1へ転送する。
 すると、ステップ511にて、計算ノード11-1は、ネットワークスイッチ21-1から転送されてきた設定完了通知を受信する。なお、ネットワークスイッチ22が送信した設定完了通知は、その設定完了通知内のマルチキャストIDが付与されたプロセスグループに含まれるプロセスが動作する計算ノード11-1以外の計算ノードも受信する。
 すると、そのプロセスグループに含まれるプロセスが動作する計算ノードが、経路設定コマンドにより指示したマルチキャストパケットを出力する出力ポートの設定がマルチキャスト制御スイッチにおいて完了したことを認識する。これにより、これらの計算ノードが、相互にマルチキャスト通信を行うことが可能となる。なお、これらの計算ノードは、例えば、マルチキャスト通信の実行をプログラムにより指示された際に、マルチキャストパケットを送信する。
 つぎに、設定完了通知をそれぞれ受信した同じプロセスグループに含まれるプロセスが動作する特定の複数の計算ノードがマルチキャスト通信を行う2つの動作例について説明する。
 なお、以下の説明例では、計算ノード11-1は、ネットワークスイッチ21-1のマルチキャスト制御部205が有する入力ポートI1と接続されており、計算ノード11-2は、ネットワークスイッチ21-1のマルチキャスト制御部205が有する入力ポートI2と接続されている。また、計算ノード12-1は、ネットワークスイッチ21-2のマルチキャスト制御部205が有する入力ポートI1と接続されている。また、計算ノード13-3は、ネットワークスイッチ21-3のマルチキャスト制御部205が有する入力ポートI3と接続されている。また、計算ノード14-4は、ネットワークスイッチ21-4のマルチキャスト制御部205が有する入力ポートI4と接続されている。
 さらに、以下の説明例では、ネットワークスイッチ21-1のマルチキャスト制御部205が有する出力ポートO5は、ネットワークスイッチ22のマルチキャスト制御部205が有する入力ポートI1と接続されている。また、ネットワークスイッチ21-2のマルチキャスト制御部205が有する出力ポートO5は、ネットワークスイッチ22のマルチキャスト制御部205が有する入力ポートI2と接続されている。また、ネットワークスイッチ21-3のマルチキャスト制御部205が有する出力ポートO5は、ネットワークスイッチ22のマルチキャスト制御部205が有する入力ポートI3と接続されている。また、ネットワークスイッチ21-4のマルチキャスト制御部205が有する出力ポートO5は、ネットワークスイッチ22のマルチキャスト制御部205が有する入力ポートI4と接続されている。
 まず、特定の複数の計算ノードがマルチキャスト通信を行う第1の動作例について説明する。なお、第1の動作例は、各計算ノード11-1、11-2、12-1、13-3および14-4上でそれぞれ動作する1プロセス(つまり、グループ所属プロセス数は「5」)から成るプロセスグループが、マルチキャスト通信を行う例である。また、以下では、このプロセスグループに付与されたマルチキャストIDは「1」である場合を例に挙げて説明する。
 まず、各計算ノード11-1、11-2、12-1、13-3および14-4は、図2に示したような経路設定コマンドをそれぞれ生成する。なお、この説明例では、経路設定コマンドは、プロセスグループに付与されたマルチキャストID(=「1」)と、宛先情報(=ネットワークスイッチ22に付与されたスイッチ識別情報と同じ情報)と、プロセスグループに含まれる計算ノード上のプロセスの数を示すグループ所属プロセス数(=「5」)とを含む。
 そして、図8に示すように、計算ノード11-1、11-2は、この経路設定コマンドをネットワークスイッチ21-1へ送信する。また、計算ノード12-1は、この経路設定コマンドをネットワークスイッチ21-2へ送信する。また、計算ノード13-3は、この経路設定コマンドをネットワークスイッチ21-3へ送信する。また、計算ノード14-4は、この経路設定コマンドをネットワークスイッチ21-4へ送信する。
 その後、ネットワークスイッチ21-1は、計算ノード11-1から送信されてきた経路設定コマンドと、計算ノード11-2から送信されてきた経路設定コマンドとを受信する。すると、ネットワークスイッチ21-1は、受信した各経路設定コマンドに含まれているマルチキャストID「1」とグループ所属プロセス数「5」とを対応付けて記憶する。
 なお、以下では、各ネットワークスイッチ21-1~21-4がそれぞれ記憶しているグループ所属プロセス数を、P1-1~P1-4と表記する。また、ネットワークスイッチ22が記憶しているグループ所属プロセス数を、P2-1と表記する。
 また、ネットワークスイッチ21-1は、受信した各経路設定コマンド内のマルチキャストID「1」と対応付けて記憶しているビット列B1-1を読出す。
 そして、ネットワークスイッチ21-1は、このビット列B1-1において、計算ノード11-1からの経路設定コマンドを入力した入力ポートI1と対応付けられている出力ポートO1に対応するビットの値と、計算ノード11-2からの経路設定コマンドを入力した入力ポートI2と対応付けられている出力ポートO2に対応するビットの値とを、「1」に設定する。
 なお、ネットワークスイッチ21-1は、各計算ノード11-1、11-2からそれぞれ送信されてきた経路設定コマンドに対してビットの値の設定を1回行うごとに、自己が記憶している設定完了プロセス数に「1」を加算していく。なお、ネットワークスイッチ21-1は、この設定完了プロセス数と、計算ノード11-1、11-2からの経路設定コマンドに含まれているマルチキャストID(=「1」)とを対応付けて記憶する。
 この例では、ネットワークスイッチ21-1は、計算ノード11-1からの経路設定コマンドに対するビットの値の設定と、計算ノード11-2からの経路設定コマンドに対するビットの値の設定とを行う。そのため、これらの設定が完了した場合、ネットワークスイッチ21-1が、経路設定コマンド内のマルチキャストID(=「1」)と対応付けて記憶している設定完了プロセス数は「2」である。
 なお、以下では、各ネットワークスイッチ21-1~21-4がそれぞれ記憶している設定完了プロセス数を、Q1-1~Q1-4と表記する。また、ネットワークスイッチ22が記憶している設定完了プロセス数を、Q2-1と表記する。
 また、ネットワークスイッチ21-1は、各経路設定コマンド内の宛先情報と自己が記憶しているネットワークスイッチ21-1に付与されたスイッチ識別情報とが異なっているため、ビット列B1-1において、宛先情報が示すネットワークスイッチ22と接続されている出力ポートO5に対応するビットの値を「1」に設定する。
 なお、ビット列B1-1におけるこれらのビット値の更新が完了した場合、ネットワークスイッチ21-1が記憶しているビット列B1-1は、図8に示す状態(=「11001」)にある。
 そして、ネットワークスイッチ21-1は、宛先情報が示すネットワークスイッチ22と接続されている出力ポートO5を介して、宛先情報が示すネットワークスイッチ22へ、計算ノード11-1から送信されてきた経路設定コマンドと、計算ノード11-2から送信されてきた経路設定コマンドとを転送する。
 また、ネットワークスイッチ21-2は、計算ノード12-1から送信されてきた経路設定コマンドに含まれているマルチキャストID「1」とグループ所属プロセス数「5」とを対応付けて記憶する。
 また、ネットワークスイッチ21-2は、この経路設定コマンド内のマルチキャストID「1」と対応付けて記憶しているビット列B1-2を読出す。
 そして、ネットワークスイッチ21-2は、このビット列B1-2において、計算ノード12-1からの経路設定コマンドを入力した入力ポートI1と対応付けられている出力ポートO1に対応するビットの値を、「1」に設定する。なお、この設定が完了した場合、図8に示すように、ネットワークスイッチ21-2が、経路設定コマンド内のマルチキャストID(=「1」)と対応付けて記憶している設定完了プロセス数Q1-2は「1」である。
 また、ネットワークスイッチ21-2は、この経路設定コマンド内の宛先情報と自己が記憶しているネットワークスイッチ21-2に付与されたスイッチ識別情報とが異なっているため、ビット列B1-2において、宛先情報が示すネットワークスイッチ22と接続されている出力ポートO5に対応するビットの値を「1」に設定する。
 なお、ビット列B1-2におけるこれらのビット値の更新が完了した場合、ネットワークスイッチ21-2が記憶しているビット列B1-2は、図8に示す状態(=「10001」)にある。そして、ネットワークスイッチ21-2は、宛先情報が示すネットワークスイッチ22と接続されている出力ポートO5を介して、ネットワークスイッチ22へ経路設定コマンドを転送する。
 また、ネットワークスイッチ21-3は、計算ノード13-3から送信されてきた経路設定コマンドに含まれているマルチキャストID「1」とグループ所属プロセス数「5」とを対応付けて記憶する。
 また、ネットワークスイッチ21-3は、この経路設定コマンド内のマルチキャストID「1」と対応付けて記憶しているビット列B1-3において、この経路設定コマンドを入力した入力ポートI3と対応付けられている出力ポートO3に対応するビットの値を、「1」に設定する。なお、この設定が完了した場合、図8に示すように、ネットワークスイッチ21-3が、経路設定コマンド内のマルチキャストID(=「1」)と対応付けて記憶している設定完了プロセス数Q1-3は「1」である。
 また、ネットワークスイッチ21-3は、この経路設定コマンド内の宛先情報と自己が記憶しているネットワークスイッチ21-3のスイッチ識別情報とが異なっているため、ビット列B1-3において、宛先情報が示すネットワークスイッチ22と接続されている出力ポートO5に対応するビットの値を「1」に設定する。
 なお、ビット列B1-3におけるこれらのビット値の更新が完了した場合、ネットワークスイッチ21-3が記憶しているビット列B1-3は、図8に示す状態(=「00101」)にある。そして、ネットワークスイッチ21-3は、宛先情報が示すネットワークスイッチ22と接続されている出力ポートO5を介して、ネットワークスイッチ22へ経路設定コマンドを転送する。
 また、ネットワークスイッチ21-4は、計算ノード14-4から送信されてきた経路設定コマンドに含まれているマルチキャストID「1」とグループ所属プロセス数「5」とを対応付けて記憶する。
 また、ネットワークスイッチ21-4は、この経路設定コマンド内のマルチキャストID「1」と対応付けて記憶しているビット列B1-4において、この経路設定コマンドを入力した入力ポートI4と対応付けられている出力ポートO4に対応するビットの値を、「1」に設定する。なお、この設定が完了した場合、図8に示すように、ネットワークスイッチ21-4が、経路設定コマンド内のマルチキャストID(=「1」)と対応付けて記憶している設定完了プロセス数Q1-4は「1」である。
 また、ネットワークスイッチ21-4は、この経路設定コマンド内の宛先情報と自己が記憶しているネットワークスイッチ21-4のスイッチ識別情報とが異なっているため、ビット列B1-4において、宛先情報が示すネットワークスイッチ22と接続されている出力ポートO5に対応するビットの値を「1」に設定する。
 なお、ビット列B1-4におけるこれらのビット値の更新が完了した場合、ネットワークスイッチ21-4が記憶しているビット列B1-4は、図8に示す状態(=「00011」)にある。そして、ネットワークスイッチ21-4は、宛先情報が示すネットワークスイッチ22と接続されている出力ポートO5を介して、ネットワークスイッチ22へ経路設定コマンドを転送する。
 その後、ネットワークスイッチ22は、各ネットワークスイッチ21-1~21-4からそれぞれ転送されてきた経路設定コマンドを受信する。すると、ネットワークスイッチ22は、各ネットワークスイッチ21-1~21-4からの経路設定コマンドに含まれているマルチキャストID「1」とグループ所属プロセス数「5」とを対応付けて記憶する。
 続いて、ネットワークスイッチ22は、受信した各経路設定コマンド内のマルチキャストID「1」と対応付けて記憶しているビット列B2-1を読出す。
 そして、ネットワークスイッチ22は、このビット列B2-1において、ネットワークスイッチ21-1から転送されてきた計算ノード11-1からの経路設定コマンドと計算ノード11-2からの経路設定コマンドとを入力した入力ポートI1と対応付けられている出力ポートO1に対応するビットの値を「1」に設定する。なお、ネットワークスイッチ22は、計算ノード11-1からの経路設定コマンドに対するビットの値の設定と、計算ノード11-2からの経路設定コマンドに対するビットの値の設定とを行うごとに、設定完了プロセス数に「1」を加算する。
 さらに、ネットワークスイッチ22は、このビット列B2-1において、ネットワークスイッチ21-2からの経路設定コマンドを入力した入力ポートI2と対応付けられている出力ポートO2に対応するビットの値と、ネットワークスイッチ21-3からの経路設定コマンドを入力した入力ポートI3と対応付けられている出力ポートO3に対応するビットの値と、ネットワークスイッチ21-4からの経路設定コマンドを入力した入力ポートI4と対応付けられている出力ポートO4に対応するビットの値とを、「1」に設定する。
 そして、ビット列B2-1におけるこれらのビット値の更新が完了した場合、ネットワークスイッチ22が記憶しているビット列B2-1は、図8に示す状態(=「11110」)にある。また、これらの設定が完了した場合、ネットワークスイッチ22が、各経路設定コマンド内のマルチキャストID(=「1」)と対応付けて記憶している設定完了プロセス数Q2-1は「5」である。
 なお、ネットワークスイッチ22が受信した各経路設定コマンド内の宛先情報と、ネットワークスイッチ22が記憶しているネットワークスイッチ22に付与されたスイッチ識別情報とは同じである。この場合、ネットワークスイッチ22は、経路設定コマンドを他のネットワークスイッチ21-1~21-4へ転送しないため、宛先情報と同じスイッチ識別情報と対応付けて記憶している出力ポートに対応するビットの値を「1」に設定しない。
 また、ネットワークスイッチ22は、ネットワークスイッチ22が受信した各経路設定コマンド内の宛先情報と自己が記憶しているネットワークスイッチ22のスイッチ識別情報とが同じであるため、設定完了プロセス数Q2-1と、グループ所属プロセス数P2-1とを比較する。
 そして、比較の結果、グループ所属プロセス数P2-1と設定完了プロセス数Q2-1とが同じになった場合、ネットワークスイッチ22は、経路設定コマンド内のマルチキャストID「1」が付与されたプロセスグループに対するマルチキャストパケットを出力する出力ポートの設定が完了した旨を示し、経路設定コマンドの送信元の計算ノード11-1、11-2、12-1、13-3および14-4を宛先として指定した設定完了通知を生成する。なお、本実施形態では、ネットワークスイッチ22は、設定完了通知に、設定を完了したプロセスグループのマルチキャストID(=「1」)を書込む。
 そして、ネットワークスイッチ22は、設定完了通知に書込んだマルチキャストID「1」と対応付けて記憶しているビット列B2-1(=「11110」)において「1」に設定されているビットと対応する出力ポートO1~O4へ、設定完了通知を出力する。これにより、設定完了通知が、マルチキャストパケットが出力される出力ポートとして設定した出力ポートを経由して、経路設定コマンドを送信してきた各計算ノードへ送信される。
 この説明例では、図9に示すように、ネットワークスイッチ22は、計算ノード11-1、11-2のそれぞれを宛先として指定した各設定完了通知を、ネットワークスイッチ21-1へ送信する。また、ネットワークスイッチ22は、計算ノード12-1を宛先として指定した設定完了通知を、ネットワークスイッチ21-2へ送信する。また、ネットワークスイッチ22は、計算ノード13-3を宛先として指定した設定完了通知を、ネットワークスイッチ21-3へ送信する。また、ネットワークスイッチ22は、計算ノード14-4を宛先として指定した設定完了通知を、ネットワークスイッチ21-4へ送信する。
 すると、各ネットワークスイッチ21-1~21-4は、ネットワークスイッチ22から送信されてきた設定完了通知をそれぞれ受信する。
 そして、各ネットワークスイッチ21-1~21-4は、設定完了通知内のマルチキャストID「1」と同じマルチキャストIDと対応付けてそれぞれ記憶している図9に示す各グループ所属プロセス数P1-1~P1-4と、設定完了通知内のマルチキャストID「1」と同じマルチキャストIDと対応付けてそれぞれ記憶している図9に示す各設定完了プロセス数Q1-1~Q1-4とを比較する。
 比較の結果、各ネットワークスイッチ21-1~21-4がそれぞれ記憶している各グループ所属プロセス数P1-1~P1-4と、各ネットワークスイッチ21-1~21-4がそれぞれ記憶している各設定完了プロセス数Q1-1~Q1-4とは異なっている。
 この場合、各ネットワークスイッチ21-1~21-4は、設定完了通知に含まれているマルチキャストID「1」と同じマルチキャストIDと対応付けてそれぞれ記憶している各ビット列B1-1~B1-4における、設定完了通知を入力した入力ポートと対応付けられた出力ポートに対応するビットの値の変更を行わない。
 そして、ネットワークスイッチ21-1は、ネットワークスイッチ22から送信されてきた各設定完了通知を、それらの宛先である計算ノード11-1、11-2のそれぞれへ転送する。また、ネットワークスイッチ21-2は、ネットワークスイッチ22から送信されてきた設定完了通知を、その宛先である計算ノード12-1へ転送する。また、ネットワークスイッチ21-3は、ネットワークスイッチ22から送信されてきた設定完了通知を、その宛先である計算ノード13-3へ転送する。また、ネットワークスイッチ21-4は、ネットワークスイッチ22から送信されてきた設定完了通知を、その宛先である計算ノード14-4へ転送する。
 すると、各計算ノード11-1、11-2、12-1、13-3および14-4は、ネットワークスイッチ21-1から転送されてきた設定完了通知をそれぞれ受信する。すると、これらの計算ノード上でそれぞれ動作する同じプロセスグループに含まれる各プロセスが、経路設定コマンドにより要求したマルチキャストパケットを出力する出力ポートの設定がマルチキャスト制御スイッチにて完了したことを認識する。これにより、各計算ノード11-1、11-2、12-1、13-3および14-4が、相互にマルチキャストパケットの伝送を行うことが可能となる。なお、これらの計算ノードは、例えば、マルチキャスト通信の実行をプログラムにより指示された際に、マルチキャストパケットを送信する。
 つぎに、第1の動作例において、各計算ノード11-1、11-2、12-1、13-3および14-4が設定完了通知をそれぞれ受信した後、計算ノード11-1が、マルチキャストパケットを送信した場合の動作について、図10を参照して説明する。
 図10に示すように、ネットワークスイッチ21-1は、計算ノード11-1から送信されてきたマルチキャストパケットを受信する。すると、ネットワークスイッチ21-1は、計算ノード11-1からのマルチキャストパケットを入力した入力ポートI1を識別する。
 そして、ネットワークスイッチ21-1は、そのマルチキャストパケット内のマルチキャストID(=「1」)と対応付けて記憶している図10に示すビット列B1-1(=「11001」)において値が「1」に設定されているビットに対応する出力ポートのうちの識別した入力ポートI1と対応付けられた出力ポート以外の出力ポート(この例では、出力ポートO2、O5)へ、そのマルチキャストパケットを出力する。これにより、ネットワークスイッチ21-1は、計算ノード11-1から送信されてきたマルチキャストパケットを、出力ポートO2と接続されている計算ノード11-2と出力ポートO5と接続されているネットワークスイッチ22とへ転送する。
 その後、ネットワークスイッチ22は、ネットワークスイッチ21-1から転送されてきたマルチキャストパケットを受信する。すると、ネットワークスイッチ22は、そのマルチキャストパケットを入力した入力ポートI1を識別する。
 そして、ネットワークスイッチ22は、そのマルチキャストパケット内のマルチキャストID(=「1」)と対応付けて記憶している図10に示すビット列B2-1(=「11110」)において値が「1」に設定されているビットに対応する出力ポートのうちの識別した入力ポートI1と対応付けられた出力ポートO1以外の出力ポートO2、O3およびO4へ、そのマルチキャストパケットをそれぞれ出力する。これにより、ネットワークスイッチ22は、計算ノード11-1が送信したマルチキャストパケットを、出力ポートO2と接続されているネットワークスイッチ21-2と、出力ポートO3と接続されているネットワークスイッチ21-3と、出力ポートO4と接続されているネットワークスイッチ21-4とへ転送する。
 すると、ネットワークスイッチ21-2は、ネットワークスイッチ22から転送されてきたマルチキャストパケットを受信し、そのマルチキャストパケットを入力した入力ポートI5を識別する。
 そして、ネットワークスイッチ21-2は、そのマルチキャストパケット内のマルチキャストID(=「1」)と対応付けて記憶している図10に示すビット列B1-2(=「10001」)において値が「1」に設定されているビットに対応する出力ポートのうち識別した入力ポートI5と対応付けられた出力ポートO5以外の出力ポートO1へ、そのマルチキャストパケットを出力する。これにより、ネットワークスイッチ21-2は、計算ノード11-1が送信したマルチキャストパケットを、出力ポートO1と接続されている計算ノード12-1へ転送する。
 また、ネットワークスイッチ21-3は、ネットワークスイッチ22から転送されてきたマルチキャストパケットを受信し、そのマルチキャストパケットを入力した入力ポートI5を識別する。
 そして、ネットワークスイッチ21-3は、そのマルチキャストパケット内のマルチキャストID(=「1」)と対応付けて記憶している図10に示すビット列B1-3(=「00101」)において値が「1」に設定されているビットに対応する出力ポートのうち識別した入力ポートI5と対応付けられた出力ポートO5以外の出力ポートO3へ、そのマルチキャストパケットを出力する。これにより、ネットワークスイッチ21-3は、計算ノード11-1が送信したマルチキャストパケットを、出力ポートO3と接続されている計算ノード13-3へ転送する。
 また、ネットワークスイッチ21-4は、ネットワークスイッチ22から転送されてきたマルチキャストパケットを受信し、そのマルチキャストパケットを入力した入力ポートI5を識別する。
 そして、ネットワークスイッチ21-4は、そのマルチキャストパケット内のマルチキャストID(=「1」)と対応付けて記憶している図10に示すビット列B1-4(=「00011」)において値が「1」に設定されているビットに対応する出力ポートのうち識別した入力ポートI5と対応付けられた出力ポートO5以外の出力ポートO4へ、そのマルチキャストパケットを出力する。これにより、ネットワークスイッチ21-4は、計算ノード11-1が送信したマルチキャストパケットを、出力ポートO4と接続されている計算ノード14-4へ転送する。以上で、各計算ノード11-1、11-2、12-1、13-3および14-4が設定完了通知をそれぞれ受信した後、計算ノード11-1が、マルチキャストパケットを送信する一連の動作が終了する。
 つぎに、特定の複数の計算ノードがマルチキャスト通信を行う第2の動作例について説明する。
 なお、第2の動作例では、各計算ノード11-1、11-2、11-3および11-4上でそれぞれ動作する1プロセス(つまり、グループ所属プロセス数は「4」)から成るプロセスグループが、マルチキャスト通信を行う。つまり、第2の動作例では、マルチキャスト制御スイッチ以外のネットワークスイッチのうちのいずれか1つのネットワークスイッチ21-1と接続された各計算ノード上でそれぞれ動作するプロセスだけから成るプロセスグループが、マルチキャスト通信を行う。また、以下では、このプロセスグループに付与されたマルチキャストIDは「1」である場合を例に挙げて説明する。
 まず、各計算ノード11-1~11-4は、図2に示したような経路設定コマンドをそれぞれ生成する。なお、この説明例では、経路設定コマンドは、プロセスグループに付与されたマルチキャストID(=「1」)と、宛先情報(=ネットワークスイッチ22に付与されたスイッチ識別情報と同じ情報)と、プロセスグループに含まれる計算ノード上のプロセスの数を示すグループ所属プロセス数(=「4」)とを含む。
 そして、図11に示すように、各計算ノード11-1、11-2、11-3および11-4は、この経路設定コマンドをネットワークスイッチ21-1へそれぞれ送信する。
 その後、ネットワークスイッチ21-1は、各計算ノード11-1~11-4からそれぞれ送信されてきた経路設定コマンドを受信する。すると、ネットワークスイッチ21-1は、受信した各経路設定コマンドに含まれているマルチキャストID「1」とグループ所属プロセス数「4」とを対応付けて記憶する。
 また、ネットワークスイッチ21-1は、受信した各経路設定コマンド内のマルチキャストID「1」と対応付けて記憶しているビット列B1-1を読出す。
 そして、ネットワークスイッチ21-1は、このビット列B1-1において、計算ノード11-1からの経路設定コマンドを入力した入力ポートI1と対応付けられている出力ポートO1に対応するビットの値と、計算ノード11-2からの経路設定コマンドを入力した入力ポートI2と対応付けられている出力ポートO2に対応するビットの値とを、計算ノード11-3からの経路設定コマンドを入力した入力ポートI3と対応付けられている出力ポートO3に対応するビットの値と、計算ノード11-4からの経路設定コマンドを入力した入力ポートI4と対応付けられている出力ポートO4に対応するビットの値とを、「1」に設定する。
 なお、ネットワークスイッチ21-1は、各計算ノード11-1、11-2、11-3および11-4からそれぞれ送信されてきた経路設定コマンドに対してビットの値の設定を1回行うごとに、自己が記憶している設定完了プロセス数Q1-1に「1」を加算していく。そのため、これらの設定が完了した場合、ネットワークスイッチ21-1が、経路設定コマンド内のマルチキャストID(=「1」)と対応付けて記憶している設定完了プロセス数は「4」である。
 また、ネットワークスイッチ21-1は、各経路設定コマンド内の宛先情報と自己が記憶しているネットワークスイッチ21-1に付与されたスイッチ識別情報とが異なっているため、ビット列B1-1において、宛先情報が示すネットワークスイッチ22と接続されている出力ポートO5に対応するビットの値を「1」に設定する。
 なお、ビット列B1-1におけるこれらのビット値の更新が完了した場合、ネットワークスイッチ21-1が記憶しているビット列B1-1は、図11に示す状態(=「11111」)にある。
 そして、ネットワークスイッチ21-1は、宛先情報が示すネットワークスイッチ22と接続されている出力ポートO5を介して、宛先情報が示すネットワークスイッチ22へ、計算ノード11-1から送信されてきた経路設定コマンドと、計算ノード11-2から送信されてきた経路設定コマンドと、計算ノード11-3から送信されてきた経路設定コマンドと、計算ノード11-4から送信されてきた経路設定コマンドとを転送する。
 その後、ネットワークスイッチ22は、ネットワークスイッチ21-1から転送されてきた各経路設定コマンドを受信する。すると、ネットワークスイッチ22は、ネットワークスイッチ21-1からの各経路設定コマンドに含まれているマルチキャストID「1」とグループ所属プロセス数「4」とを対応付けて記憶する。
 続いて、ネットワークスイッチ22は、受信した各経路設定コマンド内のマルチキャストID「1」と対応付けて記憶しているビット列B2-1を読出す。
 そして、ネットワークスイッチ22は、このビット列B2-1において、ネットワークスイッチ21-1から転送されてきた計算ノード11-1からの経路設定コマンドと、計算ノード11-2からの経路設定コマンドと、計算ノード11-3からの経路設定コマンドと、計算ノード11-4からの経路設定コマンドとを入力した入力ポートI1と対応付けられている出力ポートO1に対応するビットの値を「1」に設定する。
 なお、ネットワークスイッチ22は、計算ノード11-1からの経路設定コマンドに対するビットの値の設定と、計算ノード11-2からの経路設定コマンドに対するビットの値の設定と、計算ノード11-3からの経路設定コマンドに対するビットの値の設定と、計算ノード11-4からの経路設定コマンドに対するビットの値の設定とを行うごとに、設定完了プロセス数に「1」を加算する。
 そして、ビット列B2-1におけるこれらのビット値の更新が完了した場合、ネットワークスイッチ22が記憶しているビット列B2-1は、図11に示す状態(=「10000」)にある。また、これらの設定が完了した場合、ネットワークスイッチ22が、各経路設定コマンド内のマルチキャストID(=「1」)と対応付けて記憶している設定完了プロセス数Q2-1は「4」である。
 なお、ネットワークスイッチ22が受信した各経路設定コマンド内の宛先情報と、ネットワークスイッチ22が記憶しているネットワークスイッチ22に付与されたスイッチ識別情報とは同じである。この場合、ネットワークスイッチ22は、経路設定コマンドを他のネットワークスイッチ21-1~21-4へ転送しないため、宛先情報と同じスイッチ識別情報と対応付けて記憶している出力ポートに対応するビットの値を「1」に設定しない。
 また、ネットワークスイッチ22は、受信した各経路設定コマンド内の宛先情報と自己が記憶しているネットワークスイッチ22のスイッチ識別情報とが同じであるため、設定完了プロセス数Q2-1と、グループ所属プロセス数P2-1とを比較する。
 そして、比較の結果、グループ所属プロセス数P2-1と設定完了プロセス数Q2-1とが同じになった場合、ネットワークスイッチ22は、経路設定コマンド内のマルチキャストID「1」が付与されたプロセスグループに対するマルチキャストパケットを出力する出力ポートの設定が完了した旨を示し、経路設定コマンドの送信元の各計算ノード11-1~11-4を宛先としてそれぞれ指定した設定完了通知を生成する。なお、本実施形態では、ネットワークスイッチ22は、設定完了通知に、設定を完了したプロセスグループのマルチキャストID(=「1」)を書込む。
 そして、図12に示すように、ネットワークスイッチ22は、計算ノード11-1、11-2、11-3および11-4のそれぞれを宛先として指定した各設定完了通知を、ネットワークスイッチ21-1へ送信する。
 その後、ネットワークスイッチ21-1は、ネットワークスイッチ22から送信されてきた設定完了通知を受信する。
 すると、ネットワークスイッチ21-1は、設定完了通知内のマルチキャストID「1」と同じマルチキャストIDと対応付けて記憶している図12に示すグループ所属プロセス数P1-1(=「4」)と、設定完了通知内のマルチキャストID「1」と同じマルチキャストIDと対応付けて記憶している図12に示す設定完了プロセス数Q1-1(=「4」)とを比較する。
 比較の結果、ネットワークスイッチ21-1が記憶しているグループ所属プロセス数P1-1と、ネットワークスイッチ21-1が記憶している設定完了プロセス数Q1-1とは同じである。
 そのため、ネットワークスイッチ21-1は、設定完了通知に含まれているマルチキャストID「1」と同じマルチキャストIDと対応付けて記憶しているビット列B1-1(=「11111」)を読出す。続いて、ネットワークスイッチ21-1は、読み出したビット列B1-1において、ネットワークスイッチ22からの設定完了通知を入力した入力ポートI5と対応付けられた出力ポートO5に対応する左から5番目のビットの値を「1」から「0」へ変更する。なお、このビット値の更新が完了した場合、ネットワークスイッチ21-1が記憶しているビット列B1-1は、図12に示す状態(=「11110」)にある。
 その後、ネットワークスイッチ21-1は、ネットワークスイッチ22から送信されてきた各設定完了通知を、それらの宛先である計算ノード11-1~11-4のそれぞれへ転送する。
 すると、各計算ノード11-1~11-4は、ネットワークスイッチ21-1から転送されてきた設定完了通知をそれぞれ受信する。すると、これらの計算ノード上でそれぞれ動作する同じプロセスグループに含まれる各プロセスが、経路設定コマンドにより要求したマルチキャストパケットを出力する出力ポートの設定がマルチキャスト制御スイッチにて完了したことを認識する。これにより、各計算ノード11-1~11-4が、相互にマルチキャストパケットの伝送を行うことが可能となる。
 つぎに、第2の動作例において、各計算ノード11-1~11-4が設定完了通知をそれぞれ受信した後、計算ノード11-1が、マルチキャストパケットを送信した場合の動作について、図13を参照して説明する。
 図13に示すように、ネットワークスイッチ21-1は、計算ノード11-1から送信されてきたマルチキャストパケットを受信する。すると、ネットワークスイッチ21-1は、計算ノード11-1からのマルチキャストパケットを入力した入力ポートI1を識別する。
 そして、ネットワークスイッチ21-1は、そのマルチキャストパケット内のマルチキャストID(=「1」)と対応付けて記憶している図13に示すビット列B1-1(=「11110」)において値が「1」に設定されているビットに対応する出力ポートのうちの識別した入力ポートI1と対応付けられた出力ポート以外の出力ポート(この例では、出力ポートO2、O3およびO4)へ、そのマルチキャストパケットを出力する。
 これにより、ネットワークスイッチ21-1は、計算ノード11-1から送信されてきたマルチキャストパケットを、出力ポートO2と接続されている計算ノード11-2と、出力ポートO3と接続されている計算ノード11-3と、出力ポートO4と接続されている計算ノード11-4とへ転送する。
 以上説明したように、本発明の並列計算機システムによれば、相互結合網2上を伝送されるマルチキャストパケットの総量をより少なくするように抑制することができる。例えば、図12に示した本発明にてマルチキャスト通信されるパケットの通信量は、図14に示したツリー構造のネットワークにてマルチキャスト通信されるパケットの通信量よりも少なくなっていることがわかる。
 また、本発明の並列計算機システムによれば、第2の動作例で示したように、マルチキャストパケットが経由する必要のないネットワークスイッチを経由して送信されることを回避でき、マルチキャスト通信におけるレイテンシを抑えることができる。
 また、本発明の並列計算機システムによれば、相互結合網2に接続された計算ノードの物理的な位置を把握することなく、マルチキャスト通信における宛先および通信経路を高速に設定できる。
 また、本発明の並列計算機システムによれば、マルチキャストパケットは、マルチキャストデータ以外に少なくともマルチキャストIDのみを含んでいればよい。つまり、マルチキャストパケットに、宛先情報や他の制御情報を含めることが不要となり、マルチキャストパケットのヘッダサイズの増大を抑えることができる。
 なお、本発明においては、ネットワークスイッチ21-1内の処理は上述の専用のハードウェアにより実現されるもの以外に、その機能を実現するためのプログラムを、ネットワークスイッチ21-1として動作させるコンピュータにて読取可能な記録媒体に記録し、この記録媒体に記録されたプログラムをそのコンピュータに読み込ませ、実行するものであってもよい。ネットワークスイッチ21-1として動作させるコンピュータにて読取可能な記録媒体とは、フロッピーディスク(登録商標)、光磁気ディスク、DVD、CDなどの移設可能な記録媒体の他、そのコンピュータに内蔵されたHDD等を指す。この記録媒体に記録されたプログラムは、例えば、ネットワークスイッチ21-1として動作させるコンピュータが有するマルチキャスト制御部205として動作するプロセッサにて読み込まれ、そのプロセッサの制御によって、上述したものと同様の処理が行われる。
 ここで、マルチキャスト制御部205として動作するプロセッサは、プログラムが記録された記録媒体から読み込まれたプログラムを実行するものである。なお、上述のプログラムは、各ネットワークスイッチ21-2~21-4、22についても同様に適用可能である。
 以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明の要旨を逸脱しない範囲で当業者が理解し得る各種の変形が可能である。
 この出願は、2009年4月28日に出願された日本出願特願2009-109587を基礎として優先権の利益を主張するものであり、その開示の全てを引用によってここに取り込む。
 1 計算ノード群
 11-1~11-4、12-1~12-4、13-1~13-4、14-1~14-4 計算ノード
 2 相互結合網
 21-1~21-4、22 ネットワークスイッチ
 201-1~201-5 入力バッファ部
 202-1~202-5 出力バッファ部
 203 クロスバスイッチ部
 204 クロスバ制御部
 205 マルチキャスト制御部
 301 パケット入力部
 302 パケット出力部
 303 プロセス数保持部
 304 カウンタ部
 305 情報管理部
 306 比較部
 307 完了通知生成部
 308 宛先判定部
 309 修正部
 3051 マルチキャスト制御情報

Claims (25)

  1.  複数の入力ポートと該入力ポートにそれぞれ対応づけられた複数の出力ポートとを有し、前記出力ポートからマルチキャストパケットを出力するネットワークスイッチにおいて、
     前記複数の出力ポートのうちから前記マルチキャストパケットを出力するための出力ポートを指定する情報であるマルチキャスト制御情報を保持するマルチキャスト制御情報保持部と、
     前記マルチキャスト制御情報保持部に対して、前記マルチキャストパケットの転送経路を設定する転送経路設定を行うマルチキャスト制御部とを有し、
     前記マルチキャスト制御部は、当該ネットワークスイッチに対して転送経路設定を指示する経路設定コマンドを受信したときに、該経路設定コマンドを受信した入力ポートに対応する出力ポートおよび、該経路設定コマンドが指定する宛先に届くように該経路設定コマンドを出力する出力ポートを、前記マルチキャストパケットを転送する出力ポートとして設定し、マルチキャストパケットを受信した場合、前記マルチキャスト制御情報保持部が保持するマルチキャスト制御情報が指定する出力ポートのうち、該マルチキャストパケットを受信した入力ポートに対応する出力ポート以外の出力ポートに対して該マルチキャストパケットを出力することを特徴とするネットワークスイッチ。
  2.  請求項1に記載のネットワークスイッチであって、
     経路設定が完了したことを通知する経路設定完了通知を生成する完了通知生成部と、
     前記入力ポートに前記経路設定コマンドが入力されたときに、該経路設定コマンドの転送先情報が示す宛先と、該経路設定コマンドが入力されたネットワークスイッチとが一致するか否かを判別する宛先一致判定部と、を有し、
     前記宛先一致判定部が一致すると判別したネットワークスイッチでは、経路設定完了時において、前記完了通知生成部にて前記経路設定完了通知を生成し、
     該生成した経路設定完了通知を、前記マルチキャスト制御情報保持部が保持するマルチキャスト制御情報が指定する出力ポートに対して出力することを特徴とするネットワークスイッチ。
  3.  前記入力ポートの1つに前記経路設定完了通知が入力されたときに、前記マルチキャスト制御情報保持部が保持するマルチキャスト制御情報が指定する出力ポートのうち、該経路設定完了通知を受信した入力ポートに対応する出力ポート以外の出力ポートに対して該経路設定完了通知を出力することを特徴とする請求項2に記載のネットワークスイッチ。
  4.  前記マルチキャスト制御部が前記転送経路設定を完了したプロセス数である経路設定完了プロセス数をカウントするプロセス数カウンタ部と、
     前記プロセス数カウンタ部がカウントした経路設定完了プロセス数と、マルチキャスト通信に参加するプロセス数であるグループ所属プロセス数が一致するかどうかを比較する比較部とを有し、
     前記経路設定完了通知を受信したときに、前記比較部にて一致判定を行い、一致するとしたときに、前記マルチキャスト制御情報保持部が保持するマルチキャスト制御情報を、該経路設定完了通知を受信した入力ポートに対応する出力ポートにはマルチキャストパケットを出力しないように修正を行うマルチキャスト情報修正部を有することを特徴とする請求項3に記載のネットワークスイッチ。
  5.  前記マルチキャスト制御部が前記転送経路設定を完了したプロセス数である経路設定完了プロセス数をカウントするプロセス数カウンタ部と、
     前記プロセス数カウンタ部がカウントした経路設定完了プロセス数と、マルチキャスト通信に参加するプロセス数であるグループ所属プロセス数が一致するかどうかを比較する比較部とを有し、
     前記経路設定コマンドを受信したときに、前記比較部にて一致判定を行い、一致するとしたときに、前記マルチキャスト制御情報保持部が保持するマルチキャスト制御情報を、該経路設定コマンドが指定する宛先に届くように該経路設定コマンドを出力する出力ポートにはマルチキャストパケットを出力しないように修正を行うマルチキャスト情報修正部を有することを特徴とする請求項1に記載のネットワークスイッチ。
  6.  前記プロセス数カウンタ部は、前記入力ポートに前記経路設定コマンドが入力されたときに、前記経路設定完了プロセス数をカウントすることを特徴とする請求項4または5に記載のネットワークスイッチ。
  7.  前記マルチキャスト制御情報保持部は、前記複数の出力ポートにそれぞれ対応付けられた複数のビットを含むマルチキャスト制御情報を保持し、
     前記ビットに設定されている値の更新により、該更新したビットに対応する出力ポートを、前記マルチキャストパケットを出力する出力ポートとして指定することを特徴とする請求項1から6のいずれかに記載のネットワークスイッチ。
  8.  前記マルチキャスト制御情報保持部は、前記更新の対象とするビットを含むマルチキャスト制御情報を、マルチキャスト通信を識別する識別情報であるマルチキャストIDで指定することを特徴とする請求項7に記載のネットワークスイッチ。
  9.  複数の入力ポートと該入力ポートにそれぞれ対応づけられた複数の出力ポートとを有し、前記出力ポートからマルチキャストパケットを出力するネットワークスイッチにおけるマルチキャスト経路設定方法であって、
     前記複数の出力ポートのうちから前記マルチキャストパケットを出力するための出力ポートを指定する情報であるマルチキャスト制御情報を保持するマルチキャスト制御情報保持処理と、
     前記マルチキャスト制御情報保持処理に対して、前記マルチキャストパケットの転送経路を設定する転送経路設定を行うマルチキャスト制御処理とを有し、
     前記マルチキャスト制御処理は、前記ネットワークスイッチに対して転送経路設定を指示する経路設定コマンドをネットワークスイッチが受信したときに、該経路設定コマンドを受信した入力ポートに対応する出力ポートおよび、該経路設定コマンドが指定する宛先に届くように該経路設定コマンドを出力する出力ポートを、前記マルチキャストパケットを転送する出力ポートとして設定し、
     ネットワークスイッチがマルチキャストパケットを受信した場合に、前記マルチキャスト制御情報保持処理が保持するマルチキャスト制御情報が指定する出力ポートのうち、該マルチキャストパケットを受信した入力ポートに対応する出力ポート以外の出力ポートに対して該マルチキャストパケットを出力するマルチキャスト転送処理を有することを特徴とするマルチキャスト経路設定方法。
  10.  請求項9に記載のマルチキャスト経路設定方法であって、
     経路設定が完了したことを通知する経路設定完了通知を生成する完了通知生成処理と、
     前記入力ポートに前記経路設定コマンドが入力されたときに、該経路設定コマンドの転送先情報が示す宛先と、該経路設定コマンドが入力されたネットワークスイッチとが一致するか否かを判別する宛先一致判定処理と、を有し、
     前記宛先一致判定処理が一致すると判別したネットワークスイッチでは、経路設定完了時において、前記完了通知生成処理にて前記経路設定完了通知を生成し、
     該生成した経路設定完了通知を、前記マルチキャスト制御情報保持処理が保持するマルチキャスト制御情報が指定する出力ポートに対して出力することを特徴とする経路設定方法。
  11.  前記入力ポートの1つに前記経路設定完了通知が入力されたときに、前記マルチキャスト制御情報保持処理が保持するマルチキャスト制御情報が指定する出力ポートのうち、該経路設定完了通知を受信した入力ポートに対応する出力ポート以外の出力ポートに対して該経路設定完了通知を出力することを特徴とする請求項10に記載の経路設定方法。
  12.  前記マルチキャスト制御処理が前記転送経路設定を完了したプロセス数である経路設定完了プロセス数をカウントするプロセス数カウント処理と、
     前記プロセス数カウント処理がカウントした経路設定完了プロセス数と、マルチキャスト通信に参加するプロセス数であるグループ所属プロセス数が一致するかどうかを比較する比較処理とを有し、
     前記経路設定完了通知を受信したときに、前記比較処理にて一致判定を行い、一致するとしたときに、前記マルチキャスト制御情報保持処理が保持するマルチキャスト制御情報を、該経路設定完了通知を受信した入力ポートに対応する出力ポートにはマルチキャストパケットを出力しないように修正を行うマルチキャスト情報修正処理を有することを特徴とする請求項11に記載の経路設定方法。
  13.  前記マルチキャスト制御処理が前記転送経路設定を完了したプロセス数である経路設定完了プロセス数をカウントするプロセス数カウント処理と、
     前記プロセス数カウント処理がカウントした経路設定完了プロセス数と、マルチキャスト通信に参加するプロセス数であるグループ所属プロセス数が一致するかどうかを比較する比較処理とを有し、
     前記経路設定コマンドを受信したときに、前記比較処理にて一致判定を行い、一致するとしたときに、前記マルチキャスト制御情報保持処理が保持するマルチキャスト制御情報を、該経路設定コマンドが指定する宛先に届くように該経路設定コマンドを出力する出力ポートにはマルチキャストパケットを出力しないように修正を行うマルチキャスト情報修正処理を有することを特徴とする請求項9に記載の経路設定方法。
  14.  前記プロセス数カウント処理は、前記入力ポートに前記経路設定コマンドが入力されたときに、前記経路設定完了プロセス数をカウントすることを特徴とする請求項12または13に記載の経路設定方法。
  15.  前記マルチキャスト制御情報保持処理は、前記複数の出力ポートにそれぞれ対応付けられた複数のビットを含むマルチキャスト制御情報を保持し、
     前記ビットに設定されている値の更新により、該更新したビットに対応する出力ポートを、前記マルチキャストパケットを出力する出力ポートとして指定することを特徴とする請求項9から14のいずれかに記載の経路設定方法。
  16.  前記マルチキャスト制御情報保持処理は、前記更新の対象とするビットを含むマルチキャスト制御情報を、マルチキャスト通信を識別する識別情報であるマルチキャストIDで指定することを特徴とする請求項15に記載の経路設定方法。
  17.  並列計算機システムに実行させるプログラムであって、
     ネットワークスイッチが具備する複数の入力ポートと該入力ポートにそれぞれ対応づけられた複数の出力ポートのうちからマルチキャストパケットを出力するための出力ポートを指定する情報であるマルチキャスト制御情報を保持するマルチキャスト制御情報保持手順と、
     前記マルチキャスト制御情報保持手順に対して、前記マルチキャストパケットの転送経路を設定する転送経路設定を行うマルチキャスト制御手順とを並列計算機システムに実行させ、
     前記マルチキャスト制御手順は、前記ネットワークスイッチに対して転送経路設定を指示する経路設定コマンドをネットワークスイッチが受信したときに、該経路設定コマンドを受信した入力ポートに対応する出力ポートおよび、該経路設定コマンドが指定する宛先に届くように該経路設定コマンドを出力する出力ポートを、前記マルチキャストパケットを転送する出力ポートとして設定し、
     ネットワークスイッチがマルチキャストパケットを受信した場合に、前記マルチキャスト制御情報保持手順にて保持するマルチキャスト制御情報が指定する出力ポートのうち、該マルチキャストパケットを受信した入力ポートに対応する出力ポート以外の出力ポートに対して該マルチキャストパケットを出力するマルチキャスト転送手順を実行させることを特徴とするプログラム。
  18.  請求項17に記載のプログラムであって、
     経路設定が完了したことを通知する経路設定完了通知を生成する完了通知生成手順と、
     前記入力ポートに前記経路設定コマンドが入力されたときに、該経路設定コマンドの転送先情報が示す宛先と、該経路設定コマンドが入力されたネットワークスイッチとが一致するか否かを判別する宛先一致判定手順と、を有し、
     前記宛先一致判定手順が一致すると判別したネットワークスイッチでは、経路設定完了時において、前記完了通知生成手順にて前記経路設定完了通知を生成し、
     該生成した経路設定完了通知を、前記マルチキャスト制御情報保持手順にて保持するマルチキャスト制御情報が指定する出力ポートに対して出力することを特徴とするプログラム。
  19.  前記入力ポートの1つに前記経路設定完了通知が入力されたときに、前記マルチキャスト制御情報保持手順にて保持するマルチキャスト制御情報が指定する出力ポートのうち、該経路設定完了通知を受信した入力ポートに対応する出力ポート以外の出力ポートに対して該経路設定完了通知を出力することを特徴とする請求項18に記載のプログラム。
  20.  前記マルチキャスト制御手順が前記転送経路設定を完了したプロセス数である経路設定完了プロセス数をカウントするプロセス数カウント手順と、
     前記プロセス数カウント手順がカウントした経路設定完了プロセス数と、マルチキャスト通信に参加するプロセス数であるグループ所属プロセス数が一致するかどうかを比較する比較手順とを有し、
     前記経路設定完了通知を受信したときに、前記比較手順にて一致判定を行い、一致するとしたときに、前記マルチキャスト制御情報保持手順が保持するマルチキャスト制御情報を、該経路設定完了通知を受信した入力ポートに対応する出力ポートにはマルチキャストパケットを出力しないように修正を行うマルチキャスト情報修正手順を有することを特徴とする請求項19に記載のプログラム。
  21.  前記マルチキャスト制御手順が前記転送経路設定を完了したプロセス数である経路設定完了プロセス数をカウントするプロセス数カウント手順と、
     前記プロセス数カウント手順がカウントした経路設定完了プロセス数と、マルチキャスト通信に参加するプロセス数であるグループ所属プロセス数が一致するかどうかを比較する比較手順とを有し、
     前記経路設定コマンドを受信したときに、前記比較手順にて一致判定を行い、一致するとしたときに、前記マルチキャスト制御情報保持手順が保持するマルチキャスト制御情報を、該経路設定コマンドが指定する宛先に届くように該経路設定コマンドを出力する出力ポートにはマルチキャストパケットを出力しないように修正を行うマルチキャスト情報修正手順を有することを特徴とする請求項17に記載のプログラム。
  22.  前記プロセス数カウント手順は、前記入力ポートに前記経路設定コマンドが入力されたときに、前記経路設定完了プロセス数をカウントすることを特徴とする請求項20または21に記載のプログラム。
  23.  前記マルチキャスト制御情報保持手順は、前記複数の出力ポートにそれぞれ対応付けられた複数のビットを含むマルチキャスト制御情報を保持し、
     前記ビットに設定されている値の更新により、該更新したビットに対応する出力ポートを、前記マルチキャストパケットを出力する出力ポートとして指定することを特徴とする請求項17から22のいずれかに記載のプログラム。
  24.  前記マルチキャスト制御情報保持手順は、前記更新の対象とするビットを含むマルチキャスト制御情報を、マルチキャスト通信を識別する識別情報であるマルチキャストIDで指定することを特徴とする請求項23に記載のプログラム。
  25.  複数の計算ノードを相互結合網で接続した並列計算機システムであって、
     前記相互結合網は、請求項1から8のいずれかに記載のネットワークスイッチで構成され、
     前記複数の計算ノード間におけるマルチキャスト通信機能を有する並列計算機システム。
PCT/JP2010/053993 2009-04-28 2010-03-10 ネットワークスイッチ、経路設定方法、プログラムおよび並列計算機システム WO2010125859A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US13/258,892 US8792488B2 (en) 2009-04-28 2010-03-10 Network switch, route setup method, program, and parallel computer system
JP2011511346A JP5435024B2 (ja) 2009-04-28 2010-03-10 ネットワークスイッチ、経路設定方法、プログラムおよび並列計算機システム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009-109587 2009-04-28
JP2009109587 2009-04-28

Publications (1)

Publication Number Publication Date
WO2010125859A1 true WO2010125859A1 (ja) 2010-11-04

Family

ID=43032013

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/053993 WO2010125859A1 (ja) 2009-04-28 2010-03-10 ネットワークスイッチ、経路設定方法、プログラムおよび並列計算機システム

Country Status (3)

Country Link
US (1) US8792488B2 (ja)
JP (1) JP5435024B2 (ja)
WO (1) WO2010125859A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6178936B1 (ja) * 2017-01-24 2017-08-09 株式会社Preferred Networks パケットスイッチ装置及びメッセージ交換システム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9521007B2 (en) * 2013-04-25 2016-12-13 Mediatek Inc. Multi-level replication counter storage device for multicast packet processing and related method for managing multicast packet processing
US10313226B2 (en) * 2015-09-03 2019-06-04 Apple Inc. Multicast in multi-user transmissions
US10284465B2 (en) * 2015-12-28 2019-05-07 Mellanox Technologies Tlv Ltd. Efficient algorithmic forwarding in fat-tree networks

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06261045A (ja) * 1993-02-12 1994-09-16 Internatl Business Mach Corp <Ibm> メッセージ通信方法及び装置
JPH07200505A (ja) * 1993-12-30 1995-08-04 Hitachi Ltd 一斉同報通信方法およびその装置
JP2001202343A (ja) * 1999-11-12 2001-07-27 Agilent Technol Inc 自己グループ化通信を行う分散処理システム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2581286B2 (ja) 1990-09-07 1997-02-12 日本電気株式会社 網制御方法
JP3679813B2 (ja) 1991-07-22 2005-08-03 株式会社日立製作所 並列計算機
JP2778520B2 (ja) 1995-04-28 1998-07-23 日本電気株式会社 マルチキャスト方法及び交換スイッチ
JP2830833B2 (ja) 1996-04-30 1998-12-02 日本電気株式会社 プロセッサ間通信方法及びそれに用いるプロセッサ
JP3408444B2 (ja) 1999-01-21 2003-05-19 日本電気株式会社 並列計算機、多段結合網並びに交換スイッチ
US6317434B1 (en) * 1999-04-14 2001-11-13 Verizon Laboratories Inc. Data link layer switch with multicast capability
CA2436413C (en) 2001-02-24 2011-09-27 International Business Machines Corporation Class network routing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06261045A (ja) * 1993-02-12 1994-09-16 Internatl Business Mach Corp <Ibm> メッセージ通信方法及び装置
JPH07200505A (ja) * 1993-12-30 1995-08-04 Hitachi Ltd 一斉同報通信方法およびその装置
JP2001202343A (ja) * 1999-11-12 2001-07-27 Agilent Technol Inc 自己グループ化通信を行う分散処理システム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
AMANE NAKAJIMA: "Two-Stage Mutual Multicast For n-to-n Communication", THE TRANSACTION OF IEICE (J75-D-I), 25 January 1992 (1992-01-25), pages 19 - 29 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6178936B1 (ja) * 2017-01-24 2017-08-09 株式会社Preferred Networks パケットスイッチ装置及びメッセージ交換システム

Also Published As

Publication number Publication date
JP5435024B2 (ja) 2014-03-05
US20120020356A1 (en) 2012-01-26
JPWO2010125859A1 (ja) 2012-10-25
US8792488B2 (en) 2014-07-29

Similar Documents

Publication Publication Date Title
KR102205882B1 (ko) 팻-트리 라우팅에 기반하여 별개의 인피니밴드 서브넷들 사이에서 트래픽을 라우팅하기 위한 시스템 및 방법
JP5850471B2 (ja) 通信システム、制御装置、ノード制御方法およびプログラム
JP4862743B2 (ja) ノード、通信方法およびノード用プログラム
JP5900353B2 (ja) 通信システム、制御装置、通信ノードおよび通信方法
US9838327B1 (en) Distributed generation of hierarchical multicast forwarding structures
US8824483B2 (en) Delivering multicast frames to aggregated link trunks in a distributed switch
JP2008078906A (ja) 通信装置および通信方法
JP5347975B2 (ja) ネットワークスイッチ、経路設定方法およびプログラム
KR101328355B1 (ko) 네트워크 트래픽 감소 방법
CN104335537A (zh) 用于层2多播多路径传送的系统和方法
WO2014045444A1 (ja) 並列計算機、ノード装置、及び並列計算機の制御方法
US8345579B2 (en) Relay device suppressing frame flooding
JP5435024B2 (ja) ネットワークスイッチ、経路設定方法、プログラムおよび並列計算機システム
WO2018198479A1 (ja) 情報処理装置、情報処理方法及びプログラム
WO2021082812A1 (zh) 报文的发送方法和第一网络设备
WO2013114489A1 (en) Control method, control apparatus, communication system, and program
JP2007274357A (ja) ブリッジ装置、ブリッジ装置における制御方法、及び制御プログラム
US11115237B2 (en) Method for fault tolerant message transmission in a computer network and computer network
Shahbaz et al. Elmo: Source-routed multicast for cloud services
Keinänen et al. Implementing zFilter based forwarding node on a NetFPGA
US10257120B2 (en) Converting an aggregated flow to a real flow for core nodes
Chatmen et al. A new network on chip design dedicated to multicast service
CN113824781A (zh) 一种数据中心网络源路由方法与装置
CN113765815A (zh) 组播报文负载分担的方法、设备和系统
JPH09172443A (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: 10769559

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2011511346

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 13258892

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10769559

Country of ref document: EP

Kind code of ref document: A1