(57)【特許請求の範囲】
【請求項１】
複数のレーンを有する通信経路を介して接続される送信側情報処理装置と受信側情報処理装置とを有する情報処理システムであって、
前記送信側情報処理装置は、
前記送信側情報処理装置と前記受信側情報処理装置との間のデータ転送に先立って前記受信側情報処理装置に送信される、前記データ転送に係る転送情報であって、前記レーンの立上げに要する時間が、前記転送情報に係る往復遅延時間と前記転送情報の転送に要する転送時間との合計値未満になる、前記転送情報を検知する送信側検知部と、
前記送信側検知部が前記転送情報を検知すると、レーン数増加指示を前記受信側情報処理装置に通知する送信側通知部と、
前記送信側検知部が前記転送情報を検知すると、前記データ転送に使用する前記レーンの数を、前記転送情報の送信に使用する前記レーンの数よりも増加させる送信側制御部と、を有し、
前記受信側情報処理装置は、
前記送信側情報処理装置からの前記レーン数増加指示を検知する受信側検知部と、
前記受信側検知部が前記レーン数増加指示を検知すると、前記データ転送に使用する前記レーンの数を、前記転送情報の受信に使用する前記レーンの数よりも増加させる受信側制御部と、を有する、情報処理システム。
【請求項２】
前記送信側検知部は、前記転送情報として、前記データ転送によるデータ転送量よりもデータ量の少ない転送情報を検知する、請求項１記載の情報処理システム。
【請求項３】
前記送信側通知部は、前記レーン数増加指示を、前記転送情報に添付して前記受信側情報処理装置に通知する、請求項１または請求項２に記載の情報処理システム。
【請求項４】
前記転送情報の送信または受信に使用する前記レーンの数は、前記複数のレーンの一部の数であり、前記データ転送に使用する前記レーンの数は、前記複数のレーンの全ての数である、請求項１〜請求項３のいずれか一項に記載の情報処理システム。
【請求項５】
前記送信側通知部は、前記送信側情報処理装置が前記受信側情報処理装置への前記データ転送を完了すると、転送完了を前記受信側情報処理装置に通知し、
前記送信側制御部は、前記送信側情報処理装置が前記受信側情報処理装置への前記データ転送を完了すると、前記データ転送の完了後の通信に使用する前記レーンの数を、前記データ転送に使用する前記レーンの数よりも減少させ、
前記受信側制御部は、前記受信側検知部が前記送信側情報処理装置からの前記転送完了を検知すると、前記データ転送の完了後の通信に使用する前記レーンの数を、前記データ転送に使用する前記レーンの数よりも減少させる、請求項１〜請求項４のいずれか一項に記載の情報処理システム。
【請求項６】
前記受信側情報処理装置は、
前記受信側情報処理装置が前記送信側情報処理装置への前記データ転送を完了すると、転送完了を前記送信側情報処理装置に通知する受信側通知部をさらに有し、
前記受信側制御部は、前記受信側情報処理装置が前記送信側情報処理装置への前記データ転送を完了すると、前記データ転送の完了後の通信に使用する前記レーンの数を、前記データ転送に使用する前記レーンの数よりも減少させ、
前記送信側制御部は、前記送信側検知部が前記受信側情報処理装置からの前記転送完了
を検知すると、前記データ転送の完了後の通信に使用する前記レーンの数を、前記データ転送に使用する前記レーンの数よりも減少させる、請求項１〜請求項４のいずれか一項に記載の情報処理システム。
【請求項７】
前記データ転送に使用する前記レーンの数は、前記複数のレーンの全ての数であり、前記データ転送の完了後の通信に使用する前記レーンの数は、前記複数のレーンの一部の数である、請求項５または請求項６のいずれか一項に記載の情報処理システム。
【請求項８】
複数のレーンを有する通信経路を介して受信側情報処理装置と接続される送信側情報処理装置であって、
前記送信側情報処理装置と前記受信側情報処理装置との間のデータ転送に先立って前記受信側情報処理装置に送信される、前記データ転送に係る転送情報であって、前記レーンの立上げに要する時間が、前記転送情報に係る往復遅延時間と前記転送情報の転送に要する転送時間との合計値未満になる、前記転送情報を検知する送信側検知部と、
前記送信側検知部が前記転送情報を検知すると、レーン数増加指示を前記受信側情報処理装置に通知する送信側通知部と、
前記送信側検知部が前記転送情報を検知すると、前記データ転送に使用する前記レーンの数を、前記転送情報の送信に使用する前記レーンの数よりも増加させる送信側制御部と、を有する、情報処理装置。
【請求項９】
複数のレーンを有する通信経路を介して送信側情報処理装置と接続される受信側情報処理装置であって、
前記送信側情報処理装置と前記受信側情報処理装置との間のデータ転送に先立って前記受信側情報処理装置に送信される前記データ転送に係る転送情報の検知であって、前記レーンの立上げに要する時間が、前記転送情報に係る往復遅延時間と前記転送情報の転送に要する転送時間との合計値未満になる、前記転送情報の検知に伴い前記送信側情報処理装置から前記受信側情報処理装置に通知されるレーン数増加指示を検知する受信側検知部と、
前記受信側検知部が前記レーン数増加指示を検知すると、前記データ転送に使用する前記レーンの数を、前記転送情報の受信に使用する前記レーンの数よりも増加させる受信側制御部と、を有する、情報処理装置。
【請求項１０】
複数のレーンを有する通信経路を介して接続される送信側情報処理装置と受信側情報処理装置とを有する情報処理システムの制御方法であって、
前記送信側情報処理装置は、
前記送信側情報処理装置と前記受信側情報処理装置との間のデータ転送に先立って前記受信側情報処理装置に送信される、前記データ転送に係る転送情報であって、前記レーンの立上げに要する時間が、前記転送情報に係る往復遅延時間と前記転送情報の転送に要する転送時間との合計値未満になる、前記転送情報を検知すると、レーン数増加指示を前記受信側情報処理装置に通知し、
前記データ転送に使用する前記レーンの数を、前記転送情報の送信に使用する前記レーンの数よりも増加させ、
前記受信側情報処理装置は、
前記送信側情報処理装置からの前記レーン数増加指示を検知すると、前記データ転送に使用する前記レーンの数を、前記転送情報の受信に使用する前記レーンの数よりも増加させる、情報処理システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置、及び情報処理システムの制御方法に関する。
【背景技術】
【０００２】
大規模計算機のノード間の接続に高速シリアルリンクを使うことが知られている。高速シリアルリンクの物理層が消費する電力は、ＰＣＩ（Peripheral Components Interconnect）Expressや１０ＧｂＥ（Gigabit Ethernet(登録商標)）の場合、１Ｇｂｐｓ当たり２０ｍＷ程度といわれている。今後、リンク速度を向上すべく１リンク当たりのレーン数を増やすといった対策をする場合、高速シリアルリンクの物理層によって消費される電力が増加し無視できなくなる。
【０００３】
大規模計算機では、受信データを待って計算を実施する計算フェーズと、計算結果を他のノードに転送する通信フェーズとを交互に繰り返すプログラムを実行する場合がある。この場合、計算フェーズにおいて、高速シリアルリンクでは、対向するノード間でアイドルパターンを送受信することで一度確立したリンクが維持されるため、不要な電力が消費される。つまり、データ転送を伴わない場合においても、動作状態が維持され、電力が消費されている。このような不要な電力の消費を抑止するには、計算フェーズ中のシリアルリンクの動作を停止すればよいが、停止状態（オフ）から動作状態（オン）に復帰するには数マイクロ秒程度の立上げ時間（起動時間）が掛かる。このため、単純にリンクの動作を停止すると復帰に要する立上げ時間が通信遅延時間に加算され、計算効率が低下する。
【０００４】
なお、下記特許文献１や下記特許文献２では、単位時間当たりにリンクを通過するメッセージ数や量に応じて、使用するレーン数を動的に制御する技術が開示されている。しかし、レーンの電源をオフからオンにするには相当の時間が必要であり、単純にメッセージ数や量に応じてレーン数の動的制御を行なっても、十分な帯域を利用できるタイミングで通信できる保証はない。全レーンが立ち上がった時には、通信の大半が完了していたということもありうる。したがって、下記特許文献１や下記特許文献２でも、単純にリンクの動作を停止すると復帰に要する立上げ時間が通信遅延時間に加算され、計算効率が低下する。
【０００５】
下記特許文献３では、コネクション型の通信に応じてレーン数の変更を行なう技術が開示されている。コネクションレス型のＳＮＭＰ（Simple Network Management protocol）やＡＲＰ（Address Resolution Protocol）などの通信数や通信量がレーン数の変動に影響を与えないためである。アプリケーションが利用するデータサイズに応じて、レーン数が変動する。しかしながら、レーンの電源オンオフ時間（立上げ時間）について考慮されていない。したがって、下記特許文献３でも、単純にリンクの動作を停止すると復帰に要する立上げ時間が通信遅延時間に加算され、計算効率が低下する。
【０００６】
下記特許文献４では、ソフトウエア制御のもとでコマンドに反応して動的にリンク速度やリンク幅の上げ下げをネゴシエートする技術が開示されているが、レーンの電源オンオフ時間（立上げ時間）について考慮されていない。したがって、下記特許文献４でも、単純にリンクの動作を停止すると復帰に要する立上げ時間が通信遅延時間に加算され、計算効率が低下する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１１−１２３７９８号公報
【特許文献２】特開２０１１−１９９３６１号公報
【特許文献３】特開２０１０−２８３６９６号公報
【特許文献４】特表２００８−５４７３６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述したように、大規模計算機においては、計算効率の低下を招くことなく高速シリアルリンクで消費する電力を削減し、システム全体の消費電力を削減することが課題となっている。
【０００９】
一つの側面で、本発明は、計算効率の低下を招くことなく情報処理システム全体の消費電力を削減することを目的とする。
【課題を解決するための手段】
【００１０】
本件の情報処理システムは、複数のレーンを有する通信経路を介して接続される送信側情報処理装置と受信側情報処理装置とを有する。前記送信側情報処理装置は、送信側検知部，送信側通知部および送信側制御部を有し、前記受信側情報処理装置は、受信側検知部および受信側制御部を有する。前記送信側検知部は、前記送信側情報処理装置と前記受信側情報処理装置との間のデータ転送に先立って前記受信側情報処理装置に送信される、前記データ転送に係る転送情報であって、前記レーンの立上げに要する時間が、前記転送情報に係る往復遅延時間と前記転送情報の転送に要する転送時間との合計値未満になる、前記転送情報を検知する。前記送信側通知部は、前記送信側検知部が前記転送情報を検知すると、レーン数増加指示を前記受信側情報処理装置に通知する。前記送信側制御部は、前記送信側通知部が前記レーン数増加指示を前記受信側情報処理装置に通知すると、前記データ転送に使用する前記レーンの数を、前記転送情報の送信に使用する前記レーンの数よりも増加させる。前記受信側検知部は、前記送信側情報処理装置からの前記レーン数増加指示を検知する。前記受信側制御部は、前記受信側検知部が前記レーン数増加指示を検知すると、前記データ転送に使用する前記レーンの数を、前記転送情報の受信に使用する前記レーンの数よりも増加させる。
【発明の効果】
【００１１】
計算効率の低下を招くことなく情報処理システム全体の消費電力を削減することができる。
【図面の簡単な説明】
【００１２】
【図１】本実施形態が適用される情報処理システムにおける通信モデルとレーン立上げ時間とについて説明する図である。
【図２】本実施形態の情報処理システムの基本機能を説明するブロック図である。
【図３】本実施形態の情報処理システムにおける各ノード（情報処理装置）のハードウエア構成およびソフトウエア構成を示すブロック図である。
【図４】送信ノードと受信ノードとの間に一以上のノードが介装される情報処理システムの構成の一例（直接網）を示すブロック図である。
【図５】送信ノードと受信ノードとの間に一以上のノードが介装される情報処理システムの構成の他例（間接網）を示すブロック図である。
【図６】本実施形態の送信側情報処理装置（送信ノード）の動作を説明するフローチャートである。
【図７】本実施形態の受信側情報処理装置（受信ノード）の動作を説明するフローチャートである。
【図８】１対１通信プロトコルがrendezvous Send/Recvである場合の、本実施形態の情報処理システムの動作を説明する図である。
【図９】１対１通信プロトコルがＲＤＭＡ Putである場合の、本実施形態の情報処理システムの動作を説明する図である。
【図１０】１対１通信プロトコルがＲＤＭＡ Getである場合の、本実施形態の情報処理システムの動作を説明する図である。
【発明を実施するための形態】
【００１３】
以下に、図面を参照し、本願の開示する情報処理システム、情報処理装置、及び情報処理システムの制御方法の実施形態について、詳細に説明する。ただし、以下に示す実施形態は、あくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能を含むことができる。そして、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【００１４】
〔１〕概要
大規模計算機において複数レーンを有するリンクの、一部のレーンの電源をオフ状態（振幅を止めた状態）にすることで、消費電力が削減される。しかし、レーンの電源をオフ状態からオン状態にする立上げ（起動）には少なからず時間がかかるため、帯域を必要とするデータ転送の効率が落ちることがある。本実施形態では、rendezvous Send/RecvやＲＤＭＡ（Remote Direct Memory Access）といった通信パターンに着目し、図１を参照しながら後述するごとく、データ転送を開始する前に当該データ転送に必要な情報を取得する期間を利用してレーンの立上げを行なうことで、レーンの立上げ時間が隠蔽される。これにより、レーンの立上げ時間がデータ本体の通信遅延時間に加算されることが抑止され、十分な帯域を用いてデータ本体を転送することが可能になる。このため、計算効率の低下を招くことなく、情報処理システム全体の消費電力が削減される。
【００１５】
一般的な通信パターン（通信モデル）として、十分に大きなメッセージ（データ）を転送する前には、比較的軽量のメッセージをやり取りすることが多い。このような通信パターンに着目すると、単純にメッセージ数や量に基づいて電力制御を行なうよりも、効率的な電力制御を行なうことができる。
【００１６】
そこで、本実施形態では、比較的長いメッセージの転送の前に、軽量のメッセージの通信を行なう通信パターンが対象になる。このような通信パターンに該当する１対１通信プロトコルとしては、例えば、rendezvous Send/RecvやＲＤＭＡ PutやＲＤＭＡ Getが挙げられる。このような通信パターンの実行時に、通信に使用するレーン数を制御つまりは通信速度を制御して消費電力を削減する構成が、以下に開示される。特に、本実施形態では、例えばアプリケーションが通信パターンを検知し、通信パターンが上述したパターンである場合に、通信に使用するレーン数の変更指示を行なう機能が備えられる。
【００１７】
ここで、通信パターンとレーンの立上げ時間の隠蔽とについて、図１を参照しながら、より具体的に説明する。なお、図１は、本実施形態が適用される情報処理システムにおける通信モデル（通信パターン）とレーン立上げ時間とについて説明する図である。
【００１８】
本実施形態が適用される通信パターンでは、図１に示すように、比較的長いメッセージ（Data）の転送（矢印Ａ３参照）の前に、軽量のメッセージ（Request, Response）の通信（矢印Ａ１，Ａ２）が行なわれる。軽量のメッセージは、データ本体を転送するために必要な情報を、送信ノードと受信ノードとの間でやり取りするためのものである。軽量のメッセージの送受信は、一部のレーンの電源をオフにした状態、つまり一部のレーンの動作状態で実行される。このとき、データ量の少ないメッセージ（Request, Response）の送受信は一部レーン動作状態で問題なく実行される。しかし、データ量の多いデータ本体（Data）の転送時に、一部レーン動作状態のままでは、転送効率が低下してしまう。
【００１９】
データ本体転送前の軽量メッセージ（Request, Response）の送受信期間中に、電源オフ状態の一部レーンを立ち上げることができれば、軽量メッセージの送受信完了時には、全てのレーンが動作した状態でデータ転送を開始することができ、転送効率の低下を招くことがない。
【００２０】
本実施形態では、レーンの立上げに要する時間（立上げ時間）Ｔoが、レーンの仕様として、予め取得されているものとする。そして、図１に示すように、軽量メッセージの送信開始（Request；矢印Ａ１参照）と同時に一部レーンの立上げが指示されものとする。このとき、送信側（送信ノード）において、軽量メッセージの送信開始から、当該軽量メッセージに対する応答（Response；矢印Ａ２参照）を受信するまでに要する時間は、ＲＴＴ＋転送時間となる。ここで、ＲＴＴは、Round Trip Timeの略記であり、送信側（送信ノード）と受信側（受信ノード）との間の往復遅延時間である。また、転送時間は、上記軽量メッセージの転送時間、つまり、上記軽量メッセージのデータ量を通信速度で除算した値である。
【００２１】
したがって、図１に示すように、レーン立上げ時間Ｔoが、ＲＴＴと転送時間との合計値（ＲＴＴ＋転送時間）未満であれば、レーンの立上げ時間Ｔoが、上記軽量メッセージの送受信によって隠蔽されることになる。本実施形態では、通信パターンが軽量メッセージ後にデータ本体の転送を行なうものであり、且つ、レーン立上げ時間Ｔoが「ＲＴＴ＋転送時間」未満である場合に、全レーン立上げ指示（全レーン動作指示）が行なわれる。
【００２２】
〔２〕本実施形態の構成
次に、図２〜図５を参照しながら、本実施形態の情報処理システム１の機能や構成について説明する。まず、図２および図３を参照しながら、本実施形態の情報処理システム１の基本機能や、各ノード１０のハードウエア構成およびソフトウエア構成について説明する。
【００２３】
図２には、情報処理システム１の基本構成、つまり２つの情報処理装置１０を備えた情報処理システム１が示されている。２つの情報処理装置１０の一方は送信側であり他方は受信側である。送信側情報処理装置は符号１０Ａで示し、受信側情報処理装置は符号１０Ｂで示す。任意の情報処理装置を指す場合には符号１０が用いられる。各情報処理装置は、例えば、大規模計算機を構成するノード（サーバ，コンピュータ等）であり、ノード１０，計算ノード１０，送信ノード１０Ａ，受信ノード１０Ｂと表記する場合もある。
【００２４】
図２では、送信ノード１０Ａについては送信処理に必要な機能（符号１１Ａ〜１４Ａ参照）のみを図示し、受信ノード１０Ｂについては受信処理に必要な機能（符号１１Ｂ〜１４Ｂ）のみを図示している。しかし、各ノードは、送信処理に必要な機能と受信処理に必要な機能との両方を有していてもよい。
【００２５】
図２に示す情報処理システム１では、直接的に接続された送信ノード１０Ａおよび受信ノード１０Ｂの２つが図示されている。しかし、送信ノード１０Ａおよび受信ノード１０Ｂは、例えば図４や図５に示すごとく情報処理システム１を構成する３以上のノード１０のうちの２つであればよく、送信ノード１０Ａと受信ノード１０Ｂとの間に一以上のノード１０が介在していてもよい。
【００２６】
送信ノード１０Ａと受信ノード１０Ｂとは、複数のレーン２を有する通信経路としてのインタコネクト１４２（図３参照）を介して接続される。各レーン２は、送信用および受信用の一組の差動信号ペア（２本の信号線）を有するとともに、差動伝送を行なう。差動伝送は、２本の信号線によって一つの信号を伝送する方式であり、１本の信号線で信号を伝送するシングルエンド伝送に比べノイズに強く信号周波数を高くすることができる。送信ノード１０Ａと受信ノード１０Ｂとは、複数のレーン２を束ねた通信路である高速シリアルリンク（単にリンクという場合もある）３によって接続される。複数のレーン２を束ねることで、送信ノード１０Ａと受信ノード１０Ｂの間におけるデータ転送に必要な通信帯域が得られる。
【００２７】
各レーン２は、個別にオン／オフ状態を制御することができる。例えば、各レーン２の両端におけるハードウエア（図示略）の電源をオフすること、あるいは、各レーン２の両端における入出力ドライバ（図示略）の動作を停止することで、消費電力が低減される。各レーン２の端部におけるハードウエアは、当該ハードウエア直上のドライバ（図示略）によって、もしくは、リンク３経由で送られてきた指示を受けて制御される。特に、本実施形態では、後述するアプリケーション１１０，通信ライブラリ１２２１，ネットワークインタフェース１４２１（図３参照）等が、データ転送のモデル（通信パターン）に応じてリンク３（各レーン２のオン／オフ）を制御する。また、通信ライブラリ１２２１や管理ソフトウエア（図４や図５のＳＶＰ (Service Processor)１５０）は、対象リンク３のドライバ経由でハードウエアにアクセスし、リンク３（各レーン２のオン／オフ）を制御する。
【００２８】
各ノード１０において、各レーン２（リンク３）の端部は、ネットワークインタフェース１４２１（図２，図３参照）に接続される。ネットワークインタフェース１４２１は、各ノード１０のハードウエア１４０（図３参照）に含まれる。ネットワークインタフェース１４２１は、上位ソフトウエア（アプリケーション１１０；図３参照）からネットワーク（リンク３）へ情報を送信するための仕様を有する。また、ネットワークインタフェース１４２１は、ネットワーク（リンク３）から上位ソフトウエア（アプリケーション１１０）への情報を受信するための仕様を有する。ネットワークインタフェース１４２１は、当該ネットワークインタフェース１４２１に属するリンク３の各レーン２の動作状態（オン／オフ状態）を制御することができる。
【００２９】
ここで、図３に示すように、各ノード１０において、アプリケーション１１０，ミドルウエア１２０およびＯＳ（Operating System）１３０が、ハードウエア１４０上で動作する。ミドルウエア１２０には、運用管理機能１２１と、ＭＰＩ（Message Passing Interface）ライブラリ１２２１を含む言語システム１２２とが含まれる。ＯＳ１３０には、各種デバイス用のデバイスドライバ１３１が含まれる。ハードウエア１４０には、ＣＰＵ（Central Processing Unit）１４１，インタコネクト１４２および上述した高速シリアルリンク３が含まれる。インタコネクト１４２には、上述したネットワークインタフェース１４２１と、後述するネットワークルータ１４２２（図４参照）とが含まれる。
【００３０】
ここで、ＭＰＩライブラリ１２２１は、ＭＰＩを実装した通信ライブラリを指すことがある。ＭＰＩは、メモリ分散型の計算機において、複数のノード１０上のプロセス間で情報を送受信するための規格である。ＭＰＩでは、送受信の相手が明示的に指定される。また、ＭＰＩは、アプリケーション１１０からの呼び出しを通信指示子の形に変更し、キュー（図８〜図１０参照）に投入する。ＭＰＩは、データ転送の完了などをアプリケーション１１０に通知する設定になっている場合、ネットワークインタフェース１４２１からの通知または転送完了フラグを読み出すことで、データ転送の完了を検知しアプリケーション１１０に通知する。
【００３１】
上記キューは、後述するメモリ領域１４Ａ，１４Ｂ上に確保され、上位ソフトウエア（アプリケーション）１１０とネットワークインタフェース１４２１との間において上記通信指示子をやり取りするためのメモリ領域である。当該キューは、ＦＩＦＯ（First-In Fist-Out）である。当該キューには、送信キューと受信キューとが存在する。上位ソフトウエア１１０の送信側プロセス（図８〜図１０のプロセス＃０参照）とネットワークインタフェース１４２１との間の送信側メモリ領域１４Ａには、１個以上のキュー（図８〜図１０の送信キュー参照）が存在する。また、上位ソフトウエア１１０の受信側プロセス（図８〜図１０のプロセス＃１参照）とネットワークインタフェース１４２１との間の受信側メモリ領域１４Ｂには、１個以上のキュー（図８〜図１０の受信キュー参照）が存在する。送信キューと受信キューとは独立した存在である。
【００３２】
上記通信指示子は、上位ソフトウエア１１０からネットワークインタフェース１４２１への送信指示と、ネットワークインタフェース１４２１から上位ソフトウエア１１０への受信完了通知とのいずれかを指し示すものである。送信指示は、ネットワークインタフェース１４２１に割り当てられた送信キューに投入される。受信完了通知は、受け取った情報が正常であった時に、プロセスに割り当てられた受信キューに投入される。
【００３３】
ついで、図４を参照しながら、送信ノード１０Ａと受信ノード１０Ｂとの間に一以上のノード１０が介装される情報処理システム１の構成の一例（直接網）について説明する。図４に示す情報処理システム１の各計算ノード１０は、ＣＰＵ１４１，ネットワークインタフェース１４２１，ネットワークルータ１４２２およびＳＶＰ（スレーブ）１５０を有している。ＳＶＰ１５０は、管理ソフトウエアを実行することで、計算ノード１０内のＣＰＵ１４１，ネットワークインタフェース１４２１およびネットワークルータ１４２２を管理する。各計算ノード１０のＳＶＰ１５０は、運用・管理用ネットワーク５を介してＳＶＰ（マスタ）２０に接続され、当該ＳＶＰ２０によって統括管理される。そして、図４に示す情報処理システム１では、隣接する計算ノード１０のルータ１４２２間を、高速シリアルリンク３を介して接続することで、隣接する計算ノード１０が直接的に接続される（直接網）。このように直接的に接続される複数の計算ノード１０のうち端部の計算ノード１０は、高速シリアルリンク３を介して計算用ネットワーク４に接続される。なお、図４では各計算ノード１０にＳＶＰ１５０を備えているが、２以上の計算ノード１０に対して一つのＳＶＰ１５０を備えてもよい。
【００３４】
また、図５を参照しながら、送信ノード１０Ａと受信ノード１０Ｂとの間に一以上のノード１０が介装される情報処理システム１の構成の他例（間接網）について説明する。図５に示す情報処理システム１において、各計算ノード１０は、図４に示す情報処理システム１と同様のＣＰＵ１４１，ネットワークインタフェース１４２１およびＳＶＰ１５０を有している。ただし、図５に示す情報処理システム１では、各計算ノード１０のネットワークインタフェース１４２１を、高速シリアルリンク３を介してＳＷ（スイッチ）ネットワーク３０に接続することで、複数の計算ノード１０が間接的に接続される（間接網）。なお、図５では各計算ノード１０にＳＶＰ１５０を備えているが、２以上の計算ノード１０に対して一つのＳＶＰ１５０を備えてもよい。
【００３５】
さて、次に、図２を参照しながら、本実施形態の情報処理システム１における、送信ノード１０Ａにおける送信処理のための機能と、受信ノード１０Ｂにおける受信処理のための機能とについて説明する。
【００３６】
送信ノード１０Ａには、送信側検知部１１Ａ，送信側通知部１２Ａ，送信側制御部１３Ａとしての機能が備えられる。送信側検知部１１Ａ，送信側通知部１２Ａ，送信側制御部１３Ａとしての機能は、図４や図５に示すＣＰＵ１４１，ＳＶＰ１５０，ネットワークインタフェース１４２１等において所定のプログラムを実行することで実現されてもよい。また、送信ノード１０ＡにおけるＨＤＤ（Hard Disk Drive），ＳＳＤ（Solid State Drive），ＲＡＭ（Random Access Memory）等のメモリ上には、送信側メモリ領域１４Ａが確保されている。
【００３７】
同様に、受信ノード１０Ｂには、受信側検知部１１Ｂ，受信側通知部１２Ｂ，受信側制御部１３Ｂとしての機能が備えられる。受信側検知部１１Ｂ，受信側通知部１２Ｂ，受信側制御部１３Ｂとしての機能は、図４や図５に示すＣＰＵ１４１，ＳＶＰ１５０，ネットワークインタフェース１４２１等において所定のプログラムを実行することで実現されてもよい。また、受信ノード１０ＢにおけるＨＤＤ，ＳＳＤ，等のメモリ上には、受信側メモリ領域１４Ｂが確保されている。
【００３８】
なお、前記所定のプログラムは、例えば、フレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷなど），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋Ｒ，ＤＶＤ＋ＲＷなど），ブルーレイディスク等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、各ノード１０は、当該記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置としての記憶部や上記メモリに転送し格納して用いる。
【００３９】
送信ノード１０Ａにおける送信側検知部１１Ａ，送信側通知部１２Ａ，送信側制御部１３Ａとしての機能は、以下の通りである。
【００４０】
送信側検知部１１Ａは、送信ノード１０Ａと受信ノード１０Ｂとの間のデータ転送に先立って受信ノード１０Ｂに送信される、当該データ転送に係る転送情報を検知する。つまり、送信側検知部１１Ａは、送信ノード１０Ａが送信を開始する際に、通信パターンが、比較的長いデータ転送の前に軽量のメッセージ（転送情報）の通信を行なうものであるか否かを判断する。このとき、送信側検知部１１Ａは、１対１通信プロトコルとして、例えば、rendezvous Send/Recv，ＲＤＭＡ Put，ＲＤＭＡ Getのうちのいずれか一つが用いられるているか否かを判断することで、軽量メッセージを検知してもよい。
【００４１】
また、送信側検知部１１Ａは、レーン２の立上げを軽量メッセージの通信によって隠蔽可能であるか否かの判断も行なう。つまり、図１を参照しながら前述したように、送信側検知部１１Ａは、当該軽量メッセージの転送時間を算出し、既知のレーン２の立上げ時間Ｔoが、既知のＲＴＴと算出された転送時間との合計値よりも小さいか否かを判断する。
【００４２】
さらに、送信側検知部１１Ａは、軽量メッセージに対する受信ノード１０Ｂからの応答や、受信ノード１０Ｂからの転送完了（転送完了フラグ）を検知する機能も有している。当該転送完了は、後述するごとく、通信プロトコルが例えばrendezvous Send/RecvやＲＤＭＡ Putである場合に受信ノード１０Ｂへのデータ転送を完了すると、受信側通知部１２Ｂから通知される。
【００４３】
送信側通知部１２Ａは、送信側検知部１１Ａが上記軽量メッセージの送信（つまり所定の通信パターン）を検知すると、レーン数増加指示を受信ノード１０Ｂに通知する。レーン数増加指示は、データ転送に使用するレーン２の数を、軽量メッセージの送信に使用するレーン２の数よりも増加させることを指示するものである。アプリケーション１１０がＭＰＩを使って１対１通信を行なう際、転送すべきデータのサイズが大きい場合、データ転送経路におけるリンク３は全レーン２が有効になっていることが望ましい。そこで、本実施形態では、軽量メッセージの送信時には、一部のレーン２の動作を停止（電源オフ）することで一部のレーン２を有効な状態（電源オン）とする一方、データ転送時には、全レーン２を動作状態（電源オン）とする。このため、以下では、レーン数増加指示を全レーン動作指示という。
【００４４】
また、送信側通知部１２Ａは、全レーン動作指示を、前記軽量メッセージに添付して受信ノード１０Ｂに通知する機能を有している。なお、例えば、アプリケーション１１０が全レーン動作指示を付加したメッセージを発行するために、ＭＰＩによる通信指示子に、当該全レーン動作指示を指定するフィールドが追加される。当該フィールドには、全レーン動作を指示する以下の項目を追加する。例えば、当該フィールドには、全レーン動作を指示する場合に“１”が設定される一方、全レーン動作を指示しない場合つまり一部レーン動作停止を指示する場合に“０”が設定される。ＭＰＩは、上述のような通信指示子を送信側メモリ領域１４Ａのキューに投入する。送信側通知部１２Ａは、上記フィールドに“１”が設定されている場合、全レーン動作指示を、軽量メッセージに添付して受信ノード１０Ｂに通知する。
【００４５】
さらに、送信側通知部１２Ａは、送信ノード１０Ａが受信ノード１０Ｂへのデータ転送を完了すると（通信プロトコルが例えばrendezvous Send/RecvやＲＤＭＡ Putである場合）、転送完了（転送完了フラグ）を受信ノード１０Ｂに通知する機能も有している。このとき、送信側通知部１２Ａは、受信ノード１０Ｂに対する一部レーン動作停止指示（後述）とともに転送完了フラグを通知することが望ましい。
【００４６】
送信側制御部１３Ａは、送信側検知部１１Ａが上記メッセージの送信（つまり所定の通信パターン）を検知すると、送信ノード１０Ａにおいて、全レーン動作指示（レーン数増加指示，全レーン立上げ指示）を行なって、データ転送に使用するレーン２の数を、軽量メッセージの送信に使用するレーン２の数よりも増加させる。これにより、本実施形態では、前述したように、リンク３の動作状態は、一部のレーン２の動作を停止させた一部レーン動作停止の状態から、全レーン２を動作させた状態（立ち上げた状態）つまりレーン幅を広げた状態に切り換えられる。
【００４７】
また、送信側制御部１３Ａは、送信ノード１０Ａが受信ノード１０Ｂへのデータ転送を完了した場合、もしくは、送信側検知部１１Ａが受信ノード１０Ｂからの転送完了フラグを検知した場合、送信ノード１０Ａにおいて、レーン数減少指示を行なう。レーン数減少指示は、データ転送の完了後の通信に使用するレーン２の数を、データ転送に使用するレーン２の数よりも減少させることを指示するものである。本実施形態では、データ転送時には全レーン２を動作状態（電源オン）にする一方で、データ転送時以外（例えば軽量メッセージの送信時等）においては、一部のレーン２を用いるべく、当該一部のレーン２以外の残りのレーンについては動作を停止させる。このため、以下では、レーン数減少指示を一部レーン動作停止指示という。送信側制御部１３Ａが一部レーン動作停止指示を行なうことで、リンク３の動作状態は、全レーン２を動作させた状態から、一部のレーン２の動作を停止させた一部レーン動作停止の状態に切り換えられる。
【００４８】
なお、送信側メモリ領域１４Ａは、図８に示すSend側メモリ領域や、図９，図１０に示すCaller側メモリ領域として用いられる。送信側メモリ領域１４Ａには、図８〜図１０に示すように、必要に応じて、例えば、送信バッファ（Send Buffer），コーラーウインドウ（Caller Window），送信キュー，転送完了フラグのための領域が確保される。
【００４９】
一方、受信ノード１０Ｂにおける受信側検知部１１Ｂ，受信側通知部１２Ｂ，受信側制御部１３Ｂとしての機能は、以下の通りである。
【００５０】
受信側検知部１１Ｂは、メッセージに添付された指示を参照することで送信ノード１０Ａからの全レーン動作指示付きメッセージを検知するほか、送信ノード１０Ａからの転送完了フラグを検知する。
【００５１】
受信側通知部１２Ｂは、受信ノード１０Ｂが送信ノード１０Ａへのデータ転送を完了すると（通信プロトコルが例えばＲＤＡＭ Getである場合）、転送完了（転送完了フラグ）を送信ノード１０Ａに通知する。このとき、受信側通知部１２Ｂは、送信ノード１０Ａに対する一部レーン動作停止指示とともに転送完了フラグを通知することが望ましい。
【００５２】
受信側制御部１３Ｂは、受信側検知部１１Ｂが全レーン動作指示を検知すると、受信ノード１０Ｂにおいて、全レーン動作指示（レーン数増加指示，全レーン立上げ指示）を行なって、データ転送に使用するレーン２の数を、軽量メッセージの受信に使用するレーン２の数よりも増加させる。これにより、本実施形態では、前述したように、リンク３の動作状態は、一部のレーン２の動作を停止させた一部レーン動作停止の状態から、全レーン２を動作させた状態（立ち上げた状態）に切り換えられる。
【００５３】
また、受信側制御部１３Ｂは、受信ノード１０Ｂが送信ノード１０Ａへのデータ転送を完了した場合、もしくは、受信側検知部１１Ｂが送信ノード１０Ａからの転送完了フラグを検知した場合、受信ノード１０Ｂにおいて、一部レーン動作停止指示を行なう。これにより、受信ノード１０Ｂにおいて、リンク３の動作状態は、全レーン２を動作させた状態から、一部のレーン２の動作を停止させた一部レーン動作停止の状態に切り換えられ、データ転送の完了後の通信に使用するレーン２の数が、前記データ転送に使用するレーン２の数よりも減少する。
【００５４】
なお、受信側メモリ領域１４Ｂは、図８に示すRecv側メモリ領域や、図９，図１０に示すTarget側メモリ領域として用いられる。受信側メモリ領域１４Ｂには、図８〜図１０に示すように、必要に応じて、例えば、受信バッファ（Recv Buffer），ターゲットウインドウ（Target Window），受信キュー，転送完了フラグのための領域が確保される。
【００５５】
以下では、本実施形態の各ノード１０において、上述した各種機能（送信側検知部１１Ａ，送信側通知部１２Ａ，送信側制御部１３Ａ，受信側検知部１１Ｂ，受信側通知部１２Ｂ，受信側制御部１３Ｂとしての機能）を実現するための構成に関連する技術について説明する。
【００５６】
レーン２の動作状態を制御する構造について：  ハードウエア自体や、当該ハードウエアを内蔵する装置のファームウエアや、当該装置を制御するデバイスドライバが、各レーン２の電源制御を行なうか、各レーン２の入出力ドライバの動作制御を行なう。ファームウエアまたはデバイスドライバは、ＭＰＩライブラリ１２２１などの上位ソフトウエアによって制御される。単一もしくは複数の上位ソフトウエアに対し、アプリケーション１１０はレーン動作の指示を出力する。
【００５７】
送信ノード１０Ａと受信ノード１０Ｂとの間に一以上のノード１０が介装される情報処理システム１（図４，図５参照）について：  データが、一以上のノード１０を経由して転送される状況で、データ転送経路上のレーン２について動作状態（オン／オフ）を変更する時には、レーン２の動作指示を付加されたメッセージが送信される。上位ソフトウエアやＳＶＰ１５０がレーン２を含む装置（ノード１０）を制御する場合、データが経由するノード１０において、レーン制御の指示を付加されたメッセージを受けると、ファームウエアまたはデバイスドライバ１３１にレーン動作を変更する指示が出力される。または、上位ソフトウエアやＳＶＰ１５０がノード１０を制御していない場合、つまり受信した内容をハードウエア１４０（ルータ１４２２）がそのまま転送する場合、ルータ１４２２が、レーン制御の指示を付加されたメッセージを受けると、ファームウエアやハードウエア１４０が、そのレーン２の動作状態を変更する。
【００５８】
ネットワークインタフェース１４２１について：  ネットワークインタフェース１４２１は、上位ソフトウエアから送信依頼を受けメッセージやメモリ領域１４Ａ，１４Ｂのデータをネットワークに送り出す機能を有する。ここで、ネットワークは、特定のものに限定されず、例えば、Ethernet (登録商標)，InfiniBand，Myrinetであってもよい。ネットワークインタフェース１４２１は、送信キューから順番に通信指示子を取り出す。取り出された通信指示子の全レーン動作指示フィールドに“１”が設定され且つ通信プロトコルがRendezvous Send/RecvまたはＲＤＭＡ PutまたはＲＤＭＡ Getの場合、ネットワークインタフェース１４２１が、全レーン動作指示を添付した「問合せ」メッセージ（Query）を発行する。なお、全レーン動作指示を伴うデータ転送後に送信完了フラグまたは転送完了フラグを送信する際、ネットワークインタフェース１４２１は、当該フラグに一部レーン動作停止指示を添付してもよい。当該一部レーン動作停止指示を添付して送信する処理は、Rendezvous Send/RecvのSend側（図８参照）やＲＤＭＡ PutのCaller側（図９参照）やＲＤＭＡ GetのTarget側（図１０参照）で実行される。
【００５９】
送信側（送信ノード１０Ａ）および受信側（受信ノード１０Ｂ）の両方に共通の構成について：  リンク３が配置されている上位のハードウエアもしくはソフトウエアは、制御信号線（図示略）などを介して、リンク３の各レーン２を個別に制御可能にしている。上位のハードウエアもしくはソフトウエアは、ネットワークインタフェース１４２１の一部として存在する。
【００６０】
送信側（Send側あるいはCaller側；図８〜図１０参照）の構成について：  送信ノード１０Ａにおいて、ＭＰＩを含む上位ソフトウエアからのメッセージ送信依頼（通信指示子）を受け、当該通信指示子の全レーン動作指示フィールドに“１”が設定されている場合、全レーン動作指示を添付したメッセージが送信される。その後、当該メッセージを送出したリンク３の全レーン２が動作状態に切り換えられる。
【００６１】
受信側（Recv側あるいはTarget側；図８〜図１０参照）の構成について：  受信ノード１０Ｂにおいて、受信したメッセージが、全レーン動作指示を添付され、且つ、Rendezvous Send/Recv，ＲＤＭＡ Put，ＲＤＭＡ Getのいずれかによる「問合せ」メッセージである場合、全レーン動作指示が、メッセージを受信したリンク３に適用される。「問合せ」メッセージを受信した受信ノード１０Ｂは、従来通り、送信ノード１０Ａに対し応答（Response）を返す。
【００６２】
ネットワークルータ１４２２もしくはスイッチについて：  メッセージが経由するノード１０において、ネットワークルータ１４２２もしくはスイッチは、あるリンク３から受信したメッセージ、またはデータの一部を、転送先への別のリンク３へ送信する。ここでは、メッセージを受けたリンクを受信リンクと呼び、メッセージの転送に使ったリンクを送信リンクと呼ぶ。受信リンク３から送信リンク３へのメッセージの滞留中に、ネットワークインタフェース１４２１は、そのメッセージに付加されたレーン動作の制御指示を読み取ることができる。読み取った指示が全レーン動作指示であれば、受信リンク３と送信リンク３とにおける全レーン２について電源あるいは入出力ドライバがオン状態に切り換えられる。また、読み取った指示が一部レーン動作停止指示であれば、受信リンク３と送信リンク３とにおける一部のレーン２の電源あるいは入出力ドライバがオフに切り換えられる。
【００６３】
上述したように、本実施形態では、ネットワーク上の対象リンク３の動作状態を制御する指示が、ＭＰＩを用いて送信される。ＭＰＩを利用するプログラムは、ＭＰＩの送信キュー（図８〜図１０参照）に通信指示子を投入する。当該通信指示子には、レーンの動作状態を動的に変更する指示（フィールド）が含まれる。また、本実施形態では、ＭＰＩのrendezvous Send/RecvやＲＤＭＡ Putの通信プロトコルで、最初の調停用パケットに通信指示の情報が埋め込まれる。そして、後続するデータ通信のため、経路上の全リンク３に対しレーン動作を切り替える通信指示がメッセージに埋め込まれる。
【００６４】
〔３〕本実施形態の動作
次に、図６および図７を参照しながら、本実施形態に係る情報処理システム１を構成する送信ノード１０Ａおよび受信ノード１０Ｂの動作について説明する。
【００６５】
まず、図６に示すフローチャート（ステップＳ１０１〜Ｓ１１２）に従って、本実施形態の送信ノード１０Ａの動作（送信側処理）について説明する。
【００６６】
送信ノード１０Ａが通信を開始すると、まず、送信側検知部１１Ａは、今回の通信が所定の１対１通信プロトコルに基づくものであるか否か（通信モデルがＯＫであるか否か）を判断する（ステップＳ１０１）。ここでは、上述したように、１対１通信プロトコルとして、rendezvous Send/Recv，ＲＤＭＡ Put，ＲＤＭＡ Getのうちのいずれか一つが用いられているかを判断することで、通信モデルがＯＫであるか否かが判断される。
【００６７】
上記３種類のプロトコルのいずれも用いられていない場合、通信モデルはＮＧであると判断され（ステップＳ１０１のＮＯルート）、通常の送信処理が実行される（ステップＳ１１２）。一方、上記３種類のプロトコルのうちのいずれか一つが用いられている場合、通信モデルはＯＫであると判断される（ステップＳ１０１のＹＥＳルート）。つまり、送信ノード１０Ａと受信ノード１０Ｂとの間のデータ転送に先立って受信ノード１０Ｂに送信される軽量の「問合せ」メッセージの送信が行なわれるものと判断される。
【００６８】
そして、送信側検知部１１Ａは、レーン２の立上げを「問合せ」メッセージの通信によって隠蔽可能であるか否か（データサイズがＯＫであるか否か）を判断する（ステップＳ１０２）。このとき、送信側検知部１１Ａは、当該「問合せ」メッセージの転送時間を算出し、既知のレーン２の立上げ時間Ｔoが、既知のＲＴＴと算出された転送時間との合計値よりも小さいか否かを判断する。
【００６９】
立上げ時間Ｔoが上記合計値以上である場合、データサイズはＮＧつまりレーン２の立上げを「問合せ」メッセージの通信によって隠蔽できないと判断され（ステップＳ１０２のＮＯルート）、通常の送信処理が実行される（ステップＳ１１２）。一方、立上げ時間Ｔoが上記合計値未満である場合、データサイズはＯＫつまりレーン２の立上げを「問合せ」メッセージの通信によって隠蔽可能であると判断される（ステップＳ１０２のＹＥＳルート）。そして、送信側通知部１２Ａは、全レーン動作指示を、「問合せ」メッセージに添付して受信ノード１０Ｂに送信する（ステップＳ１０３）。また、送信側制御部１３Ａは、送信ノード１０Ａにおいて、全レーン動作指示を行なって（ステップＳ１０４）、リンク３の動作状態を、一部レーン動作停止の状態から、全レーン２を動作させた状態に切り換える。
【００７０】
そして、通信プロトコルがrendezvous Send/RecvまたはＲＤＭＡ Putの場合、つまり当該送信ノード１０Ａが受信ノード１０Ｂへのデータ転送を行なう場合（ステップＳ１０５のＹＥＳルート）、送信ノード１０Ａは、ステップＳ１０６の処理へ移行する。送信ノード１０Ａは、受信ノード１０Ｂからの応答を待機する（ステップＳ１０６のＮＯルートからステップＳ１０６）。送信側検知部１１Ａが受信ノード１０Ｂからの応答を検知すると（ステップＳ１０６のＹＥＳルート）、送信ノード１０Ａは、受信ノード１０Ｂからの応答内容に従って、受信ノード１０Ｂへのデータ転送を行なう（ステップＳ１０７）。このとき、受信ノード１０Ｂからの応答を受信する前に、全レーン２の立上げは完了しているので、送信ノード１０Ａは、効率を損なうことなくデータ転送を行なうことができる。
【００７１】
送信ノード１０Ａは、データ転送を開始すると、当該データ転送を完了するまで待機する（ステップＳ１０８のＮＯルートからステップＳ１０７）。当該データ転送を完了すると（ステップＳ１０８のＹＥＳルート）、送信側通知部１２Ａは、転送完了（転送完了フラグ）を受信ノード１０Ｂに通知する（ステップＳ１０９）。このとき、送信側通知部１２Ａは、受信ノード１０Ｂに対する一部レーン動作停止指示を送信し、当該一部レーン動作停止指示に転送完了フラグを添付して送信してもよい。本実施形態では、送信側通知部１２Ａは、一部レーン動作停止指示を送信せず、転送完了フラグのみを送信し、当該転送完了フラグに、一部レーン動作停止指示としての機能も兼させている。
【００７２】
また、送信側制御部１３Ａは、送信ノード１０Ａにおいて、一部レーン動作停止指示を行なって（ステップＳ１０９）、リンク３の動作状態を、全レーン２を動作させた状態から、一部のレーン２の動作を停止させた一部レーン動作停止の状態に切り換える。この後、送信ノード１０Ａは、今回の送信側処理を終了する。
【００７３】
一方、通信プロトコルがＲＤＭＡ Getの場合、つまり受信ノード１０Ｂからのデータ受信を行なう場合（ステップＳ１０５のＮＯルート）、送信ノード１０Ａは、ステップＳ１１０の処理へ移行する。送信ノード１０Ａは、受信ノード１０Ｂから送信ノード１０Ａへのデータ転送を完了したことを示す転送完了フラグを受信するまで待機する（ステップＳ１１０のＮＯルートからステップＳ１１０）。
【００７４】
送信側検知部１１Ａが受信ノード１０Ｂからの転送完了フラグを検知すると（ステップＳ１１０のＹＥＳルート）、送信側制御部１３Ａは、送信ノード１０Ａにおいて、一部レーン動作停止指示を行なって（ステップＳ１１１）、リンク３の動作状態を、全レーン２を動作させた状態から、一部のレーン２の動作を停止させた一部レーン動作停止の状態に切り換える。この後、送信ノード１０Ａは今回の送信側処理を終了する。
【００７５】
ついで、図７に示すフローチャート（ステップＳ２０１〜Ｓ２０９）に従って、本実施形態の受信ノード１０Ｂの動作（受信側処理）について説明する。
【００７６】
受信ノード１０Ｂが通信を開始すると、まず、受信側検知部１１Ｂは、受信メッセージに添付された指示を参照することで、送信ノード１０Ａからの全レーン動作指示付きメッセージを受信したか否かを判断する（ステップＳ２０１）。受信メッセージに全レーン動作指示が添付されていない場合（ステップＳ２０１のＮＯルート）、受信ノード１０Ｂは、通常の送信処理が実行される（ステップＳ２０９）。
【００７７】
受信メッセージに全レーン動作指示が添付されている場合（ステップＳ２０１のＹＥＳルート）、受信側制御部１３Ｂは、受信ノード１０Ｂにおいて、全レーン動作指示を行なう（ステップＳ２０２）。これにより、リンク３の動作状態は、一部レーン動作停止の状態から、全レーン２を動作させた状態に切り換えられる。
【００７８】
そして、通信プロトコルがrendezvous Send/RecvまたはＲＤＭＡ Putの場合、つまり送信ノード１０Ａが受信ノード１０Ｂへのデータ転送を行なう場合（ステップＳ２０３のＮＯルート）、受信ノード１０Ｂは、ステップＳ２０４の処理へ移行する。受信ノード１０Ｂは、送信ノード１０Ａから受信ノード１０Ｂへのデータ転送を完了したことを示す転送完了フラグを受信するまで待機する（ステップＳ２０４のＮＯルートからステップＳ２０４）。
【００７９】
受信側検知部１１Ｂが送信ノード１０Ａからの転送完了フラグを検知すると（ステップＳ２０４のＹＥＳルート）、受信側制御部１３Ｂは、受信ノード１０Ｂにおいて、一部レーン動作停止指示を行なう（ステップＳ２０５）。これにより、リンク３の動作状態は、全レーン２を動作させた状態から、一部のレーン２の動作を停止させた一部レーン動作停止の状態に切り換えられる。この後、受信ノード１０Ｂは今回の受信側処理を終了する。
【００８０】
一方、通信プロトコルがＲＤＭＡ Getの場合、つまり受信ノード１０Ｂから送信ノード１０Ａへのデータ転送を行なう場合（ステップＳ２０３のＹＥＳルート）、受信ノード１０Ｂは、ステップＳ２０６の処理へ移行する。ステップＳ２０６において、受信ノード１０Ｂは、送信ノード１０Ａから取得した情報（図１０の矢印Ａ３３参照）に従って、送信ノード１０Ａへのデータ転送を行なう。
【００８１】
受信ノード１０Ｂは、データ転送を開始すると、当該データ転送を完了するまで待機する（ステップＳ２０７のＮＯルートからステップＳ２０６）。当該データ転送を完了すると（ステップＳ２０７のＹＥＳルート）、受信側通知部１２Ｂは、転送完了（転送完了フラグ）を送信ノード１０Ａに通知する（ステップＳ２０８）。このとき、受信側通知部１２Ｂは、送信ノード１０Ａに対する一部レーン動作停止指示を送信し、当該一部レーン動作停止指示に転送完了フラグを添付して送信してもよい。本実施形態では、受信側通知部１２Ｂは、一部レーン動作停止指示を送信せず、転送完了フラグのみを送信し、当該転送完了フラグに、一部レーン動作停止指示としての機能も兼させている。
【００８２】
また、受信側制御部１３Ｂは、受信ノード１０Ｂにおいて、一部レーン動作停止指示を行なって（ステップＳ２０８）、リンク３の動作状態を、全レーン２を動作させた状態から、一部のレーン２の動作を停止させた一部レーン動作停止の状態に切り換える。この後、受信ノード１０Ｂは今回の受信側処理を終了する。
【００８３】
〔４〕本実施形態のより具体的な動作
次に、図８〜図１０を参照しながら、本実施形態の情報処理システム１のより具体的な動作について説明する。前述したように、アプリケーション１１０がＭＰＩを用いて１対１通信を行なう際に、転送すべきデータのサイズが大きければ、転送経路のリンク３は全レーン２が有効になっていることが望ましい。アプリケーション１１０は、データ転送量に応じて、リンク３の動作状態を変更する指示を発行することができる。当該指示は、例えば、ＭＰＩにおける送信キューへの通信指示子の一部（フィールド）を用いて発行される。データ転送量が多い通信の大部分を、全レーン２が有効な状態で送受信させるためには、１対１通信プロトコルのうち、Rendezvous Send/Recv，ＲＤＮＡ Put，ＲＤＭＡ Getが適している。前述のようにレーン２の電源オン（立上げ）には時間を要するが、上記３種類の１対１通信プロトコルであれば、データ転送開始前に全レーン２を立ち上げた状態にすることが可能である。以下では、当該３種類の１対１通信プロトコルRendezvous Send/Recv，ＲＤＮＡ Put，ＲＤＭＡ Getのそれぞれについて、本実施形態の情報処理システム１の具体的な動作を説明する。
【００８４】
〔４−１〕rendezvous Send/Recv
まず、図８を参照しながら、１対１通信プロトコルがrendezvous Send/Recvである場合の、本実施形態の情報処理システム１の動作について説明する。なお、図８において、送信バッファ１０ＡのＣＰＵ１４１が、Send側メモリ領域１４Ａを用いて、送信側のプロセス＃０を実行する。また、受信バッファ１０ＢのＣＰＵ１４１が、Recv側メモリ領域１４Ｂを用いて、受信側のプロセス＃１を実行する。
【００８５】
Rendezvous Send/Recvにおいて、Send側（送信側）のプロセス＃０は、送信用関数ＭＰＩ_Sendを呼び出す（ステップＳ１１参照）。そして、プロセス＃０は、データ本体の転送開始前にSend側からRecv側（受信側）へ「転送先バッファ問合せ（Query）」を送信する（ステップＳ１２，矢印Ａ１１参照）。このとき、プロセス＃０は、「転送先バッファ問合せ」メッセージに、Recv側全レーン動作指示を添付する（ステップＳ１２参照）。また、プロセス＃０は、Send側全レーン動作指示を発行する（ステップＳ１３参照）。これにより、Send側の全レーン２の動作状態は、一部レーン動作状態から、レーン立上げ時間Ｔo（図１参照）に亘るレーン立上げ状態を経て、全レーン動作状態に切り換えられる。
【００８６】
一方、Recv側（受信側）のプロセス＃１は、受信用関数ＭＰＩ_Recvを呼び出す（ステップＳ２１参照）。そして、プロセス＃１は、Recv側全レーン動作指示を添付された「転送先バッファ問合せ」を受信すると、当該問合せに応じた「転送先バッファの通知（Response）」メッセージを返信する（ステップＳ２２，矢印Ａ１２参照）。なお、「転送先バッファの通知」には、Send側からの転送データを書き込むべきRecv側メモリ領域１４Ｂにおける受信バッファ（Recv Buffer）のアドレス情報が含まれる。また、プロセス＃１は、Recv側全レーン動作指示を発行する（ステップＳ２３参照）。これにより、Recv側の全レーン２の動作状態は、一部レーン動作状態からレーン立上げ状態を経て全レーン動作状態に切り換えられる。
【００８７】
Send側では、「転送先バッファの通知」がRecv側から戻ってきてから、データ転送が開始される（ステップＳ１４参照）。このとき、Send側において全レーン２の立上げを完了させて全レーン動作状態に切り換えるのに十分な時間がある。また、Recv側もデータを受信するまでには、Recv側全レーン動作指示の発行後、十分な時間が経過している。したがって、データ転送を開始する時点で、Send側およびRecv側で全レーン２の立上げが完了しているので、Send側からRecv側へのデータ転送が、効率を損なうことなく行なわれる。なお、転送すべきデータは、Send側メモリ領域１４Ａの送信バッファ（Send Buffer）に保存され、送信バッファから読み出されたデータが、Recv側へ転送され、Recv側メモリ領域１４Ｂの受信バッファに書き込まれる（矢印Ａ１３参照）。
【００８８】
なお、Rendezvous Send/Recvのメッセージに添付される「レーン２の動作を切り替える指示」は、データ転送経路上の全リンク３に対し影響を与える。Send側およびRecv側以外の隣接リンク間転送は、ネットワークインタフェース１４２１による制御の一部として扱う。隣接リンク間転送に際し、ノード１０は、レーン動作切替指示（全レーン動作指示／一部レーン動作停止指示）付きの「問合せ」メッセージを受信すると、当該指示に従って受信側のリンク３のレーン動作状態を変更する。受信したメッセージは、そのまま送信側のリンク３へ送出される。その際、ノード１０は、当該指示に従って送信側のリンク３のレーン動作状態を変更する。
【００８９】
ここまで、Rendezvous Send/Recvについて、データ転送前に通信経路のリンク３を全レーン動作状態に変更する動作を説明した。次に、Rendezvous Send/Recvについて、データ転送を完了した後、消費電力を削減すべく、全レーン動作状態から、一部レーン２のみが動作する状態つまり一部レーン動作停止状態に変更する動作について説明する。つまり、広い帯域幅（全レーン２）を必要とする通信（データ転送）を完了すると、省電力のためにレーン２が一部のみ動作する状態に変更するように一部レーン動作停止指示を発行する。当該一部レーン動作停止指示は、データ転送を行なっていた側（Rendezvous Send/RecvではSend側）によって発行される。なお、当該一部レーン動作停止指示は、最終の転送データの後に転送完了フラグを兼ねて添付されてもよいし、転送完了フラグを送信するメッセージに添付されてもよい。
【００９０】
図８に示すように、Rendezvous Send/Recvにおいて、Send側のプロセス＃０は、データ転送を完了すると、転送完了フラグのメッセージをRecv側に送信する（ステップＳ１５，矢印Ａ１４参照）。このとき、上述したように、転送完了フラグがRecv側一部レーン動作停止指示としての機能を兼ねてもよいし、転送完了フラグのメッセージにRecv側一部レーン動作停止指示が添付されてもよい。
【００９１】
プロセス＃０は、転送完了フラグの送信後、直下のリンク３に対し、一部レーン動作停止指示を発行する（ステップＳ１６参照）。これにより、Send側のレーンの動作状態は、全レーン動作状態から、一部レーン動作停止状態つまり一部レーン動作状態に切り換えられる。
【００９２】
一方、転送完了フラグ（Recv側一部レーン動作停止指示）を受けたRecv側のプロセス＃１は、Recv側メモリ領域１４Ｂに転送完了フラグをセットするとともに、データ転送の完了を確認する（ステップＳ２４参照）。そして、プロセス＃１は、直下のリンク３に対し、一部レーン動作停止指示を発行する（ステップＳ２５参照）。これにより、Recv側のレーンの動作状態は、全レーン動作状態から、一部レーン動作停止状態つまり一部レーン動作状態に切り換えられる。
【００９３】
〔４−２〕ＲＤＭＡ Put
次に、図９を参照しながら、１対１通信プロトコルがＲＤＭＡ Putである場合の、本実施形態の情報処理システム１の動作について説明する。なお、図９において、送信バッファ１０ＡのＣＰＵ１４１が、Caller側メモリ領域１４Ａを用いて、送信側のプロセス＃０を実行する。また、受信バッファ１０ＢのＣＰＵ１４１が、Target側メモリ領域１４Ｂを用いて、受信側のプロセス＃１を実行する。
【００９４】
ＲＤＭＡPutでは、Caller側（送信側）のメモリ領域１４Ａ上のコーラーウインドウ（Caller Window）から、Target側（受信側）のメモリ領域１４Ｂ上のターゲットウインドウ（Target Window）へデータが転送される。当該転送を実行するには、Caller側のプロセス＃１は、ターゲットウインドウのアドレスが必要である。このため、Caller側のプロセス＃０は、データ転送開始前に送信用関数ＭＰＩ_Putを呼び出し（ステップＳ３１参照）、Caller側からTarget側へ「Target Windowの問合せ（Query）」メッセージを送信し（ステップＳ３２，矢印Ａ２１参照）、Target側からの応答（Response）を待つ。
【００９５】
このとき、プロセス＃０は、「Target Windowの問合せ」に、Target側全レーン動作指示を添付する（ステップＳ３２参照）。また、プロセス＃０は、Caller側全レーン動作指示を発行する（ステップＳ３３参照）。これにより、Caller側の全レーン２の動作状態は、一部レーン動作状態から、レーン立上げ時間Ｔo（図１参照）に亘るレーン立上げ状態を経て、全レーン動作状態に切り換えられる。
【００９６】
一方、Target側のプロセス＃１は、Target側全レーン動作指示を添付された「Target Windowの問合せ」を受信すると、当該問合せに応じた「Target Windowの通知（Response）」メッセージを返信する（ステップＳ４１，矢印Ａ２２参照）。なお、「Target Windowの通知」には、Caller側からの転送データを書き込むべきTarget側メモリ領域１４Ｂにおけるターゲットウインドウのアドレス情報が含まれる。また、プロセス＃１は、Target側全レーン動作指示を発行する（ステップＳ４２参照）。これにより、Target側の全レーン２の動作状態は、一部レーン動作状態からレーン立上げ状態を経て全レーン動作状態に切り換えられる。
【００９７】
Caller側では、「Target Windowの通知」がTarget側から戻ってきてから、データ転送が開始される（ステップＳ３４参照）。このとき、Caller側において全レーン２の立上げを完了させて全レーン動作状態に切り換えるのに十分な時間がある。一方、Target側では、「Target Windowの通知」を送信した後、最初のデータを受信するまでに、メッセージやデータがCaller-Target間を１往復する時間が経過しているので、Target側も全レーン動作状態に変更するのに十分な時間が経過している。したがって、データ転送を開始する時点で、Caller側およびTarget側で全レーン２の立上げが完了しているので、Caller側からTarget側へのデータ転送が、効率を損なうことなく行なわれる（矢印Ａ２３参照）。
【００９８】
なお、ＲＤＭＡ Putのメッセージに添付される「レーン２の動作を切り替える指示」も、データ転送経路上全リンクに対し影響を与える。Caller側およびTarget側以外の隣接リンク間転送は、ネットワークインタフェース１４２１による制御の一部として扱う。隣接リンク間転送に際し、ノード１０は、レーン動作切替指示（全レーン動作指示／一部レーン動作停止指示）付きの「問合せ」メッセージを受信すると、当該指示に従って受信側のリンク３のレーン動作状態を変更する。受信したメッセージは、そのまま送信側のリンク３へ送出される。その際、ノード１０は、当該指示に従って送信側のリンク３のレーン動作状態を変更する。
【００９９】
ここまで、ＲＤＭＡ Putについて、データ転送前に通信経路のリンク３を全レーン動作状態に変更する動作を説明した。次に、ＲＤＭＡ Putについて、データ転送を完了した後、消費電力を削減すべく、全レーン動作状態から、一部レーン２のみが動作する状態つまり一部レーン動作停止状態に変更する動作について説明する。つまり、広い帯域幅（全レーン２）を必要とする通信（データ転送）を完了すると、省電力のためにレーン２が一部のみ動作する状態に変更するように一部レーン動作停止指示を発行する。当該一部レーン動作停止指示は、データ転送を行なっていた側（ＲＤＭＡ PutではCaller側）によって発行される。なお、当該一部レーン動作停止指示は、最終の転送データの後に転送完了フラグを兼ねて添付されてもよいし、転送完了フラグを送信するメッセージに添付されてもよい。
【０１００】
図９に示すように、ＲＤＭＡ Putにおいて、Caller側のプロセス＃０は、データ転送を完了すると、転送完了フラグのメッセージをTarget側に送信する（ステップＳ３５，矢印Ａ２４参照）。このとき、上述したように、転送完了フラグがTarget側一部レーン動作停止指示としての機能を兼ねてもよいし、転送完了フラグのメッセージにTarget側一部レーン動作停止指示が添付されてもよい。
【０１０１】
プロセス＃０は、転送完了フラグの送信後、直下のリンク３に対し、一部レーン動作停止指示を発行する（ステップＳ３６参照）。これにより、Caller側のレーンの動作状態は、全レーン動作状態から、一部レーン動作停止状態つまり一部レーン動作状態に切り換えられる。
【０１０２】
一方、転送完了フラグ（Target側一部レーン動作停止指示）を受けたTarget側のプロセス＃１は、Target側メモリ領域１４Ｂに転送完了フラグをセットするとともに、データ転送の完了を確認する（ステップＳ４３参照）。そして、プロセス＃１は、直下のリンク３に対し、一部レーン動作停止指示を発行する（ステップＳ４４参照）。これにより、Target側のレーンの動作状態は、全レーン動作状態から、一部レーン動作停止状態つまり一部レーン動作状態に切り換えられる。
【０１０３】
〔４−３〕ＲＤＭＡ Get
次に、図１０を参照しながら、１対１通信プロトコルがＲＤＭＡ Getである場合の、本実施形態の情報処理システム１の動作について説明する。なお、図１０において、送信バッファ１０ＡのＣＰＵ１４１が、Caller側メモリ領域１４Ａを用いて、送信側のプロセス＃０を実行する。また、受信バッファ１０ＢのＣＰＵ１４１が、Target側メモリ領域１４Ｂを用いて、受信側のプロセス＃１を実行する。
【０１０４】
ＲＤＭＡ Getによるデータ転送の方向は、ＲＤＭＡ Putによるデータ転送の方向と逆で、ＲＤＭＡ Getでは、Caller側（送信側）のプロセス＃０の要求により、Target側（受信側）からCaller側へデータが転送される。つまり、ＲＤＭＡ Getでは、後述するごとくCaller側からのGet Requestを受けたTarget側のプロセス＃１は、Target WindowからCaller Windowへデータが転送される。このため、Target側のプロセス＃１は、Caller Windowのアドレスが必要であり、Caller側のプロセス＃０は、Get Requestを発行するために、Target Windowの情報（アドレスを含む）が必要である。
【０１０５】
このようなＲＤＭＡ Getでは、Caller側のプロセス＃０は、データ転送開始前に送信用関数ＭＰＩ_Getを呼び出し（ステップＳ５１参照）、Caller側からTarget側へ「Target Windowの問合せ（Query）」メッセージを送信し（ステップＳ５２，矢印Ａ３１参照）、Target側からの応答（Response）を待つ。
【０１０６】
このとき、プロセス＃０は、「Target Windowの問合せ」に、Target側全レーン動作指示を添付する（ステップＳ５２参照）。また、プロセス＃０は、Caller側全レーン動作指示を発行する（ステップＳ５３参照）。これにより、Caller側の全レーン２の動作状態は、一部レーン動作状態から、レーン立上げ時間Ｔo（図１参照）に亘るレーン立上げ状態を経て、全レーン動作状態に切り換えられる。
【０１０７】
一方、Target側のプロセス＃１は、Target側全レーン動作指示を添付された「Target Windowの問合せ」を受信すると、当該問合せに応じた「Target Windowの通知（Response）」を返信する（ステップＳ６１，矢印Ａ３２参照）。なお、「Target Windowの通知」には、Caller側からの転送データを書き込むべきTarget側メモリ領域１４ＢにおけるTarget Windowのアドレス情報が含まれる。また、プロセス＃１は、Target側全レーン動作指示を発行する（ステップＳ６２参照）。これにより、Target側の全レーン２の動作状態は、一部レーン動作状態からレーン立上げ状態を経て全レーン動作状態に切り換えられる。
【０１０８】
Caller側に「Target Windowの通知」がTarget側から戻ってくると、プロセス＃０は、Target側に「データ転送依頼」メッセージ（Get Response）を送信する（ステップＳ５４，矢印Ａ３３）。その際、データ転送依頼メッセージに、転送データを書き込むべきCaller側メモリ領域１４Ａ上のCaller Windowのアドレス情報が添付される。
【０１０９】
Target側では、Caller側からの「データ転送依頼」を受けてから、データ転送が開始される（ステップＳ６３参照）。このとき、Caller側がデータを受信するのは、Caller側が「Target Windowの通知」を受けさらにTarget側に「データ転送依頼」を送信した後である。つまり、メッセージやデータがCaller-Target間を２往復する時間が経過しているので、Caller側で全レーン動作状態に変更するのに十分な時間が経過している。また、Target側でも、データの転送開始する前に、メッセージがCaller-Target間を１往復する時間が経過しているので、全レーン動作状態に変更するのに十分な時間が経過している。したがって、データ転送を開始する時点で、Caller側およびTarget側で全レーン２の立上げが完了しているので、Caller側からTarget側へのデータ転送が、効率を損なうことなく行なわれる（矢印Ａ３４参照）。
【０１１０】
なお、ＲＤＭＡ Getのメッセージに添付される「レーン２の動作を切り替える指示」も、データ転送経路上全リンクに対し影響を与える。Caller側およびTarget側以外の隣接リンク間転送は、ネットワークインタフェース１４２１による制御の一部として扱う。隣接リンク間転送に際し、ノード１０は、レーン動作切替指示（全レーン動作指示／一部レーン動作停止指示）付きの「問合せ」メッセージを受信すると、当該指示に従って受信側のリンク３のレーン動作状態を変更する。受信したメッセージは、そのまま送信側のリンク３へ送出される。その際、ノード１０は、当該指示に従って送信側のリンク３のレーン動作状態を変更する。
【０１１１】
ここまで、ＲＤＭＡ Getについて、データ転送前に通信経路のリンク３を全レーン動作状態に変更する動作を説明した。次に、ＲＤＭＡ Getについて、データ転送を完了した後、消費電力を削減すべく、全レーン動作状態から、一部レーン２のみが動作する状態つまり一部レーン動作停止状態に変更する動作について説明する。つまり、広い帯域幅（全レーン２）を必要とする通信（データ転送）を完了すると、省電力のためにレーン２が一部のみ動作する状態に変更するように一部レーン動作停止指示を発行する。当該一部レーン動作停止指示は、データ転送を行なっていた側（ＲＤＭＡ GetではTarget側）によって発行される。なお、当該一部レーン動作停止指示は、最終の転送データの後に転送完了フラグを兼ねて添付されてもよいし、転送完了フラグを送信するメッセージに添付されてもよい。
【０１１２】
図１０に示すように、ＲＤＭＡ Getにおいて、Target側のプロセス＃１は、データ転送を完了すると、転送完了フラグのメッセージをCaller側に送信する（ステップＳ６４，矢印Ａ３５参照）。このとき、上述したように、転送完了フラグがCaller側一部レーン動作停止指示としての機能を兼ねてもよいし、転送完了フラグのメッセージにCaller側一部レーン動作停止指示が添付されてもよい。
【０１１３】
プロセス＃１は、転送完了フラグの送信後、直下のリンク３に対し、一部レーン動作停止指示を発行する（ステップＳ６５参照）。これにより、Target側のレーンの動作状態は、全レーン動作状態から、一部レーン動作停止状態つまり一部レーン動作状態に切り換えられる。
【０１１４】
一方、転送完了フラグ（Caller側一部レーン動作停止指示）を受けたCaller側のプロセス＃０は、Caller側メモリ領域１４Ａに転送完了フラグをセットするとともに、データ転送の完了を確認する（ステップＳ５５参照）。そして、プロセス＃０は、直下のリンク３に対し、一部レーン動作停止指示を発行する（ステップＳ５６参照）。これにより、Caller側のレーンの動作状態は、全レーン動作状態から、一部レーン動作停止状態つまり一部レーン動作状態に切り換えられる。
【０１１５】
〔５〕本実施形態の効果
このように、本実施形態の情報処理システム１によれば、データ転送を開始する前に当該データ転送に必要な情報を取得する期間（図１の立上げ時間Ｔo参照）を利用して、レーン２の立上げが行なわれ、レーン２の立上げ時間が隠蔽される。これにより、レーン２の立上げ時間がデータ本体の通信遅延時間に加算されることが抑止され、十分な帯域を用いてデータ本体を転送することが可能になる。したがって、計算効率の低下を招くことなく、情報処理システム１全体の消費電力が削減される。
【０１１６】
つまり、アプリケーション１１０の通信パターンなどの利用状況に応じて、高速シリアルリンク３の動作状態を明示的に指示することで、大規模計算機としての情報処理システム１全体の消費電力を削減することができる。さらに換言すると、アプリケーション１１０や通信ライブラリ１２２１やネットワークインタフェース１４２１が通信量やタイミングを考慮してリンク３の動作状態を制御することにより、情報処理システム１全体の消費電力が削減される。なお、本実施形態では、アプリケーション１１０が明示的な指示を行なうべく、ユーザレベルのインタフェース（例えばＭＰＩ）が実装される。また、高速シリアルリンク３は、その動作状況を外部制御によって制御可能にしている。高速シリアルリンク３の外部制御の手法は、特定の手法に限定されるものではない。
【０１１７】
〔６〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
【０１１８】
本実施形態において、データ転送時のレーン動作状態では全てのレーン２を動作させているが、これに限定されるものではなく、データ転送時のレーン動作状態で動作させるレーン２の数は、一部レーン動作状態で動作させるレーン２の数よりも多ければよい。また、一部レーン動作状態で動作させるレーン２もしくは停止させるレーン２は、公知の手法によって決定することができる。
【０１１９】
ところで、Send/Recvプロトコルは、データ転送を開始する前に当該データ転送に必要な情報を取得する期間を有するものではないため、本実施形態においてSend/Recvプロトコルは対象になっていない。アプリケーションの通信時間と消費電力との関係を考慮した上で、Send/RecvプロトコルとRendezvous Send/Recvプロトコルとのいずれを用いるか決定するようにしてもよい。例えば、広い帯域を必要としない（つまりデータ量が少ない）レイテンシ重視のデータ転送を実行する場合には、Send/Recvプロトコルが選択される。一方、広い帯域を必要するデータ転送を実行する場合には、Rendezvous Send/Recvプロトコルが選択され、さらに上述した本実施形態の制御が適用されるように構成することも考えられる。
【０１２０】
また、ＭＰＩを使用しない場合、つまり管理ソフトウエア（ＳＶＰ１５０）経由で全てのリンク３を制御している場合、以下のような制御が行なわれる。つまり、ネットワーク上の特定のリンクが指定され、指定されたリンク両端のハードウエアにレーン２の動作制御指示が送信され、レーン２のオン／オフが制御される。また、アプリケーション１１０は、管理ソフトウエアに対し、ネットワーク上のどのリンク３を制御したいか依頼する。制御ソフトウエアは、システム全体の使用率などを考慮し、制御パケットをそのリンク３に対し送信する。送信のプロトコルは、ＭＰＩと同等である。そして、制御パケットを受信したネットワークインタフェース１４２１は、リンク３の動作を制御する。
【０１２１】
また、例えばネットワークとしてInfiniBandを用いる場合、ベンダ用に用意されているヘッダの領域が利用される。つまり、当該領域を用いて、リンク３の動作指示メッセージが送受信される。ＨＣＡ（Host Channel Adapter）は、ファームウエアを変更しリンク３の動作状態を制御することが可能である。スイッチやルータ１４２２は、スイッチの制御ファームウエア等のＳＭＡ（Subnet Manager Agent）を改変する。
【０１２２】
さらに、ユーザ（アプリケーション１１０）に、どのリンク３に対し指示（全レーン動作指示，一部レーン動作停止指示，レーン数増加指示，レーン数減少指示）を発行するかの決定を任せるように構成することも可能である。この場合、ユーザ（アプリケーション１１０）には、ネットワークトポロジや現在の負荷状況を参照させ、どのリンク３を制御するかを判断させるように構成する。
【０１２３】
〔７〕付記
以上の各実施形態を含む実施形態に関し、さらに以下の付記を開示する。
【０１２４】
（付記１）
複数のレーンを有する通信経路を介して接続される送信側情報処理装置と受信側情報処理装置とを有する情報処理システムであって、
前記送信側情報処理装置は、
前記送信側情報処理装置と前記受信側情報処理装置との間のデータ転送に先立って前記受信側情報処理装置に送信される、前記データ転送に係る転送情報を検知する送信側検知部と、
前記送信側検知部が前記転送情報を検知すると、レーン数増加指示を前記受信側情報処理装置に通知する送信側通知部と、
前記送信側検知部が前記転送情報を検知すると、前記データ転送に使用する前記レーンの数を、前記転送情報の送信に使用する前記レーンの数よりも増加させる送信側制御部と、を有し、
前記受信側情報処理装置は、
前記送信側情報処理装置からの前記レーン数増加指示を検知する受信側検知部と、
前記受信側検知部が前記レーン数増加指示を検知すると、前記データ転送に使用する前記レーンの数を、前記転送情報の受信に使用する前記レーンの数よりも増加させる受信側制御部と、を有する、情報処理システム。
【０１２５】
（付記２）
前記送信側検知部は、前記転送情報として、前記データ転送によるデータ転送量よりもデータ量の少ない転送情報を検知する、付記１記載の情報処理システム。
【０１２６】
（付記３）
前記送信側検知部は、前記レーンの立上げに要する時間が、前記転送情報に係る往復遅延時間と前記転送情報の転送に要する転送時間との合計値未満になる、前記転送情報を検知する、付記１または付記２に記載の情報処理システム。
【０１２７】
（付記４）
前記送信側通知部は、前記レーン数増加指示を、前記転送情報に添付して前記受信側情報処理装置に通知する、付記１〜付記３のいずれか一項に記載の情報処理システム。
【０１２８】
（付記５）
前記転送情報の送信または受信に使用する前記レーンの数は、前記複数のレーンの一部の数であり、前記データ転送に使用する前記レーンの数は、前記複数のレーンの全ての数である、付記１〜付記４のいずれか一項に記載の情報処理システム。
【０１２９】
（付記６）
前記送信側通知部は、前記送信側情報処理装置が前記受信側情報処理装置への前記データ転送を完了すると、転送完了を前記受信側情報処理装置に通知し、
前記送信側制御部は、前記送信側情報処理装置が前記受信側情報処理装置への前記データ転送を完了すると、前記データ転送の完了後の通信に使用する前記レーンの数を、前記データ転送に使用する前記レーンの数よりも減少させ、
前記受信側制御部は、前記受信側検知部が前記送信側情報処理装置からの前記転送完了を検知すると、前記データ転送の完了後の通信に使用する前記レーンの数を、前記データ転送に使用する前記レーンの数よりも減少させる、付記１〜付記５のいずれか一項に記載の情報処理システム。
【０１３０】
（付記７）
前記受信側情報処理装置は、
前記受信側情報処理装置が前記送信側情報処理装置への前記データ転送を完了すると、転送完了を前記送信側情報処理装置に通知する受信側通知部をさらに有し、
前記受信側制御部は、前記受信側情報処理装置が前記送信側情報処理装置への前記データ転送を完了すると、前記データ転送の完了後の通信に使用する前記レーンの数を、前記データ転送に使用する前記レーンの数よりも減少させ、
前記送信側制御部は、前記送信側検知部が前記受信側情報処理装置からの前記転送完了を検知すると、前記データ転送の完了後の通信に使用する前記レーンの数を、前記データ転送に使用する前記レーンの数よりも減少させる、付記１〜付記５のいずれか一項に記載の情報処理システム。
【０１３１】
（付記８）
前記データ転送に使用する前記レーンの数は、前記複数のレーンの全ての数であり、前記データ転送の完了後の通信に使用する前記レーンの数は、前記複数のレーンの一部の数である、付記６または付記７のいずれか一項に記載の情報処理システム。
【０１３２】
（付記９）
複数のレーンを有する通信経路を介して受信側情報処理装置と接続される送信側情報処理装置であって、
前記送信側情報処理装置と前記受信側情報処理装置との間のデータ転送に先立って前記受信側情報処理装置に送信される、前記データ転送に係る転送情報を検知する送信側検知部と、
前記送信側検知部が前記転送情報を検知すると、レーン数増加指示を前記受信側情報処理装置に通知する送信側通知部と、
前記送信側検知部が前記転送情報を検知すると、前記データ転送に使用する前記レーンの数を、前記転送情報の送信に使用する前記レーンの数よりも増加させる送信側制御部と、を有する、情報処理装置。
【０１３３】
（付記１０）
前記送信側検知部は、前記転送情報として、前記データ転送によるデータ転送量よりもデータ量の少ない転送情報を検知する、付記９記載の情報処理装置。
【０１３４】
（付記１１）
前記送信側検知部は、前記レーンの立上げに要する時間が、前記転送情報に係る往復遅延時間と前記転送情報の転送に要する転送時間との合計値未満になる、前記転送情報を検知する、付記９または付記１０に記載の情報処理装置。
【０１３５】
（付記１２）
前記送信側通知部は、前記レーン数増加指示を、前記転送情報に添付して前記受信側情報処理装置に通知する、付記９〜付記１１のいずれか一項に記載の情報処理装置。
【０１３６】
（付記１３）
前記転送情報の送信または受信に使用する前記レーンの数は、前記複数のレーンの一部の数であり、前記データ転送に使用する前記レーンの数は、前記複数のレーンの全ての数である、付記９〜付記１２のいずれか一項に記載の情報処理装置。
【０１３７】
（付記１４）
複数のレーンを有する通信経路を介して送信側情報処理装置と接続される受信側情報処理装置であって、
前記送信側情報処理装置と前記受信側情報処理装置との間のデータ転送に先立って前記受信側情報処理装置に送信される前記データ転送に係る転送情報の検知に伴い前記送信側情報処理装置から前記受信側情報処理装置に通知されるレーン数増加指示を検知する受信側検知部と、
前記受信側検知部が前記レーン数増加指示を検知すると、前記データ転送に使用する前記レーンの数を、前記転送情報の受信に使用する前記レーンの数よりも増加させる受信側制御部と、を有する、情報処理装置。
【０１３８】
（付記１５）
前記転送情報の送信または受信に使用する前記レーンの数は、前記複数のレーンの一部の数であり、前記データ転送に使用する前記レーンの数は、前記複数のレーンの全ての数である、付記１４記載の情報処理装置。
【０１３９】
（付記１６）
複数のレーンを有する通信経路を介して接続される送信側情報処理装置と受信側情報処理装置とを有する情報処理システムの制御方法であって、
前記送信側情報処理装置は、
前記送信側情報処理装置と前記受信側情報処理装置との間のデータ転送に先立って前記受信側情報処理装置に送信される、前記データ転送に係る転送情報を検知すると、レーン数増加指示を前記受信側情報処理装置に通知し、
前記データ転送に使用する前記レーンの数を、前記転送情報の送信に使用する前記レーンの数よりも増加させ、
前記受信側情報処理装置は、
前記送信側情報処理装置からの前記レーン数増加指示を検知すると、前記データ転送に使用する前記レーンの数を、前記転送情報の受信に使用する前記レーンの数よりも増加させる、情報処理システムの制御方法。
【０１４０】
（付記１７）
前記送信側情報処理装置は、前記転送情報として、前記データ転送によるデータ転送量よりもデータ量の少ない転送情報を検知する、付記１６記載の情報処理システムの制御方法。
【０１４１】
（付記１８）
前記送信側情報処理装置は、前記レーンの立上げに要する時間が、前記転送情報に係る往復遅延時間と前記転送情報の転送に要する転送時間との合計値未満になる、前記転送情報を検知する、付記１６または付記１７に記載の情報処理システムの制御方法。
【０１４２】
（付記１９）
前記送信側情報処理装置は、前記レーン数増加指示を、前記転送情報に添付して前記受信側情報処理装置に通知する、付記１６〜付記１８のいずれか一項に記載の情報処理システムの制御方法。
【０１４３】
（付記２０）
前記転送情報の送信または受信に使用する前記レーンの数は、前記複数のレーンの一部の数であり、前記データ転送に使用する前記レーンの数は、前記複数のレーンの全ての数である、付記１６〜付記１９のいずれか一項に記載の情報処理システムの制御方法。
【符号の説明】
【０１４４】
１    情報処理システム
２    レーン
３    高速シリアルリンク
４    計算用ネットワーク
５  運用・管理用ネットワーク
１０    情報処理装置（ノード，計算ノード）
１０Ａ    送信側情報処理装置（送信ノード）
１０Ｂ    受信側情報処理装置（受信ノード）
１１Ａ    送信側検知部
１１Ｂ    受信側検知部
１２Ａ    送信側通知部
１２Ｂ    受信側通知部
１３Ａ    送信側制御部
１３Ｂ    受信側制御部
１４Ａ    送信側メモリ領域（Send側メモリ領域，Caller側メモリ領域）
１４Ｂ    受信側メモリ領域（Recv側メモリ領域，Target側メモリ領域）
２０    ＳＶＰ（マスタ）
３０    ＳＷネットワーク
１１０    アプリケーション（上位ソフトウエア）
１２０    ミドルウエア
１２１    運用管理機能
１２２    言語システム
１２２１    ＭＰＩライブラリ（通信ライブラリ）
１３０    ＯＳ
１３１    デバイスドライバ
１４０    ハードウエア
１４１    ＣＰＵ
１４２    インタコネクト（通信経路）
１４２１    ネットワークインタフェース
１４２２    ネットワークルータ
１５０    ＳＶＰ（スレーブ；管理ソフトウエア）
【図１】
0006369224.tif 000002
【図２】
0006369224.tif 000003
【図３】
0006369224.tif 000004
【図４】
0006369224.tif 000005
【図５】
0006369224.tif 000006
【図６】
0006369224.tif 000007
【図７】
0006369224.tif 000008
【図８】
0006369224.tif 000009
【図９】
0006369224.tif 000010
【図１０】
0006369224.tif 000011