(57)【要約】複数の入力ポートに対応付けられた複数の出力ポートのうちマルチキャストパケットを出力するために指定された出力ポートに対して、マルチキャストパケットの転送経路を設定する。さらに、転送経路設定を完了したプロセス数である経路設定完了プロセス数をカウントし、カウントした経路設定完了プロセス数と、マルチキャスト通信を実行させるプロセス数とが一致するか否かを判別し、一致すると判別したときにマルチキャスト通信の転送経路設定が完了したことを識別する。
2009098820.tif 000002
【特許請求の範囲】
【請求項１】
複数の入力ポートと該入力ポートにそれぞれ対応付けられた複数の出力ポートとを有し、前記出力ポートからマルチキャストパケットを出力するネットワークスイッチにおいて、
前記複数の出力ポートのうちから前記マルチキャストパケットを出力するための出力ポートを指定するマルチキャスト制御情報保持部と、
前記マルチキャスト制御情報保持部が指定した出力ポートに対して、前記マルチキャストパケットの転送経路を設定する転送経路設定を行うマルチキャスト制御部と、
前記マルチキャスト制御部が前記転送経路設定を完了したプロセス数である経路設定完了プロセス数をカウントする加算部と、
前記加算部がカウントした経路設定完了プロセス数と、前記マルチキャスト通信を実行させるプロセス数とが一致するか否かを判別し、一致すると判別したときにマルチキャスト通信の転送経路設定が完了したことを識別する比較部とを有することを特徴とするネットワークスイッチ。
【請求項２】
前記マルチキャスト制御情報保持部は、
前記マルチキャスト制御部に転送経路設定を指示するコマンドである経路設定コマンドが入力された入力ポートに基づいて、前記複数の出力ポートのうちから前記マルチキャストパケットを出力するための出力ポートを指定することを特徴とする請求項１に記載のネットワークスイッチ。
【請求項３】
前記マルチキャスト制御情報保持部は、
前記複数の出力ポートにそれぞれ対応付けられた複数のビットを含むマルチキャスト制御情報を保持し、
前記ビットに設定されている値の更新により、該更新したビットに対応する出力ポートを、前記マルチキャストパケットを出力する出力ポートとして指定することを特徴とする請求項２に記載のネットワークスイッチ。
【請求項４】
前記マルチキャスト制御情報保持部は、前記更新の対象とするビットを含むマルチキャスト制御情報を、マルチキャストＩＤによって指定することを特徴とする請求項３に記載のネットワークスイッチ。
【請求項５】
前記入力ポートに前記経路設定コマンドが入力されたときに、該経路設定コマンドの転送先情報が示す宛先と、該経路設定コマンドが入力されたネットワークスイッチとが一致するか否かを判別する宛先一致判別部、を有し、
前記加算部は、前記宛先一致判別部が一致すると判別した場合、前記経路設定完了プロセス数をカウントすることを特徴とする請求項２に記載のネットワークスイッチ。
【請求項６】
前記経路設定コマンドに含まれるマルチキャスト通信を実行させるプロセス数を保持するプロセス数保持部、を有し、
前記比較部は、前記加算部がカウントした経路設定完了プロセス数と、前記プロセス数保持部が保持している前記マルチキャスト通信を実行させるプロセス数とが一致するか否かを判別することを特徴とする請求項２に記載のネットワークスイッチ。
【請求項７】
前記比較部がマルチキャスト通信の転送経路設定が完了したことを識別した場合、該転送経路設定が完了したことを示す経路設定完了通知を生成し、該生成した経路設定完了通知を、前記入力ポートに入力された経路設定コマンドの送信元に転送する完了通知生成部、を有することを特徴とする請求項２に記載のネットワークスイッチ。
【請求項８】
前記完了通知生成部は、前記マルチキャスト制御部が設定した転送経路に従って行われるマルチキャスト通信により、前記経路設定完了通知を転送することを特徴とする請求項７に記載のネットワークスイッチ。
【請求項９】
前記経路設定コマンドによって前記マルチキャスト制御部が転送経路を設定する際に、前記マルチキャストパケットは、１つまたは複数のネットワークスイッチで構成される相互結合網上を、前記経路設定コマンドが転送された方向と逆向きに転送されるよう、前記転送経路を設定することを特徴とする請求項２に記載のネットワークスイッチ。
【請求項１０】
複数の入力ポートと該入力ポートにそれぞれ対応付けられた複数の出力ポートとを有し、前記出力ポートからマルチキャストパケットを出力するネットワークスイッチにおける経路設定方法であって、
前記複数の出力ポートのうちから前記マルチキャストパケットを出力するための出力ポートを指定するマルチキャスト制御情報保持処理と、
前記マルチキャスト制御情報保持処理にて指定した出力ポートに対して、前記マルチキャストパケットの転送経路を設定する転送経路設定を行うマルチキャスト制御処理と、
前記マルチキャスト制御処理にて前記転送経路設定を完了したプロセス数である経路設定完了プロセス数をカウントする加算処理と、
前記加算処理にてカウントした経路設定完了プロセス数と、前記マルチキャスト通信を実行させるプロセス数とが一致するか否かを判別し、一致すると判別したときにマルチキャスト通信の転送経路設定が完了したことを識別する比較処理とを有する経路設定方法。
【請求項１１】
前記マルチキャスト制御情報保持処理では、
前記マルチキャスト制御処理にて転送経路設定を指示するコマンドである経路設定コマンドが入力された入力ポートに基づいて、前記複数の出力ポートのうちから前記マルチキャストパケットを出力するための出力ポートを指定することを特徴とする請求項１０に記載の経路設定方法。
【請求項１２】
前記マルチキャスト制御情報保持処理では、
前記複数の出力ポートにそれぞれ対応付けられた複数のビットを含むマルチキャスト制御情報を保持し、
前記ビットに設定されている値の更新により、該更新したビットに対応する出力ポートを、前記マルチキャストパケットを出力する出力ポートとして指定することを特徴とする請求項１１に記載の経路設定方法。
【請求項１３】
前記マルチキャスト制御情報保持処理では、前記更新の対象とするビットを含むマルチキャスト制御情報を、マルチキャストＩＤによって指定することを特徴とする請求項１２に記載の経路設定方法。
【請求項１４】
前記入力ポートに前記経路設定コマンドが入力されたときに、該経路設定コマンドの転送先情報が示す宛先と、該経路設定コマンドが入力されたネットワークスイッチとが一致するか否かを判別する宛先一致判別処理、を有し、
前記加算処理では、前記宛先一致判別処置にて一致すると判別した場合、前記経路設定完了プロセス数をカウントすることを特徴とする請求項１１に記載の経路設定方法。
【請求項１５】
前記経路設定コマンドに含まれるマルチキャスト通信を実行させるプロセス数を保持するプロセス数保持処理、を有し、
前記比較処理では、前記加算処理にてカウントした経路設定完了プロセス数と、前記プロセス数保持処理にて保持している前記マルチキャスト通信を実行させるプロセス数とが一致するか否かを判別することを特徴とする請求項１１に記載の経路設定方法。
【請求項１６】
前記比較処理にてマルチキャスト通信の転送経路設定が完了したことを識別した場合、該転送経路設定が完了したことを示す経路設定完了通知を生成し、該生成した経路設定完了通知を、前記入力ポートに入力された経路設定コマンドの送信元に転送する完了通知生成処理、を有することを特徴とする請求項１１に記載の経路設定方法。
【請求項１７】
前記完了通知生成処理では、前記マルチキャスト制御処理にて設定した転送経路に従って行われるマルチキャスト通信により、前記経路設定完了通知を転送することを特徴とする請求項１６に記載の経路設定方法。
【請求項１８】
前記マルチキャスト制御処理では、前記マルチキャストパケットは、１つまたは複数のネットワークスイッチで構成される相互結合網上を、前記経路設定コマンドが転送された方向と逆向きに転送されるよう、前記転送経路を設定することを特徴とする請求項１１に記載の経路設定方法。
【請求項１９】
ネットワークスイッチが具備する複数の入力ポートにそれぞれ対応付けられた複数の出力ポートのうちから、マルチキャストパケットを出力するための前記出力ポートを指定するマルチキャスト制御情報保持手順と、
前記マルチキャスト制御情報保持手順にて指定した出力ポートに対して、前記マルチキャストパケットの転送経路の設定である転送経路設定を行うマルチキャスト制御手順と、
前記マルチキャスト制御手順にて前記転送経路設定を完了したプロセス数である経路設定完了プロセス数をカウントする加算手順と、
前記加算手順にてカウントした経路設定完了プロセス数と、前記マルチキャスト通信を実行させるプロセス数とが一致するか否かを判別し、一致すると判別したときにマルチキャスト通信の転送経路設定が完了したことを識別する比較手順とをコンピュータに実行させるプログラム。
【請求項２０】
前記マルチキャスト制御情報保持手順では、
前記マルチキャスト制御手順にて転送経路設定を指示するコマンドである経路設定コマンドが入力された入力ポートに基づいて、前記複数の出力ポートのうちから前記マルチキャストパケットを出力するための出力ポートを指定することを特徴とする請求項１９に記載のプログラム。
【請求項２１】
前記マルチキャスト制御情報保持手順では、
前記複数の出力ポートにそれぞれ対応付けられた複数のビットを含むマルチキャスト制御情報を保持し、
前記ビットに設定されている値の更新により、該更新したビットに対応する出力ポートを、前記マルチキャストパケットを出力する出力ポートとして指定することを特徴とする請求項２０に記載のプログラム。
【請求項２２】
前記マルチキャスト制御情報保持手順では、前記更新の対象とするビットを含むマルチキャスト制御情報を、マルチキャストＩＤによって指定することを特徴とする請求項２１に記載のプログラム。
【請求項２３】
前記入力ポートに前記経路設定コマンドが入力されたときに、該経路設定コマンドの転送先情報が示す宛先と、該経路設定コマンドが入力されたネットワークスイッチとが一致するか否かを判別する宛先一致判別手順、を有し、
前記加算手順では、前記宛先一致判別手順にて一致すると判別した場合、前記経路設定完了プロセス数をカウントすることを特徴とする請求項２０に記載のプログラム。
【請求項２４】
前記経路設定コマンドに含まれるマルチキャスト通信を実行させるプロセス数を保持するプロセス数保持手順、を有し、
前記比較手順では、前記加算手順にてカウントした経路設定完了プロセス数と、前記プロセス数保持手順にて保持している前記マルチキャスト通信を実行させるプロセス数とが一致するか否かを判別することを特徴とする請求項２０に記載のプログラム。
【請求項２５】
前記比較手順にてマルチキャスト通信の転送経路設定が完了したことを識別した場合、該転送経路設定が完了したことを示す経路設定完了通知を生成し、該生成した経路設定完了通知を、前記入力ポートに入力された経路設定コマンドの送信元に転送する完了通知生成手順、を有することを特徴とする請求項２０に記載のプログラム。
【請求項２６】
前記完了通知生成手順では、前記マルチキャスト制御手順にて設定した転送経路に従って行われるマルチキャスト通信により、前記経路設定完了通知を転送することを特徴とする請求項２５に記載のプログラム。
【請求項２７】
前記マルチキャスト制御手順では、前記マルチキャストパケットは、１つまたは複数のネットワークスイッチで構成される相互結合網上を、前記経路設定コマンドが転送されてきた方向と逆向きに転送されるよう、前記転送経路を設定することを特徴とする請求項２０に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の計算機を相互に結合する相互結合網を構成するネットワークスイッチ、経路設定方法およびプログラムに関する。より詳細には、本発明は、指定された複数の計算機に対してデータを一斉配信するマルチキャスト通信のパケットを好適にルーティングするための経路情報の設定機能と、設定された経路情報に基づいてマルチキャスト通信を実行する機能とに関する。
【背景技術】
【０００２】
一般的に大規模な問題を高速に処理するために、複数の計算ノードを相互結合網で接続した並列計算機システムが用いられる。この並列計算機システムでは、対象となる問題を複数の計算ノードで分割して処理するが、その際、各計算ノード間で演算に必要なデータや演算結果のデータを相互に通信する必要がある。そのため、一つの計算ノードから別の計算ノードに対するデータ転送は、相互結合網を介して行われる。【０００３】
一つの計算ノードから複数の計算ノードに同一のデータを含むパケットを送信する場合、転送元の計算ノードから互いに異なる転送先の各計算ノードにパケットをそれぞれ送信すれば、所定の目的を達成できる。しかし、データ転送されるパケットを複製して複数の計算ノードに送信する機能を相互結合網が有しているのであれば、転送元の計算ノードが相互結合網に与える負荷が低減され、データ転送に要するデータ転送時間の短縮が可能になる。このように一つの計算ノードから複数の計算ノードに同一のデータを送信する機能をマルチキャスト通信機能と呼ぶ。【０００４】
並列計算機上で実行するプログラムを記述する一般的な方式として知られるＭＰＩ（Message Passing Interface）では、互いに通信を行うプロセスの集合をコミュニケータとして管理し、このコミュニケータに含まれるプロセスに対してマルチキャスト通信を行う関数が複数準備されている。【０００５】
例えば、ＭＰＩが定める「MPI_Bcast」は、あるプロセスが保持するデータを、同一のコミュニケータに含まれる全プロセスに送る関数である。このコミュニケータは、システム全体のプロセスの集合を指定することもあるが、プロセスの部分集合を指定することもある。また、「MPI_Allgather」は、指定されたデータを、コミュニケータ内のいずれかのプロセスから同一のコミュニケータに含まれる全プロセスに送る関数である。【０００６】
「MPI_Bcast」や「MPI_Allgather」のようなマルチキャスト通信を行う関数が有する機能は、１対１の通信であるユニキャスト通信を複数回実行することでも実現できるが、相互結合網がパケットを複製して複数の計算ノードに送信する機能を有している場合、相互結合網が有する機能を利用することが望ましい。これによって、データ転送時間の短縮を図り、プログラム全体の実行性能を向上させる観点からである。【０００７】
このようなデータ転送時間を低減し、プログラム全体の実行性能を向上させるための各種技術が提案されている。【０００８】
例えば、特許公開１９９６−３０５６４９号公報に開示されているように、一般的な交換スイッチにおいてマルチキャスト用バッファを設け、マルチキャストパケットの送信時に出力ポートの空きがない場合、いずれかの出力ポートが使用可能な状態になるまでの間、送信予定のマルチキャストパケットをマルチキャスト用バッファに格納するマルチキャスト方法が考えられている。【０００９】
また、マルチキャスト通信の際に、データの転送先となるシステム中の計算機を指定して、データ転送を実行する技術が提案されている。【００１０】
例えば、特許２５８１２８６号公報に開示されているように、宛先ノード番号の最小値と最大値によって指定される範囲に属する計算ノードに対してパケットを転送する網制御方法が考えられている。【００１１】
また、特許公表２００４−５３３０３５号公報に開示されているように、格子状に計算ノードが配置されたネットワークにおいて、同一の行に配置されている計算ノード、あるいは、同一の列に配置されている計算ノードに対して、メッセージをマルチキャスト転送するクラス・ネットワーク経路指定が考えられている。【００１２】
また、特許公開２０００−２１６７８７号公報に開示されているように、個々のパケットに複数の宛先をコード化して、ヘッダ上の固定長フィールドに記述する並列計算機が考えられている。この並列計算機では、少ない宛先ビットで複数の宛先の指定を行うとともに、宛先を指定するためのデータ長が固定長フィールドを超過する場合には、複数のマルチキャストパケットを生成している。【００１３】
また、特許公開１９９３−０２８１２２号公報に開示されているように、ネットワークスイッチが経路情報を保持し、その経路情報に従ってマルチキャスト転送を行うブロードキャスト方法が考えられている。このブロードキャスト方法では、外部のプログラムによって経路情報を事前に算出し、算出された経路情報を設定する。【００１４】
また、特許公開１９９７−２９７７４６号公報に開示されているように、プログラムから設定可能なアドレスレジスタを受信装置内に設け、マルチキャストパケットの受信先（宛先プロセッサ）は、パケットのヘッダを用いて各アドレスレジスタを選択し、選択したアドレスレジスタのレジスタ値に受信先のアドレスを書き込むプロセッサ間通信方法が考えられている。【００１５】
マルチキャスト通信においては、複数の転送先と各転送先にそれぞれ対応する転送経路とを指定する必要がある。一般的な技術では、複雑な宛先パターンを記述できないおそれや、プロセスを実行する計算ノードの物理的位置が特定できるまで宛先パターンを記述できないおそれがあるという問題点がある。【００１６】
また、上述の一般的な技術では、以下のような問題点がある。【００１７】
特許２５８１２８６号公報および特許公表２００４−５３３０３５号公報に開示された技術では、マルチキャスト通信の宛先ノードが、相互結合網上における計算ノードの物理的な配置と密接に関連している。そのため、宛先ノードとして指定できるパターンが限定されるおそれがあるという問題点がある。【００１８】
特許公開２０００−２１６７８７号公報に開示された技術では、マルチキャスト通信の宛先ノードのパターンが複雑で固定長ビット列への符号化が困難な場合、複数のマルチキャスト通信を実行するためにマルチキャスト機能の効果が低減するおそれがあるという問題点がある。【００１９】
特許公開１９９３−０２８１２２号公報に開示された技術では、経路指定用の経路情報を外部のプログラムによって事前に設定するため、マルチキャスト通信をユーザプログラムから実行する場合、経路を指定できない。このため、プロセスがどの計算ノード上で動作するかをマルチキャスト通信の実行前に確定する必要があり、柔軟で効率的なシステムの運用が困難なおそれがあるという問題点がある。【００２０】
さらに、上記特許ドキュメントそれぞれに開示された技術では、プログラム実行時に計算ノードの番号が仮想化されている場合や、プロセスが動作する計算ノードを事前に識別できない場合、マルチキャスト通信を実行する際に、先ず、物理的な計算ノードの位置を特定してからマルチキャスト通信の宛先を指定する必要がある。そのため、経路の指定に要する時間がプログラム実行上のオーバーヘッドになるという共通の問題点がある。
【発明の開示】
【００２１】
本発明は、上述した課題を解決するネットワークスイッチ、経路設定方法およびプログラムを提供することを目的とする。
【００２２】
上記課題を解決するために、本発明のネットワークスイッチは、複数の入力ポートと該入力ポートにそれぞれ対応付けられた複数の出力ポートとを有し、前記出力ポートからマルチキャストパケットを出力するネットワークスイッチにおいて、前記複数の出力ポートのうちから前記マルチキャストパケットを出力するための出力ポートを指定するマルチキャスト制御情報保持部と、前記マルチキャスト制御情報保持部が指定した出力ポートに対して、前記マルチキャストパケットの転送経路を設定する転送経路設定を行うマルチキャスト制御部と、前記マルチキャスト制御部が前記転送経路設定を完了したプロセス数である経路設定完了プロセス数をカウントする加算部と、前記加算部がカウントした経路設定完了プロセス数と、前記マルチキャスト通信を実行させるプロセス数とが一致するか否かを判別し、一致すると判別したときにマルチキャスト通信の転送経路設定が完了したことを識別する比較部とを有することを特徴とする。
【００２３】
上記課題を解決するために、本発明の経路設定方法は、複数の入力ポートと該入力ポートにそれぞれ対応付けられた複数の出力ポートとを有し、前記出力ポートからマルチキャストパケットを出力するネットワークスイッチにおける経路設定方法であって、前記複数の出力ポートのうちから前記マルチキャストパケットを出力するための出力ポートを指定するマルチキャスト制御情報保持処理と、前記マルチキャスト制御情報保持処理にて指定した出力ポートに対して、前記マルチキャストパケットの転送経路を設定する転送経路設定を行うマルチキャスト制御処理と、前記マルチキャスト制御処理にて前記転送経路設定を完了したプロセス数である経路設定完了プロセス数をカウントする加算処理と、前記加算処理にてカウントした経路設定完了プロセス数と、前記マルチキャスト通信を実行させるプロセス数とが一致するか否かを判別し、一致すると判別したときにマルチキャスト通信の転送経路設定が完了したことを識別する比較処理とを有する。
【００２４】
また、コンピュータに実行させるプログラムであって、ネットワークスイッチが具備する複数の入力ポートにそれぞれ対応付けられた複数の出力ポートのうちから、マルチキャストパケットを出力するための前記出力ポートを指定するマルチキャスト制御情報保持手順と、前記マルチキャスト制御情報保持手順にて指定した出力ポートに対して、前記マルチキャストパケットの転送経路の設定である転送経路設定を行うマルチキャスト制御手順と、前記マルチキャスト制御手順にて前記転送経路設定を完了したプロセス数である経路設定完了プロセス数をカウントする加算手順と、前記加算手順にてカウントした経路設定完了プロセス数と、前記マルチキャスト通信を実行させるプロセス数とが一致するか否かを判別し、一致すると判別したときにマルチキャスト通信の転送経路設定が完了したことを識別する比較手順とをコンピュータに実行させる。
【００２５】
本発明によれば、複数の入力ポートと入力ポートにそれぞれ対応付けられた複数の出力ポートとを有し、出力ポートからマルチキャストパケットを出力するネットワークスイッチにおいて、複数の出力ポートのうちからマルチキャストパケットを出力するための出力ポートを指定し、指定した出力ポートに対して、マルチキャストパケットの転送経路を設定し、転送経路設定を完了したプロセス数である経路設定完了プロセス数をカウントし、カウントした経路設定完了プロセス数と、マルチキャスト通信を実行させるプロセス数とが一致するか否かを判別し、一致すると判別したときにマルチキャスト通信の転送経路設定が完了したことを識別する構成としたため、マルチキャスト通信における宛先および転送経路を高速に設定できる。
【図面の簡単な説明】
【００２６】
【図１】本発明の実施形態に従った並列計算機システムの構成を示す図である。
【図２】図１に示したネットワークスイッチの構成を示す図である。
【図３】図２に示したマルチキャスト制御部の構成を示す図である。
【図４】図３に示したマルチキャスト制御情報保持部の構成を示す図である。
【図５】本発明における、マルチキャスト通信用の転送経路設定処理およびマルチキャスト通信処理を示す動作シーケンスである。
【図６】図５に示した経路設定コマンド受信処理を示すフローチャートである。
【図７】経路設定コマンドのデータ構造の一例を示す図である。
【図８】図５に示した経路設定完了通知処理を示すフローチャートである。
【図９】並列計算機システムの「経路設定処理」における、各構成要素間のデータの流れを示す図である。
【図１０】並列計算機システムの「経路設定完了通知処理」における、各構成要素間のデータの流れを示す図である。
【図１１】並列計算機システムの「マルチキャスト通信処理」における、各構成要素間のデータの流れを示す図である。
【発明を実施するための最良の形態】
【００２７】
以下、本発明の実施形態に従った並列計算機システム（ネットワークスイッチ、経路設定方法、プログラムを含む）を説明する。【００２８】
先ず、本実施形態の並列計算機システムの構成を説明する。図１に示すように、並列計算機システムは、計算ノード群１と相互結合網２とから構成される。計算ノード群１に含まれる各計算ノード１１−１〜１１−４、１２−１〜１２−４、１３−１〜１３−４および１４−１〜１４−４（以下、「計算ノード１０」と総称する）は、相互結合網２にそれぞれ接続されている。相互結合網２のネットワーク形態は特に限定せず、例えば、多段結合網などのネットワークであってもよいが、以下の例ではツリー型のネットワークを例に挙げて説明する。【００２９】
計算ノード１０は、演算器とメモリとをそれぞれ有する互いに独立した計算機である。計算ノード１０は、必要に応じて相互結合網２を介して互いにデータ転送を行い、所定の処理を実行する。また、計算ノード１０は、「経路設定コマンド発行処理」を実行し、後述する「経路設定コマンド」を発行する機能を有する。さらに、計算ノード１０は、マルチキャスト通信により特定の複数の宛先に送信されるマルチキャストパケットを発行する機能を有する。ここでマルチキャストパケットの形態については特に限定しないが、本実施形態のマルチキャストパケットは、そのマルチキャストパケットが後述のマルチキャスト制御スイッチに到達したか否かを示すための「制御部到達ビット」を含むものとする。【００３０】
相互結合網２は、複数のネットワークスイッチで構成されている。ネットワークスイッチ２２−１〜２２−４（以下、「ネットワークスイッチ２２」と総称する）は、計算ノード群１と直接接続されている。【００３１】
ネットワークスイッチ２１−１は、各ネットワークスイッチ２２−１〜２２−４を相互に接続する。例えば、計算ノード１１−１から計算ノード１１−２へデータ転送を行う場合、ネットワークスイッチ２２−１を経由してデータが転送される。また、計算ノード１１−１から計算ノード１３−１へのデータ転送は、ネットワークスイッチ２２−１、２１−１、２２−３を順次経由して実行される。なお、ネットワークスイッチ２１−１の数は本実施形態では「１」であるが、複数であってもよい。このため、以下では、相互結合網２上でネットワークスイッチ２１−１と同一の階層に設けられたネットワークスイッチを「ネットワークスイッチ２１」と総称する。【００３２】
つぎに、本実施形態のネットワークスイッチ２１−１および２２−１〜２２−４の構成を説明する。図２に示すように、ネットワークスイッチ２１−１および２２−１〜２２−４は、入力ポートの数が「５」、出力ポートの数が「５」（以下、「5入力5出力」という）であるクロスバスイッチにより構成される。【００３３】
図１に示したように、ネットワークスイッチ２１−１は、使用している入力ポートの数が「４」、使用している出力ポートの数が「４」となっており（以下、「４入力４出力」という）、5番目の入力ポートおよび5番目の出力ポートはともに未使用の状態にある。また、本実施形態の説明例では、ネットワークスイッチ２１および２２が有する入力ポートおよび出力ポートは、互いに1対1で対応付けられているものである。例えば、１番目の入力ポートは１番目の出力ポートに対応付けられている。入力ポートと出力ポートとの対応付方法は、一般的な対応付方法でもよい。なお、各ネットワークスイッチ２１および２２の入力ポート数および出力ポート数は「５」に限らず、それぞれ任意の自然数であればよい。【００３４】
図２の例では、各ネットワークスイッチ２１−１および２２−１〜２２−４が有する５つのポートのうち、ポート１〜４は、図１における下り方向（ネットワークスイッチ２１−１から各ネットワークスイッチ２２−１〜２２−４に向かう方向）に対して接続されており、ポート5は図１の上り方向（各ネットワークスイッチ２２−１〜２２−４からネットワークスイッチ２１−１に向かう方向）に対して接続されている。【００３５】
つぎに、ネットワークスイッチ２１および２２がそれぞれ有する各構成要素を説明する。なお、ネットワークスイッチ２１および２２は、それぞれ同一の構成を有するとともに同一の機能を果たすため、以下ではネットワークスイッチ２２−１の例で説明する。【００３６】
図２に示すように、ネットワークスイッチ２２−１は、入力バッファ部２０１−１〜２０１−５（以下、「入力バッファ部２０１」と総称する）と、出力バッファ部２０２−１〜２０２−５（以下、「出力バッファ部２０２」と総称する）と、クロスバスイッチ２０３と、クロスバ制御部２０４と、マルチキャスト制御部２０５とを有する。【００３７】
入力バッファ部２０１−１〜２０１−５は、ネットワークスイッチ２２−１の各入力ポートに入力されたパケットを保持し、デコードし、出力する。なお、本実施形態では、各入力バッファ部２０１−１〜２０１−５は、各入力ポート１〜５に対応するものとする。【００３８】
出力バッファ部２０２−１〜２０２−５は、クロスバスイッチ２０３から出力されたパケットを保持し、各出力ポートを介して、保持しているパケットをネットワークスイッチ２１−１、２２−２〜２２−４や計算ノード群１に出力する。なお、本実施形態では、各出力バッファ部２０２−１〜２０２−５は、各出力ポート１〜５にそれぞれ対応するものとする。【００３９】
クロスバスイッチ２０３は、クロスバ制御部２０４の制御下で、入力バッファ部２０１−１〜２０１−５から出力されたパケットを、クロスバ制御部２０４によって指定された出力バッファ部２０２−１〜２０２−５に送信する動作（ルーティング）を行う。【００４０】
クロスバ制御部２０４は、入力バッファ部２０１−１〜２０１−５でデコードされた行先情報の入力を受け、入力された行先情報に従って、クロスバスイッチ２０３のルーティングを制御する。【００４１】
マルチキャスト制御部２０５は、入力バッファ部２０１−１〜２０１−５からマルチキャストパケットが入力された場合、マルチキャストパケットのコピーを生成し、適切な出力バッファ部２０２−１〜２０２−５にマルチキャストパケットのコピーを出力する。【００４２】
なお、入力バッファ部２０１からマルチキャスト制御部２０５に入力されたパケットが、後述する経路設定コマンドであるとする。この場合、マルチキャスト制御部２０５は、転送経路の設定時に、マルチキャストパケットの転送元として経路設定コマンドの転送先（ネットワークスイッチ２１または２２）を設定する。また、マルチキャスト制御部２０５は、マルチキャストパケットの転送先として経路設定コマンドの転送元（計算ノード１０）を設定する。このマルチキャストパケットは、設定された転送経路を用いたマルチキャスト通信により送信されるパケットである。【００４３】
また、マルチキャスト制御部２０５は、図３に示すように、パケット入力部３０１と、パケット出力部３０２と、プロセス数保持部３０3と、プロセス数カウンタ部３０４と、マルチキャスト制御情報保持部３０５と、加算部３０６と、比較部３０７と、完了通知生成部３０８と、宛先一致判別部３０９とを有する。【００４４】
パケット入力部３０１は、入力バッファ部２０１−１〜２０１−５からのパケット入力を受け、入力されたパケットをパケット出力部３０２に出力する。パケット入力部３０１が入力するパケットとは、マルチキャスト通信により送信されるマルチキャストパケット、計算ノード１０により発行された経路設定コマンドなどである。経路設定コマンドが計算ノード１０から送信されてきた場合、パケット入力部３０１は、後述する「経路設定コマンド受信処理」を実行し、経路設定コマンドを受信する。また、パケット入力部３０１は、受け取った経路設定コマンド内に格納されている所定の制御情報（例えば、後述するマルチキャストＩＤ）を、プロセス数保持部３０３、プロセス数カウンタ部３０４、マルチキャスト制御情報保持部３０５に通知する機能を有する。【００４５】
パケット出力部３０２は、パケット入力部３０１もしくは完了通知生成部３０８からパケット（経路設定コマンド、マルチキャストパケットなど）を受け取り、受け取ったパケットを図２に示した各出力バッファ部２０２−１〜２０２−５に出力する。また、パケット出力部３０２は、マルチキャストパケットの出力先（転送先）を指定するための転送経路情報である「マルチキャスト制御情報３０５１」を、マルチキャスト制御情報保持部３０５から受け取る。【００４６】
プロセス数保持部３０３は、「プロセス数保持処理」を実行し、「グループ所属プロセス数」を保持するレジスタ群である。ここに、「グループ所属プロセス数」とは、マルチキャスト通信を実行する計算ノード１０上の各プロセスグループに所属するプロセス数である。また、ここでいうプロセスグループは、例えば、ＭＰＩにて、通信を行うプロセスの集合として扱われるコミュニケータに相当する。また、プロセス数保持部３０３は、パケット入力部３０１からマルチキャストＩＤの入力を受け、そのマルチキャストＩＤで指定されるレジスタ値（グループ所属プロセス数）を比較部３０７に出力する。【００４７】
プロセス数カウンタ部３０４は、「プロセス数カウント処理」を実行し、マルチキャスト通信におけるマルチキャストパケットの転送経路の設定処理である「転送経路設定」に関するレジスタ値を保持するレジスタ群である。より具体的には、プロセス数カウンタ部３０４は、マルチキャスト通信を行う計算ノード１０上のプロセスに対して転送経路設定が完了した数（以下、「経路設定完了プロセス数」という）を保持する。プロセス数カウンタ部３０４は、パケット入力部３０１からマルチキャストＩＤの入力を受け、マルチキャストＩＤで指定されるレジスタ値（経路設定完了プロセス数）を加算部３０６に出力する。【００４８】
マルチキャスト制御情報保持部３０５は、「マルチキャスト制御情報保持処理」を実行し、マルチキャストパケットのコピーを出力させる出力ポート番号を指定するための情報である「マルチキャスト制御情報３０５１」を保持する。なお、マルチキャスト制御情報保持部３０５は、パケット入力部３０１が計算ノード１０上の１つのプロセスから１つの経路設定コマンドを受信したときに、そのプロセスに対する経路設定処理を実行する。そのため、プロセス数カウンタ部３０４がカウントする経路設定完了プロセス数は、ネットワークスイッチ２２−１が受信した経路設定コマンドの数と同一である。【００４９】
また、マルチキャスト制御情報保持部３０５は、パケット入力部３０１−１〜３０１−５からの入力を受け、パケット出力部３０２−１〜３０２−５に制御信号（転送経路情報）を出力する。なお、マルチキャスト制御情報保持部３０５は、パケット入力部３０１−１〜３０１−５のうちから、入力バッファ部２０１（入力ポート）からパケットが入力されたパケット入力部を識別する機能を有する。【００５０】
加算部３０６は、加算器で構成され、「加算処理」を実行し、プロセス数カウンタ部３０４が保持するレジスタ値の更新により、マルチキャスト制御部２０５がパケットの転送経路設定を完了した経路設定完了プロセス数をカウントする。なお、加算部３０６は、プロセス数カウンタ部３０４が保持する「経路設定完了プロセス数」に加算処理を施した後に、加算処理後の結果をプロセス数カウンタ部３０４が保持するレジスタ値に書き戻す。また、加算部３０６は、加算結果を比較部３０７に出力する。【００５１】
比較部３０７は、比較器で構成され、「比較処理」を実行することにより、加算部３０６とプロセス数保持部３０３とからそれぞれ値の入力を受け、加算部３０６からの入力値とプロセス数保持部３０３からの入力値とを比較し、比較結果を完了通知生成部３０８に出力する。また、比較部３０７は、比較結果が一致したときに、マルチキャスト通信の経路設定が完了したと識別する。経路設定が完了としたと識別した場合、比較部３０７は、「完了通知指示処理」を実行し、完了通知生成部３０８に、経路設定完了の旨を通知するためのパケットである「経路設定完了通知」を生成するよう指示する。【００５２】
完了通知生成部３０８は、「完了通知生成処理」を実行し、比較部３０７の「完了通知指示処理」による指示に従って、「経路設定完了通知」を生成する。また、完了通知生成部３０８は、「完了通知送信処理」を実行し、生成した経路設定完了通知をパケット出力部３０２に出力する。これにより、経路設定完了通知が計算ノード１０に送信される。【００５３】
宛先一致判別部３０９は、「宛先一致判別処理」を実行し、経路設定コマンドの転送先情報が示す経路設定コマンドの最終的な宛先が自己のネットワークスイッチに一致するか否かを判別し、一致すると判別した場合、自己のネットワークスイッチがパケットの最終的な転送先であることを識別する。そして、宛先一致判別部３０９は、経路設定コマンド中に格納されている「経路設定コマンドの最終的な宛先」の識別結果を、プロセス数カウンタ部３０４に通知する。【００５４】
また、宛先一致判別部３０９は、マルチキャスト通信の際に、計算ノード１０から送信されてきたマルチキャストパケットの宛先が自己に一致するか否かを判別する機能を有する。自己に一致すると判別した場合、宛先一致判別部３０９は、マルチキャストパケット中の「制御部到達ビット」を「１」に書き換える。【００５５】
なお、プロセス数保持部３０３、プロセス数カウンタ部３０４およびマルチキャスト制御情報保持部３０５は、複数セットの情報（図３中の１つのグループ所属プロセス数と、図３中の１つの経路設定完了プロセス数と、後述する図４の１つのビット列とを１セットとする情報）をそれぞれ保持できるよう構成することが望ましい。この場合に、マルチキャスト通信を実行する計算ノード１０上のプロセスグループに、各プロセスグループをそれぞれ識別するための番号（以下、「マルチキャストＩＤ」という）を付与したものする。これにより、各プロセスグループが、マルチキャストＩＤに基づいて、複数セットの情報のうちから自己のプロセスグループに対応する情報を選択することが可能になる。これにより、複数のプロセスグループによるマルチキャスト通信を同時に実行することが可能になるからである。【００５６】
つぎに、マルチキャスト制御情報保持部３０５の構成を詳細に説明する。図４に示すように、マルチキャスト制御情報保持部３０５が保持する「マルチキャスト制御情報３０５１」には、長さが「5」であるｍ個のビット列Ｂ１〜Ｂｍが登録されている。ここに、ビット列Ｂ１〜Ｂｍをm個設けているのは、複数（m個）のマルチキャスト通信用の転送経路を設定可能にするためである。【００５７】
マルチキャスト制御情報保持部３０５は、計算ノード１０から送信されてきた経路設定コマンドに含まれるマルチキャストＩＤにより、ビット列Ｂ１〜Ｂｍのうちから特定のビット列を指定する。各ビット列Ｂ１〜Ｂｍ中にそれぞれ含まれる５つのビットは、5つの各出力ポート（各出力ポートに対応する出力バッファ部２０２−１〜２０２−５）にそれぞれ対応付けられている。なお、上述したようにネットワークスイッチが有する入力ポートおよび出力ポートは互いに１対１で対応付けられている。そのため、マルチキャスト制御情報保持部３０５は、外部から経路設定コマンドが入力された入力ポート番号に対して、その入力ポート番号に対応する出力ポート番号に応じたビット列Ｂ１〜Ｂｍ内のビットを識別することが可能である。【００５８】
なお、マルチキャスト制御情報保持部３０５は、各ビット列Ｂ１〜Ｂｍにおいて、マルチキャストパケットを出力させる出力ポート番号に対応するビットに対しては「1」を設定する。また、マルチキャスト制御情報保持部３０５は、マルチキャストパケットを出力させない出力ポート番号に対応するビットに対しては「0」を設定する。図４に示したビット列Ｂ１の例では、１番目のビットに対応する出力ポート（出力ポート番号「１」）が、マルチキャストパケット送信用に設定されている。【００５９】
なお、図４に示した例では、マルチキャストパケットの出力先を、ネットワークスイッチ２１および２２が具備する出力ポートの数と同じ数のビットを有するビット列で示しているが、マルチキャスト制御情報３０５１の形態は特に限定しない。マルチキャスト制御情報３０５１は、例えば、マルチキャストパケットの出力先となる出力ポート番号が登録されたリストであってもよい。【００６０】
次に、上記構成を有する並列計算機システムにて、マルチキャスト通信用の転送経路を設定する「転送経路設定処理」の動作シーケンスを説明する。図５に示すように、この一連の動作シーケンスは、計算ノード１０と、ネットワークスイッチ２１と、ネットワークスイッチ２２との３者の間で実行されるものである。【００６１】
なお、この一連の「転送経路設定処理」において、計算ノード１０では、ステップ１１の「事前準備処理」と、ステップ１２の「経路設定コマンド発行処理」と、ステップ１３の「経路設定完了通知受取処理」と、ステップ１４の「マルチキャスト通信処理」とを実行する。【００６２】
また、この一連の「転送経路設定処理」において、ネットワークスイッチ２１または２２は、ステップ２１または３１の「経路設定コマンド受信処理」と、ステップ２２または３２の「経路設定処理」とを実行する。なお、ステップ２３の「経路設定コマンド転送処理」、ステップ３３の「経路設定完了通知処理」およびステップ２４の「経路設定完了通知転送処理」は、経路設定コマンドの最終的な宛先であるか否かに応じて実行される。【００６３】
以下、上述の各処理について、その概要を説明する。【００６４】
ステップ１１の「事前準備処理」は、計算ノード１０において、マルチキャスト通信を実行するプロセスグループに所属する各プロセスが、プロセスグループ識別用の「マルチキャストＩＤ」や各プロセスグループに属するプロセス数などの情報を事前に共有するために行われる。【００６５】
ステップ１２の「経路設定コマンド発行処理」は、計算ノード１０において、マルチキャスト通信を実行するプロセスグループの各プロセスが、ネットワークスイッチ２１、２２に転送経路の設定を指示するための「経路設定コマンド」を発行するために行われる。この「経路設定コマンド」のデータ構造については、詳細な説明を後述する。【００６６】
ステップ２１または３１の「経路設定コマンド受信処理」は、ネットワークスイッチ２１、２２において、計算ノード１０のプロセスグループの各プロセスから「経路設定コマンド発行処理」により送信されてきた「経路設定コマンド」を受信するために行われる。【００６７】
なお、図６に示すように、ステップ２１の「経路設定コマンド受信処理」では、ステップ２１１の「経路設定コマンド受信処理」と、ステップ２１２の「宛先一致判別処理」とが実行される。ステップ２１１の「経路設定コマンド受信処理」は、パケット入力部３０１により実行され、経路設定コマンドを受信するために行われる。また、ステップ２１２の「宛先一致判別処理」は、宛先一致判別部３０９により実行され、後述する「マルチキャスト制御スイッチ番号」が示す経路設定コマンドの最終的な宛先と自己のネットワークスイッチとが一致するか否かを判別するために行われる。【００６８】
図６のステップ２１２にてＮｏであり、宛先一致判別部３０９が、自己のネットワークスイッチは最終的な宛先でないと判別した場合、図５に示したようにステップ２２の「経路設定処理」の実行後に、ステップ２３の「経路設定コマンド転送処理」が実行される。また、図６のステップ２１２にてＹｅｓであり、宛先一致判別部３０９が、自己のネットワークスイッチは最終的な宛先であると判別した場合、図５に示したようにステップ３２の「経路設定処理」の実行後に、ステップ３３の「経路設定完了通知処理」が実行される。【００６９】
図５に示すステップ２２または３２の「経路設定処理」は、「経路設定コマンド受信処理」により「経路設定コマンド」を受信したネットワークスイッチ２１、２２において、受信した「経路設定コマンド」に基づいて行われる。各ネットワークスイッチ２１および２２では、計算ノード１０から受信した経路設定コマンドの指示に従って、各ネットワークスイッチ２１および２２のマルチキャスト制御部２０５が、マルチキャスト制御情報３０５１を設定する。【００７０】
ステップ２３の「経路設定コマンド転送処理」は、計算ノード１０のプロセスグループの各プロセスから送信されてきた「経路設定コマンド」を、その最終的な宛先（後述の「マルチキャスト制御スイッチ」）のネットワークスイッチに送信するために行われる。【００７１】
ステップ３３の「経路設定完了通知処理」は、経路設定コマンドの最終的な宛先であるネットワークスイッチ２１または２２において、「経路設定処理」の完了によりマルチキャスト通信に用いられる経路の設定が完了したことを、経路設定コマンドの発行元である計算ノード１０に通知するために行われる。【００７２】
また、マルチキャスト制御スイッチから計算ノード１０に至る転送経路上のネットワークスイッチは、ステップ２４の「経路設定完了通知転送処理」を実行する。これにより、ネットワークスイッチ２１または２２は、マルチキャスト制御スイッチが送信した経路設定完了通知を中継し、経路設定コマンドの発行元の計算ノードに転送する。【００７３】
ステップ１３の「経路設定完了通知受取処理」は、計算ノード１０のプロセスグループ内の各プロセスにて実行される。この「経路設定完了通知受取処理」では、ステップ２３の「経路設定完了通知処理」によってマルチキャスト制御スイッチであるネットワークスイッチから送信された「経路設定完了通知」を、プロセスグループが受信する。これにより、受信したプロセスグループ内の各プロセスは、自己が「経路設定コマンド」の送信により要求したマルチキャスト通信の経路設定が、経路設定コマンドの最終的な宛先であるネットワークスイッチ上で完了したことを認識する。そのため、「経路設定完了通知」を受信したプロセスグループに対して、マルチキャスト通信を行うためのマルチキャスト通信コマンドを発行可能となる。【００７４】
ステップ１３の「経路設定完了通知受取処理」の完了後、「経路設定完了通知」を受信したプロセスグループ内のプロセスは、プログラムによってマルチキャスト通信の実行を指示された際に、ステップ１４の「マルチキャスト通信処理」を実行し、マルチキャスト通信を実行する。なお、一旦経路を設定してしまえば、そのプロセスグループに対するマルチキャスト通信は、「マルチキャスト通信処理」を繰り返し実行することにより、複数回実行可能である。【００７５】
つぎに、計算ノード１０によるステップ１１〜１４の各処理、ネットワークスイッチ２２−１によるステップ２１〜２４の各処理、ネットワークスイッチ２１−１によるステップ３１〜３３の各処理について詳細に説明する。なお、以下では、図１に示す並列計算機システム上で、５つのプロセスからなるプロセスグループがマルチキャスト通信を実行する場合を例に挙げて説明する。５つのプロセスは、計算ノード１１−１〜１１−４、１２−１〜１２−４、１３−１〜１３−４、１４−１〜１４−４上でそれぞれ動作しているものである。【００７６】
まず、計算ノード１０上にて実行されるステップ１１の「事前準備処理」について説明する。図５に示した「事前準備処理」において、マルチキャスト通信を実行するプロセスグループの各プロセスは、マルチキャスト通信の経路設定前に、（ａ）マルチキャストＩＤと、（ｂ）マルチキャスト通信を制御するネットワークスイッチを指定するための番号（以下、「マルチキャスト制御スイッチ番号」という）と、（ｃ）プロセスグループに含まれるプロセス数（以下、「グループ所属プロセス数」という）とを示す情報を共有しておく。【００７７】
「マルチキャストＩＤ」は、計算ノード１０上で動作する各プロセスグループをそれぞれ識別するための番号を示す「識別情報」である。以下の例では、マルチキャストＩＤは「１」であるものとする。【００７８】
「マルチキャスト制御スイッチ番号」は、マルチキャスト通信を制御するネットワークスイッチを指定するための情報である。また、「マルチキャスト制御スイッチ番号」で指定されるネットワークスイッチを、以下では「マルチキャスト制御スイッチ」という。ツリー構造を有するネットワークでは、図９に示す最上段のネットワークスイッチ（ネットワークスイッチ２１−１）を指定するのが最も効率的である。そのため、この例では、「ネットワークスイッチ２１−１」をマルチキャスト制御スイッチ番号で指定するものとする。なお、マルチキャスト制御スイッチ番号は、マルチキャスト制御スイッチに経路設定コマンドを転送するための転送経路情報であってもよい。【００７９】
「グループ所属プロセス数」は、計算ノード１０にて、「マルチキャストＩＤ」が付与されたプロセスグループに所属しているプロセスの数である。「マルチキャストＩＤ」はマルチキャスト通信を実行するプロセスグループに対して付与されるため、「グループ所属プロセス数」は、マルチキャスト通信に参加させ、マルチキャスト通信を実行させるプロセス数を示す「マルチキャスト実行プロセス数」である。以下の例では、「グループ所属プロセス数」は「５」であるものとする。【００８０】
以上で、ステップ１１の「事前準備処理」が終了する。【００８１】
つぎに、計算ノード１０上にて実行されるステップ１２の「経路設定コマンド発行処理」について説明する。ステップ１２の「経路設定コマンド発行処理」において、計算ノード１０のうちでマルチキャスト通信を実行するプロセスグループの各プロセスが、「経路設定コマンド」をそれぞれ発行する。そして、発行された経路設定コマンドは、図９に示す相互結合網２上に設けられた特定のネットワークスイッチ２１、２２が有するマルチキャスト制御部２０５に転送される。【００８２】
この「経路設定コマンド」は、ネットワーク２１または２２が有するマルチキャスト制御部２０５に対して、マルチキャスト通信用の転送経路設定を指示するためのコマンドを含んだパケットである。【００８３】
また、経路設定コマンドは、「事前準備処理」においてマルチキャスト通信を行うプロセス間にて共有された情報を含むものである。すなわち、図７に示すように、経路設定コマンドは、マルチキャストＩＤ（＝「１」）と、マルチキャスト制御スイッチ番号（＝「ネットワークスイッチ２１−１」）と、グループ所属プロセス数（＝「５」）とを含んでいる。なお、マルチキャスト制御スイッチ番号は、マルチキャスト通信を制御するマルチキャスト制御スイッチに経路設定コマンドを転送するための経路情報である「経路設定コマンドの転送先情報」である。【００８４】
次に、ネットワークスイッチ２１、２２によるステップ２１の「経路設定コマンド受信処理」について説明する。図５に示したステップ２１の「経路設定コマンド受信処理」では、ネットワークスイッチ２１、２２は、「経路設定コマンド発行処理」により計算ノードが発行した経路設定コマンドを受信する。このとき、ネットワークスイッチ２１、２２のパケット入力部３０１は、経路設定コマンドを、計算ノード１０から、または、計算ノード１０から受信した経路設定コマンドを転送してきた他のネットワークスイッチから受信する。【００８５】
つぎに、計算ノード１０により発行された経路設定コマンドを受信したときの、ネットワークスイッチの動作について説明する。以下では、図５に示したように、計算ノード１１−１が発行した経路設定コマンドをネットワークスイッチ２２−１または２１−１が受信した場合を例に挙げて説明する。そして、この例では、計算ノード１１−１が発行した経路設定コマンドが、図７に示した経路設定コマンドであるものとし、「ネットワークスイッチ２１−１」がマルチキャスト制御スイッチとして指定されている。【００８６】
なお、ネットワークスイッチの動作は、ネットワークスイッチが経路設定コマンドの最終的な宛先であるか否か（マルチチャネル制御スイッチであるか否か）に応じて異なる。そのため、まず、「マルチチャネル制御スイッチ」でないネットワークスイッチ２２−１から説明する。【００８７】
ネットワークスイッチ２２−１は、図５に示したステップ２１の「経路設定コマンド受信処理」にて、図６に示したステップ２１１の「経路設定コマンド受信処理」を実行し、計算ノード１１−１が発行した経路設定コマンドを受信する。その後、ネットワークスイッチ２２−１の入力バッファ部２０１−１は、経路設定コマンドをデコードし、マルチキャスト制御部２０５に供給する。マルチキャスト制御部２０５が有するパケット入力部３０１は、入力バッファ部２０１−１から供給された経路設定コマンドから、マルチキャスト制御スイッチ番号およびマルチキャストＩＤを抽出する。【００８８】
続いて、宛先一致判別部３０９は、図６に示したステップ２１２の「宛先一致判別処理」を実行し、経路設定コマンド内の転送先情報（マルチキャスト制御スイッチ番号）が示す経路設定コマンドの最終的な宛先と自己のネットワークスイッチ２２−１とが一致するか否かを判別する。この例では、マルチキャスト制御スイッチ番号はネットワークスイッチ２１−１を示しており、ネットワークスイッチ２２−１は最終的な転送先でない。そのため、宛先一致判別部３０９は、自己のネットワークスイッチが最終的な転送先でないと判別する。この場合、スイッチ２２−１では、マルチキャスト制御部２０５は、ステップ２２の「経路設定処理」の実行後、ステップ２３の「経路設定コマンド転送処理」を実行する。【００８９】
つぎに、図６に示したステップ２２の「経路設定処理」について説明する。ステップ２２の「経路設定処理」は、マルチキャスト制御情報保持部３０５が、自ら保持するマルチキャスト制御情報３０５１を更新することにより実行される。マルチキャスト制御情報保持部３０５は、経路設定コマンド中のマルチキャストＩＤによって指定されたビット列において、経路設定コマンドを受信した入力ポート番号に対応するビットの値を「１」に設定する。この例では、マルチキャストＩＤは「１」を示しているため、図４に示した「１番目のビット列Ｂ１」が指定される。さらに、経路設定コマンドを受信した入力ポート番号が「１」であったものとする。この場合、マルチキャスト制御情報保持部３０５は、マルチキャストＩＤで指定されたビット列Ｂ１において、入力ポート番号「１」に対応する「1番目の出力ポートに対応するビット」の値を、「１」に設定する。以下、このような動作を「ビット設定動作」という。【００９０】
「経路設定処理」（ビット設定動作）の終了後、ネットワークスイッチ２２−１は、ステップ２３の「経路設定コマンド転送処理」を実行する。パケット入力部３０１は、ネットワークスイッチ２２−１が受信した経路設定コマンドを、パケット出力部３０２を経由して出力バッファ部２０２−５に入力する。ネットワークスイッチ２２−１の出力バッファ部２０２−５は、「経路設定コマンド転送処理」を実行し、経路設定コマンドを、その最終的な宛先であるネットワークスイッチ２１−１に転送する。【００９１】
つぎに、「経路設定コマンドの最終的な宛先（マルチキャスト制御スイッチ）である」スイッチ２１−１の動作を説明する。スイッチ２１−１は、ステップ３１の「経路設定コマンド受信処理」により、ネットワークスイッチ２２−１から転送されてきた経路設定コマンドを受信すると、入力バッファ部２０１−１によりデコードされた経路設定コマンドをマルチキャスト制御部２０５に供給する。マルチキャスト制御部２０５のパケット入力部３０１は、経路設定コマンドから、マルチキャスト制御スイッチ番号およびマルチキャストＩＤを抽出する。抽出されたマルチキャスト制御スイッチ番号（転送先情報）が示す宛先はスイッチ２１−１であるため、この転送先情報を現在参照しているネットワークスイッチ２１−１は、計算ノード１１−１から発行された経路設定コマンドの最終的な宛先そのものである。【００９２】
この場合、ネットワークスイッチ２１−１が有する宛先一致判別部３０９は、図６に示したステップ２１２の宛先一致判別処理にてＹｅｓであり、転送先情報が示す宛先のネットワークスイッチが自己のネットワークスイッチ２１−１に一致すると判別し、自己が最終的な転送先であることを識別する。そのため、ネットワークスイッチ２１−１では、マルチキャスト制御情報保持部３０５によるステップ３２の「経路設定処理」と、マルチキャスト制御情報保持部３０５および完了通知生成部３０８によるステップ３３の「経路設定完了通知処理」とが実行される。【００９３】
ネットワークスイッチ２１−１の「経路設定処理」の動作は、上述のネットワークスイッチ２２−１が「経路設定処理」にて実行したビット設定動作と同一である。すなわち、ネットワークスイッチ２１−１にて、マルチキャスト制御情報保持部３０５は、マルチキャスト制御情報３０５１のうちから、マルチキャストＩＤ（この例では「１」）で指定される「1番目のビット列Ｂ１」を特定する。さらに、マルチキャスト制御情報保持部３０５は、特定したビット列Ｂ１において、経路設定コマンドを受信した入力ポートの番号（例えば、「１」）に対応する出力ポートの番号のビット（１番目のビット）の値を「１」に設定する。この設定動作により、経路設定コマンドの発行元である計算ノード１１−１に対して、ネットワークスイッチ２１−１がマルチキャストパケットを転送する際に、ネットワークスイッチ２１−１が有する出力ポート番号１の出力ポートが用いられる。【００９４】
また、ネットワークスイッチ２１−１のステップ３３の「経路設定完了通知処理」は以下のように行われる。まず、パケット入力部３０１は、経路設定コマンドから抽出したマルチキャストＩＤをプロセス数保持部３０３に通知する。プロセス数保持部３０３は、通知されたマルチキャストＩＤにより指定されたレジスタの値（グループ所属プロセス数）を、比較部３０７に出力する。【００９５】
また、パケット入力部３０１は、マルチキャストＩＤをプロセス数カウンタ部３０４に通知する。プロセス数カウンタ部３０４は、「プロセス数カウント処理」を実行し、通知されたマルチキャストＩＤによって指定されたレジスタに格納されている値（経路設定完了プロセス数）を、加算部３０６に出力する。【００９６】
図８に示すように、加算部３０６は、マルチキャスト制御情報保持部３０５がマルチキャスト制御情報３０５１中のビット列Ｂ１〜Ｂｎに含まれるビットを１つ設定するごとに、ステップ３３１の「加算処理」を実行する。この「加算処理」にて、加算部３０６は、プロセス数カウンタ部３０４から出力されたレジスタの値である経路設定完了プロセス数に1を加算する。続いて、加算部３０６は、加算後の結果をプロセス数カウンタ部３０４に書き戻すとともに、加算後の結果を比較部３０７にも出力する。【００９７】
比較部３０７は、ステップ３３２の「比較処理」を実行し、プロセス数保持部３０３から入力された値（計算ノード１０上でマルチキャスト通信を行うプロセスグループのグループ所属プロセス数）と、加算部３０６から入力された値（加算部３０６が加算処理を施した後の経路設定完了プロセス数）とを比較する。ステップ３３２の「比較処理」にてＹｅｓであり、各入力値が互いに一致すると判別した場合、マルチキャスト通信を実行するプロセスグループに含まれるすべてのプロセスから経路設定コマンドが到達した場合に相当する。このとき、比較部３０７は、マルチキャスト通信のための経路設定が完了したと識別するとともに、完了通知生成部３０８に「経路設定完了通知」を発行するよう指示する。一方、ステップ３３２にてＮｏであり、グループ所属プロセス数と経路設定完了プロセス数とが一致しないと判別した場合、比較部３０７は、経路設定が完了していないと識別し、加算部３０６が、ステップ３３１の処理を実行する。【００９８】
ネットワークスイッチ２１−１がステップ３２の「経路設定処理」を実行し、経路設定コマンドがすべてのプロセスからスイッチ２１−１に到達すると、各ネットワークスイッチ２１−１、２２−１〜２−４のマルチキャスト制御情報保持部３０５における1番目のビット列は、図９に示すＢ１−１、Ｂ２−１〜Ｂ２−４のようにそれぞれ設定される。また、スイッチ２１−１では、加算部３０６が出力した値とプロセス数保持部３０３が出力した値とが一致するため、比較部３０７が、経路設定が完了したことを識別する。この場合、比較部３０７は、「完了通知指示処理」を実行し、完了通知生成部３０８に「経路設定完了通知」の発行を指示する。【００９９】
完了通知生成部３０８は、ステップ３３３の「完了通知生成処理」により、経路設定完了通知を生成し、生成した経路設定完了通知をパケット出力部３０２に出力する。なお、この経路設定完了通知には、マルチキャスト通信を実行するプロセスグループを特定するためのマルチキャストＩＤ（この例では「1」）が記述されている。【０１００】
ネットワークスイッチ２１−１のパケット出力部３０２は、「完了通知生成処理」により生成された経路設定完了通知を、完了通知生成部３０８から受信する。また、パケット出力部３０２は、「経路設定処理」により設定された経路情報を、マルチキャスト制御情報保持部３０５から受信する。そして、パケット出力部３０２は、「完了通知送信処理」により、経路情報で指定された出力バッファ部２０２（出力ポート）を用いて、経路設定完了通知のコピーを出力する。これにより、転送経路に従って、経路設定完了通知が、計算ノード１１−１宛に送信される。例えば、図１０の例では、スイッチ２１−１のパケット出力部３０２は、マルチキャストＩＤで指定されたマルチキャスト制御情報３０５１内の「1番目のビット列Ｂ１−１」の設定に対応する各出力ポート（出力ポート番号１〜３）に、経路設定完了通知を出力する。以上で、ステップ３３の「経路設定完了通知処理」が終了する。【０１０１】
なお、図５においては、マルチキャスト通信用の転送経路が、ネットワークスイッチ２１−１、ネットワークスイッチ２２−１、計算ノード１１−１の順に設定されている。そのため、ネットワークスイッチ２２−１による中継処理であるステップ２４の「経路設定完了通知転送処理」が行われる。【０１０２】
つぎに、ステップ２４の「経路設定完了通知転送処理」について説明する。ネットワークスイッチ２２−１は、ネットワークスイッチ２１−１から送信されてきた「経路設定完了通知」を受信すると、マルチキャスト制御部２０５のパケット入力部３０１に経路設定完了通知を入力する。パケット入力部３０１は、マルチキャスト制御情報保持部３０５に対して、経路設定完了通知に含まれるマルチキャストＩＤ（この例では「1」）を通知する。また、パケット入力部３０１は、入力された経路設定完了通知をパケット出力部３０２に転送する。ネットワークスイッチ２２−１のパケット出力部３０２は、マルチキャスト制御情報３０５１内の図１０のビット列Ｂ２−１に含まれるビットによって指定されるポートに、パケットを出力する。これにより、ネットワークスイッチ２１−１が発行した「経路設定完了通知」が、ネットワークスイッチ２２−１から、計算ノード１１−１で動作するプロセスグループの各プロセスに送信される。なお、経路設定完了コマンドにより経路設定の完了を各プロセスに通知する方法は任意である。例えば、計算ノード１０の指定された番地に対応するメモリまたは計算ノード１０の指定されたレジスタへの所定値の設定、計算ノード１０への割込の報告、などの一般的な方法でもよい。【０１０３】
経路設定完了通知の宛先である計算ノード１１−１は、ステップ１３の「経路設定完了通知受取処理」を実行し、経路設定完了通知を、プロセスグループの各プロセスにより受信する。以上で、「転送経路設定処理」が終了する。【０１０４】
つぎに、一連の「転送経路設定処理」によって設定された転送経路を用いて、計算ノード１１−１がマルチキャスト通信するときのステップ１４の「マルチキャスト通信処理」について説明する。なお、「マルチキャスト通信処理」を実行するプロセスグループの5つのプロセスは、マルチキャスト通信する機能をそれぞれ有する。ここでは、計算ノード１１−１が、プロセスグループ内の５つのすべてのプロセスを用いてマルチキャスト通信を行う場合を例に挙げて説明する。【０１０５】
計算ノード１１−１上で動作するプロセスグループのプロセスが、マルチキャストパケットを発行したものとする。このとき、図１１に示すように、計算ノード１１−１から送信されたマルチキャストパケットは、そのプロセスグループのマルチキャスト通信を制御するマルチキャスト制御スイッチまで転送される。なお、マルチキャスト制御スイッチは、ステップ１１の「事前準備処理」で設定された「マルチキャスト制御スイッチ番号」によって指定される。そのため、計算ノード１１−１がマルチキャストパケットを発行するときの宛先情報には、「ネットワークスイッチ２１−１」が設定されている。また、初期状態において、計算ノード１１−１が発行するマルチキャストパケット中の「制御部到達ビット」は、そのマルチキャストパケットがマルチキャスト制御スイッチ２１−１に到達していないことを示すために、「0」に設定されている。【０１０６】
「マルチキャスト制御スイッチでない」ネットワークスイッチ２２−１では、宛先一致判別部３０９が、計算ノード１１−１から受信したマルチキャストパケット中の制御部到達ビットが「0」に設定されていることを識別する。その後、ネットワークスイッチ２２−１のパケット出力部３０２が、マルチキャストパケットをマルチキャスト制御スイッチ（ネットワークスイッチ２１−１）宛に転送する。【０１０７】
「マルチキャスト制御スイッチである」ネットワークスイッチ２１−１では、ネットワークスイッチ２２−１から転送されてきたマルチキャストパケットを受信すると、宛先一致判別部３０９が、マルチキャストパケットがその最終的な宛先（ネットワークスイッチ２１−１）に到達したことを識別する。そのため、宛先一致判別部３０９は、マルチキャストパケット中の制御部到達ビットを「1」に書き換え、マルチキャスト制御部２０５のパケット入力部３０１に転送する。パケット入力部３０１は、マルチキャストＩＤをマルチキャスト制御情報保持部３０５に通知するとともに、マルチキャストパケット本体をパケット出力部３０２に転送する。【０１０８】
さらに、ネットワークスイッチ２１−１では、マルチキャスト制御情報保持部３０５が、マルチキャストＩＤで指定されるマルチキャストパケットの発行元（計算ノード１１−１）のプロセスグループに対して設定した出力ポートを示すビット列（経路情報）を読み出し、読み出した経路情報をパケット出力部３０２に送信する。パケット出力部３０２は、設定済の転送経路を用いてマルチキャストパケットを送信するために、経路情報に従って指定された出力バッファ部２０２にマルチキャストパケットを出力する。図１１の例では、マルチキャスト制御スイッチであるネットワークスイッチ２１−１を介して、計算ノード１１から送信されたマルチキャストパケットが、ネットワークスイッチ２２−１、２２−２、２２−３宛に転送される。【０１０９】
各ネットワークスイッチ２２−１〜２２−３では、ネットワークスイッチ２１−１から転送されてきたマルチキャストパケット中の制御部到達ビットが「１」に設定されていることを識別し、そのマルチキャストパケットがマルチキャスト制御スイッチに到達済であることを判別する。その後、判別したマルチキャストパケットを、マルチキャスト制御部２０５のパケット入力部３０１に転送する。パケット入力部３０１は、マルチキャストＩＤをマルチキャスト制御情報保持部３０５に通知するとともに、マルチキャストパケットをパケット出力部３０２に転送する。【０１１０】
マルチキャスト制御情報保持部３０５は、パケット入力部３０１から通知されたマルチキャストＩＤが指定するビット列（出力ポートの経路情報）を読み出し、この経路情報をパケット出力部３０２に供給する。パケット出力部３０２は、供給された経路情報が指定する出力バッファ部２０２−１〜２０２−５のいずれかにマルチキャストパケットを出力する。これにより、ネットワークスイッチ２２−１は、上述の転送経路設定処理により設定された転送経路に従って、マルチキャストパケットを転送する。なお、このマルチキャストパケットの転送動作は、ステップ２４の「経路設定完了通知転送処理」にて転送経路設定処理により設定された転送経路を用いて設定完了コマンドを転送する動作と同一である。【０１１１】
以上で、ステップ１４の「マルチキャスト通信処理」が終了する。【０１１２】
以上説明したように、本発明の並列計算機システムによれば、ネットワークスイッチ２１および２２が、少なくとも１つの出力ポートを指定し、指定した出力ポートに対して入力ポートから入力されたパケットのコピーの転送経路を設定し、転送経路の設定を完了したプロセス数と、予め保持するマルチキャスト通信を実行させるプロセス数とが一致するか否かを判別し、一致すると判別したときにマルチキャスト通信の経路設定が完了したことを識別する。【０１１３】
これにより、相互結合網２に接続された計算ノード１０の物理的な位置を把握することなく、マルチキャスト通信における宛先および転送経路を高速に設定できる。【０１１４】
また、本発明の並列計算機システムによれば、マルチキャスト通信における宛先と転送経路が高速に設定完了されるため、マルチキャスト通信機能を用いるプログラム全体の処理性能を向上させることができる。【０１１５】
さらに、本発明の並列計算機システムによれば、ネットワークスイッチ２１−１および２２において、完了通知生成部３０８は、マルチキャスト制御部２０５によるマルチキャスト通信の経路設定が完了したことを、経路設定コマンドの発行元である計算ノード１０に通知する。これにより、経路設定コマンドの発行元において、マルチキャスト通信の実行が可能になったことを認識することが可能になる。【０１１６】
なお、本発明の要旨を逸脱しない範囲で各種の変形が可能である。【０１１７】
図２に示した構成例では、マルチキャストパケットがマルチキャスト制御部２０５に入力された後に、マルチキャスト制御部２０５から出力バッファ部２０２に対して複数のコピーが出力される。しかし、ネットワークスイッチ内部でマルチキャスト通信を行う方法は、これに限らず、例えば、マルチキャスト制御部２０５にはパケット中の制御情報のみを入力し、パケット自体はクロスバスイッチ２０３を経由して出力バッファ部２０２に複数のパケットのコピーが出力されるようにしてもよい。【０１１８】
また、上述の動作例では、事前にプロセスグループに属するプロセス数をプロセス数保持部３０３に設定しておいたが、各経路設定コマンドがプロセス数を保持し、加算部３０６の出力結果とコマンドが保持していたプロセス数とを逐次比較することにより、経路設定の完了を識別するようにしてもよい。【０１１９】
なお、本発明においては、ネットワークスイッチ２１−１内の処理は上述の専用のハードウェアにより実現されるもの以外に、その機能を実現するためのプログラムを、ネットワークスイッチ２１−１として動作させるコンピュータにて読取可能な記録媒体に記録し、この記録媒体に記録されたプログラムをそのコンピュータに読み込ませ、実行するものであってもよい。ネットワークスイッチ２１−１として動作させるコンピュータにて読取可能な記録媒体とは、フロッピーディスク（登録商標）、光磁気ディスク、ＤＶＤ、ＣＤなどの移設可能な記録媒体の他、そのコンピュータに内蔵されたＨＤＤ等を指す。この記録媒体に記録されたプログラムは、例えば、ネットワークスイッチ２１−１として動作させるコンピュータが有するマルチキャスト制御部２０５として動作するプロセッサにて読み込まれ、そのプロセッサの制御によって、上述したものと同様の処理が行われる。【０１２０】
ここで、マルチキャスト制御部２０５として動作するプロセッサは、プログラムが記録された記録媒体から読み込まれたプログラムを実行するものである。なお、上述のプログラムは、各ネットワークスイッチ２２−１〜２２−４についても同様に適用可能である。【０１２１】
また、本発明のネットワークスイッチのマルチキャスト制御情報保持部は、マルチキャスト制御部に転送経路設定を指示するコマンドである経路設定コマンドが入力された入力ポートに基づいて、複数の出力ポートのうちからマルチキャストパケットを出力するための出力ポートを指定してもよい。【０１２２】
また、本発明のネットワークスイッチのマルチキャスト制御情報保持部は、複数の出力ポートにそれぞれ対応付けられた複数のビットを含むマルチキャスト制御情報を保持し、ビットに設定されている値の更新により、更新したビットに対応する出力ポートを、マルチキャストパケットを出力する出力ポートとして指定してもよい。【０１２３】
また、本発明のネットワークスイッチのマルチキャスト制御情報保持部は、更新の対象とするビットを含むマルチキャスト制御情報を、マルチキャストＩＤによって指定してもよい。【０１２４】
また、本発明のネットワークスイッチは、入力ポートに経路設定コマンドが入力されたときに、経路設定コマンドの転送先情報が示す宛先と、経路設定コマンドが入力されたネットワークスイッチとが一致するか否かを判別する宛先一致判別部、を有し、加算部は、宛先一致判別部が一致すると判別した場合、経路設定完了プロセス数をカウントしてもよい。【０１２５】
また、本発明のネットワークスイッチは、経路設定コマンドに含まれるマルチキャスト通信を実行させるプロセス数を保持するプロセス数保持部、を有し、比較部は、加算部がカウントした経路設定完了プロセス数と、プロセス数保持部が保持しているマルチキャスト通信を実行させるプロセス数とが一致するか否かを判別してもよい。【０１２６】
また、本発明のネットワークスイッチは、比較部がマルチキャスト通信の転送経路設定が完了したことを識別した場合、転送経路設定が完了したことを示す経路設定完了通知を生成し、生成した経路設定完了通知を、入力ポートに入力された経路設定コマンドの送信元に転送する完了通知生成部、を有してもよい。【０１２７】
また、本発明のネットワークスイッチの完了通知生成部は、マルチキャスト制御部が設定した転送経路に従って行われるマルチキャスト通信により、経路設定完了通知を転送してもよい。【０１２８】
また、本発明のネットワークスイッチでは、経路設定コマンドによってマルチキャスト制御部が転送経路を設定する際に、マルチキャストパケットは、相互結合網上を経路設定コマンドが転送された方向と逆向きに転送されるよう、転送経路を設定してもよい。【０１２９】
また、本発明の経路設定方法のマルチキャスト制御情報保持処理では、マルチキャスト制御処理にて転送経路設定を指示するコマンドである経路設定コマンドが入力された入力ポートに基づいて、複数の出力ポートのうちからマルチキャストパケットを出力するための出力ポートを指定してもよい。【０１３０】
また、本発明の経路設定方法のマルチキャスト制御情報保持処理では、複数の出力ポートにそれぞれ対応付けられた複数のビットを含むマルチキャスト制御情報を保持し、ビットに設定されている値の更新により、更新したビットに対応する出力ポートを、マルチキャストパケットを出力する出力ポートとして指定してもよい。【０１３１】
また、本発明の経路設定方法のマルチキャスト制御情報保持処理では、更新の対象とするビットを含むマルチキャスト制御情報を、マルチキャストＩＤによって指定してもよい。【０１３２】
また、本発明の経路設定方法は、入力ポートに経路設定コマンドが入力されたときに、経路設定コマンドの転送先情報が示す宛先と、経路設定コマンドが入力されたネットワークスイッチとが一致するか否かを判別する宛先一致判別処理、を有し、加算処理では、宛先一致判別処理にて一致すると判別した場合、経路設定完了プロセス数をカウントしてもよい。【０１３３】
また、本発明の経路設定方法は、経路設定コマンドに含まれるマルチキャスト通信を実行させるプロセス数を保持するプロセス数保持処理、を有し、比較処理では、加算処理にてカウントした経路設定完了プロセス数と、プロセス数保持処理にて保持しているマルチキャスト通信を実行させるプロセス数とが一致するか否かを判別してもよい。【０１３４】
また、本発明の経路設定方法は、比較処理にてマルチキャスト通信の転送経路設定が完了したことを識別した場合、転送経路設定が完了したことを示す経路設定完了通知を生成し、生成した経路設定完了通知を、入力ポートに入力された経路設定コマンドの送信元に転送する完了通知生成処理、を有してもよい。【０１３５】
また、本発明の経路設定方法の完了通知生成処理では、マルチキャスト制御処理にて設定した転送経路に従って行われるマルチキャスト通信により、経路設定完了通知を転送してもよい。【０１３６】
また、本発明の経路設定方法では、経路設定コマンドによってマルチキャスト制御処理にて転送経路を設定する際に、マルチキャストパケットは、相互結合網上を経路設定コマンドが転送された方向と逆向きに転送されるよう、転送経路を設定してもよい。【０１３７】
また、本発明のプログラムのマルチキャスト制御情報保持手順では、マルチキャスト制御手順にて転送経路設定を指示するコマンドである経路設定コマンドが入力された入力ポートに基づいて、複数の出力ポートのうちからマルチキャストパケットを出力するための出力ポートを指定してもよい。【０１３８】
また、本発明のプログラムのマルチキャスト制御情報保持手順では、複数の出力ポートにそれぞれ対応付けられた複数のビットを含むマルチキャスト制御情報を保持し、ビットに設定されている値の更新により、更新したビットに対応する出力ポートを、マルチキャストパケットを出力する出力ポートとして指定してもよい。【０１３９】
また、本発明のプログラムのマルチキャスト制御情報保持手順では、更新の対象とするビットを含むマルチキャスト制御情報を、マルチキャストＩＤによって指定してもよい。【０１４０】
また、本発明のプログラムは、入力ポートに経路設定コマンドが入力されたときに、経路設定コマンドの転送先情報が示す宛先と、経路設定コマンドが入力されたネットワークスイッチとが一致するか否かを判別する宛先一致判別手順、を有し、加算手順では、宛先一致判別手順にて一致すると判別した場合、経路設定完了プロセス数をカウントしてもよい。【０１４１】
また、本発明のプログラムは、経路設定コマンドに含まれるマルチキャスト通信を実行させるプロセス数を保持するプロセス数保持手順、を有し、比較手順では、加算手順にてカウントした経路設定完了プロセス数と、プロセス数保持手順にて保持しているマルチキャスト通信を実行させるプロセス数とが一致するか否かを判別してもよい。【０１４２】
また、本発明のプログラムは、比較手順にてマルチキャスト通信の転送経路設定が完了したことを識別した場合、転送経路設定が完了したことを示す経路設定完了通知を生成し、生成した経路設定完了通知を、入力ポートに入力された経路設定コマンドの送信元に転送する完了通知生成手順、を有してもよい。【０１４３】
また、本発明のプログラムの完了通知生成手順では、マルチキャスト制御手順にて設定した転送経路に従って行われるマルチキャスト通信により、経路設定完了通知を転送してもよい。【０１４４】
また、本発明のプログラムでは、経路設定コマンドによってマルチキャスト制御手順にて転送経路を設定する際に、マルチキャストパケットは、相互結合網上を経路設定コマンドが転送された方向と逆向きに転送されるよう、転送経路を設定してもよい。【０１４５】
以上、本実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明の要旨を逸脱しない範囲で当業者が理解し得る各種の変形が可能である。【０１４６】
この出願は、２００８年２月８日に出願された日本出願特願２００８−０２８８９０を基礎とする優先権を主張し、その開示のすべてをここに取り込む。
【図１】
2009098820.tif 000003
【図２】
2009098820.tif 000004
【図３】
2009098820.tif 000005
【図４】
2009098820.tif 000006
【図５】
2009098820.tif 000007
【図６】
2009098820.tif 000008
【図７】
2009098820.tif 000009
【図８】
2009098820.tif 000010
【図９】
2009098820.tif 000011
【図１０】
2009098820.tif 000012
【図１１】
2009098820.tif 000013
【手続補正書】
【提出日】平成21年4月14日(2009.4.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の入力ポートと該入力ポートにそれぞれ対応付けられた複数の出力ポートとを有し、前記出力ポートからマルチキャストパケットを出力するネットワークスイッチにおいて、
前記複数の出力ポートのうちから前記マルチキャストパケットを出力するための出力ポートを指定するマルチキャスト制御情報保持部と、
前記マルチキャスト制御情報保持部が指定した出力ポートに対して、前記マルチキャストパケットの転送経路を設定する転送経路設定を行うマルチキャスト制御部と、
前記マルチキャスト制御部が前記転送経路設定を完了したプロセス数である経路設定完了プロセス数をカウントする加算部と、
前記加算部がカウントした経路設定完了プロセス数と、前記マルチキャスト通信を実行させるプロセス数とが一致するか否かを判別し、一致すると判別したときにマルチキャスト通信の転送経路設定が完了したことを識別する比較部と、
前記比較部がマルチキャスト通信の転送経路設定が完了したことを識別した場合、該転送経路設定が完了したことを示す経路設定完了通知を生成し、該生成した経路設定完了通知を、前記入力ポートに入力された前記転送経路設定を指示するコマンドである経路設定コマンドの送信元に転送する完了通知生成部とを有することを特徴とするネットワークスイッチ。
【請求項２】
前記マルチキャスト制御情報保持部は、
前記マルチキャスト制御部に前記経路設定コマンドが入力された入力ポートに基づいて、前記複数の出力ポートのうちから前記マルチキャストパケットを出力するための出力ポートを指定することを特徴とする請求項１に記載のネットワークスイッチ。
【請求項３】
前記マルチキャスト制御情報保持部は、
前記複数の出力ポートにそれぞれ対応付けられた複数のビットを含むマルチキャスト制御情報を保持し、
前記ビットに設定されている値の更新により、該更新したビットに対応する出力ポートを、前記マルチキャストパケットを出力する出力ポートとして指定することを特徴とする請求項２に記載のネットワークスイッチ。
【請求項４】
前記マルチキャスト制御情報保持部は、前記更新の対象とするビットを含むマルチキャスト制御情報を、マルチキャストＩＤによって指定することを特徴とする請求項３に記載のネットワークスイッチ。
【請求項５】
前記入力ポートに前記経路設定コマンドが入力されたときに、該経路設定コマンドの転送先情報が示す宛先と、該経路設定コマンドが入力されたネットワークスイッチとが一致するか否かを判別する宛先一致判別部、を有し、
前記加算部は、前記宛先一致判別部が一致すると判別した場合、前記経路設定完了プロセス数をカウントすることを特徴とする請求項２に記載のネットワークスイッチ。
【請求項６】
前記経路設定コマンドに含まれるマルチキャスト通信を実行させるプロセス数を保持するプロセス数保持部、を有し、
前記比較部は、前記加算部がカウントした経路設定完了プロセス数と、前記プロセス数保持部が保持している前記マルチキャスト通信を実行させるプロセス数とが一致するか否かを判別することを特徴とする請求項２に記載のネットワークスイッチ。
【請求項７】
（削除）
【請求項８】
前記完了通知生成部は、前記マルチキャスト制御部が設定した転送経路に従って行われるマルチキャスト通信により、前記経路設定完了通知を転送することを特徴とする請求項１に記載のネットワークスイッチ。
【請求項９】
前記経路設定コマンドによって前記マルチキャスト制御部が転送経路を設定する際に、前記マルチキャストパケットは、１つまたは複数のネットワークスイッチで構成される相互結合網上を、前記経路設定コマンドが転送された方向と逆向きに転送されるよう、前記転送経路を設定することを特徴とする請求項２に記載のネットワークスイッチ。
【請求項１０】
複数の入力ポートと該入力ポートにそれぞれ対応付けられた複数の出力ポートとを有し、前記出力ポートからマルチキャストパケットを出力するネットワークスイッチにおける経路設定方法であって、
前記複数の出力ポートのうちから前記マルチキャストパケットを出力するための出力ポートを指定するマルチキャスト制御情報保持処理と、
前記マルチキャスト制御情報保持処理にて指定した出力ポートに対して、前記マルチキャストパケットの転送経路を設定する転送経路設定を行うマルチキャスト制御処理と、
前記マルチキャスト制御処理にて前記転送経路設定を完了したプロセス数である経路設定完了プロセス数をカウントする加算処理と、
前記加算処理にてカウントした経路設定完了プロセス数と、前記マルチキャスト通信を実行させるプロセス数とが一致するか否かを判別し、一致すると判別したときにマルチキャスト通信の転送経路設定が完了したことを識別する比較処理と、
前記比較処理にてマルチキャスト通信の転送経路設定が完了したことを識別した場合、該転送経路設定が完了したことを示す経路設定完了通知を生成し、該生成した経路設定完了通知を、前記入力ポートに入力された前記転送経路設定を指示するコマンドである経路設定コマンドの送信元に転送する完了通知生成処理とを有する経路設定方法。
【請求項１１】
前記マルチキャスト制御情報保持処理では、
前記マルチキャスト制御処理にて前記経路設定コマンドが入力された入力ポートに基づいて、前記複数の出力ポートのうちから前記マルチキャストパケットを出力するための出力ポートを指定することを特徴とする請求項１０に記載の経路設定方法。
【請求項１２】
前記マルチキャスト制御情報保持処理では、
前記複数の出力ポートにそれぞれ対応付けられた複数のビットを含むマルチキャスト制御情報を保持し、
前記ビットに設定されている値の更新により、該更新したビットに対応する出力ポートを、前記マルチキャストパケットを出力する出力ポートとして指定することを特徴とする請求項１１に記載の経路設定方法。
【請求項１３】
前記マルチキャスト制御情報保持処理では、前記更新の対象とするビットを含むマルチキャスト制御情報を、マルチキャストＩＤによって指定することを特徴とする請求項１２に記載の経路設定方法。
【請求項１４】
前記入力ポートに前記経路設定コマンドが入力されたときに、該経路設定コマンドの転送先情報が示す宛先と、該経路設定コマンドが入力されたネットワークスイッチとが一致するか否かを判別する宛先一致判別処理、を有し、
前記加算処理では、前記宛先一致判別処置にて一致すると判別した場合、前記経路設定完了プロセス数をカウントすることを特徴とする請求項１１に記載の経路設定方法。
【請求項１５】
前記経路設定コマンドに含まれるマルチキャスト通信を実行させるプロセス数を保持するプロセス数保持処理、を有し、
前記比較処理では、前記加算処理にてカウントした経路設定完了プロセス数と、前記プロセス数保持処理にて保持している前記マルチキャスト通信を実行させるプロセス数とが一致するか否かを判別することを特徴とする請求項１１に記載の経路設定方法。
【請求項１６】
（削除）
【請求項１７】
前記完了通知生成処理では、前記マルチキャスト制御処理にて設定した転送経路に従って行われるマルチキャスト通信により、前記経路設定完了通知を転送することを特徴とする請求項１０に記載の経路設定方法。
【請求項１８】
前記マルチキャスト制御処理では、前記マルチキャストパケットは、１つまたは複数のネットワークスイッチで構成される相互結合網上を、前記経路設定コマンドが転送された方向と逆向きに転送されるよう、前記転送経路を設定することを特徴とする請求項１１に記載の経路設定方法。
【請求項１９】
ネットワークスイッチが具備する複数の入力ポートにそれぞれ対応付けられた複数の出力ポートのうちから、マルチキャストパケットを出力するための前記出力ポートを指定するマルチキャスト制御情報保持手順と、
前記マルチキャスト制御情報保持手順にて指定した出力ポートに対して、前記マルチキャストパケットの転送経路の設定である転送経路設定を行うマルチキャスト制御手順と、
前記マルチキャスト制御手順にて前記転送経路設定を完了したプロセス数である経路設定完了プロセス数をカウントする加算手順と、
前記加算手順にてカウントした経路設定完了プロセス数と、前記マルチキャスト通信を実行させるプロセス数とが一致するか否かを判別し、一致すると判別したときにマルチキャスト通信の転送経路設定が完了したことを識別する比較手順と、
前記比較手順にてマルチキャスト通信の転送経路設定が完了したことを識別した場合、該転送経路設定が完了したことを示す経路設定完了通知を生成し、該生成した経路設定完了通知を、前記入力ポートに入力された前記転送経路設定を指示するコマンドである経路設定コマンドの送信元に転送する完了通知生成手順とをコンピュータに実行させるプログラム。
【請求項２０】
前記マルチキャスト制御情報保持手順では、
前記マルチキャスト制御手順にて前記経路設定コマンドが入力された入力ポートに基づいて、前記複数の出力ポートのうちから前記マルチキャストパケットを出力するための出力ポートを指定することを特徴とする請求項１９に記載のプログラム。
【請求項２１】
前記マルチキャスト制御情報保持手順では、
前記複数の出力ポートにそれぞれ対応付けられた複数のビットを含むマルチキャスト制御情報を保持し、
前記ビットに設定されている値の更新により、該更新したビットに対応する出力ポートを、前記マルチキャストパケットを出力する出力ポートとして指定することを特徴とする請求項２０に記載のプログラム。
【請求項２２】
前記マルチキャスト制御情報保持手順では、前記更新の対象とするビットを含むマルチキャスト制御情報を、マルチキャストＩＤによって指定することを特徴とする請求項２１に記載のプログラム。
【請求項２３】
前記入力ポートに前記経路設定コマンドが入力されたときに、該経路設定コマンドの転送先情報が示す宛先と、該経路設定コマンドが入力されたネットワークスイッチとが一致するか否かを判別する宛先一致判別手順、を有し、
前記加算手順では、前記宛先一致判別手順にて一致すると判別した場合、前記経路設定完了プロセス数をカウントすることを特徴とする請求項２０に記載のプログラム。
【請求項２４】
前記経路設定コマンドに含まれるマルチキャスト通信を実行させるプロセス数を保持するプロセス数保持手順、を有し、
前記比較手順では、前記加算手順にてカウントした経路設定完了プロセス数と、前記プロセス数保持手順にて保持している前記マルチキャスト通信を実行させるプロセス数とが一致するか否かを判別することを特徴とする請求項２０に記載のプログラム。
【請求項２５】
（削除）
【請求項２６】
前記完了通知生成手順では、前記マルチキャスト制御手順にて設定した転送経路に従って行われるマルチキャスト通信により、前記経路設定完了通知を転送することを特徴とする請求項１９に記載のプログラム。
【請求項２７】
前記マルチキャスト制御手順では、前記マルチキャストパケットは、１つまたは複数のネットワークスイッチで構成される相互結合網上を、前記経路設定コマンドが転送されてきた方向と逆向きに転送されるよう、前記転送経路を設定することを特徴とする請求項２０に記載のプログラム。
【手続補正書】
【提出日】平成22年8月9日(2010.8.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の入力ポートと該入力ポートにそれぞれ対応付けられた複数の出力ポートとを有し、前記出力ポートからマルチキャストパケットを出力するネットワークスイッチにおいて、
前記複数の出力ポートのうちから前記マルチキャストパケットを出力するための出力ポートを指定するマルチキャスト制御情報保持部と、
前記マルチキャスト制御情報保持部が指定した出力ポートに対して、前記マルチキャストパケットの転送経路を設定する転送経路設定を行うマルチキャスト制御部と、
前記マルチキャスト制御部が前記転送経路設定を完了したプロセス数である経路設定完了プロセス数をカウントする加算部と、
前記加算部がカウントした経路設定完了プロセス数と、前記マルチキャスト通信を実行させるプロセス数とが一致するか否かを判別し、一致すると判別したときにマルチキャスト通信の転送経路設定が完了したことを識別する比較部と、
前記比較部がマルチキャスト通信の転送経路設定が完了したことを識別した場合、該転送経路設定が完了したことを示す経路設定完了通知を生成し、該生成した経路設定完了通知を、前記入力ポートに入力された前記転送経路設定を指示するコマンドである経路設定コマンドの送信元に転送する完了通知生成部と、
を有することを特徴とするネットワークスイッチ。
【請求項２】
前記マルチキャスト制御情報保持部は、前記マルチキャスト制御部に前記経路設定コマンドが入力された入力ポートに基づいて、前記複数の出力ポートのうちから前記マルチキャストパケットを出力するための出力ポートを指定することを特徴とする請求項１に記載のネットワークスイッチ。
【請求項３】
前記マルチキャスト制御情報保持部は、
前記複数の出力ポートにそれぞれ対応付けられた複数のビットを含むマルチキャスト制御情報を保持し、
前記ビットに設定されている値の更新により、該更新したビットに対応する出力ポートを、前記マルチキャストパケットを出力する出力ポートとして指定する、
ことを特徴とする請求項２に記載のネットワークスイッチ。
【請求項４】
前記マルチキャスト制御情報保持部は、前記更新の対象とするビットを含むマルチキャスト制御情報を、マルチキャストＩＤによって指定することを特徴とする請求項３に記載のネットワークスイッチ。
【請求項５】
前記入力ポートに前記経路設定コマンドが入力されたときに、該経路設定コマンドの転送先情報が示す宛先と、該経路設定コマンドが入力されたネットワークスイッチとが一致するか否かを判別する宛先一致判別部、を有し、
前記加算部は、前記宛先一致判別部が一致すると判別した場合、前記経路設定完了プロセス数をカウントする、
ことを特徴とする請求項２に記載のネットワークスイッチ。
【請求項６】
前記経路設定コマンドに含まれるマルチキャスト通信を実行させるプロセス数を保持するプロセス数保持部、を有し、
前記比較部は、前記加算部がカウントした経路設定完了プロセス数と、前記プロセス数保持部が保持している前記マルチキャスト通信を実行させるプロセス数とが一致するか否かを判別する、
ことを特徴とする請求項２に記載のネットワークスイッチ。
【請求項７】
前記完了通知生成部は、前記マルチキャスト制御部が設定した転送経路に従って行われるマルチキャスト通信により、前記経路設定完了通知を転送することを特徴とする請求項1に記載のネットワークスイッチ。
【請求項８】
前記経路設定コマンドによって前記マルチキャスト制御部が転送経路を設定する際に、前記マルチキャストパケットは、１つまたは複数のネットワークスイッチで構成される相互結合網上を、前記経路設定コマンドが転送された方向と逆向きに転送されるよう、前記転送経路を設定することを特徴とする請求項２に記載のネットワークスイッチ。
【請求項９】
複数の入力ポートと該入力ポートにそれぞれ対応付けられた複数の出力ポートとを有し、前記出力ポートからマルチキャストパケットを出力するネットワークスイッチにおける経路設定方法であって、
前記複数の出力ポートのうちから前記マルチキャストパケットを出力するための出力ポートを指定するマルチキャスト制御情報保持処理と、
前記マルチキャスト制御情報保持処理にて指定した出力ポートに対して、前記マルチキャストパケットの転送経路を設定する転送経路設定を行うマルチキャスト制御処理と、
前記マルチキャスト制御処理にて前記転送経路設定を完了したプロセス数である経路設定完了プロセス数をカウントする加算処理と、
前記加算処理にてカウントした経路設定完了プロセス数と、前記マルチキャスト通信を実行させるプロセス数とが一致するか否かを判別し、一致すると判別したときにマルチキャスト通信の転送経路設定が完了したことを識別する比較処理と、
前記比較処理にてマルチキャスト通信の転送経路設定が完了したことを識別した場合、該転送経路設定が完了したことを示す経路設定完了通知を生成し、該生成した経路設定完了通知を、前記入力ポートに入力された前記転送経路設定を指示するコマンドである経路設定コマンドの送信元に転送する完了通知生成処理と、
を有する経路設定方法。
【請求項１０】
ネットワークスイッチが具備する複数の入力ポートにそれぞれ対応付けられた複数の出力ポートのうちから、マルチキャストパケットを出力するための前記出力ポートを指定するマルチキャスト制御情報保持手順と、
前記マルチキャスト制御情報保持手順にて指定した出力ポートに対して、前記マルチキャストパケットの転送経路の設定である転送経路設定を行うマルチキャスト制御手順と、
前記マルチキャスト制御手順にて前記転送経路設定を完了したプロセス数である経路設定完了プロセス数をカウントする加算手順と、
前記加算手順にてカウントした経路設定完了プロセス数と、前記マルチキャスト通信を実行させるプロセス数とが一致するか否かを判別し、一致すると判別したときにマルチキャスト通信の転送経路設定が完了したことを識別する比較手順と、
前記比較手順にてマルチキャスト通信の転送経路設定が完了したことを識別した場合、該転送経路設定が完了したことを示す経路設定完了通知を生成し、該生成した経路設定完了通知を、前記入力ポートに入力された前記転送経路設定を指示するコマンドである経路設定コマンドの送信元に転送する完了通知生成手順と、
をコンピュータに実行させるプログラム。
【国際調査報告】
2009098820.tif 000014
2009098820.tif 000015
2009098820.tif 000016
2009098820.tif 000017