(57)【要約】【課題】ノード間転送の処理時間を短縮することが可能なノード間転送制御装置を提供する。【解決手段】ノード間のデータ転送を実行するデータ転送部３１と、データ転送を制御する転送制御部３２とを具備するノード間転送制御装置を用いる。転送制御部３２は、データ転送におけるデータ転送経路の確保の要求を示す第１転送経路確保要求１０１をＣＰＵ５０から受信して、確保を実行するノード間接続装置１０へ出力する。そして、ノード間接続装置１０からの確保の完了を示す転送経路確保完了通知１０３と、ＣＰＵ５０から受信した第２転送経路確保要求１０７とに基づいて、データ転送を指示する。データ転送部３１は、指示に基づいて、データ転送を実行する。【選択図】図１
2008158917.tif 000002
【特許請求の範囲】
【請求項１】
ノード間のデータ転送を実行するデータ転送部と、
前記データ転送を制御する転送制御部と
を具備し、
前記転送制御部は、
前記データ転送におけるデータ転送経路の確保の要求を示す第１転送経路確保要求をＣＰＵから受信して、前記確保を実行するノード間接続装置へ出力し、
前記ノード間接続装置からの前記確保の完了を示す転送経路確保完了通知と、前記確保の実行中に前記ＣＰＵが前記データ転送における他の処理を実行した後に出力した第２転送経路確保要求とに基づいて、前記データ転送を指示し、
前記データ転送部は、前記指示に基づいて、前記データ転送を実行する
ノード間転送制御装置。
【請求項２】
請求項１に記載のノード間転送制御装置において、
前記ＣＰＵは、前記他の処理として、メモリの通信バッファ領域に、前記メモリの他の領域に格納された前記データをコピーし、
前記データ転送部は、前記指示に基づいて、前記データについて、前記データ転送を実行する
ノード間転送制御装置。
【請求項３】
請求項１に記載のノード間転送制御装置において、
前記ＣＰＵは、
前記第１転送経路確保要求を発信した後、前記第２転送経路確保要求を発信する前に、プロセススイッチが発生したことを示す信号を受信したとき、前記データ転送経路と当該データ転送経路の資源とを解放する要求を示す転送経路解放要求を前記転送制御部を介して前記ノード間接続装置へ送出し、
プロセスの復帰を示す信号を受信したとき、前記第２転送経路確保要求を前記転送制御部へ出力し、
前記転送制御部は、
前記ＣＰＵから受信した前記第２転送経路確保要求を、前記ノード間接続装置へ出力し、
前記第２転送経路確保要求に基づく前記ノード間接続装置からの前記転送経路確保完了通知に基づいて、前記データ転送を指示し、
前記データ転送部は、前記指示に基づいて、前記データ転送を実行する
ノード間転送制御装置。
【請求項４】
複数のノードと、
前記複数のノード間のデータ転送経路を確保するノード間接続装置と
を具備し、
前記複数のノードの各々は、
データを格納する領域と通信用バッファ領域とを含むメモリと、
前記データを、前記複数のノードのうちの他のノードへデータ転送するノード間転送制御装置と、
前記ノード間転送制御装置を制御するＣＰＵと
を備え、
前記ノード間転送制御装置は、
前記ＣＰＵから受信したデータ転送経路の確保の要求を示す第１転送経路確保要求を、前記ノード間接続装置へ出力し、
前記ノード間接続装置からの前記データ転送経路の確保の完了を示す転送経路確保完了通知と、前記確保の実行中に前記ＣＰＵが前記データ転送における他の処理を実行した後に出力した第２転送経路確保要求とに基づいて、前記データを転送する
並列計算機システム。
【請求項５】
請求項４に記載の並列計算機システムにおいて、
前記ＣＰＵは、前記他の処理として、前記メモリの前記通信バッファ領域へ、前記メモリの他の領域に格納された前記データをコピーし、
前記ノード間転送制御装置は、前記データについて、前記データ転送を実行する
並列計算機システム。
【請求項６】
請求項４に記載の並列計算機システムにおいて、
前記ＣＰＵは、
前記第１転送経路確保要求を発信した後、前記第２転送経路確保要求を発信する前に、プロセススイッチが発生したことを示す信号を受信したとき、前記データ転送経路と当該データ転送経路の資源とを解放する要求を示す転送経路解放要求を前記ノード間転送制御装置を介して前記ノード間接続装置へ送出し、
プロセスの復帰を示す信号を受信したとき、前記第２転送経路確保要求を前記前記ノード間転送制御装置へ出力し、
前記ノード間転送制御装置は、
前記ＣＰＵから受信した前記第２転送経路確保要求を、前記ノード間接続装置へ出力し、
前記第２転送経路確保要求に基づく前記ノード間接続装置からの前記転送経路確保完了通知に基づいて、前記データ転送を実行する
並列計算機システム。
【請求項７】
並列計算機システムの動作方法であって、
ここで、前記並列計算機システムは、
複数のノードと、
前記複数のノード間のデータ転送経路を確保するノード間接続装置と
を具備し、
前記複数のノードの各々は、
データを格納する領域と通信用バッファ領域とを含むメモリと、
前記データを、前記複数のノードのうちの他のノードへデータ転送するノード間転送制御装置と、
前記ノード間転送制御装置を制御するＣＰＵと
を備え、
前記並列計算機システムの動作方法は、
（ａ）前記ノード間転送制御装置が、前記ＣＰＵから受信したデータ転送経路の確保の要求を示す第１転送経路確保要求を、前記ノード間接続装置へ出力するステップと、
（ｂ）前記ノード間転送制御装置が、前記ノード間接続装置からの前記データ転送経路の確保の完了を示す転送経路確保完了通知と、前記確保の実行中に前記ＣＰＵが前記データ転送における他の処理を実行した後に出力した第２転送経路確保要求とに基づいて、前記データを転送するステップと
を具備する
並列計算機システムの動作方法。
【請求項８】
請求項７に記載の並列計算機システムの動作方法において、
（ｃ）前記ＣＰＵが、前記他の処理として、前記メモリの前記通信バッファ領域へ、前記メモリの他の領域から前記データをコピーするステップを更に具備し、
前記（ｂ）ステップは、
（ｂ１）前記ノード間転送制御装置が、前記データについて、前記データ転送を実行するステップを備える
並列計算機システムの動作方法。
【請求項９】
請求項７に記載の並列計算機システムの動作方法において、
（ｄ）前記ＣＰＵが、前記第１転送経路確保要求を発信した後、前記第２転送経路確保要求を発信する前に、プロセススイッチが発生したことを示す信号を受信したとき、前記データ転送経路と当該データ転送経路の資源とを解放する要求を示す転送経路解放要求を前記ノード間転送制御装置を介して前記ノード間接続装置へ送出するステップと、
（ｅ）前記ＣＰＵが、プロセスの復帰を示す信号を受信したとき、前記第２転送経路確保要求を前記前記ノード間転送制御装置へ出力するステップと
を更に具備し、
前記（ｂ）ステップは、
（ｂ２）前記ノード間転送制御装置が、前記ＣＰＵから受信した前記第２転送経路確保要求を、前記ノード間接続装置へ出力するステップと、
（ｂ３）前記ノード間転送制御装置が、前記第２転送経路確保要求に基づく前記ノード間接続装置からの前記転送経路確保完了通知に基づいて、前記データ転送を実行するステップを備える
並列計算機システムの動作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列計算機システムに関する。
【背景技術】
【０００２】
複数の計算ノード（以下、「ノード」）の間で処理の分割、同期、スケジューリングを行い、複数ノードが協調して処理を行うこと並列処理が知られている。そして、そのような並列処理を行う並列計算機システムが知られている。並列計算機システムにおいて、データが転送されるとき、転送データが通信Ｂｕｆｆｅｒにコピーされる状況がある。
【０００３】
例えば、第１の状況として、分散非共有メモリ環境の並列計算機システムにおけるノード間通信（ＭＰＩ（Ｍｅｓｓａｇｅ  Ｐａｓｓｉｎｇ  Ｉｎｔｅｒｆａｃｅ）通信）がある。通常のＭＰＩ＿Ｓｅｎｄにおいて、並列計算機システムがＢｕｆｆｅｒコピーを必要とする場合、又は、Ｂｕｆｆｅｒモード通信のＭＰＩ＿Ｂｓｅｎｄを用いる場合、転送データがＭＰＩ通信Ｂｕｆｆｅｒにコピーされる。図６は、従来技術における転送データが通信Ｂｕｆｆｅｒにコピーされる状況の例を示す。ユーザデータがＭＰＩ通信Ｂｕｆｆｅｒにコピーされ、その後転送されることを示している。
【０００４】
第２の状況として、分散共有メモリを有する並列計算機システムにおけるノード間データ転送がある。分散共有メモリを有する並列計算機システムは、複数のノードを有する。その複数のノードの各々は、異なる物理アドレス空間を持ち、かつ論理アドレス空間を共有している。そのノード間データ転送は、異なるノードに属する２つの物理アドレス空間の間で行われるデータコピーにより実現される。
【０００５】
このノード間でデータ転送を行う制御装置（以下、「ノード間転送制御装置」という）がアクセスできないメモリ領域に転送元データが存在する場合、まずノード間転送制御装置のアクセスできるメモリ領域にデータコピーを行い、その後にデータ転送を開始する必要がある。ここで、ノード間転送制御装置がアクセスできないメモリ領域に転送元データが存在する場合とは、例えば、転送元データの物理アドレスがノード間転送制御装置により論理アドレスへ変換できないアドレスである場合である。図７は、従来技術における転送データが通信Ｂｕｆｆｅｒにコピーされる状況の他の例を示す。図中、領域（ａ）〜（ｄ）は論理的に同じメモリ空間を示す。また、領域（ｂ）、（ｄ）はノード間転送制御装置３０ａがアクセス可能な領域を示す。領域（ａ）、（ｃ）はノード間転送制御装置３０ａがアクセス不可の領域である。まず、（１）に示すように、送信元ノードのメモリ空間の領域（ａ）にあるユーザデータを、ノード間転送制御装置３０ａのアクセス可能な領域（ｂ）にある通信Ｂｕｆｆｅｒにコピーする。次に、（２）に示すように、ノード間転送制御装置３０ａが、領域（ｂ）の通信Ｂｕｆｆｅｒにコピーされた転送データを抽出する。そして、（３）に示すように、ノード間転送制御装置３０ａが、送信先ノードのメモリ空間である領域（ｄ）の所定の領域に、抽出した転送データをコピーする。
【０００６】
単一ノードの性能向上が難しい現状において、ＨＰＣ（Ｈｉｇｈ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｃｏｍｐｕｔｉｎｇ）の性能向上のために、並列計算機のノード間データ転送性能を向上させることは重要である。特に、ノード間転送のｌａｔｅｎｃｙ性能（データ転送が開始されるまでの時間を評価する性能）を削減することは、並列計算機のノード数増加に対する性能向上率改善に大きく貢献する。そのため、ノード間転送性能のｌａｔｅｎｃｙ性能を評価する標準ベンチマークも認知され始め、並列計算機システムのノード間転送性能のｌａｔｅｎｃｙ性能を改善するための取り組みが、計算機、ノード間スイッチ、基本ソフトウェアの分野において行われている。
【０００７】
しかし、ノード間転送を行うために必要な処理を時系列順に行った場合、ｌａｔｅｎｃｙ性能の向上は、ＨＷ（ＨａｒｄＷａｒｅ）の処理性能等に制約され、限界がある。例えば、並列計算機のプログラム記述に標準的に用いられるＭＰＩ（Ｍｅｓｓａｇｅ  Ｐａｓｓｉｎｇ  Ｉｎｔｅｒｆａｃｅ）ライブラリを使用したノード間転送では、ノード間で転送するデータをメモリ上のある領域にコピー（バッファリング）し、そのコピーしたデータを計算機が転送する方式が用いられる。このデータをコピーする処理とその後に続くデータ転送の処理は、一般的に時系列上に連続する処理として行われる。従って、ノード間データ転送のｌａｔｅｎｃｙ時間には、データ転送の時間に加えて、転送するデータをコピーする処理時間が加算される。従来からノード間転送のデータコピーを削減するための方式検討がされているが、ハードウェア資源量の制約等により、非常に実現が難しい。
【０００８】
特開２００１−２３６３３４号公報にプロセッサ間通信方法およびそのための並列プロセッサが開示されている。この電子計算機は、プロセッサと、メモリと、外部装置と、該メモリに割り付けられた仮想アドレスを実アドレスに変換するアドレス変換手段とを有する。電子計算機は、上記外部装置が書き込みを要求する上記仮想アドレスに上記実アドレスが割りけられていないときに、上記外部装置からの上記仮想アドレスと書き込みデータとを格納する手段を有する。
【０００９】
特開２０００−１８３８８２号公報にネットワークモニタリング装置が開示されている。このネットワークモニタリング装置は、データ転送を制御する複数のノードがクロスバスイッチを介して相互接続され、前記複数のノードのうち選択された任意の２つのノード間でデータ転送を可能にする。ネットワークのネットワークモニタリング装置は、前記クロスバスイッチにサービスプロセッサを接続し、前記ノード間の接続状況等を確認可能にする。
【００１０】
特開平１１−３０８２３１号公報に通信リソース予約方法が開示されている。この通信リソース予約方法は、ルーチング処理部、スイッチング処理部、およびプロトコル処理部を有する１または複数の交換機に、複数のユーザ端末が接続されているＡＴＭネットワークにて、通信のためのリソースを予約する。前記交換機は、実際の通信を行う時間を事前予約するための情報を伴った予約要求メッセージを受信した際に、前記プロトコル処理部でその予約要求メッセージを解析して、その事前予約を受け付けた場合には、予約指定時刻にリソースおよびコネクション情報を通信するために必要な情報を確保し、前記ルーチング処理部に対して、前記スイッチング処理部でのルーチング情報を設定する。
【００１１】
特許第２８７５４１１号公報にプリンタ装置が開示されている。このプリンタ装置は、外部装置から入力される印字情報に基づいてエンジン部を制御して電子写真プロセスにより記録媒体に画像を形成可能である。プリンタ装置は、前記電子写真プロセスのプロセス条件を切り換える切換え手段と、前記切換え手段により切り換えられるプロセス条件で前記エンジン部が印字可能となるための切換え処理中を前記外部装置に報知する報知手段と、を具備する。
【００１２】
【特許文献１】特開２００１−２３６３３４号公報
【特許文献２】特開２０００−１８３８８２号公報
【特許文献３】特開平１１−３０８２３１号公報
【特許文献４】特許第２８７５４１１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
従って、本発明の目的は、ノード間転送の処理時間を短縮することが可能な並列計算機システムを提供することにある。本発明の他の目的は、ノード間転送のｌａｔｅｎｃｙ性能を向上することが可能な並列計算機システムを提供することにある。本発明の更に他の目的は、ノード間転送のデータコピーを実質的に削減することが可能な並列計算機システムを提供することにある。
【課題を解決するための手段】
【００１４】
以下に、発明を実施するための最良の形態で使用される番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、特許請求の範囲の記載と発明を実施するための最良の形態との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、特許請求の範囲に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１５】
上記課題を解決するために、本発明のノード間転送制御装置は、ノード間のデータ転送を実行するデータ転送部（３１）と、データ転送を制御する転送制御部（３２）とを具備する。転送制御部（３２）は、データ転送におけるデータ転送経路の確保の要求を示す第１転送経路確保要求（１０１）をＣＰＵ（５０）から受信して、確保を実行するノード間接続装置（１０）へ出力する。そして、ノード間接続装置（１０）からの確保の完了を示す転送経路確保完了通知（１０３）と、確保の実行中にＣＰＵ（５０）がデータ転送における他の処理を実行した後に出力した第２転送経路確保要求（１０７）とに基づいて、データ転送を指示する。データ転送部（３１）は、指示に基づいて、データ転送を実行する。
本発明では、第１転送経路確保要求（１０１）でノード間接続装置（１０）に経路確保の処理（例示：転送経路におけるハンドシェイク処理等）を実行させ、その間に、ＣＰＵ（５０）にノード間転送において時系列順に行われる他の処理を実行することができる。それにより、当該他の処理の時間を、経路確保の処理の時間に隠蔽することが出来、ノード間転送にかかる時間を削減することができる。
【００１６】
上記のノード間転送制御装置において、ＣＰＵ（５０）は、他の処理として、メモリ（４０）の通信バッファ領域（４０ｂ）に、メモリ（４０）の他の領域に格納されたデータ（４０ａ）をコピーすることが好ましい。データ転送部（３１）は、指示に基づいて、データ（４０ａ）について、データ転送を実行することが好ましい。
本発明において、ノード間転送において時系列順に行われる他の処理として、特にデータ転送におけるデータコピー（バッファリング）の処理を行うことにより、データコピー時間を隠蔽することが出来、ノード間転送にかかる時間を削減することができる。
【００１７】
上記のノード間転送制御装置において、ＣＰＵ（５０）は、第１転送経路確保要求（１０１）を発信した後、第２転送経路確保要求（１０７）を発信する前に、プロセススイッチが発生したことを示す信号を受信したとき、データ転送経路と当該データ転送経路の資源とを解放する要求を示す転送経路解放要求（１０５）を転送制御部（３２）を介してノード間接続装置（１０）へ送出することが好ましい。そして、プロセスの復帰を示す信号を受信したとき、第２転送経路確保要求（１０７）を転送制御部（３２）へ出力することが好ましい。転送制御部（３２）は、ＣＰＵ（５０）から受信した第２転送経路確保要求（１０７）を、ノード間接続装置（１０）へ出力することが好ましい。そして、第２転送経路確保要求（１０７）に基づくノード間接続装置（１０）からの転送経路確保完了通知（１０３）に基づいて、データ転送を指示することが好ましい。データ転送部（３１）は、指示に基づいて、データ転を実行することが好ましい。
【００１８】
上記課題を解決するために、本発明の並列計算機システムは、複数のノード（２０−１〜２０−Ｍ）と、複数のノード（２０−１〜２０−Ｍ）間のデータ転送経路を確保するノード間接続装置（１０）とを具備する。複数のノード（２０−１〜２０−Ｍ）の各々（２０−ｉ）は、データ（４０ａ）を格納する領域と通信用バッファ領域（４０ｂ）とを含むメモリ（４０）と、データ（４０ａ）を、複数のノード（２０−１〜２０−Ｍ）のうちの他のノード（２０−ｊ）へデータ転送するノード間転送制御装置（３０）と、ノード間転送制御装置（３０）を制御するＣＰＵ（５０）とを備える。ノード間転送制御装置（３０）は、ＣＰＵ（５０）から受信したデータ転送経路の確保の要求を示す第１転送経路確保要求（１０１）を、ノード間接続装置（１０）へ出力する。そして、ノード間接続装置（１０）からのデータ転送経路の確保の完了を示す転送経路確保完了通知（１０３）と、確保の実行中にＣＰＵ（５０）がデータ転送における他の処理を実行した後に出力した第２転送経路確保要求（１０７）とに基づいて、データ（４０ａ）を転送する。
【００１９】
上記の並列計算機システムにおいて、ＣＰＵ（５０）は、他の処理として、メモリ（４０）の通信バッファ領域（４０ｂ）へ、メモリ（４０）の他の領域に格納されたデータ（４０ａ）をコピーする。ノード間転送制御装置（３０）は、データ（４０ａ）について、データ転送を実行する。
【００２０】
上記の並列計算機システムにおいて、ＣＰＵ（５０）は、第１転送経路確保要求（１０１）を発信した後、第２転送経路確保要求（１０７）を発信する前に、プロセススイッチが発生したことを示す信号を受信したとき、データ転送経路と当該データ転送経路の資源とを解放する要求を示す転送経路解放要求（１０５）をノード間転送制御装置（３０）を介してノード間接続装置（１０）へ送出する。そして、プロセスの復帰を示す信号を受信したとき、第２転送経路確保要求（１０７）をノード間転送制御装置（３０）へ出力する。ノード間転送制御装置（３０）は、ＣＰＵ（５０）から受信した第２転送経路確保要求（１０７）を、ノード間接続装置（１０）へ出力する。そして、第２転送経路確保要求（１０７）に基づくノード間接続装置（１０）からの転送経路確保完了通知（１０３）に基づいて、データ転送を実行する。
【００２１】
上記課題を解決するために、本発明の並列計算機システムの動作方法は、並列計算機システムの動作方法である。ここで、並列計算機システムは、複数のノード（２０−１〜２０−Ｍ）と、複数のノード（２０−１〜２０−Ｍ）間のデータ転送経路を確保するノード間接続装置（１０）とを具備する。複数のノード（２０−１〜２０−Ｍ）の各々（２０−ｉ）は、データ（４０ａ）を格納する領域と通信用バッファ領域（４０ｂ）とを含むメモリ（４０）と、データ（４０ａ）を、複数のノード（２０−１〜２０−Ｍ）のうちの他のノード（２０−ｊ）へ転送するノード間転送制御装置（３０）と、ノード間転送制御装置（３０）を制御するＣＰＵ（５０）とを備える。並列計算機システムの動作方法は、（ａ）ノード間転送制御装置（３０）が、ＣＰＵ（５０）から受信したデータ転送経路の確保の要求を示す第１転送経路確保要求（１０１）を、ノード間接続装置（１０）へ出力するステップと、（ｂ）ノード間転送制御装置（３０）が、ノード間接続装置（１０）からのデータ転送経路の確保の完了を示す転送経路確保完了通知（１０３）と、確保の実行中にＣＰＵ（５０）がデータ転送における他の処理を実行した後に出力した第２転送経路確保要求（１０７）とに基づいて、データ（４０ａ）を転送するステップとを具備する。
【００２２】
上記の並列計算機システムの動作方法において、（ｃ）ＣＰＵ（５０）が、他の処理として、メモリ（４０）の通信バッファ領域（４０ｂ）へ、メモリ（４０）の他の領域からデータ（４０ａ）をコピーするステップを更に具備する。（ｂ）ステップは、（ｂ１）ノード間転送制御装置（３０）が、データ（４０ａ）について、データ転送を実行するステップを備える。
【００２３】
上記の並列計算機システムの動作方法において、（ｄ）ＣＰＵ（５０）が、第１転送経路確保要求（１０１）を発信した後、第２転送経路確保要求（１０７）を発信する前に、プロセススイッチが発生したことを示す信号を受信したとき、データ転送経路と当該データ転送経路の資源とを解放する要求を示す転送経路解放要求（１０５）をノード間転送制御装置（３０）を介してノード間接続装置（１０）へ送出するステップと、（ｅ）ＣＰＵ（５０）が、プロセスの復帰を示す信号を受信したとき、第２転送経路確保要求（１０７）をノード間転送制御装置（３０）へ出力するステップとを更に具備する。（ｂ）ステップは、（ｂ２）ノード間転送制御装置（３０）が、ＣＰＵ（５０）から受信した第２転送経路確保要求（１０７）を、ノード間接続装置（１０）へ出力するステップと、（ｂ３）ノード間転送制御装置（３０）が、第２転送経路確保要求（１０７）に基づくノード間接続装置（１０）からの転送経路確保完了通知（１０３）に基づいて、データ転送を実行するステップを備える。
【発明の効果】
【００２４】
本発明により、ノード間転送の処理時間を短縮することができる。ノード間転送のｌａｔｅｎｃｙ性能を向上することが可能となる。ノード間転送のデータコピーを実質的に削減することが可能となる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の並列計算機システムの実施の形態に関して、添付図面を参照して説明する。
【００２６】
図１は、本発明の並列計算機システムの実施の形態の構成を示すブロック図である。並列計算機システム１は、複数のノード２０−１〜２０−Ｍ（Ｍは２以上の自然数）とノード間接続装置１０とを具備する。ノード間接続装置１０は、複数のノード２０−１〜２０−Ｍ間を互いに接続する。
【００２７】
各ノード２０は、複数のＣＰＵ５０−１〜５０−Ｎ（Ｎは２以上の自然数）と、メモリ（主記憶装置）４０と、ノード間転送制御装置３０を備える。ノード間転送制御装置３０は、各ＣＰＵ５０とは非同期でＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）動作することが可能である。ＤＭＡ動作に関連する構成は従来と同様であるので省略する。
【００２８】
ノード間転送制御装置３０は、ノード間転送の経路を確保する処理の結果を保持するために、ノード間転送制御装置内経路確保完了フラグを持つ。ノード間転送制御装置内経路確保完了フラグは、データ転送命令毎に対応して存在する「各ノード内で実行される並列ジョブ毎にユニークなＩＤ（以下、ＪＩＤ）」の数に対応するビット幅のフラグである。ノード間転送制御装置内経路確保完了フラグは、ここでは、経路確保完了フラグ１００１である。
【００２９】
ノード間転送制御装置３０は、例えば、ノード間接続装置１０から送出されるノード間接続装置１０内のデータ転送経路を確保した旨の通知（以下「転送経路確保完了通知１０３」）により、経路確保完了フラグ１００１を１セットする（「“１”にセットする」以下同じ）。ノード間転送制御装置３０は、この転送経路確保完了通知１０３により、ノード間データ転送要求を送出したプロセスに対応する経路確保完了フラグ１００１のビットを１セットする。ノード間転送制御装置３０は、ＣＰＵ５０から転送経路解放要求１０５を受信することにより、経路確保完了フラグ１００１のＪＩＤに対応するビットを０リセットする（「“０”にリセットする」以下同じ）。
【００３０】
ノード間転送制御装置３０は、転送経路確保要求１０７を受信したことを保持するために、ＪＩＤ数に対応するビット幅の転送経路確保要求受信フラグ１００２を持つ。ノード間転送制御装置３０は、転送経路確保要求１０７の受信により、転送経路確保要求受信フラグ１００２を１セットする。そして、データ転送制御装置３０内のデータ転送部３１に対するストローブ信号を受信してから１サイクル後の信号により、転送経路確保要求受信フラグ１００２を０リセットする。データ転送部３１以外の部分を転送制御部３２ともいう。
【００３１】
ＣＰＵ５０は、通常のデータ転送要求である転送経路確保要求１０７と、本発明で使用する通信Ｂｕｆｆｅｒにユーザデータをコピーする前に発行する転送経路確保要求１０１とを区別して取り扱う。ソフトウェアが転送経路確保要求１０１に対応する命令を用いた場合、ＣＰＵ５０は投機的データ転送要求の発行済みを示す投機的データ転送要求済フラグ１００４のＪＩＤに対応するビットに１をセットする。ただし、投機的データ転送要求済フラグ１００４は、ＪＩＤの数に対応するビット幅のフラグである。データ転送元のＣＰＵ５０においてプロセススイッチが起きたとき（プロセススイッチの指示信号１０８を受信したとき）、投機的データ転送要求済フラグ１００４のＪＩＤに対応するビットが１であれば、データ転送元のＣＰＵ５０は、ノード間転送制御装置３０に対して、転送経路確保要求１０１を送出する。
【００３２】
ノード間接続装置１０は、（各ノードのＪＩＤ数）×（送信先ノード数）に対応するビット幅（＝Ｊ×Ｍビット）の経路確保完了フラグ１００５を持つ。経路確保完了フラグ１００５は、ノード間接続の経路を確保する処理の結果を保持する。ノード間接続装置１０は、転送経路確保要求１０１を受信することにより、経路確保完了フラグ１００５の送信先ノードと送信元ＪＩＤに対応するビットに１をセットする。そして、送信元のノード間転送制御装置３０に対して、転送経路確保完了通知１０３を送出する。
【００３３】
ノード間接続装置１０が転送経路確保要求１０１を受信する以前の処理で送信先ノードに対応する複数のビットが１ビットでも１セットされていて、１セットされたビットがデータ送信元のＪＩＤに対応したビットでなければ、ノード間接続装置１０は、経路確保完了フラグ１００５に１をセットすることなく、送信元のノード間転送制御装置３０に対して、転送経路確保不成立通知１０４を送出する。
【００３４】
ノード間接続装置１０が投機的データ転送要求を受信したとき、送信先ノードと送信元ＪＩＤに対応するビットに１をセットし、転送経路確保要求１０１を送出したノード間転送制御装置３０が用いる転送経路を確保できた場合、ノード間接続装置１０は、送信元のノード間転送制御装置３０に対して、転送経路確保完了通知１０３を送出する。
【００３５】
以下、本発明の並列計算機システムの実施の形態の動作に関して、添付図面を参照して説明する。
図２は、本発明の並列計算機システムの実施の形態の動作の一例を示すタイムチャートである。ノード２０−ｉ（１≦ｉ≦Ｍ、ｉは自然数）のメモリ４０（送信側）から、ノード２０−ｊ（１≦ｊ≦Ｍ、ｉ≠ｊ、ｊは自然数）のメモリ４０（受信側）へデータを転送する場合の通常の動作を示す。
【００３６】
ソフトウェアのノード間データ転送命令に従い、ＣＰＵ５０（送信側）が、ノード間転送制御装置３０（送信側）に対して転送経路確保要求１０１を送出する。この時、ＣＰＵ５０（送信側）が、転送するユーザデータ４０ａを有するメモリ４０（送信側）上の通信Ｂｕｆｆｅｒ（領域）４０ｂのアドレスをノード間転送制御装置３０（送信側）に通知する。そして、ＣＰＵ５０（送信側）は、ＣＰＵ５０（送信側）内の投機的データ転送要求済みフラグ１００４の特定ビットに１をセットする。更に、ＣＰＵ５０（送信側）は、データ転送命令毎に対応して存在する「各ノード内で実行される並列ジョブ毎にユニークなＩＤ（ＪＩＤ）」に対応する投機的データ転送要求済みフラグ１００４のビットに１をセットする。
【００３７】
ＣＰＵ５０（送信側）は、ノード間転送制御装置３０（送信側）に転送経路確保要求１０１を送出したタイミング以降に、メモリ４０（送信側）内に格納され転送されるユーザデータ４０ａを、メモリ４０（送信側）内の通信用Ｂｕｆｆｅｒ４０ｂにコピーする処理１００を開始する。このコピー処理１００の開始のタイミングは、ソフトウェア指示の特定の命令によって決定される。ここで、コピー処理１００にかかる時間は、例えば、ＰＳ４で３００ｎｓ以上、ＰＳ５ではＰＳ４より大きくなる可能性がある。しかし、本発明では、上述のように、ノード間接続装置１０がノード間転送の経路を確保している間に、コピー処理１００を行うことができる。すなわち、従来では経路確保の前又は後で行われていたコピー処理１００が経路確保中に行われるので、コピー処理１００にかかる時間分だけノード間転送の時間を短縮できる。
【００３８】
ノード間転送制御装置３０（送信側）は、ＣＰＵ５０（送信側）から受信した転送経路確保要求１０１をノード間接続装置１０に対して送出し、ノード間転送の経路を確保する処理を開始する。
【００３９】
ノード間接続装置１０は、転送経路確保要求１０１を受信し、転送経路確保要求１０１に含まれる情報を参照することにより、データ送信先のノード番号とデータ送信元のＪＩＤを特定する。そして、ノード間接続装置１０は、データ送信先のノード番号とデータ送信元のＪＩＤを特定後、データ送信先ノード番号に対応する経路確保完了フラグ１００５の全ビットが１であるか否かをチェックする。
【００４０】
ノード間接続装置１０は、データ送信先ノード番号に対応する経路確保完了フラグ１００５の全ビットが０であるか、１であるビットがデータ送信元ＪＩＤに対応したビットであれば、データ送信元ＪＩＤとデータ送信先ノード番号とに対応する経路確保完了フラグ１００５のビットに１をセットする。そして、その後、転送経路確保完了通知１０３をノード間転送制御装置３０（送信側）に対して送出する。ノード間転送制御装置３０（送信側）は、転送経路確保完了通知１０３を受信した場合、経路確保完了フラグ１００１のＪＩＤに対応するビットに１をセットする。ＪＩＤは、転送経路確保完了通知１０３の有する情報に含まれる。これにより、ノード間転送の経路を確保する処理が完了する。このノード間転送の経路を確保する処理（１０１〜１０３）は、例えば、ＰＣＩ  Ｅｘｐｒｅｓｓのハンドシェイク処理（１２００ｎｓ程度）に例示される。
【００４１】
一方、ノード間接続装置１０は、データ送信先ノード番号に対応する経路確保完了フラグ１００５の中に、１がセットされているフラグが１ビットでも存在し、１がセットされたビットがデータ送信元ＪＩＤに対応したビットでなければ、転送経路確保不成立通知１０４をノード間転送制御装置３０（送信側）に対して送出する。ノード間転送制御装置３０（送信側）は、転送経路確保不成立通知１０４を受信した場合、転送経路確保要求１０１をノード間接続装置１０に再送し、ノード間転送の経路を確保する処理を再度実行する。
【００４２】
前述の、コピー処理１００が完了した後、ＣＰＵ５０（送信側）は、転送経路確保要求１０７をノード間転送制御装置３０（送信側）に送出する。転送経路確保要求１０７は、ソフトウェア指示の特定の命令に従って送出される。この時、ＣＰＵ５０（送信側）は、ＣＰＵ５０（送信側）内の投機的データ転送要求済みフラグ１００４の特定ビットを０リセットする。更に、ＣＰＵ５０（送信側）は、データ転送命令に対応して存在する「各ノード内で実行される並列ジョブ毎にユニークなＩＤ（ＪＩＤ）」に対応する投機的データ転送要求済みフラグ１００４のビットを０リセットする。この０リセットは、投機的データ転送要求済みフラグ１００４の上記ビットに対するビット反転操作で行われる。すなわち、ＣＰＵ５０（送信側）は、投機的データ転送要求済みフラグ１００４を用いて、従来行われない本発明による２回目の転送経路確保要求１０７の発送を制御している。
【００４３】
ノード間転送制御装置３０（送信側）は、経路確保完了フラグ１００１のＪＩＤに対応するビットに１がセットされ、かつＣＰＵ５０（送信側）から転送経路確保要求１０７を受信することにより、ノード間転送制御装置３０（送信側）内のデータ転送部３１にデータ転送指示を送出する。すなわち、ノード間転送の経路確保が完了した後に、転送経路確保要求１０７を受信した場合には、直ちにデータ転送指示を送出する。また、ノード間転送の経路確保が完了する前に、転送経路確保要求１０７を受信した場合には、ノード間転送の経路確保が完了するのを待ってデータ転送指示を送出する。これにより、経路確保が行われる前にデータ転送が行われることを防止している。データ転送部３１は、データ転送指示を受けることにより、メモリ４０（送信側）の通信用Ｂｕｆｆｅｒ４０ｂ上にあるデータを送信先ノード２０−ｊに対して送信する。ノード間転送制御装置３０（送信側）は、転送経路確保要求１０１を受信したときに送信先ノード２０−ｊを保持し、その保持した情報をＪＩＤを用いて参照することにより、送信先ノード２０−ｊを判別する。
【００４４】
以上により、ノード２０−ｉのメモリ４０（送信側）からノード２０−ｊのメモリ４０（受信側）へのデータ転送が完了する。
【００４５】
図３は、本発明の並列計算機システムの実施の形態の動作の他の一例を示すタイムチャートである。ノード２０−ｉのメモリ４０（送信側）から、ノード２０−ｊのメモリ４０（受信側）へデータを転送する場合の例外的な動作を示す。
【００４６】
ソフトウェアのノード間データ転送命令に従い、ＣＰＵ５０（送信側）が、ノード間転送制御装置３０（送信側）に対して転送経路確保要求１０１を送出する。この時、ＣＰＵ５０（送信側）が、転送するユーザデータ４０ａを有するメモリ４０（送信側）上の通信用Ｂｕｆｆｅｒ４０ｂのアドレスをノード間転送制御装置３０（送信側）に通知する。そして、ＣＰＵ５０（送信側）は、ＣＰＵ５０（送信側）内の投機的データ転送要求済みフラグ１００４の特定ビットに１をセットする。更に、ＣＰＵ５０（送信側）は、データ転送命令毎に対応して存在する「各ノード内で実行される並列ジョブ毎にユニークなＩＤ（ＪＩＤ）」に対応する投機的データ転送要求済みフラグ１００４のビットに１をセットする。この１セットは、投機的データ転送要求済みフラグ１００４の上記ビットに対するビット反転操作で行われる。
【００４７】
ＣＰＵ５０（送信側）は、ノード間転送制御装置３０（送信側）に転送経路確保要求１０１を送出して投機的データ転送要求済みフラグ１００４に１をセットした後に、プロセススイッチが発生した場合（プロセススイッチの指示信号１０８を受信したとき）、ノード間転送制御装置３０（送信側）に転送経路解放要求１０５を送出する。
【００４８】
ノード間転送制御装置３０（送信側）は、転送経路解放要求１０５を受信することにより、ＪＩＤに対応する経路確保完了フラグ１００１を０リセットする。ノード間接続装置１０は、転送経路解放要求１０５を受信することにより、経路確保完了フラグ１００５のデータ送信元のＪＩＤとデータ送信先のノード番号に対応するビットを０リセットする。
【００４９】
ＣＰＵ５０（送信側）は、データ転送のプロセスが復帰した後に、メモリ４０（送信側）内に格納され転送されるユーザデータ４０ａを、メモリ４０（送信側）内の通信用Ｂｕｆｆｅｒ４０ｂにコピーする処理１００を実行する。ここで、コピー処理１００にかかる時間は、例えば、上記のように３００ｎｓ以上である。コピー処理１００が完了した後、ソフトウェア指示に従い、転送経路確保要求１０７を送出する。このとき、投機的データ転送要求済フラグ１００４を０でリセットする。
【００５０】
ノード間転送制御装置３０（送信側）は、転送経路確保要求１０７を受信することにより、転送経路確保要求受信フラグ１００２のＪＩＤに対応するビットに１をセットし、経路確保完了フラグ１００１のＪＩＤに対応するビットが１でなければ、転送経路確保要求１０１をノード間接続装置１０に対して送出する。
【００５１】
ノード間接続装置１０は、転送経路確保要求１０１を受信し、転送経路確保要求１０１に含まれる情報を参照することにより、データ送信先ノード番号とデータ送信元のＪＩＤを特定する。そして、ノード間接続装置１０は、データ送信先ノード番号とデータ送信元ＪＩＤを特定した後、データ送信先ノード番号に対応する経路確保完了フラグ１００５の全ビットが１であるか否かをチェックする。
【００５２】
ノード間接続装置１０は、データ送信先ノード番号に対応する経路確保完了フラグ１００５の全ビットが０であるか、１であるビットがデータ送信元ＪＩＤに対応したビットであれば、データ送信元のＪＩＤとデータ送信先ノード番号に対応する経路確保完了フラグ１００５のビットに１をセットする。そして、転送経路確保完了通知１０３をノード間転送制御装置３０（送信側）に対して送出する。ノード間転送制御装置３０（送信側）は、転送経路確保完了通知１０３を受信した場合、経路確保完了フラグ１００１のＪＩＤに対応するビットに１をセットする。ＪＩＤは、転送経路確保完了通知１０３の有する情報に含まれる。これにより、ノード間転送の経路を確保する処理が完了する。このノード間転送の経路を確保する処理（１０１〜１０３）は、例えば、ＰＣＩ  Ｅｘｐｒｅｓｓのハンドシェイク処理（１２００ｎｓ）に例示される。
【００５３】
一方、ノード間接続装置１０は、データ送信先ノード番号に対応する経路確保完了フラグ１００５の中に、１がセットされているフラグが１ビットでも存在し、１がセットされたビットがデータ送信元ＪＩＤに対応したビットでなければ、転送経路確保不成立通知１０４をノード間転送制御装置３０（送信側）に対して送出する。ノード間転送制御装置３０（送信側）は、転送経路確保不成立通知１０４を受信した場合、転送経路確保要求１０１をノード間接続装置１０に再送し、ノード間転送の経路を確保する処理を再度実行する。
【００５４】
ノード間転送制御装置３０（送信側）は、経路確保完了フラグ１００１と転送経路確保要求受信フラ１００２グのＪＩＤに対応するビットに１がセットされることにより、ノード間転送制御装置３０（送信側）内のデータ転送部３１にデータ転送指示を送出する。データ転送部３１は、データ転送指示を受けることにより、メモリ４０（送信側）の通信用Ｂｕｆｆｅｒ４０ｂ上にあるデータを送信先ノード２０−ｊに対して送信する。ノード間転送制御装置３０（送信側）は、転送経路確保要求１０１を受信したときに送信先ノード２０−ｊを保持し、その保持した情報をＪＩＤを用いて参照することにより、送信先ノード２０−ｊを判別する。
【００５５】
以上により、ノード２０−ｉのメモリ４０（送信側）からノード２０−ｊのメモリ４０（受信側）へのデータ転送が完了する。
【００５６】
以上、本発明は上記実施の形態に限定されるものではなく、発明の範囲及び技術思想を逸脱しない変形や変更が可能であることは明らかである。
【００５７】
ここで、図４及び図５を参照して、本発明の並列計算システムと従来の並列計算システムとを比較する。
【００５８】
図４は、従来の並列計算機システムの構成の一例を示すブロック図である。並列計算機システム２００は、複数のノード２２０−１〜２２０−Ｍとノード間接続装置２１０とを具備する。ノード間接続装置２１０は、複数のノード２２０−１〜２２０−Ｍ間を互いに接続する。
【００５９】
各ノード２２０は、複数のＣＰＵ２５０−１〜２５０−Ｎと、メモリ２４０と、ノード間転送制御装置２３０を備える。ノード間転送制御装置２３０は、各ＣＰＵ２５０とは非同期でＤＭＡ動作することが可能である。ＤＭＡ動作に関連する構成は従来と同様であるので省略する。
【００６０】
ノード間転送制御装置２３０は、ノード間転送の経路を確保する処理の結果を保持するために、ノード間転送制御装置内経路確保完了フラグを持つ。ノード間転送制御装置内経路確保完了フラグは、データ転送命令毎に対応して存在する「各ノード内で実行される並列ジョブ毎にユニークなＩＤ（ＪＩＤ）」の数に対応するビット幅のフラグである。ノード間転送制御装置内経路確保完了フラグは、ここでは、経路確保完了フラグ２００１である。ノード間転送制御装置２３０は、例えば、ノード間接続装置２１０から送出されるノード間接続装置２１０内のデータ転送経路を確保した旨の通知（以下「転送経路確保完了通知２０３」）により、経路確保完了フラグ２００１を１セットする。ノード間転送制御装置２３０は、この転送経路確保完了通知２０３により、ノード間データ転送要求を送出したプロセスに対応する経路確保完了フラグ２００１のビットを１セットする。
【００６１】
ノード間転送制御装置２３０は、転送経路確保要求２０７を受信したことを保持するために、ＪＩＤ数に対応するビット幅の転送経路確保要求受信フラグ２００２を持つ。ノード間転送制御装置２３０は、転送経路確保要求２０７の受信により、転送経路確保要求受信フラグ２００２を１セットする。そして、データ転送制御装置２３０内のデータ転送部２３１に対するストローブ信号を受信してから１サイクル後の信号により、転送経路確保要求受信フラグ２００２を０リセットする。
【００６２】
ＣＰＵ５０は、ソフトウェアのノード間データ転送命令に従い、通常のデータ転送要求である転送経路確保要求２０７をノード間転送制御装置３０へ出力する。
【００６３】
ノード間接続装置２１０は、（各ノードのＪＩＤ数）×（送信先ノード数）に対応するビット幅（＝Ｊ×Ｍビット）の経路確保完了フラグ２００５を持つ。経路確保完了フラグ２００５は、ノード間接続の経路を確保する処理の結果を保持する。ノード間接続装置１０は、転送経路確保要求１０７を受信することにより、経路確保完了フラグ１００５の送信先ノードと送信元ＪＩＤに対応するビットに１をセットする。そして、送信元のノード間転送制御装置２３０に対して、転送経路確保完了通知２０３を送出する。
【００６４】
ノード間接続装置２１０が転送経路確保要求２０７を受信する以前の処理で送信先ノードに対応する複数のビットが１ビットでも１セットされていて、１セットされたビットがデータ送信元のＪＩＤに対応したビットでなければ、ノード間接続装置２１０は、経路確保完了フラグ２００５に１をセットすることなく、送信元のノード間転送制御装置２３０に対して、転送経路確保不成立通知２０４を送出する。
【００６５】
図５は、従来の並列計算機システムの動作の一例を示すタイムチャートである。ノード２２０−ｉ（１≦ｉ≦Ｍ、ｉは自然数）のメモリ２４０（送信側）から、ノード２２０−ｊ（１≦ｊ≦Ｍ、ｉ≠ｊ、ｊは自然数）のメモリ２４０（受信側）へデータを転送する場合の動作を示す。
【００６６】
ソフトウェアのノード間データ転送命令に従い、ＣＰＵ２５０（送信側）は、メモリ２４０（送信側）内に格納され転送されるユーザデータ２４０ａを、メモリ２４０（送信側）内の通信Ｂｕｆｆｅｒ２４０ｂにコピーする処理２００を実行する。この処理開始のタイミングは、ソフトウェア指示の特定の命令によって決定される。
【００６７】
ＣＰＵ２５０（送信側）は、ユーザデータ２４０ａを通信Ｂｕｆｆｅｒ２４０ｂにコピーする処理２００終了後、ノード間転送制御装置２３０（送信側）に対して転送経路確保要求２０７を送出する。転送経路確保要求２０７は、ソフトウェア指示の特定の命令に従って送出される。この時、ＣＰＵ２５０（送信側）が、転送するユーザデータ２４０ａを有するメモリ２４０（送信側）上の通信Ｂｕｆｆｅｒ（領域）２４０ｂのアドレスをノード間転送制御装置２３０（送信側）に通知する。
【００６８】
ノード間転送制御装置２３０（送信側）は、ＣＰＵ５０（送信側）から受信した転送経路確保要求２０７をノード間接続装置２１０に対して送出し、ノード間転送の経路を確保する処理を開始する。
【００６９】
ノード間接続装置２１０は、転送経路確保要求２０７を受信し、転送経路確保要求２０７に含まれる情報を参照することにより、データ送信先のノード番号とデータ送信元のＪＩＤを特定する。ただし、ＪＩＤは、データ転送命令毎に対応して存在する「各ノード内で実行される並列ジョブ毎にユニークなＩＤ（ＪＩＤ）」である。そして、ノード間接続装置２１０は、データ送信先のノード番号とデータ送信元のＪＩＤを特定後、データ送信先ノード番号に対応する経路確保完了フラグ２００５の全ビットが１であるか否かをチェックする。
【００７０】
ノード間接続装置２１０は、データ送信先ノード番号に対応する経路確保完了フラグ２００５の全ビットが０であるか、１であるビットがデータ送信元ＪＩＤに対応したビットであれば、データ送信元ＪＩＤとデータ送信先ノード番号とに対応する経路確保完了フラグ２００５のビットに１をセットする。そして、その後、転送経路確保完了通知２０３をノード間転送制御装置２３０（送信側）に対して送出する。ノード間転送制御装置２３０（送信側）は、転送経路確保完了通知２０３を受信した場合、経路確保完了フラグ２００１のＪＩＤに対応するビットに１をセットする。ＪＩＤは、転送経路確保完了通知１０３の有する情報に含まれる。これにより、ノード間転送の経路を確保する処理が完了する。
【００７１】
一方、ノード間接続装置２１０は、データ送信先ノード番号に対応する経路確保完了フラグ２００５の中に、１がセットされているフラグが１ビットでも存在し、１がセットされたビットがデータ送信元ＪＩＤに対応したビットでなければ、転送経路確保不成立通知２０４をノード間転送制御装置２３０（送信側）に対して送出する。ノード間転送制御装置２３０（送信側）は、転送経路確保不成立通知２０４を受信した場合、転送経路確保要求２０１をノード間接続装置２１０に再送し、ノード間転送の経路を確保する処理を再度実行する。
【００７２】
ノード間転送制御装置２３０（送信側）は、経路確保完了フラグ２００１のＪＩＤに対応するビットに１がセットされることにより、ノード間転送制御装置２３０（送信側）内のデータ転送部２３１にデータ転送指示を送出する。データ転送部２３１は、データ転送指示を受けることにより、メモリ２４０（送信側）の通信Ｂｕｆｆｅｒ２４０ｂ上にあるデータを送信先ノード２２０−ｊに対して送信する。ノード間転送制御装置２３０（送信側）は、転送経路確保要求２０１を受信したときに送信先ノード２２０−ｊを保持し、その保持した情報をＪＩＤを用いて参照することにより、送信先ノード２２０−ｊを判別する。
【００７３】
以上により、ノード２２０−ｉのメモリ２４０（送信側）からノード２２０−ｊのメモリ２４０（受信側）へのデータ転送が完了する。
【００７４】
本発明は、従来の並列計算機システムと比較して、以下に記載するような効果を奏する。
【００７５】
第１の効果は、転送経路確保要求１０１により、通信用Ｂｕｆｆｅｒ４０ｂへユーザデータ４０ａをコピーする処理（１００）の前に、ノード間データ転送の経路を確保する処理（１０１〜１０３）を実行することができる。そのため、ノード間データ転送の経路を確保する処理（１０１〜１０３）の時間と、通信用Ｂｕｆｆｅｒ４０ｂへユーザデータ４０ａをコピーする処理（１００）の時間とを重ねることが可能となる。従って、ノード間データ転送のｌａｔｅｎｃｙ時間を削減し、ｌａｔｅｎｃｙ性能（データ転送が開始されるまでの時間を評価する性能）を向上させることができる。
【００７６】
第２の効果は、転送経路確保要求１０１によりノード間転送制御装置３０、ノード間接続装置１０の転送経路を確保した後に、ＣＰＵ５０においてプロセススイッチが発生した（１０８）としても、確保した経路を転送経路開放要求１０５により解放することにより、プロセススイッチ後のノード間転送に影響を与えないようにすることができる。
【００７７】
第３の効果は、プロセススイッチが発生した（１０８）場合、プロセス復帰後にソフトウェアが復帰前の状態を判断することなく、転送経路確保要求１０７によるデータ転送を可能とすることができる。すなわち、ソフトウェアは、プロセススイッチ時に転送経路確保要求１０１を発行した状態であることを保存する（投機的データ転送要求済フラグ１００４をプロセススイッチ時のコンテキスト対象とする）必要がない。これは、ＪＩＤに対応させて、転送経路確保要求１０１が発行済みか否かを保存するからである。
【００７８】
他の実施の形態として、ノード間接続装置１０を介さず複数のノード間転送制御装置３０同士を接続する構成がある。この場合、データ送信先のノード間転送制御装置３０が、ノード間接続装置１０の上記機能を有することにより、前述の実施の形態と同じ機能を構成することが可能である。
【００７９】
更に他の実施の形態として、転送経路確保要求１０１と転送経路確保要求１０７との間におけるプロセススイッチを抑止する構成がある。それにより、転送経路確保要求１０１を発行した後にプロセススイッチが起こった場合に実行されないノード間データ転送のためにデータ転送の経路が確保され続けることを防ぐことができる。加えて、ｌａｔｅｎｃｙ性能を向上させることができる。
【図面の簡単な説明】
【００８０】
【図１】図１は、本発明の並列計算機システムの実施の形態の構成を示すブロック図である。
【図２】図２は、本発明の並列計算機システムの実施の形態の動作の一例を示すタイムチャートである。
【図３】図３は、本発明の並列計算機システムの実施の形態の動作の他の一例を示すタイムチャートである。
【図４】図４は、従来の並列計算機システムの構成の一例を示すブロック図である。
【図５】図５は、従来の並列計算機システムの動作の一例を示すタイムチャートである。
【図６】図６は、従来技術における転送データが通信Ｂｕｆｆｅｒにコピーされる状況の例を示す。
【図７】図７は、従来技術における転送データが通信Ｂｕｆｆｅｒにコピーされる状況の他の例を示す。
【符号の説明】
【００８１】
１、２００    並列計算機システム
１０、２１０    ノード間接続装置
２０、２０−１〜２０−Ｍ、２２０、２２０−１〜２２０−Ｍ    ノード
３０、２３０    ノード間転送制御装置
３１、２３１    データ転送部
４０、２４０    メモリ
４０ａ、２４０ａ    ユーザデータ
４０ｂ、２４０ｂ    通信Ｂｕｆｆｅｒ
５０、５０−１〜５０−Ｎ、２５０、２５０−１〜２５０−Ｎ    ＣＰＵ
１０１、２０１    転送経路確保要求
１０３、２０３    転送経路確保完了通知
１０４、２０４    転送経路確保不成立通知
１０６、２０６    データ転送
１０７、２０７    転送経路確保要求
１０８    プロセススイッチの指示信号
１００１、２００１    経路確保完了フラグ
１００２、２００２    転送経路確保要求受信フラグ
１００４    投機的データ転送要求済フラグ
１００５、２００５    経路確保完了フラグ
【図１】
2008158917.tif 000003
【図２】
2008158917.tif 000004
【図３】
2008158917.tif 000005
【図４】
2008158917.tif 000006
【図５】
2008158917.tif 000007
【図６】
2008158917.tif 000008
【図７】
2008158917.tif 000009