JP6369224B2 - 情報処理システム、情報処理装置、及び情報処理システムの制御方法 - Google Patents

情報処理システム、情報処理装置、及び情報処理システムの制御方法 Download PDF

Info

Publication number
JP6369224B2
JP6369224B2 JP2014173535A JP2014173535A JP6369224B2 JP 6369224 B2 JP6369224 B2 JP 6369224B2 JP 2014173535 A JP2014173535 A JP 2014173535A JP 2014173535 A JP2014173535 A JP 2014173535A JP 6369224 B2 JP6369224 B2 JP 6369224B2
Authority
JP
Japan
Prior art keywords
information processing
transfer
lanes
data transfer
transmission
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014173535A
Other languages
English (en)
Other versions
JP2016048500A (ja
Inventor
敦行 二上
敦行 二上
俊幸 清水
俊幸 清水
智宏 井上
智宏 井上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014173535A priority Critical patent/JP6369224B2/ja
Priority to US14/833,382 priority patent/US10223323B2/en
Publication of JP2016048500A publication Critical patent/JP2016048500A/ja
Application granted granted Critical
Publication of JP6369224B2 publication Critical patent/JP6369224B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4286Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a handshaking protocol, e.g. RS232C link
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Bus Control (AREA)
  • Small-Scale Networks (AREA)
  • Communication Control (AREA)

Description

本発明は、情報処理システム、情報処理装置、及び情報処理システムの制御方法に関する。
大規模計算機のノード間の接続に高速シリアルリンクを使うことが知られている。高速シリアルリンクの物理層が消費する電力は、PCI(Peripheral Components Interconnect)Expressや10GbE(Gigabit Ethernet(登録商標))の場合、1Gbps当たり20mW程度といわれている。今後、リンク速度を向上すべく1リンク当たりのレーン数を増やすといった対策をする場合、高速シリアルリンクの物理層によって消費される電力が増加し無視できなくなる。
大規模計算機では、受信データを待って計算を実施する計算フェーズと、計算結果を他のノードに転送する通信フェーズとを交互に繰り返すプログラムを実行する場合がある。この場合、計算フェーズにおいて、高速シリアルリンクでは、対向するノード間でアイドルパターンを送受信することで一度確立したリンクが維持されるため、不要な電力が消費される。つまり、データ転送を伴わない場合においても、動作状態が維持され、電力が消費されている。このような不要な電力の消費を抑止するには、計算フェーズ中のシリアルリンクの動作を停止すればよいが、停止状態(オフ)から動作状態(オン)に復帰するには数マイクロ秒程度の立上げ時間(起動時間)が掛かる。このため、単純にリンクの動作を停止すると復帰に要する立上げ時間が通信遅延時間に加算され、計算効率が低下する。
なお、下記特許文献1や下記特許文献2では、単位時間当たりにリンクを通過するメッセージ数や量に応じて、使用するレーン数を動的に制御する技術が開示されている。しかし、レーンの電源をオフからオンにするには相当の時間が必要であり、単純にメッセージ数や量に応じてレーン数の動的制御を行なっても、十分な帯域を利用できるタイミングで通信できる保証はない。全レーンが立ち上がった時には、通信の大半が完了していたということもありうる。したがって、下記特許文献1や下記特許文献2でも、単純にリンクの動作を停止すると復帰に要する立上げ時間が通信遅延時間に加算され、計算効率が低下する。
下記特許文献3では、コネクション型の通信に応じてレーン数の変更を行なう技術が開示されている。コネクションレス型のSNMP(Simple Network Management protocol)やARP(Address Resolution Protocol)などの通信数や通信量がレーン数の変動に影響を与えないためである。アプリケーションが利用するデータサイズに応じて、レーン数が変動する。しかしながら、レーンの電源オンオフ時間(立上げ時間)について考慮されていない。したがって、下記特許文献3でも、単純にリンクの動作を停止すると復帰に要する立上げ時間が通信遅延時間に加算され、計算効率が低下する。
下記特許文献4では、ソフトウエア制御のもとでコマンドに反応して動的にリンク速度やリンク幅の上げ下げをネゴシエートする技術が開示されているが、レーンの電源オンオフ時間(立上げ時間)について考慮されていない。したがって、下記特許文献4でも、単純にリンクの動作を停止すると復帰に要する立上げ時間が通信遅延時間に加算され、計算効率が低下する。
特開2011−123798号公報 特開2011−199361号公報 特開2010−283696号公報 特表2008−547362号公報
上述したように、大規模計算機においては、計算効率の低下を招くことなく高速シリアルリンクで消費する電力を削減し、システム全体の消費電力を削減することが課題となっている。
一つの側面で、本発明は、計算効率の低下を招くことなく情報処理システム全体の消費電力を削減することを目的とする。
本件の情報処理システムは、複数のレーンを有する通信経路を介して接続される送信側情報処理装置と受信側情報処理装置とを有する。前記送信側情報処理装置は、送信側検知部,送信側通知部および送信側制御部を有し、前記受信側情報処理装置は、受信側検知部および受信側制御部を有する。前記送信側検知部は、前記送信側情報処理装置と前記受信側情報処理装置との間のデータ転送に先立って前記受信側情報処理装置に送信される、前記データ転送に係る転送情報であって、前記レーンの立上げに要する時間が、前記転送情報に係る往復遅延時間と前記転送情報の転送に要する転送時間との合計値未満になる、前記転送情報を検知する。前記送信側通知部は、前記送信側検知部が前記転送情報を検知すると、レーン数増加指示を前記受信側情報処理装置に通知する。前記送信側制御部は、前記送信側通知部が前記レーン数増加指示を前記受信側情報処理装置に通知すると、前記データ転送に使用する前記レーンの数を、前記転送情報の送信に使用する前記レーンの数よりも増加させる。前記受信側検知部は、前記送信側情報処理装置からの前記レーン数増加指示を検知する。前記受信側制御部は、前記受信側検知部が前記レーン数増加指示を検知すると、前記データ転送に使用する前記レーンの数を、前記転送情報の受信に使用する前記レーンの数よりも増加させる。
計算効率の低下を招くことなく情報処理システム全体の消費電力を削減することができる。
本実施形態が適用される情報処理システムにおける通信モデルとレーン立上げ時間とについて説明する図である。 本実施形態の情報処理システムの基本機能を説明するブロック図である。 本実施形態の情報処理システムにおける各ノード(情報処理装置)のハードウエア構成およびソフトウエア構成を示すブロック図である。 送信ノードと受信ノードとの間に一以上のノードが介装される情報処理システムの構成の一例(直接網)を示すブロック図である。 送信ノードと受信ノードとの間に一以上のノードが介装される情報処理システムの構成の他例(間接網)を示すブロック図である。 本実施形態の送信側情報処理装置(送信ノード)の動作を説明するフローチャートである。 本実施形態の受信側情報処理装置(受信ノード)の動作を説明するフローチャートである。 1対1通信プロトコルがrendezvous Send/Recvである場合の、本実施形態の情報処理システムの動作を説明する図である。 1対1通信プロトコルがRDMA Putである場合の、本実施形態の情報処理システムの動作を説明する図である。 1対1通信プロトコルがRDMA Getである場合の、本実施形態の情報処理システムの動作を説明する図である。
以下に、図面を参照し、本願の開示する情報処理システム、情報処理装置、及び情報処理システムの制御方法の実施形態について、詳細に説明する。ただし、以下に示す実施形態は、あくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能を含むことができる。そして、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
〔1〕概要
大規模計算機において複数レーンを有するリンクの、一部のレーンの電源をオフ状態(振幅を止めた状態)にすることで、消費電力が削減される。しかし、レーンの電源をオフ状態からオン状態にする立上げ(起動)には少なからず時間がかかるため、帯域を必要とするデータ転送の効率が落ちることがある。本実施形態では、rendezvous Send/RecvやRDMA(Remote Direct Memory Access)といった通信パターンに着目し、図1を参照しながら後述するごとく、データ転送を開始する前に当該データ転送に必要な情報を取得する期間を利用してレーンの立上げを行なうことで、レーンの立上げ時間が隠蔽される。これにより、レーンの立上げ時間がデータ本体の通信遅延時間に加算されることが抑止され、十分な帯域を用いてデータ本体を転送することが可能になる。このため、計算効率の低下を招くことなく、情報処理システム全体の消費電力が削減される。
一般的な通信パターン(通信モデル)として、十分に大きなメッセージ(データ)を転送する前には、比較的軽量のメッセージをやり取りすることが多い。このような通信パターンに着目すると、単純にメッセージ数や量に基づいて電力制御を行なうよりも、効率的な電力制御を行なうことができる。
そこで、本実施形態では、比較的長いメッセージの転送の前に、軽量のメッセージの通信を行なう通信パターンが対象になる。このような通信パターンに該当する1対1通信プロトコルとしては、例えば、rendezvous Send/RecvやRDMA PutやRDMA Getが挙げられる。このような通信パターンの実行時に、通信に使用するレーン数を制御つまりは通信速度を制御して消費電力を削減する構成が、以下に開示される。特に、本実施形態では、例えばアプリケーションが通信パターンを検知し、通信パターンが上述したパターンである場合に、通信に使用するレーン数の変更指示を行なう機能が備えられる。
ここで、通信パターンとレーンの立上げ時間の隠蔽とについて、図1を参照しながら、より具体的に説明する。なお、図1は、本実施形態が適用される情報処理システムにおける通信モデル(通信パターン)とレーン立上げ時間とについて説明する図である。
本実施形態が適用される通信パターンでは、図1に示すように、比較的長いメッセージ(Data)の転送(矢印A3参照)の前に、軽量のメッセージ(Request, Response)の通信(矢印A1,A2)が行なわれる。軽量のメッセージは、データ本体を転送するために必要な情報を、送信ノードと受信ノードとの間でやり取りするためのものである。軽量のメッセージの送受信は、一部のレーンの電源をオフにした状態、つまり一部のレーンの動作状態で実行される。このとき、データ量の少ないメッセージ(Request, Response)の送受信は一部レーン動作状態で問題なく実行される。しかし、データ量の多いデータ本体(Data)の転送時に、一部レーン動作状態のままでは、転送効率が低下してしまう。
データ本体転送前の軽量メッセージ(Request, Response)の送受信期間中に、電源オフ状態の一部レーンを立ち上げることができれば、軽量メッセージの送受信完了時には、全てのレーンが動作した状態でデータ転送を開始することができ、転送効率の低下を招くことがない。
本実施形態では、レーンの立上げに要する時間(立上げ時間)Toが、レーンの仕様として、予め取得されているものとする。そして、図1に示すように、軽量メッセージの送信開始(Request;矢印A1参照)と同時に一部レーンの立上げが指示されものとする。このとき、送信側(送信ノード)において、軽量メッセージの送信開始から、当該軽量メッセージに対する応答(Response;矢印A2参照)を受信するまでに要する時間は、RTT+転送時間となる。ここで、RTTは、Round Trip Timeの略記であり、送信側(送信ノード)と受信側(受信ノード)との間の往復遅延時間である。また、転送時間は、上記軽量メッセージの転送時間、つまり、上記軽量メッセージのデータ量を通信速度で除算した値である。
したがって、図1に示すように、レーン立上げ時間Toが、RTTと転送時間との合計値(RTT+転送時間)未満であれば、レーンの立上げ時間Toが、上記軽量メッセージの送受信によって隠蔽されることになる。本実施形態では、通信パターンが軽量メッセージ後にデータ本体の転送を行なうものであり、且つ、レーン立上げ時間Toが「RTT+転送時間」未満である場合に、全レーン立上げ指示(全レーン動作指示)が行なわれる。
〔2〕本実施形態の構成
次に、図2〜図5を参照しながら、本実施形態の情報処理システム1の機能や構成について説明する。まず、図2および図3を参照しながら、本実施形態の情報処理システム1の基本機能や、各ノード10のハードウエア構成およびソフトウエア構成について説明する。
図2には、情報処理システム1の基本構成、つまり2つの情報処理装置10を備えた情報処理システム1が示されている。2つの情報処理装置10の一方は送信側であり他方は受信側である。送信側情報処理装置は符号10Aで示し、受信側情報処理装置は符号10Bで示す。任意の情報処理装置を指す場合には符号10が用いられる。各情報処理装置は、例えば、大規模計算機を構成するノード(サーバ,コンピュータ等)であり、ノード10,計算ノード10,送信ノード10A,受信ノード10Bと表記する場合もある。
図2では、送信ノード10Aについては送信処理に必要な機能(符号11A〜14A参照)のみを図示し、受信ノード10Bについては受信処理に必要な機能(符号11B〜14B)のみを図示している。しかし、各ノードは、送信処理に必要な機能と受信処理に必要な機能との両方を有していてもよい。
図2に示す情報処理システム1では、直接的に接続された送信ノード10Aおよび受信ノード10Bの2つが図示されている。しかし、送信ノード10Aおよび受信ノード10Bは、例えば図4や図5に示すごとく情報処理システム1を構成する3以上のノード10のうちの2つであればよく、送信ノード10Aと受信ノード10Bとの間に一以上のノード10が介在していてもよい。
送信ノード10Aと受信ノード10Bとは、複数のレーン2を有する通信経路としてのインタコネクト142(図3参照)を介して接続される。各レーン2は、送信用および受信用の一組の差動信号ペア(2本の信号線)を有するとともに、差動伝送を行なう。差動伝送は、2本の信号線によって一つの信号を伝送する方式であり、1本の信号線で信号を伝送するシングルエンド伝送に比べノイズに強く信号周波数を高くすることができる。送信ノード10Aと受信ノード10Bとは、複数のレーン2を束ねた通信路である高速シリアルリンク(単にリンクという場合もある)3によって接続される。複数のレーン2を束ねることで、送信ノード10Aと受信ノード10Bの間におけるデータ転送に必要な通信帯域が得られる。
各レーン2は、個別にオン/オフ状態を制御することができる。例えば、各レーン2の両端におけるハードウエア(図示略)の電源をオフすること、あるいは、各レーン2の両端における入出力ドライバ(図示略)の動作を停止することで、消費電力が低減される。各レーン2の端部におけるハードウエアは、当該ハードウエア直上のドライバ(図示略)によって、もしくは、リンク3経由で送られてきた指示を受けて制御される。特に、本実施形態では、後述するアプリケーション110,通信ライブラリ1221,ネットワークインタフェース1421(図3参照)等が、データ転送のモデル(通信パターン)に応じてリンク3(各レーン2のオン/オフ)を制御する。また、通信ライブラリ1221や管理ソフトウエア(図4や図5のSVP (Service Processor)150)は、対象リンク3のドライバ経由でハードウエアにアクセスし、リンク3(各レーン2のオン/オフ)を制御する。
各ノード10において、各レーン2(リンク3)の端部は、ネットワークインタフェース1421(図2,図3参照)に接続される。ネットワークインタフェース1421は、各ノード10のハードウエア140(図3参照)に含まれる。ネットワークインタフェース1421は、上位ソフトウエア(アプリケーション110;図3参照)からネットワーク(リンク3)へ情報を送信するための仕様を有する。また、ネットワークインタフェース1421は、ネットワーク(リンク3)から上位ソフトウエア(アプリケーション110)への情報を受信するための仕様を有する。ネットワークインタフェース1421は、当該ネットワークインタフェース1421に属するリンク3の各レーン2の動作状態(オン/オフ状態)を制御することができる。
ここで、図3に示すように、各ノード10において、アプリケーション110,ミドルウエア120およびOS(Operating System)130が、ハードウエア140上で動作する。ミドルウエア120には、運用管理機能121と、MPI(Message Passing Interface)ライブラリ1221を含む言語システム122とが含まれる。OS130には、各種デバイス用のデバイスドライバ131が含まれる。ハードウエア140には、CPU(Central Processing Unit)141,インタコネクト142および上述した高速シリアルリンク3が含まれる。インタコネクト142には、上述したネットワークインタフェース1421と、後述するネットワークルータ1422(図4参照)とが含まれる。
ここで、MPIライブラリ1221は、MPIを実装した通信ライブラリを指すことがある。MPIは、メモリ分散型の計算機において、複数のノード10上のプロセス間で情報を送受信するための規格である。MPIでは、送受信の相手が明示的に指定される。また、MPIは、アプリケーション110からの呼び出しを通信指示子の形に変更し、キュー(図8〜図10参照)に投入する。MPIは、データ転送の完了などをアプリケーション110に通知する設定になっている場合、ネットワークインタフェース1421からの通知または転送完了フラグを読み出すことで、データ転送の完了を検知しアプリケーション110に通知する。
上記キューは、後述するメモリ領域14A,14B上に確保され、上位ソフトウエア(アプリケーション)110とネットワークインタフェース1421との間において上記通信指示子をやり取りするためのメモリ領域である。当該キューは、FIFO(First-In Fist-Out)である。当該キューには、送信キューと受信キューとが存在する。上位ソフトウエア110の送信側プロセス(図8〜図10のプロセス#0参照)とネットワークインタフェース1421との間の送信側メモリ領域14Aには、1個以上のキュー(図8〜図10の送信キュー参照)が存在する。また、上位ソフトウエア110の受信側プロセス(図8〜図10のプロセス#1参照)とネットワークインタフェース1421との間の受信側メモリ領域14Bには、1個以上のキュー(図8〜図10の受信キュー参照)が存在する。送信キューと受信キューとは独立した存在である。
上記通信指示子は、上位ソフトウエア110からネットワークインタフェース1421への送信指示と、ネットワークインタフェース1421から上位ソフトウエア110への受信完了通知とのいずれかを指し示すものである。送信指示は、ネットワークインタフェース1421に割り当てられた送信キューに投入される。受信完了通知は、受け取った情報が正常であった時に、プロセスに割り当てられた受信キューに投入される。
ついで、図4を参照しながら、送信ノード10Aと受信ノード10Bとの間に一以上のノード10が介装される情報処理システム1の構成の一例(直接網)について説明する。図4に示す情報処理システム1の各計算ノード10は、CPU141,ネットワークインタフェース1421,ネットワークルータ1422およびSVP(スレーブ)150を有している。SVP150は、管理ソフトウエアを実行することで、計算ノード10内のCPU141,ネットワークインタフェース1421およびネットワークルータ1422を管理する。各計算ノード10のSVP150は、運用・管理用ネットワーク5を介してSVP(マスタ)20に接続され、当該SVP20によって統括管理される。そして、図4に示す情報処理システム1では、隣接する計算ノード10のルータ1422間を、高速シリアルリンク3を介して接続することで、隣接する計算ノード10が直接的に接続される(直接網)。このように直接的に接続される複数の計算ノード10のうち端部の計算ノード10は、高速シリアルリンク3を介して計算用ネットワーク4に接続される。なお、図4では各計算ノード10にSVP150を備えているが、2以上の計算ノード10に対して一つのSVP150を備えてもよい。
また、図5を参照しながら、送信ノード10Aと受信ノード10Bとの間に一以上のノード10が介装される情報処理システム1の構成の他例(間接網)について説明する。図5に示す情報処理システム1において、各計算ノード10は、図4に示す情報処理システム1と同様のCPU141,ネットワークインタフェース1421およびSVP150を有している。ただし、図5に示す情報処理システム1では、各計算ノード10のネットワークインタフェース1421を、高速シリアルリンク3を介してSW(スイッチ)ネットワーク30に接続することで、複数の計算ノード10が間接的に接続される(間接網)。なお、図では各計算ノード10にSVP150を備えているが、2以上の計算ノード10に対して一つのSVP150を備えてもよい。
さて、次に、図2を参照しながら、本実施形態の情報処理システム1における、送信ノード10Aにおける送信処理のための機能と、受信ノード10Bにおける受信処理のための機能とについて説明する。
送信ノード10Aには、送信側検知部11A,送信側通知部12A,送信側制御部13Aとしての機能が備えられる。送信側検知部11A,送信側通知部12A,送信側制御部13Aとしての機能は、図4や図5に示すCPU141,SVP150,ネットワークインタフェース1421等において所定のプログラムを実行することで実現されてもよい。また、送信ノード10AにおけるHDD(Hard Disk Drive),SSD(Solid State Drive),RAM(Random Access Memory)等のメモリ上には、送信側メモリ領域14Aが確保されている。
同様に、受信ノード10Bには、受信側検知部11B,受信側通知部12B,受信側制御部13Bとしての機能が備えられる。受信側検知部11B,受信側通知部12B,受信側制御部13Bとしての機能は、図4や図5に示すCPU141,SVP150,ネットワークインタフェース1421等において所定のプログラムを実行することで実現されてもよい。また、受信ノード10BにおけるHDD,SSD,等のメモリ上には、受信側メモリ領域14Bが確保されている。
なお、前記所定のプログラムは、例えば、フレキシブルディスク,CD(CD−ROM,CD−R,CD−RWなど),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD−RW,DVD+R,DVD+RWなど),ブルーレイディスク等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、各ノード10は、当該記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置としての記憶部や上記メモリに転送し格納して用いる。
送信ノード10Aにおける送信側検知部11A,送信側通知部12A,送信側制御部13Aとしての機能は、以下の通りである。
送信側検知部11Aは、送信ノード10Aと受信ノード10Bとの間のデータ転送に先立って受信ノード10Bに送信される、当該データ転送に係る転送情報を検知する。つまり、送信側検知部11Aは、送信ノード10Aが送信を開始する際に、通信パターンが、比較的長いデータ転送の前に軽量のメッセージ(転送情報)の通信を行なうものであるか否かを判断する。このとき、送信側検知部11Aは、1対1通信プロトコルとして、例えば、rendezvous Send/Recv,RDMA Put,RDMA Getのうちのいずれか一つが用いられるているか否かを判断することで、軽量メッセージを検知してもよい。
また、送信側検知部11Aは、レーン2の立上げを軽量メッセージの通信によって隠蔽可能であるか否かの判断も行なう。つまり、図1を参照しながら前述したように、送信側検知部11Aは、当該軽量メッセージの転送時間を算出し、既知のレーン2の立上げ時間Toが、既知のRTTと算出された転送時間との合計値よりも小さいか否かを判断する。
さらに、送信側検知部11Aは、軽量メッセージに対する受信ノード10Bからの応答や、受信ノード10Bからの転送完了(転送完了フラグ)を検知する機能も有している。当該転送完了は、後述するごとく、通信プロトコルが例えばrendezvous Send/RecvやRDMA Putである場合に受信ノード10Bへのデータ転送を完了すると、受信側通知部12Bから通知される。
送信側通知部12Aは、送信側検知部11Aが上記軽量メッセージの送信(つまり所定の通信パターン)を検知すると、レーン数増加指示を受信ノード10Bに通知する。レーン数増加指示は、データ転送に使用するレーン2の数を、軽量メッセージの送信に使用するレーン2の数よりも増加させることを指示するものである。アプリケーション110がMPIを使って1対1通信を行なう際、転送すべきデータのサイズが大きい場合、データ転送経路におけるリンク3は全レーン2が有効になっていることが望ましい。そこで、本実施形態では、軽量メッセージの送信時には、一部のレーン2の動作を停止(電源オフ)することで一部のレーン2を有効な状態(電源オン)とする一方、データ転送時には、全レーン2を動作状態(電源オン)とする。このため、以下では、レーン数増加指示を全レーン動作指示という。
また、送信側通知部12Aは、全レーン動作指示を、前記軽量メッセージに添付して受信ノード10Bに通知する機能を有している。なお、例えば、アプリケーション110が全レーン動作指示を付加したメッセージを発行するために、MPIによる通信指示子に、当該全レーン動作指示を指定するフィールドが追加される。当該フィールドには、全レーン動作を指示する以下の項目を追加する。例えば、当該フィールドには、全レーン動作を指示する場合に“1”が設定される一方、全レーン動作を指示しない場合つまり一部レーン動作停止を指示する場合に“0”が設定される。MPIは、上述のような通信指示子を送信側メモリ領域14Aのキューに投入する。送信側通知部12Aは、上記フィールドに“1”が設定されている場合、全レーン動作指示を、軽量メッセージに添付して受信ノード10Bに通知する。
さらに、送信側通知部12Aは、送信ノード10Aが受信ノード10Bへのデータ転送を完了すると(通信プロトコルが例えばrendezvous Send/RecvやRDMA Putである場合)、転送完了(転送完了フラグ)を受信ノード10Bに通知する機能も有している。このとき、送信側通知部12Aは、受信ノード10Bに対する一部レーン動作停止指示(後述)とともに転送完了フラグを通知することが望ましい。
送信側制御部13Aは、送信側検知部11Aが上記メッセージの送信(つまり所定の通信パターン)を検知すると、送信ノード10Aにおいて、全レーン動作指示(レーン数増加指示,全レーン立上げ指示)を行なって、データ転送に使用するレーン2の数を、軽量メッセージの送信に使用するレーン2の数よりも増加させる。これにより、本実施形態では、前述したように、リンク3の動作状態は、一部のレーン2の動作を停止させた一部レーン動作停止の状態から、全レーン2を動作させた状態(立ち上げた状態)つまりレーン幅を広げた状態に切り換えられる。
また、送信側制御部13Aは、送信ノード10Aが受信ノード10Bへのデータ転送を完了した場合、もしくは、送信側検知部11Aが受信ノード10Bからの転送完了フラグを検知した場合、送信ノード10Aにおいて、レーン数減少指示を行なう。レーン数減少指示は、データ転送の完了後の通信に使用するレーン2の数を、データ転送に使用するレーン2の数よりも減少させることを指示するものである。本実施形態では、データ転送時には全レーン2を動作状態(電源オン)にする一方で、データ転送時以外(例えば軽量メッセージの送信時等)においては、一部のレーン2を用いるべく、当該一部のレーン2以外の残りのレーンについては動作を停止させる。このため、以下では、レーン数減少指示を一部レーン動作停止指示という。送信側制御部13Aが一部レーン動作停止指示を行なうことで、リンク3の動作状態は、全レーン2を動作させた状態から、一部のレーン2の動作を停止させた一部レーン動作停止の状態に切り換えられる。
なお、送信側メモリ領域14Aは、図8に示すSend側メモリ領域や、図9,図10に示すCaller側メモリ領域として用いられる。送信側メモリ領域14Aには、図8〜図10に示すように、必要に応じて、例えば、送信バッファ(Send Buffer),コーラーウインドウ(Caller Window),送信キュー,転送完了フラグのための領域が確保される。
一方、受信ノード10Bにおける受信側検知部11B,受信側通知部12B,受信側制御部13Bとしての機能は、以下の通りである。
受信側検知部11Bは、メッセージに添付された指示を参照することで送信ノード10Aからの全レーン動作指示付きメッセージを検知するほか、送信ノード10Aからの転送完了フラグを検知する。
受信側通知部12Bは、受信ノード10Bが送信ノード10Aへのデータ転送を完了すると(通信プロトコルが例えばRDAM Getである場合)、転送完了(転送完了フラグ)を送信ノード10Aに通知する。このとき、受信側通知部12Bは、送信ノード10Aに対する一部レーン動作停止指示とともに転送完了フラグを通知することが望ましい。
受信側制御部13Bは、受信側検知部11Bが全レーン動作指示を検知すると、受信ノード10Bにおいて、全レーン動作指示(レーン数増加指示,全レーン立上げ指示)を行なって、データ転送に使用するレーン2の数を、軽量メッセージの受信に使用するレーン2の数よりも増加させる。これにより、本実施形態では、前述したように、リンク3の動作状態は、一部のレーン2の動作を停止させた一部レーン動作停止の状態から、全レーン2を動作させた状態(立ち上げた状態)に切り換えられる。
また、受信側制御部13Bは、受信ノード10Bが送信ノード10Aへのデータ転送を完了した場合、もしくは、受信側検知部11Bが送信ノード10Aからの転送完了フラグを検知した場合、受信ノード10Bにおいて、一部レーン動作停止指示を行なう。これにより、受信ノード10Bにおいて、リンク3の動作状態は、全レーン2を動作させた状態から、一部のレーン2の動作を停止させた一部レーン動作停止の状態に切り換えられ、データ転送の完了後の通信に使用するレーン2の数が、前記データ転送に使用するレーン2の数よりも減少する。
なお、受信側メモリ領域14Bは、図8に示すRecv側メモリ領域や、図9,図10に示すTarget側メモリ領域として用いられる。受信側メモリ領域14Bには、図8〜図10に示すように、必要に応じて、例えば、受信バッファ(Recv Buffer),ターゲットウインドウ(Target Window),受信キュー,転送完了フラグのための領域が確保される。
以下では、本実施形態の各ノード10において、上述した各種機能(送信側検知部11A,送信側通知部12A,送信側制御部13A,受信側検知部11B,受信側通知部12B,受信側制御部13Bとしての機能)を実現するための構成に関連する技術について説明する。
レーン2の動作状態を制御する構造について: ハードウエア自体や、当該ハードウエアを内蔵する装置のファームウエアや、当該装置を制御するデバイスドライバが、各レーン2の電源制御を行なうか、各レーン2の入出力ドライバの動作制御を行なう。ファームウエアまたはデバイスドライバは、MPIライブラリ1221などの上位ソフトウエアによって制御される。単一もしくは複数の上位ソフトウエアに対し、アプリケーション110はレーン動作の指示を出力する。
送信ノード10Aと受信ノード10Bとの間に一以上のノード10が介装される情報処理システム1(図4,図5参照)について: データが、一以上のノード10を経由して転送される状況で、データ転送経路上のレーン2について動作状態(オン/オフ)を変更する時には、レーン2の動作指示を付加されたメッセージが送信される。上位ソフトウエアやSVP150がレーン2を含む装置(ノード10)を制御する場合、データが経由するノード10において、レーン制御の指示を付加されたメッセージを受けると、ファームウエアまたはデバイスドライバ131にレーン動作を変更する指示が出力される。または、上位ソフトウエアやSVP150がノード10を制御していない場合、つまり受信した内容をハードウエア140(ルータ1422)がそのまま転送する場合、ルータ1422が、レーン制御の指示を付加されたメッセージを受けると、ファームウエアやハードウエア140が、そのレーン2の動作状態を変更する。
ネットワークインタフェース1421について: ネットワークインタフェース1421は、上位ソフトウエアから送信依頼を受けメッセージやメモリ領域14A,14Bのデータをネットワークに送り出す機能を有する。ここで、ネットワークは、特定のものに限定されず、例えば、Ethernet (登録商標),InfiniBand,Myrinetであってもよい。ネットワークインタフェース1421は、送信キューから順番に通信指示子を取り出す。取り出された通信指示子の全レーン動作指示フィールドに“1”が設定され且つ通信プロトコルがRendezvous Send/RecvまたはRDMA PutまたはRDMA Getの場合、ネットワークインタフェース1421が、全レーン動作指示を添付した「問合せ」メッセージ(Query)を発行する。なお、全レーン動作指示を伴うデータ転送後に送信完了フラグまたは転送完了フラグを送信する際、ネットワークインタフェース1421は、当該フラグに一部レーン動作停止指示を添付してもよい。当該一部レーン動作停止指示を添付して送信する処理は、Rendezvous Send/RecvのSend側(図8参照)やRDMA PutのCaller側(図9参照)やRDMA GetのTarget側(図10参照)で実行される。
送信側(送信ノード10A)および受信側(受信ノード10B)の両方に共通の構成について: リンク3が配置されている上位のハードウエアもしくはソフトウエアは、制御信号線(図示略)などを介して、リンク3の各レーン2を個別に制御可能にしている。上位のハードウエアもしくはソフトウエアは、ネットワークインタフェース1421の一部として存在する。
送信側(Send側あるいはCaller側;図8〜図10参照)の構成について: 送信ノード10Aにおいて、MPIを含む上位ソフトウエアからのメッセージ送信依頼(通信指示子)を受け、当該通信指示子の全レーン動作指示フィールドに“1”が設定されている場合、全レーン動作指示を添付したメッセージが送信される。その後、当該メッセージを送出したリンク3の全レーン2が動作状態に切り換えられる。
受信側(Recv側あるいはTarget側;図8〜図10参照)の構成について: 受信ノード10Bにおいて、受信したメッセージが、全レーン動作指示を添付され、且つ、Rendezvous Send/Recv,RDMA Put,RDMA Getのいずれかによる「問合せ」メッセージである場合、全レーン動作指示が、メッセージを受信したリンク3に適用される。「問合せ」メッセージを受信した受信ノード10Bは、従来通り、送信ノード10Aに対し応答(Response)を返す。
ネットワークルータ1422もしくはスイッチについて: メッセージが経由するノード10において、ネットワークルータ1422もしくはスイッチは、あるリンク3から受信したメッセージ、またはデータの一部を、転送先への別のリンク3へ送信する。ここでは、メッセージを受けたリンクを受信リンクと呼び、メッセージの転送に使ったリンクを送信リンクと呼ぶ。受信リンク3から送信リンク3へのメッセージの滞留中に、ネットワークインタフェース1421は、そのメッセージに付加されたレーン動作の制御指示を読み取ることができる。読み取った指示が全レーン動作指示であれば、受信リンク3と送信リンク3とにおける全レーン2について電源あるいは入出力ドライバがオン状態に切り換えられる。また、読み取った指示が一部レーン動作停止指示であれば、受信リンク3と送信リンク3とにおける一部のレーン2の電源あるいは入出力ドライバがオフに切り換えられる。
上述したように、本実施形態では、ネットワーク上の対象リンク3の動作状態を制御する指示が、MPIを用いて送信される。MPIを利用するプログラムは、MPIの送信キュー(図8〜図10参照)に通信指示子を投入する。当該通信指示子には、レーンの動作状態を動的に変更する指示(フィールド)が含まれる。また、本実施形態では、MPIのrendezvous Send/RecvやRDMA Putの通信プロトコルで、最初の調停用パケットに通信指示の情報が埋め込まれる。そして、後続するデータ通信のため、経路上の全リンク3に対しレーン動作を切り替える通信指示がメッセージに埋め込まれる。
〔3〕本実施形態の動作
次に、図6および図7を参照しながら、本実施形態に係る情報処理システム1を構成する送信ノード10Aおよび受信ノード10Bの動作について説明する。
まず、図6に示すフローチャート(ステップS101〜S112)に従って、本実施形態の送信ノード10Aの動作(送信側処理)について説明する。
送信ノード10Aが通信を開始すると、まず、送信側検知部11Aは、今回の通信が所定の1対1通信プロトコルに基づくものであるか否か(通信モデルがOKであるか否か)を判断する(ステップS101)。ここでは、上述したように、1対1通信プロトコルとして、rendezvous Send/Recv,RDMA Put,RDMA Getのうちのいずれか一つが用いられているかを判断することで、通信モデルがOKであるか否かが判断される。
上記3種類のプロトコルのいずれも用いられていない場合、通信モデルはNGであると判断され(ステップS101のNOルート)、通常の送信処理が実行される(ステップS112)。一方、上記3種類のプロトコルのうちのいずれか一つが用いられている場合、通信モデルはOKであると判断される(ステップS101のYESルート)。つまり、送信ノード10Aと受信ノード10Bとの間のデータ転送に先立って受信ノード10Bに送信される軽量の「問合せ」メッセージの送信が行なわれるものと判断される。
そして、送信側検知部11Aは、レーン2の立上げを「問合せ」メッセージの通信によって隠蔽可能であるか否か(データサイズがOKであるか否か)を判断する(ステップS102)。このとき、送信側検知部11Aは、当該「問合せ」メッセージの転送時間を算出し、既知のレーン2の立上げ時間Toが、既知のRTTと算出された転送時間との合計値よりも小さいか否かを判断する。
立上げ時間Toが上記合計値以上である場合、データサイズはNGつまりレーン2の立上げを「問合せ」メッセージの通信によって隠蔽できないと判断され(ステップS102のNOルート)、通常の送信処理が実行される(ステップS112)。一方、立上げ時間Toが上記合計値未満である場合、データサイズはOKつまりレーン2の立上げを「問合せ」メッセージの通信によって隠蔽可能であると判断される(ステップS102のYESルート)。そして、送信側通知部12Aは、全レーン動作指示を、「問合せ」メッセージに添付して受信ノード10Bに送信する(ステップS103)。また、送信側制御部13Aは、送信ノード10Aにおいて、全レーン動作指示を行なって(ステップS104)、リンク3の動作状態を、一部レーン動作停止の状態から、全レーン2を動作させた状態に切り換える。
そして、通信プロトコルがrendezvous Send/RecvまたはRDMA Putの場合、つまり当該送信ノード10Aが受信ノード10Bへのデータ転送を行なう場合(ステップS105のYESルート)、送信ノード10Aは、ステップS106の処理へ移行する。送信ノード10Aは、受信ノード10Bからの応答を待機する(ステップS106のNOルートからステップS106)。送信側検知部11Aが受信ノード10Bからの応答を検知すると(ステップS106のYESルート)、送信ノード10Aは、受信ノード10Bからの応答内容に従って、受信ノード10Bへのデータ転送を行なう(ステップS107)。このとき、受信ノード10Bからの応答を受信する前に、全レーン2の立上げは完了しているので、送信ノード10Aは、効率を損なうことなくデータ転送を行なうことができる。
送信ノード10Aは、データ転送を開始すると、当該データ転送を完了するまで待機する(ステップS108のNOルートからステップS107)。当該データ転送を完了すると(ステップS108のYESルート)、送信側通知部12Aは、転送完了(転送完了フラグ)を受信ノード10Bに通知する(ステップS109)。このとき、送信側通知部12Aは、受信ノード10Bに対する一部レーン動作停止指示を送信し、当該一部レーン動作停止指示に転送完了フラグを添付して送信してもよい。本実施形態では、送信側通知部12Aは、一部レーン動作停止指示を送信せず、転送完了フラグのみを送信し、当該転送完了フラグに、一部レーン動作停止指示としての機能も兼させている。
また、送信側制御部13Aは、送信ノード10Aにおいて、一部レーン動作停止指示を行なって(ステップS109)、リンク3の動作状態を、全レーン2を動作させた状態から、一部のレーン2の動作を停止させた一部レーン動作停止の状態に切り換える。この後、送信ノード10Aは、今回の送信側処理を終了する。
一方、通信プロトコルがRDMA Getの場合、つまり受信ノード10Bからのデータ受信を行なう場合(ステップS105のNOルート)、送信ノード10Aは、ステップS110の処理へ移行する。送信ノード10Aは、受信ノード10Bから送信ノード10Aへのデータ転送を完了したことを示す転送完了フラグを受信するまで待機する(ステップS110のNOルートからステップS110)。
送信側検知部11Aが受信ノード10Bからの転送完了フラグを検知すると(ステップS110のYESルート)、送信側制御部13Aは、送信ノード10Aにおいて、一部レーン動作停止指示を行なって(ステップS111)、リンク3の動作状態を、全レーン2を動作させた状態から、一部のレーン2の動作を停止させた一部レーン動作停止の状態に切り換える。この後、送信ノード10Aは今回の送信側処理を終了する。
ついで、図7に示すフローチャート(ステップS201〜S209)に従って、本実施形態の受信ノード10Bの動作(受信側処理)について説明する。
受信ノード10Bが通信を開始すると、まず、受信側検知部11Bは、受信メッセージに添付された指示を参照することで、送信ノード10Aからの全レーン動作指示付きメッセージを受信したか否かを判断する(ステップS201)。受信メッセージに全レーン動作指示が添付されていない場合(ステップS201のNOルート)、受信ノード10Bは、通常の送信処理が実行される(ステップS209)。
受信メッセージに全レーン動作指示が添付されている場合(ステップS201のYESルート)、信側制御部13は、信ノード10において、全レーン動作指示を行なう(ステップS202)。これにより、リンク3の動作状態は、一部レーン動作停止の状態から、全レーン2を動作させた状態に切り換えられる。
そして、通信プロトコルがrendezvous Send/RecvまたはRDMA Putの場合、つまり送信ノード10Aが受信ノード10Bへのデータ転送を行なう場合(ステップS203のNOルート)、受信ノード10Bは、ステップS204の処理へ移行する。受信ノード10Bは、送信ノード10Aから受信ノード10Bへのデータ転送を完了したことを示す転送完了フラグを受信するまで待機する(ステップS204のNOルートからステップS204)。
受信側検知部11Bが送信ノード10Aからの転送完了フラグを検知すると(ステップS204のYESルート)、受信側制御部13Bは、受信ノード10Bにおいて、一部レーン動作停止指示を行なう(ステップS205)。これにより、リンク3の動作状態は、全レーン2を動作させた状態から、一部のレーン2の動作を停止させた一部レーン動作停止の状態に切り換えられる。この後、受信ノード10Bは今回の受信側処理を終了する。
一方、通信プロトコルがRDMA Getの場合、つまり受信ノード10Bから送信ノード10Aへのデータ転送を行なう場合(ステップS203のYESルート)、受信ノード10Bは、ステップS206の処理へ移行する。ステップS206において、受信ノード10Bは、送信ノード10Aから取得した情報(図10の矢印A33参照)に従って、送信ノード10Aへのデータ転送を行なう。
受信ノード10Bは、データ転送を開始すると、当該データ転送を完了するまで待機する(ステップS207のNOルートからステップS206)。当該データ転送を完了すると(ステップS207のYESルート)、受信側通知部12Bは、転送完了(転送完了フラグ)を送信ノード10Aに通知する(ステップS208)。このとき、受信側通知部12Bは、送信ノード10Aに対する一部レーン動作停止指示を送信し、当該一部レーン動作停止指示に転送完了フラグを添付して送信してもよい。本実施形態では、受信側通知部12Bは、一部レーン動作停止指示を送信せず、転送完了フラグのみを送信し、当該転送完了フラグに、一部レーン動作停止指示としての機能も兼させている。
また、受信側制御部13Bは、受信ノード10Bにおいて、一部レーン動作停止指示を行なって(ステップS208)、リンク3の動作状態を、全レーン2を動作させた状態から、一部のレーン2の動作を停止させた一部レーン動作停止の状態に切り換える。この後、受信ノード10Bは今回の受信側処理を終了する。
〔4〕本実施形態のより具体的な動作
次に、図8〜図10を参照しながら、本実施形態の情報処理システム1のより具体的な動作について説明する。前述したように、アプリケーション110がMPIを用いて1対1通信を行なう際に、転送すべきデータのサイズが大きければ、転送経路のリンク3は全レーン2が有効になっていることが望ましい。アプリケーション110は、データ転送量に応じて、リンク3の動作状態を変更する指示を発行することができる。当該指示は、例えば、MPIにおける送信キューへの通信指示子の一部(フィールド)を用いて発行される。データ転送量が多い通信の大部分を、全レーン2が有効な状態で送受信させるためには、1対1通信プロトコルのうち、Rendezvous Send/Recv,RDNA Put,RDMA Getが適している。前述のようにレーン2の電源オン(立上げ)には時間を要するが、上記3種類の1対1通信プロトコルであれば、データ転送開始前に全レーン2を立ち上げた状態にすることが可能である。以下では、当該3種類の1対1通信プロトコルRendezvous Send/Recv,RDNA Put,RDMA Getのそれぞれについて、本実施形態の情報処理システム1の具体的な動作を説明する。
〔4−1〕rendezvous Send/Recv
まず、図8を参照しながら、1対1通信プロトコルがrendezvous Send/Recvである場合の、本実施形態の情報処理システム1の動作について説明する。なお、図8において、送信バッファ10AのCPU141が、Send側メモリ領域14Aを用いて、送信側のプロセス#0を実行する。また、受信バッファ10BのCPU141が、Recv側メモリ領域14Bを用いて、受信側のプロセス#1を実行する。
Rendezvous Send/Recvにおいて、Send側(送信側)のプロセス#0は、送信用関数MPI_Sendを呼び出す(ステップS11参照)。そして、プロセス#0は、データ本体の転送開始前にSend側からRecv側(受信側)へ「転送先バッファ問合せ(Query)」を送信する(ステップS12,矢印A11参照)。このとき、プロセス#0は、「転送先バッファ問合せ」メッセージに、Recv側全レーン動作指示を添付する(ステップS12参照)。また、プロセス#0は、Send側全レーン動作指示を発行する(ステップS13参照)。これにより、Send側の全レーン2の動作状態は、一部レーン動作状態から、レーン立上げ時間To(図1参照)に亘るレーン立上げ状態を経て、全レーン動作状態に切り換えられる。
一方、Recv側(受信側)のプロセス#1は、受信用関数MPI_Recvを呼び出す(ステップS21参照)。そして、プロセス#1は、Recv側全レーン動作指示を添付された「転送先バッファ問合せ」を受信すると、当該問合せに応じた「転送先バッファの通知(Response)」メッセージを返信する(ステップS22,矢印A12参照)。なお、「転送先バッファの通知」には、Send側からの転送データを書き込むべきRecv側メモリ領域14Bにおける受信バッファ(Recv Buffer)のアドレス情報が含まれる。また、プロセス#1は、Recv側全レーン動作指示を発行する(ステップS23参照)。これにより、Recv側の全レーン2の動作状態は、一部レーン動作状態からレーン立上げ状態を経て全レーン動作状態に切り換えられる。
Send側では、「転送先バッファの通知」がRecv側から戻ってきてから、データ転送が開始される(ステップS14参照)。このとき、Send側において全レーン2の立上げを完了させて全レーン動作状態に切り換えるのに十分な時間がある。また、Recv側もデータを受信するまでには、Recv側全レーン動作指示の発行後、十分な時間が経過している。したがって、データ転送を開始する時点で、Send側およびRecv側で全レーン2の立上げが完了しているので、Send側からRecv側へのデータ転送が、効率を損なうことなく行なわれる。なお、転送すべきデータは、Send側メモリ領域14Aの送信バッファ(Send Buffer)に保存され、送信バッファから読み出されたデータが、Recv側へ転送され、Recv側メモリ領域14Bの受信バッファに書き込まれる(矢印A13参照)。
なお、Rendezvous Send/Recvのメッセージに添付される「レーン2の動作を切り替える指示」は、データ転送経路上の全リンク3に対し影響を与える。Send側およびRecv側以外の隣接リンク間転送は、ネットワークインタフェース1421による制御の一部として扱う。隣接リンク間転送に際し、ノード10は、レーン動作切替指示(全レーン動作指示/一部レーン動作停止指示)付きの「問合せ」メッセージを受信すると、当該指示に従って受信側のリンク3のレーン動作状態を変更する。受信したメッセージは、そのまま送信側のリンク3へ送出される。その際、ノード10は、当該指示に従って送信側のリンク3のレーン動作状態を変更する。
ここまで、Rendezvous Send/Recvについて、データ転送前に通信経路のリンク3を全レーン動作状態に変更する動作を説明した。次に、Rendezvous Send/Recvについて、データ転送を完了した後、消費電力を削減すべく、全レーン動作状態から、一部レーン2のみが動作する状態つまり一部レーン動作停止状態に変更する動作について説明する。つまり、広い帯域幅(全レーン2)を必要とする通信(データ転送)を完了すると、省電力のためにレーン2が一部のみ動作する状態に変更するように一部レーン動作停止指示を発行する。当該一部レーン動作停止指示は、データ転送を行なっていた側(Rendezvous Send/RecvではSend側)によって発行される。なお、当該一部レーン動作停止指示は、最終の転送データの後に転送完了フラグを兼ねて添付されてもよいし、転送完了フラグを送信するメッセージに添付されてもよい。
図8に示すように、Rendezvous Send/Recvにおいて、Send側のプロセス#0は、データ転送を完了すると、転送完了フラグのメッセージをRecv側に送信する(ステップS15,矢印A14参照)。このとき、上述したように、転送完了フラグがRecv側一部レーン動作停止指示としての機能を兼ねてもよいし、転送完了フラグのメッセージにRecv側一部レーン動作停止指示が添付されてもよい。
プロセス#0は、転送完了フラグの送信後、直下のリンク3に対し、一部レーン動作停止指示を発行する(ステップS16参照)。これにより、Send側のレーンの動作状態は、全レーン動作状態から、一部レーン動作停止状態つまり一部レーン動作状態に切り換えられる。
一方、転送完了フラグ(Recv側一部レーン動作停止指示)を受けたRecv側のプロセス#1は、Recv側メモリ領域14Bに転送完了フラグをセットするとともに、データ転送の完了を確認する(ステップS24参照)。そして、プロセス#1は、直下のリンク3に対し、一部レーン動作停止指示を発行する(ステップS25参照)。これにより、Recv側のレーンの動作状態は、全レーン動作状態から、一部レーン動作停止状態つまり一部レーン動作状態に切り換えられる。
〔4−2〕RDMA Put
次に、図9を参照しながら、1対1通信プロトコルがRDMA Putである場合の、本実施形態の情報処理システム1の動作について説明する。なお、図9において、送信バッファ10AのCPU141が、Caller側メモリ領域14Aを用いて、送信側のプロセス#0を実行する。また、受信バッファ10BのCPU141が、Target側メモリ領域14Bを用いて、受信側のプロセス#1を実行する。
RDMAPutでは、Caller側(送信側)のメモリ領域14A上のコーラーウインドウ(Caller Window)から、Target側(受信側)のメモリ領域14B上のターゲットウインドウ(Target Window)へデータが転送される。当該転送を実行するには、Caller側のプロセス#1は、ターゲットウインドウのアドレスが必要である。このため、Caller側のプロセス#0は、データ転送開始前に送信用関数MPI_Putを呼び出し(ステップS31参照)、Caller側からTarget側へ「Target Windowの問合せ(Query)」メッセージを送信し(ステップS32,矢印A21参照)、Target側からの応答(Response)を待つ。
このとき、プロセス#0は、「Target Windowの問合せ」に、Target側全レーン動作指示を添付する(ステップS32参照)。また、プロセス#0は、Caller側全レーン動作指示を発行する(ステップS33参照)。これにより、Caller側の全レーン2の動作状態は、一部レーン動作状態から、レーン立上げ時間To(図1参照)に亘るレーン立上げ状態を経て、全レーン動作状態に切り換えられる。
一方、Target側のプロセス#1は、Target側全レーン動作指示を添付された「Target Windowの問合せ」を受信すると、当該問合せに応じた「Target Windowの通知(Response)」メッセージを返信する(ステップS41,矢印A22参照)。なお、「Target Windowの通知」には、Caller側からの転送データを書き込むべきTarget側メモリ領域14Bにおけるターゲットウインドウのアドレス情報が含まれる。また、プロセス#1は、Target側全レーン動作指示を発行する(ステップS42参照)。これにより、Target側の全レーン2の動作状態は、一部レーン動作状態からレーン立上げ状態を経て全レーン動作状態に切り換えられる。
Caller側では、「Target Windowの通知」がTarget側から戻ってきてから、データ転送が開始される(ステップS34参照)。このとき、Caller側において全レーン2の立上げを完了させて全レーン動作状態に切り換えるのに十分な時間がある。一方、Target側では、「Target Windowの通知」を送信した後、最初のデータを受信するまでに、メッセージやデータがCaller-Target間を1往復する時間が経過しているので、Target側も全レーン動作状態に変更するのに十分な時間が経過している。したがって、データ転送を開始する時点で、Caller側およびTarget側で全レーン2の立上げが完了しているので、Caller側からTarget側へのデータ転送が、効率を損なうことなく行なわれる(矢印A23参照)。
なお、RDMA Putのメッセージに添付される「レーン2の動作を切り替える指示」も、データ転送経路上全リンクに対し影響を与える。Caller側およびTarget側以外の隣接リンク間転送は、ネットワークインタフェース1421による制御の一部として扱う。隣接リンク間転送に際し、ノード10は、レーン動作切替指示(全レーン動作指示/一部レーン動作停止指示)付きの「問合せ」メッセージを受信すると、当該指示に従って受信側のリンク3のレーン動作状態を変更する。受信したメッセージは、そのまま送信側のリンク3へ送出される。その際、ノード10は、当該指示に従って送信側のリンク3のレーン動作状態を変更する。
ここまで、RDMA Putについて、データ転送前に通信経路のリンク3を全レーン動作状態に変更する動作を説明した。次に、RDMA Putについて、データ転送を完了した後、消費電力を削減すべく、全レーン動作状態から、一部レーン2のみが動作する状態つまり一部レーン動作停止状態に変更する動作について説明する。つまり、広い帯域幅(全レーン2)を必要とする通信(データ転送)を完了すると、省電力のためにレーン2が一部のみ動作する状態に変更するように一部レーン動作停止指示を発行する。当該一部レーン動作停止指示は、データ転送を行なっていた側(RDMA PutではCaller側)によって発行される。なお、当該一部レーン動作停止指示は、最終の転送データの後に転送完了フラグを兼ねて添付されてもよいし、転送完了フラグを送信するメッセージに添付されてもよい。
図9に示すように、RDMA Putにおいて、Caller側のプロセス#0は、データ転送を完了すると、転送完了フラグのメッセージをTarget側に送信する(ステップS35,矢印A24参照)。このとき、上述したように、転送完了フラグがTarget側一部レーン動作停止指示としての機能を兼ねてもよいし、転送完了フラグのメッセージにTarget側一部レーン動作停止指示が添付されてもよい。
プロセス#0は、転送完了フラグの送信後、直下のリンク3に対し、一部レーン動作停止指示を発行する(ステップS36参照)。これにより、Caller側のレーンの動作状態は、全レーン動作状態から、一部レーン動作停止状態つまり一部レーン動作状態に切り換えられる。
一方、転送完了フラグ(Target側一部レーン動作停止指示)を受けたTarget側のプロセス#1は、Target側メモリ領域14Bに転送完了フラグをセットするとともに、データ転送の完了を確認する(ステップS43参照)。そして、プロセス#1は、直下のリンク3に対し、一部レーン動作停止指示を発行する(ステップS44参照)。これにより、Target側のレーンの動作状態は、全レーン動作状態から、一部レーン動作停止状態つまり一部レーン動作状態に切り換えられる。
〔4−3〕RDMA Get
次に、図10を参照しながら、1対1通信プロトコルがRDMA Getである場合の、本実施形態の情報処理システム1の動作について説明する。なお、図10において、送信バッファ10AのCPU141が、Caller側メモリ領域14Aを用いて、送信側のプロセス#0を実行する。また、受信バッファ10BのCPU141が、Target側メモリ領域14Bを用いて、受信側のプロセス#1を実行する。
RDMA Getによるデータ転送の方向は、RDMA Putによるデータ転送の方向と逆で、RDMA Getでは、Caller側(送信側)のプロセス#0の要求により、Target側(受信側)からCaller側へデータが転送される。つまり、RDMA Getでは、後述するごとくCaller側からのGet Requestを受けたTarget側のプロセス#1は、Target WindowからCaller Windowへデータが転送される。このため、Target側のプロセス#1は、Caller Windowのアドレスが必要であり、Caller側のプロセス#0は、Get Requestを発行するために、Target Windowの情報(アドレスを含む)が必要である。
このようなRDMA Getでは、Caller側のプロセス#0は、データ転送開始前に送信用関数MPI_Getを呼び出し(ステップS51参照)、Caller側からTarget側へ「Target Windowの問合せ(Query)」メッセージを送信し(ステップS52,矢印A31参照)、Target側からの応答(Response)を待つ。
このとき、プロセス#0は、「Target Windowの問合せ」に、Target側全レーン動作指示を添付する(ステップS52参照)。また、プロセス#0は、Caller側全レーン動作指示を発行する(ステップS53参照)。これにより、Caller側の全レーン2の動作状態は、一部レーン動作状態から、レーン立上げ時間To(図1参照)に亘るレーン立上げ状態を経て、全レーン動作状態に切り換えられる。
一方、Target側のプロセス#1は、Target側全レーン動作指示を添付された「Target Windowの問合せ」を受信すると、当該問合せに応じた「Target Windowの通知(Response)」を返信する(ステップS61,矢印A32参照)。なお、「Target Windowの通知」には、Caller側からの転送データを書き込むべきTarget側メモリ領域14BにおけるTarget Windowのアドレス情報が含まれる。また、プロセス#1は、Target側全レーン動作指示を発行する(ステップS62参照)。これにより、Target側の全レーン2の動作状態は、一部レーン動作状態からレーン立上げ状態を経て全レーン動作状態に切り換えられる。
Caller側に「Target Windowの通知」がTarget側から戻ってくると、プロセス#0は、Target側に「データ転送依頼」メッセージ(Get Response)を送信する(ステップS54,矢印A33)。その際、データ転送依頼メッセージに、転送データを書き込むべきCaller側メモリ領域14A上のCaller Windowのアドレス情報が添付される。
Target側では、Caller側からの「データ転送依頼」を受けてから、データ転送が開始される(ステップS63参照)。このとき、Caller側がデータを受信するのは、Caller側が「Target Windowの通知」を受けさらにTarget側に「データ転送依頼」を送信した後である。つまり、メッセージやデータがCaller-Target間を2往復する時間が経過しているので、Caller側で全レーン動作状態に変更するのに十分な時間が経過している。また、Target側でも、データの転送開始する前に、メッセージがCaller-Target間を1往復する時間が経過しているので、全レーン動作状態に変更するのに十分な時間が経過している。したがって、データ転送を開始する時点で、Caller側およびTarget側で全レーン2の立上げが完了しているので、Caller側からTarget側へのデータ転送が、効率を損なうことなく行なわれる(矢印A34参照)。
なお、RDMA Getのメッセージに添付される「レーン2の動作を切り替える指示」も、データ転送経路上全リンクに対し影響を与える。Caller側およびTarget側以外の隣接リンク間転送は、ネットワークインタフェース1421による制御の一部として扱う。隣接リンク間転送に際し、ノード10は、レーン動作切替指示(全レーン動作指示/一部レーン動作停止指示)付きの「問合せ」メッセージを受信すると、当該指示に従って受信側のリンク3のレーン動作状態を変更する。受信したメッセージは、そのまま送信側のリンク3へ送出される。その際、ノード10は、当該指示に従って送信側のリンク3のレーン動作状態を変更する。
ここまで、RDMA Getについて、データ転送前に通信経路のリンク3を全レーン動作状態に変更する動作を説明した。次に、RDMA Getについて、データ転送を完了した後、消費電力を削減すべく、全レーン動作状態から、一部レーン2のみが動作する状態つまり一部レーン動作停止状態に変更する動作について説明する。つまり、広い帯域幅(全レーン2)を必要とする通信(データ転送)を完了すると、省電力のためにレーン2が一部のみ動作する状態に変更するように一部レーン動作停止指示を発行する。当該一部レーン動作停止指示は、データ転送を行なっていた側(RDMA GetではTarget側)によって発行される。なお、当該一部レーン動作停止指示は、最終の転送データの後に転送完了フラグを兼ねて添付されてもよいし、転送完了フラグを送信するメッセージに添付されてもよい。
図10に示すように、RDMA Getにおいて、Target側のプロセス#1は、データ転送を完了すると、転送完了フラグのメッセージをCaller側に送信する(ステップS64,矢印A35参照)。このとき、上述したように、転送完了フラグがCaller側一部レーン動作停止指示としての機能を兼ねてもよいし、転送完了フラグのメッセージにCaller側一部レーン動作停止指示が添付されてもよい。
プロセス#1は、転送完了フラグの送信後、直下のリンク3に対し、一部レーン動作停止指示を発行する(ステップS65参照)。これにより、Target側のレーンの動作状態は、全レーン動作状態から、一部レーン動作停止状態つまり一部レーン動作状態に切り換えられる。
一方、転送完了フラグ(Caller側一部レーン動作停止指示)を受けたCaller側のプロセス#0は、Caller側メモリ領域14Aに転送完了フラグをセットするとともに、データ転送の完了を確認する(ステップS55参照)。そして、プロセス#0は、直下のリンク3に対し、一部レーン動作停止指示を発行する(ステップS56参照)。これにより、Caller側のレーンの動作状態は、全レーン動作状態から、一部レーン動作停止状態つまり一部レーン動作状態に切り換えられる。
〔5〕本実施形態の効果
このように、本実施形態の情報処理システム1によれば、データ転送を開始する前に当該データ転送に必要な情報を取得する期間(図1の立上げ時間To参照)を利用して、レーン2の立上げが行なわれ、レーン2の立上げ時間が隠蔽される。これにより、レーン2の立上げ時間がデータ本体の通信遅延時間に加算されることが抑止され、十分な帯域を用いてデータ本体を転送することが可能になる。したがって、計算効率の低下を招くことなく、情報処理システム1全体の消費電力が削減される。
つまり、アプリケーション110の通信パターンなどの利用状況に応じて、高速シリアルリンク3の動作状態を明示的に指示することで、大規模計算機としての情報処理システム1全体の消費電力を削減することができる。さらに換言すると、アプリケーション110や通信ライブラリ1221やネットワークインタフェース1421が通信量やタイミングを考慮してリンク3の動作状態を制御することにより、情報処理システム1全体の消費電力が削減される。なお、本実施形態では、アプリケーション110が明示的な指示を行なうべく、ユーザレベルのインタフェース(例えばMPI)が実装される。また、高速シリアルリンク3は、その動作状況を外部制御によって制御可能にしている。高速シリアルリンク3の外部制御の手法は、特定の手法に限定されるものではない。
〔6〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
本実施形態において、データ転送時のレーン動作状態では全てのレーン2を動作させているが、これに限定されるものではなく、データ転送時のレーン動作状態で動作させるレーン2の数は、一部レーン動作状態で動作させるレーン2の数よりも多ければよい。また、一部レーン動作状態で動作させるレーン2もしくは停止させるレーン2は、公知の手法によって決定することができる。
ところで、Send/Recvプロトコルは、データ転送を開始する前に当該データ転送に必要な情報を取得する期間を有するものではないため、本実施形態においてSend/Recvプロトコルは対象になっていない。アプリケーションの通信時間と消費電力との関係を考慮した上で、Send/RecvプロトコルとRendezvous Send/Recvプロトコルとのいずれを用いるか決定するようにしてもよい。例えば、広い帯域を必要としない(つまりデータ量が少ない)レイテンシ重視のデータ転送を実行する場合には、Send/Recvプロトコルが選択される。一方、広い帯域を必要するデータ転送を実行する場合には、Rendezvous Send/Recvプロトコルが選択され、さらに上述した本実施形態の制御が適用されるように構成することも考えられる。
また、MPIを使用しない場合、つまり管理ソフトウエア(SVP150)経由で全てのリンク3を制御している場合、以下のような制御が行なわれる。つまり、ネットワーク上の特定のリンクが指定され、指定されたリンク両端のハードウエアにレーン2の動作制御指示が送信され、レーン2のオン/オフが制御される。また、アプリケーション110は、管理ソフトウエアに対し、ネットワーク上のどのリンク3を制御したいか依頼する。制御ソフトウエアは、システム全体の使用率などを考慮し、制御パケットをそのリンク3に対し送信する。送信のプロトコルは、MPIと同等である。そして、制御パケットを受信したネットワークインタフェース1421は、リンク3の動作を制御する。
また、例えばネットワークとしてInfiniBandを用いる場合、ベンダ用に用意されているヘッダの領域が利用される。つまり、当該領域を用いて、リンク3の動作指示メッセージが送受信される。HCA(Host Channel Adapter)は、ファームウエアを変更しリンク3の動作状態を制御することが可能である。スイッチやルータ1422は、スイッチの制御ファームウエア等のSMA(Subnet Manager Agent)を改変する。
さらに、ユーザ(アプリケーション110)に、どのリンク3に対し指示(全レーン動作指示,一部レーン動作停止指示,レーン数増加指示,レーン数減少指示)を発行するかの決定を任せるように構成することも可能である。この場合、ユーザ(アプリケーション110)には、ネットワークトポロジや現在の負荷状況を参照させ、どのリンク3を制御するかを判断させるように構成する。
〔7〕付記
以上の各実施形態を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
複数のレーンを有する通信経路を介して接続される送信側情報処理装置と受信側情報処理装置とを有する情報処理システムであって、
前記送信側情報処理装置は、
前記送信側情報処理装置と前記受信側情報処理装置との間のデータ転送に先立って前記受信側情報処理装置に送信される、前記データ転送に係る転送情報を検知する送信側検知部と、
前記送信側検知部が前記転送情報を検知すると、レーン数増加指示を前記受信側情報処理装置に通知する送信側通知部と、
前記送信側検知部が前記転送情報を検知すると、前記データ転送に使用する前記レーンの数を、前記転送情報の送信に使用する前記レーンの数よりも増加させる送信側制御部と、を有し、
前記受信側情報処理装置は、
前記送信側情報処理装置からの前記レーン数増加指示を検知する受信側検知部と、
前記受信側検知部が前記レーン数増加指示を検知すると、前記データ転送に使用する前記レーンの数を、前記転送情報の受信に使用する前記レーンの数よりも増加させる受信側制御部と、を有する、情報処理システム。
(付記2)
前記送信側検知部は、前記転送情報として、前記データ転送によるデータ転送量よりもデータ量の少ない転送情報を検知する、付記1記載の情報処理システム。
(付記3)
前記送信側検知部は、前記レーンの立上げに要する時間が、前記転送情報に係る往復遅延時間と前記転送情報の転送に要する転送時間との合計値未満になる、前記転送情報を検知する、付記1または付記2に記載の情報処理システム。
(付記4)
前記送信側通知部は、前記レーン数増加指示を、前記転送情報に添付して前記受信側情報処理装置に通知する、付記1〜付記3のいずれか一項に記載の情報処理システム。
(付記5)
前記転送情報の送信または受信に使用する前記レーンの数は、前記複数のレーンの一部の数であり、前記データ転送に使用する前記レーンの数は、前記複数のレーンの全ての数である、付記1〜付記4のいずれか一項に記載の情報処理システム。
(付記6)
前記送信側通知部は、前記送信側情報処理装置が前記受信側情報処理装置への前記データ転送を完了すると、転送完了を前記受信側情報処理装置に通知し、
前記送信側制御部は、前記送信側情報処理装置が前記受信側情報処理装置への前記データ転送を完了すると、前記データ転送の完了後の通信に使用する前記レーンの数を、前記データ転送に使用する前記レーンの数よりも減少させ、
前記受信側制御部は、前記受信側検知部が前記送信側情報処理装置からの前記転送完了を検知すると、前記データ転送の完了後の通信に使用する前記レーンの数を、前記データ転送に使用する前記レーンの数よりも減少させる、付記1〜付記5のいずれか一項に記載の情報処理システム。
(付記7)
前記受信側情報処理装置は、
前記受信側情報処理装置が前記送信側情報処理装置への前記データ転送を完了すると、転送完了を前記送信側情報処理装置に通知する受信側通知部をさらに有し、
前記受信側制御部は、前記受信側情報処理装置が前記送信側情報処理装置への前記データ転送を完了すると、前記データ転送の完了後の通信に使用する前記レーンの数を、前記データ転送に使用する前記レーンの数よりも減少させ、
前記送信側制御部は、前記送信側検知部が前記受信側情報処理装置からの前記転送完了を検知すると、前記データ転送の完了後の通信に使用する前記レーンの数を、前記データ転送に使用する前記レーンの数よりも減少させる、付記1〜付記5のいずれか一項に記載の情報処理システム。
(付記8)
前記データ転送に使用する前記レーンの数は、前記複数のレーンの全ての数であり、前記データ転送の完了後の通信に使用する前記レーンの数は、前記複数のレーンの一部の数である、付記6または付記7のいずれか一項に記載の情報処理システム。
(付記9)
複数のレーンを有する通信経路を介して受信側情報処理装置と接続される送信側情報処理装置であって、
前記送信側情報処理装置と前記受信側情報処理装置との間のデータ転送に先立って前記受信側情報処理装置に送信される、前記データ転送に係る転送情報を検知する送信側検知部と、
前記送信側検知部が前記転送情報を検知すると、レーン数増加指示を前記受信側情報処理装置に通知する送信側通知部と、
前記送信側検知部が前記転送情報を検知すると、前記データ転送に使用する前記レーンの数を、前記転送情報の送信に使用する前記レーンの数よりも増加させる送信側制御部と、を有する、情報処理装置。
(付記10)
前記送信側検知部は、前記転送情報として、前記データ転送によるデータ転送量よりもデータ量の少ない転送情報を検知する、付記9記載の情報処理装置。
(付記11)
前記送信側検知部は、前記レーンの立上げに要する時間が、前記転送情報に係る往復遅延時間と前記転送情報の転送に要する転送時間との合計値未満になる、前記転送情報を検知する、付記9または付記10に記載の情報処理装置。
(付記12)
前記送信側通知部は、前記レーン数増加指示を、前記転送情報に添付して前記受信側情報処理装置に通知する、付記9〜付記11のいずれか一項に記載の情報処理装置。
(付記13)
前記転送情報の送信または受信に使用する前記レーンの数は、前記複数のレーンの一部の数であり、前記データ転送に使用する前記レーンの数は、前記複数のレーンの全ての数である、付記9〜付記12のいずれか一項に記載の情報処理装置。
(付記14)
複数のレーンを有する通信経路を介して送信側情報処理装置と接続される受信側情報処理装置であって、
前記送信側情報処理装置と前記受信側情報処理装置との間のデータ転送に先立って前記受信側情報処理装置に送信される前記データ転送に係る転送情報の検知に伴い前記送信側情報処理装置から前記受信側情報処理装置に通知されるレーン数増加指示を検知する受信側検知部と、
前記受信側検知部が前記レーン数増加指示を検知すると、前記データ転送に使用する前記レーンの数を、前記転送情報の受信に使用する前記レーンの数よりも増加させる受信側制御部と、を有する、情報処理装置。
(付記15)
前記転送情報の送信または受信に使用する前記レーンの数は、前記複数のレーンの一部の数であり、前記データ転送に使用する前記レーンの数は、前記複数のレーンの全ての数である、付記14記載の情報処理装置。
(付記16)
複数のレーンを有する通信経路を介して接続される送信側情報処理装置と受信側情報処理装置とを有する情報処理システムの制御方法であって、
前記送信側情報処理装置は、
前記送信側情報処理装置と前記受信側情報処理装置との間のデータ転送に先立って前記受信側情報処理装置に送信される、前記データ転送に係る転送情報を検知すると、レーン数増加指示を前記受信側情報処理装置に通知し、
前記データ転送に使用する前記レーンの数を、前記転送情報の送信に使用する前記レーンの数よりも増加させ、
前記受信側情報処理装置は、
前記送信側情報処理装置からの前記レーン数増加指示を検知すると、前記データ転送に使用する前記レーンの数を、前記転送情報の受信に使用する前記レーンの数よりも増加させる、情報処理システムの制御方法。
(付記17)
前記送信側情報処理装置は、前記転送情報として、前記データ転送によるデータ転送量よりもデータ量の少ない転送情報を検知する、付記16記載の情報処理システムの制御方法。
(付記18)
前記送信側情報処理装置は、前記レーンの立上げに要する時間が、前記転送情報に係る往復遅延時間と前記転送情報の転送に要する転送時間との合計値未満になる、前記転送情報を検知する、付記16または付記17に記載の情報処理システムの制御方法。
(付記19)
前記送信側情報処理装置は、前記レーン数増加指示を、前記転送情報に添付して前記受信側情報処理装置に通知する、付記16〜付記18のいずれか一項に記載の情報処理システムの制御方法。
(付記20)
前記転送情報の送信または受信に使用する前記レーンの数は、前記複数のレーンの一部の数であり、前記データ転送に使用する前記レーンの数は、前記複数のレーンの全ての数である、付記16〜付記19のいずれか一項に記載の情報処理システムの制御方法。
1 情報処理システム
2 レーン
3 高速シリアルリンク
4 計算用ネットワーク
5 運用・管理用ネットワーク
10 情報処理装置(ノード,計算ノード)
10A 送信側情報処理装置(送信ノード)
10B 受信側情報処理装置(受信ノード)
11A 送信側検知部
11B 受信側検知部
12A 送信側通知部
12B 受信側通知部
13A 送信側制御部
13B 受信側制御部
14A 送信側メモリ領域(Send側メモリ領域,Caller側メモリ領域)
14B 受信側メモリ領域(Recv側メモリ領域,Target側メモリ領域)
20 SVP(マスタ)
30 SWネットワーク
110 アプリケーション(上位ソフトウエア)
120 ミドルウエア
121 運用管理機能
122 言語システム
1221 MPIライブラリ(通信ライブラリ)
130 OS
131 デバイスドライバ
140 ハードウエア
141 CPU
142 インタコネクト(通信経路)
1421 ネットワークインタフェース
1422 ネットワークルータ
150 SVP(スレーブ;管理ソフトウエア)

Claims (10)

  1. 複数のレーンを有する通信経路を介して接続される送信側情報処理装置と受信側情報処理装置とを有する情報処理システムであって、
    前記送信側情報処理装置は、
    前記送信側情報処理装置と前記受信側情報処理装置との間のデータ転送に先立って前記受信側情報処理装置に送信される、前記データ転送に係る転送情報であって、前記レーンの立上げに要する時間が、前記転送情報に係る往復遅延時間と前記転送情報の転送に要する転送時間との合計値未満になる、前記転送情報を検知する送信側検知部と、
    前記送信側検知部が前記転送情報を検知すると、レーン数増加指示を前記受信側情報処理装置に通知する送信側通知部と、
    前記送信側検知部が前記転送情報を検知すると、前記データ転送に使用する前記レーンの数を、前記転送情報の送信に使用する前記レーンの数よりも増加させる送信側制御部と、を有し、
    前記受信側情報処理装置は、
    前記送信側情報処理装置からの前記レーン数増加指示を検知する受信側検知部と、
    前記受信側検知部が前記レーン数増加指示を検知すると、前記データ転送に使用する前記レーンの数を、前記転送情報の受信に使用する前記レーンの数よりも増加させる受信側制御部と、を有する、情報処理システム。
  2. 前記送信側検知部は、前記転送情報として、前記データ転送によるデータ転送量よりもデータ量の少ない転送情報を検知する、請求項1記載の情報処理システム。
  3. 前記送信側通知部は、前記レーン数増加指示を、前記転送情報に添付して前記受信側情報処理装置に通知する、請求項1または請求項に記載の情報処理システム。
  4. 前記転送情報の送信または受信に使用する前記レーンの数は、前記複数のレーンの一部の数であり、前記データ転送に使用する前記レーンの数は、前記複数のレーンの全ての数である、請求項1〜請求項のいずれか一項に記載の情報処理システム。
  5. 前記送信側通知部は、前記送信側情報処理装置が前記受信側情報処理装置への前記データ転送を完了すると、転送完了を前記受信側情報処理装置に通知し、
    前記送信側制御部は、前記送信側情報処理装置が前記受信側情報処理装置への前記データ転送を完了すると、前記データ転送の完了後の通信に使用する前記レーンの数を、前記データ転送に使用する前記レーンの数よりも減少させ、
    前記受信側制御部は、前記受信側検知部が前記送信側情報処理装置からの前記転送完了を検知すると、前記データ転送の完了後の通信に使用する前記レーンの数を、前記データ転送に使用する前記レーンの数よりも減少させる、請求項1〜請求項のいずれか一項に記載の情報処理システム。
  6. 前記受信側情報処理装置は、
    前記受信側情報処理装置が前記送信側情報処理装置への前記データ転送を完了すると、転送完了を前記送信側情報処理装置に通知する受信側通知部をさらに有し、
    前記受信側制御部は、前記受信側情報処理装置が前記送信側情報処理装置への前記データ転送を完了すると、前記データ転送の完了後の通信に使用する前記レーンの数を、前記データ転送に使用する前記レーンの数よりも減少させ、
    前記送信側制御部は、前記送信側検知部が前記受信側情報処理装置からの前記転送完了
    を検知すると、前記データ転送の完了後の通信に使用する前記レーンの数を、前記データ転送に使用する前記レーンの数よりも減少させる、請求項1〜請求項のいずれか一項に記載の情報処理システム。
  7. 前記データ転送に使用する前記レーンの数は、前記複数のレーンの全ての数であり、前記データ転送の完了後の通信に使用する前記レーンの数は、前記複数のレーンの一部の数である、請求項または請求項のいずれか一項に記載の情報処理システム。
  8. 複数のレーンを有する通信経路を介して受信側情報処理装置と接続される送信側情報処理装置であって、
    前記送信側情報処理装置と前記受信側情報処理装置との間のデータ転送に先立って前記受信側情報処理装置に送信される、前記データ転送に係る転送情報であって、前記レーンの立上げに要する時間が、前記転送情報に係る往復遅延時間と前記転送情報の転送に要する転送時間との合計値未満になる、前記転送情報を検知する送信側検知部と、
    前記送信側検知部が前記転送情報を検知すると、レーン数増加指示を前記受信側情報処理装置に通知する送信側通知部と、
    前記送信側検知部が前記転送情報を検知すると、前記データ転送に使用する前記レーンの数を、前記転送情報の送信に使用する前記レーンの数よりも増加させる送信側制御部と、を有する、情報処理装置。
  9. 複数のレーンを有する通信経路を介して送信側情報処理装置と接続される受信側情報処理装置であって、
    前記送信側情報処理装置と前記受信側情報処理装置との間のデータ転送に先立って前記受信側情報処理装置に送信される前記データ転送に係る転送情報の検知であって、前記レーンの立上げに要する時間が、前記転送情報に係る往復遅延時間と前記転送情報の転送に要する転送時間との合計値未満になる、前記転送情報の検知に伴い前記送信側情報処理装置から前記受信側情報処理装置に通知されるレーン数増加指示を検知する受信側検知部と、
    前記受信側検知部が前記レーン数増加指示を検知すると、前記データ転送に使用する前記レーンの数を、前記転送情報の受信に使用する前記レーンの数よりも増加させる受信側制御部と、を有する、情報処理装置。
  10. 複数のレーンを有する通信経路を介して接続される送信側情報処理装置と受信側情報処理装置とを有する情報処理システムの制御方法であって、
    前記送信側情報処理装置は、
    前記送信側情報処理装置と前記受信側情報処理装置との間のデータ転送に先立って前記受信側情報処理装置に送信される、前記データ転送に係る転送情報であって、前記レーンの立上げに要する時間が、前記転送情報に係る往復遅延時間と前記転送情報の転送に要する転送時間との合計値未満になる、前記転送情報を検知すると、レーン数増加指示を前記受信側情報処理装置に通知し、
    前記データ転送に使用する前記レーンの数を、前記転送情報の送信に使用する前記レーンの数よりも増加させ、
    前記受信側情報処理装置は、
    前記送信側情報処理装置からの前記レーン数増加指示を検知すると、前記データ転送に使用する前記レーンの数を、前記転送情報の受信に使用する前記レーンの数よりも増加させる、情報処理システムの制御方法。
JP2014173535A 2014-08-28 2014-08-28 情報処理システム、情報処理装置、及び情報処理システムの制御方法 Active JP6369224B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014173535A JP6369224B2 (ja) 2014-08-28 2014-08-28 情報処理システム、情報処理装置、及び情報処理システムの制御方法
US14/833,382 US10223323B2 (en) 2014-08-28 2015-08-24 Apparatus and method for controlling the number of lanes used for transferring data between information processing apparatuses

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014173535A JP6369224B2 (ja) 2014-08-28 2014-08-28 情報処理システム、情報処理装置、及び情報処理システムの制御方法

Publications (2)

Publication Number Publication Date
JP2016048500A JP2016048500A (ja) 2016-04-07
JP6369224B2 true JP6369224B2 (ja) 2018-08-08

Family

ID=55402670

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014173535A Active JP6369224B2 (ja) 2014-08-28 2014-08-28 情報処理システム、情報処理装置、及び情報処理システムの制御方法

Country Status (2)

Country Link
US (1) US10223323B2 (ja)
JP (1) JP6369224B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10412673B2 (en) 2017-05-28 2019-09-10 Mellanox Technologies Tlv Ltd. Power-efficient activation of multi-lane ports in a network element
JPWO2023032128A1 (ja) * 2021-09-02 2023-03-09
JPWO2023032127A1 (ja) * 2021-09-02 2023-03-09

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09326873A (ja) * 1996-06-04 1997-12-16 Toshiba Corp 情報伝送システム
US7136953B1 (en) * 2003-05-07 2006-11-14 Nvidia Corporation Apparatus, system, and method for bus link width optimization
US7844767B2 (en) * 2004-05-21 2010-11-30 Intel Corporation Method for identifying bad lanes and exchanging width capabilities of two CSI agents connected across a link
US7757020B2 (en) 2005-06-29 2010-07-13 Intel Corporation Point-to-point link negotiation method and apparatus
US7447824B2 (en) * 2005-10-26 2008-11-04 Hewlett-Packard Development Company, L.P. Dynamic lane management system and method
JP5377091B2 (ja) 2009-06-05 2013-12-25 キヤノン株式会社 情報処理装置及びその制御方法
JP2011123798A (ja) 2009-12-14 2011-06-23 Nec Computertechno Ltd データ転送装置及び方法
JP2011186894A (ja) * 2010-03-10 2011-09-22 Ricoh Co Ltd データ転送装置、画像処理装置、データ転送方法、データ転送プログラム及び記録媒体
JP4977769B2 (ja) 2010-03-17 2012-07-18 株式会社日立製作所 データ伝送システムおよびデータ伝送装置
CN104575358B (zh) * 2010-11-19 2017-05-24 夏普株式会社 数据传送电路、数据传送方法、显示装置、主机侧装置以及电子设备
JP2014155108A (ja) * 2013-02-12 2014-08-25 Ricoh Co Ltd スイッチ装置およびデータ転送方法
US9229525B2 (en) * 2013-06-17 2016-01-05 Apple Inc. Adaptive latency tolerance for power management of memory bus interfaces

Also Published As

Publication number Publication date
US10223323B2 (en) 2019-03-05
JP2016048500A (ja) 2016-04-07
US20160062943A1 (en) 2016-03-03

Similar Documents

Publication Publication Date Title
US10205653B2 (en) Fabric discovery for a cluster of nodes
US10749993B2 (en) Path selection using TCP handshake in a multipath environment
US7830882B2 (en) Switch scaling for virtualized network interface controllers
JP5992058B2 (ja) データモード時に順方向誤り訂正を解決するよう構成されているネットワークシステム
JP4838400B1 (ja) ファイバ・チャネル・オーバ・イーサネット(fcoe)スイッチ障害を検出および管理する冗長中継スイッチ・ソリューション
KR100576005B1 (ko) 고가용성 라우터 이중화 방법 및 장치
US8155022B1 (en) Method and system for controlling power consumption in network nodes
US20110029659A1 (en) Method and System for Network Proxy Services for Energy Efficient Networking
JP5923430B2 (ja) 通信制御装置
JP5207198B2 (ja) パケットを送受信する装置、プログラムおよびその方法
US9413454B1 (en) Automatic bandwidth adjustment on multi-fiber optics
US11134125B2 (en) Active link during LAN interface reset
JP6369224B2 (ja) 情報処理システム、情報処理装置、及び情報処理システムの制御方法
EP2448181A2 (en) Auto-aware dynamic control policy for energy efficiency
US20150288587A1 (en) Efficient and scalable method for handling rx packet on a mr-iov array of nics
TWI517628B (zh) 低耗電網路裝置與其通訊方法
JP5613009B2 (ja) 高速フェイルオーバを用いた、パケット・ロスを防ぐエネルギー効率のよいethernet(r)のリンク移行のための方法、コンピュータ・プログラム、および装置
WO2016135919A1 (ja) ストレージ装置
US20150362975A1 (en) Selective retransmission in near threshold network on chip
JP2004192256A (ja) ネットワークコントローラ
WO2022165790A1 (zh) 一种掉电隔离装置及相关方法
EP4391477A1 (en) Dynamic resource reservation protocol resource handling and deadlock avoidance
JP2009296441A (ja) ネットワークシステム、ネットワーク端末装置、及びlanスイッチ
JP2021040215A (ja) スイッチ装置及び情報処理システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170511

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180322

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180403

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180525

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180612

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180625

R150 Certificate of patent or registration of utility model

Ref document number: 6369224

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150