JP5703909B2 - 情報処理装置、並列計算機システム、および並列計算機システムの制御方法 - Google Patents

情報処理装置、並列計算機システム、および並列計算機システムの制御方法 Download PDF

Info

Publication number
JP5703909B2
JP5703909B2 JP2011080916A JP2011080916A JP5703909B2 JP 5703909 B2 JP5703909 B2 JP 5703909B2 JP 2011080916 A JP2011080916 A JP 2011080916A JP 2011080916 A JP2011080916 A JP 2011080916A JP 5703909 B2 JP5703909 B2 JP 5703909B2
Authority
JP
Japan
Prior art keywords
congestion information
packet
route
information collection
node
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.)
Expired - Fee Related
Application number
JP2011080916A
Other languages
English (en)
Other versions
JP2012216078A (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 JP2011080916A priority Critical patent/JP5703909B2/ja
Priority to EP12152259A priority patent/EP2506509A1/en
Priority to US13/359,635 priority patent/US9143436B2/en
Priority to CN201210046987.1A priority patent/CN102739513B/zh
Publication of JP2012216078A publication Critical patent/JP2012216078A/ja
Application granted granted Critical
Publication of JP5703909B2 publication Critical patent/JP5703909B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/125Shortest path evaluation based on throughput or bandwidth
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/121Shortest path evaluation by minimising delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/127Shortest path evaluation based on intermediate node capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/70Routing based on monitoring results
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • H04L47/115Identifying congestion using a dedicated packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0882Utilisation of link capacity

Landscapes

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

Description

本発明は、情報処理装置、並列計算機システム、および並列計算機システムの制御方法に関する。
並列計算機には、計算を行う情報処理装置である複数のノードと、ノード間のネットワークを構成する複数のスイッチとが含まれる。なお、以下の説明において並列計算機のノードとは、理がない限り、計算を行なう情報処理装置を指す。
図1は、ノードおよびスイッチを含む並列計算機の構成図を示す。
図1には、並列計算機のネットワークトポロジの例示として、ノードが2次元に配置され、かつ水平方向をX軸、垂直方向をY軸、図1の左下を原点とする4×4の2次元メッシュの構造が示されている。図1に示すように、各ノードn00〜n33は、対応する1つのスイッチs00〜s33とそれぞれ接続される。また、各スイッチs00〜S33は、スイッチs00〜s33のうち、X軸方向およびY軸方向において隣接するスイッチと接続される。このようにして、並列計算機におけるノード間のネットワークが構成される。
2つのノード間の通信経路は、並列計算機のネットワークトポロジによっては複数存在する。
図2は、並列計算機の4×4の2次元メッシュトポロジを示す図である。例えば、図2に示す並列計算機の4×4の2次元メッシュトポロジにおいて、(x,y)=(0,3)のノードn03が(x,y)=(3,0)のノードn30に通信を行う場合には、ホップ数が最小の6ホップとなるものだけでも経路は20通り存在する。
複数の経路の中から経路を選択する方法としては、ソースルーティングと次元順ルーティングがある。
ソースルーティングは、パケットを送信するノードが、パケットが通過する経路を決め、パケットにその通過する経路を指定する方法である。このソースルーティングには、ストリクトソースルーティング(strict source routing)およびルーズソースルーティング(loose source routing)がある。ストリクトソースルーティングでは、パケットが通過する経路の全てを、パケットを送信するノードが指定する。ルーズソースルーティングでは、ストリクトソースルーティングのように全ての経路を指定するとパケットヘッダが大きくなることから、パケットが通過する経路の一部を、パケットを送信するノードが指定し、残りの経路を次元順ルーティングなどに従ってルータが決める。
次元順ルーティングは、予め決められた順番で各次元(各座標軸)のアドレスを通信相手ノードに合わせる方法である。例えば、図2に示した2次元メッシュトポロジでは、2通りの次元順ルーティングがある。すなわち、最初にX軸のアドレスを合わせ、次にY軸のアドレスを合わせる方法(X軸、Y軸順の次元順ルーティング)と、最初にY軸のアドレスを合わせ、次にX軸のアドレスを合わせる方法(Y軸、X軸順の次元順ルーティング)がある。
複数の経路の中からどの経路を用いて通信を行うかは、並列計算機の性能面から重要である。
図3は、複数の通信の経路に輻輳が生じた場合におけるルーティングの一例を示す図である。図4は、複数の通信の経路に輻輳が生じていない場合におけるルーティングの一例を示す図である。図3および図4には、ノードn03がノードn30へ通信c1を行い、ノードn13がノードn31へ通信c2を行い、ノードn23がノードn32へ通信c3を行う例がそれぞれ示されている。図3に示すX軸、Y軸順の次元順ルーティングでは、各ノード間の通信c1〜c3が特定のリンクに集中し、特定の経路に輻輳が生じている。一方、図4に示す軸、軸順の次元順ルーティングでは、各ノード間の通信c1〜c3は特定のリンクに集中しておらず、経路に輻輳は生じていない。
そこで、各ノード間の通信が特定のリンクに集中して特定の経路に輻輳が生じることがないようにするためのルーティング方法が必要である。具体的には、経路の通信状態に応じて最適な経路を選択するルーティング方法が必要である。このように通信状態に応じて動的に経路を切り替えるルーティング方法は、アダプティブルーティングと呼ばれ、いくつかの方法が従来技術として提案されている。
経路の通信状態に応じて最適な経路を選択するルーティング方法の従来技術としては、ノード間の通信におけるメッセージの送信レイテンシを測り、送信レイテンシに基づいてノード間の経路を変更する方法がある。そのルーティングの具体的な手順は、以下の通りである。
(1) ローカルノードにおいてリモートノードへの経路の集合を作る。ここで、ローカルノードとは、ノード間通信において通信を要求する側のノードを指す。また、リモートノードとは、ノード間通信においてローカルノードからの通信の要求を受け付ける側のノードを指す。
(2) ローカルノードは、作成した経路の集合に含まれる各経路を介してリモートノードへメッセージを送り、メッセージがリモートノードに届くまでのレイテンシを測る。レイテンシの計測は、メッセージが通過するスイッチにおいてレイテンシをメッセージのフィールドに加算していき、リモートノードに届くと、レイテンシをローカルノードに送り返すことで行う。
(3) 測ったレイテンシを基に経路の集合に含まれる全ての経路のレイテンシを計算し、閾値以下のレイテンシの経路は、経路の集合に追加する。閾値を超えたレイテンシの経路は、経路の集合から削除する。
(4) ローカルノードは、送信メッセージの経路を経路の集合から選ぶ。選び方はレイテンシが小さいものを優先にする。
(5) 以降、上記の(2)に戻り、レイテンシ計測、経路の集合の生成、および経路選択を繰り返す。
特許第3980488号公報 特表平8−503799号公報
D. Franco, I. Garces, and E. Luque, "A new method to make communication latency uniform: Distributed routing balancing," in ACM International Conference on Supercomputing (ICS), Greece, 1999.
前述した従来技術のルーティング方法には、以下のような4つの問題がある。
第1に、従来技術のルーティング方法における経路選択は、メッセージ毎に行われる。このため、特にノードが有する演算処理装置が経路選択を行う場合には、経路選択に要するレイテンシが性能に影響を与えるため問題となる。また、演算処理装置の使用効率が悪くなる。
第2に、従来技術のルーティング方法では、ローカルノードからリモートノードに至る方向のレイテンシしか測っていない。しかし、Get通信、すなわち、ローカルノードが自身とリモートノードの主記憶領域を指定し、リモートノードの主記憶領域のデータをローカルノードの主記憶領域に書き込む通信などのように、リモートノードがメッセージを送信する場合では、リモートノードからローカルノードに至る方向のレイテンシが重要である。このため、リモートノードがメッセージを送信する場合、従来技術のルーティング方法では有効な経路選択ができない。
第3に、従来技術のルーティング方法では、メッセージ送信中は経路が変更できない。このため、メッセージ送信中の経路の輻輳発生に対応することができない。
第4に、従来技術のルーティング方法では、複数のノードがそれぞれメッセージを送信する場合に、一部が共通する経路を使って通信を行う可能性がある。このため、従来技術のルーティング方法では、複数のノードが通信を行う場合、経路の輻輳が起きる可能性がある。
そこで、通信要求を受け付けた側の情報処理装置までの経路選択を通信の送信とは分離して行う情報処理装置、並列計算機システム、および並列計算機システムの制御方法を提供する必要がある。
本発明の実施形態に従えば、並列計算機システムに含まれる他の情報処理装置と複数の経路を介して接続される情報処理装置は、輻輳情報の収集と、通信とを指示する演算処理装置と、通信を行なう経路情報を保持する経路情報保持部と、輻輳情報の収集を行なうための輻輳情報収集パケットを複数の経路のいずれかに送信する送信部と、複数の経路のいずれかから輻輳情報収集パケットに対応する輻輳情報収集応答パケットを受信する受信部と、演算処理装置が輻輳情報の収集を指示した場合に、生成した輻輳情報収集パケットを送信部に送信させ、受信部が受信した輻輳情報収集応答パケットに含まれる輻輳情報に基づき経路情報保持部から経路情報を選択し、選択した経路情報に基づいて演算処理装置が指示した通信を送信部に行なわせる制御部とを有する。
本発明の実施形態に従えば、複数の情報処理装置が接続された並列計算機システムは次のような特徴を有する。すなわち、並列計算機システムの各情報処理装置は、並列計算機システム内の輻輳情報の収集と、通信とを指示する演算処理装置と、他の情報処理装置との通信を行なう経路情報を保持する経路情報保持部と、輻輳情報の収集を行なうための輻輳情報収集パケットを他の情報処理装置に対して送信する送信部と、他の情報処理装置からの輻輳情報収集パケットと、送信部から送信した輻輳情報収集パケットに対応する他の情報処理装置からの輻輳情報収集応答パケットとを受信する受信部と、演算処理装置が輻輳情報の収集を指示した場合に輻輳情報収集パケットを送信部に送信させ、受信部が受信した輻輳情報収集応答パケットに含まれる輻輳情報に基づき経路情報保持部から経路情報を選択し、選択した経路情報に基づいて演算処理装置が指示した通信を送信部に行わせるとともに、他の情報処理装置からの輻輳情報収集パケットを受信した場合には対応する輻輳情報収集応答パケットを生成し、他の情報処理装置に生成した輻輳情報収拾応答パケットを送信部に送信させる制御部とを有する。
本発明の実施形態に従えば、第1の情報処理装置と第2の情報処理装置を含む複数の情報処理装置が複数の経路を介して接続された並列計算機システムの制御方法は、以下の構成を含む。すなわち、第1の情報処理装置が有する演算処理装置が、輻輳情報の収集を指示し、演算処理装置が輻輳情報の収集を指示した場合に、第1の情報処理装置が有する第1の制御部が、輻輳情報の収集を行なう輻輳情報収集パケットを生成し、第1の情報処理装置が有する第1の送信部が、第1の制御部が生成した輻輳情報収集パケットを複数の経路のいずれかに送信し、第2の情報処理装置が有する第2の受信部が、複数の経路のいずれかを介して輻輳情報収集パケットを受信し、第2の情報処理装置が有する第2の制御部が、第2の受信部が受信した輻輳情報収集パケットに対応する輻輳情報収集応答パケットを生成し、第2の情報処理装置が有する第2の送信部が、第2の制御部が生成した輻輳情報収集応答パケットを複数の経路のいずれかに送信し、第1の情報処理装置が有する第1の受信部が、複数の経路のいずれかから輻輳情報収集パケットに対応する輻輳情報収集応答パケットを受信し、第1の制御部が、受信部が受信した輻輳情報収集応答パケットに含まれる輻輳情報に基づき経路情報保持部が保持する経路情報を書き替え、書き替えた経路情報に基づいて演算処理装置が指示した通信を、第1の制御部が第1の送信部に行なわせる。
本発明の実施形態に従えば、通信要求を受け付けた側の情報処理装置までの通信経路の選択は、通信を要求した側の情報処理装置の演算処理装置の指示に従って制御部により行われる。このため、通信を要求した側の情報処理装置の演算処理装置による経路選択のレイテンシを減らすことができる。また、演算処理装置の利用効率を下げないようにすることができる。
ノードおよびスイッチを含む並列計算機の構成図である。 並列計算機の4×4の2次元メッシュトポロジを示す図である。 複数の通信の経路に輻輳が生じたルーティングの一例を示す図である。 複数の通信の経路に輻輳が生じていないルーティングの一例を示す図である。 第1の実施形態に従った並列計算機のノードの構成図である。 第1の実施形態に従った並列計算機のスイッチの構成図である。 第1の実施形態に従った並列計算機におけるルーティングの概略的説明図である。 第1の実施形態に従った制御部が行う輻輳情報収集パケットの送信から戻り順の記録までの処理のフローチャートである。 第1の実施形態に従った輻輳情報収集パケットおよび輻輳情報収集応答パケットのフィールドを示す図である。 第1の実施形態に従った経路テーブルの一例である。 第1の実施形態に従った輻輳情報収集パケットおよび輻輳情報収集応答パケットのルーティングヘッダの構成図である。 第1の実施形態に従った、パケットを中継するスイッチの処理のフローチャートである。 第1の実施形態に従った経路選択を行う制御部の処理のフローチャートである。 第2の実施形態に従った並列計算機の構成図である。 第2の実施形態に従ったノードの構成図である。 第2の実施形態に従った輻輳情報収集指示パケットのフィールドを示す図である。 第2の実施形態に従った経路テーブルの一例である。 第2の実施形態に従った経路選択パケットのフィールドを示す図である。 第2の実施形態に従った経路パケットのフィールドを示す図である。 第2の実施形態に従った輻輳情報収集ノードのネットワークインタフェース装置の制御部が行う処理のフローチャートである。 第3の実施形態に従ったノードの構成図である。 第3の実施形態に従った輻輳情報収集指示パケットのフィールドを示す図である。 第3の実施形態に従った輻輳情報収集ノードのネットワークインタフェース装置の制御部が行う処理のフローチャートである。 第4の実施形態に従ったノードがローカルノードである場合のノードの構成図である。 第4の実施形態に従ったノードが行う処理のフローチャートである。 第5の実施形態に従ったノードがローカルノードである場合のノードの構成図である。 第5の実施形態に従った輻輳情報収集パケットおよび輻輳情報収集応答パケットのフィールドを示す図である。 第5の実施形態に従った経路テーブルの一例である。 第6の実施形態に従ったノードの構成図である。 第6の実施形態に従った輻輳情報収集パケットおよび輻輳情報収集応答パケットのフィールドを示す図である。 第6の実施形態に従った経路テーブルの一例である。 第6の実施形態に従ったスイッチの構成図である。 第7の実施形態に従ったノードがローカルノードである場合のノードの構成図である。 第7の実施形態に従ったローカルノードの制御部が行う処理のフローチャートである。
以下、図面を参照しながら、実施形態を詳細に説明する。
なお、以下に記載する各実施形態は、本発明の一側面をそれぞれ説明するものにすぎない。したがって、各実施形態を相互に排他的なものと捉えるべきではなく、各実施形態を組み合わせることは可能であることに留意すべきである。
<第1の実施形態>
第1の実施形態に従った並列計算機では、通信を行うローカルノードのネットワークインタフェース装置が複数の経路の輻輳情報を収集し、収集した輻輳情報と演算処理装置からの経路選択指示とを基にルーティングを行う。輻輳情報の収集は、ローカルノードのネットワークインタフェース装置が輻輳情報を収集する対象の経路を通じて輻輳情報収集パケットをリモートノードに送ることにより行われる。また、輻輳情報の収集は、輻輳情報収集パケットを受信したリモートノードのネットワークインタフェース装置が輻輳情報収集応答パケットをローカルノードに送り返すことにより行われる。
なお、輻輳情報とは、対象とする経路がどの程度混んでいるかを示す情報を指す。輻輳情報は、例えば、対象とする経路のレイテンシ、および対象とする経路上のスイッチのバッファ使用量などである。
また、以下の説明における経路候補とは、輻輳情報収集パケットを送って輻輳情報を収集する対象の経路を指す。
第1の実施形態に従った並列計算機は、例えば図1に示すように、計算を行う情報処理装置であるノードn00〜n33と、ノード間のネットワークを構成するスイッチs00〜s33とを含む並列計算機である。
図5は、第1の実施形態に従った並列計算機のノードの構成図である。
第1の実施形態に従った並列計算機を構成する各ノードは、どのノードがどのノードに通信をおこなうかの通信の態様によって、通信毎に、ローカルノードとなり、またはリモートノードとなる。図5は、ローカルノードおよびリモートノードの何れにもなり得るノードn1を図示している。
図5に示すように、第1の実施形態に従ったノードn1には、演算処理装置101、ネットワークインタフェース装置102、および主記憶部103が含まれる。演算処理装置101、ネットワークインタフェース装置102、および主記憶部103は、バス104を介してそれぞれ相互に接続される。
演算処理装置101は、ネットワークインタフェース装置102を介して入力されたメッセージおよびデータに基づいて演算処理を実行する。また、演算処理装置101は、他のノードn1に送信するメッセージおよびデータを生成し、それらを送信先のノードn1のアドレスと共にネットワークインタフェース装置102に送信する。
ネットワークインタフェース装置102は、演算処理装置101とネットワーク105との間のメッセージおよびデータの送受信を制御する。ネットワークインタフェース装置102には、制御部1021、経路テーブル記憶部1022、パケット送信部1023、パケット受信部1024、およびDirect Memory Access(DMA)コントローラ1025が含まれる。
図5に示したノードn1がローカルノードである場合、制御部1021は、演算処理装置101からの輻輳情報の収集指示に基づいて、輻輳情報収集のためのパケット(輻輳情報収集パケット)をリモートノードに送信するようにパケット送信部1023に指示する。そして、制御部1021は、リモートノードから返送された輻輳情報収集に応答したパケット(輻輳情報収集応答パケット)をパケット受信部1024から受信し、収集した輻輳情報を経路テーブル記憶部1022内の経路テーブルに記憶する。また、制御部1021は、演算処理装置101からの通信開始の指示に基づいて、経路テーブル記憶部1022内の経路テーブルを参照して経路を選択し、選択した経路を用いたパケットを送信するようにパケット送信部1023に指示する。
図5に示したノードn1がリモートノードである場合、制御部1021は、ローカルノードから送信された輻輳情報収集パケットを、パケット受信部1024を介して受信する。そして、制御部1021は、受信した輻輳情報収集パケットを基に輻輳情報収集応答パケットを生成し、生成した輻輳情報収集応答パケットを、パケット送信部1023を介してローカルノードに返す。
制御部1021は、例えばLSI(Large Scale Integrated circuit)により実現された論理回路である。
DMAコントローラ1025は、制御部1021からの要求に基づいて主記憶部103との間で演算処理装置101を介さずにDMA転送を行い、主記憶部103に記憶されるデータの読み出しおよび書き込みを行う。
パケット送信部1023は、制御部1021からの送信指示に基づいてパケットを他のノードn1にネットワーク105を介して送信する。パケット送信部1023は、例えばLSIにより実現された論理回路である。
パケット受信部1024は、他のノードn1から送信されたパケットを、ネットワーク105を介して受信し、受信したパケットを制御部1021に送信する。パケット受信部1024は、例えばLSIにより実現された論理回路である。
経路テーブル記憶部1022は、輻輳情報を収集する対象の経路の輻輳情報を含んだ経路テーブルを記憶する。経路テーブル記憶部1022は、例えばStatic Random Access Memory(SRAM)などのRandom Access Memory(RAM)である。
主記憶部103には、演算処理装置101により実行されるプログラム、および各種のデータが記憶される。主記憶部103は、例えばDynamic Random Access Memory(DRAM)などのRAMである。
図6は、第1の実施形態に従った並列計算機のスイッチの構成図である。図6には、各ノードn1を1次元のネットワークに接続する場合のスイッチが図示されている。2次元メッシュや3次元トーラス等の多次元のネットワークを構成する場合、スイッチs1は、図6に示したポートの数を増やした構成となる。
図6に示すように、スイッチs1には、ネットワークインタフェース装置102へ接続するポートp1と、他のスイッチs1へ接続するポートp2、p3とが含まれる。
図6に示すように、各ポートp1、p2、p3には、送信部t1、t2、t3、および受信部r1、r2、r3がそれぞれ含まれる。
各ポートの送信部t1、t2、t3は、スイッチs1内でパケットをそれぞれ送信し、各受信部r1、r2、r3は、スイッチs1内でパケットをそれぞれ受信する。また、各送信部t1、t2、t3は、スイッチs1の外にあるネットワークインタフェース装置102および他のスイッチs1からパケットをそれぞれ受信し、各受信部r1、r2、r3は、パケットをスイッチs1の外にあるネットワークインタフェース装置102および他のスイッチs1にそれぞれ送信する。ネットワークインタフェース装置102または他のスイッチs1から受信されたパケットは、送信部t1、t2、t3にそれぞれ送られ、各送信部t1、t2、t3から他のポートの受信部r1、r2、r3にそれぞれ送られ、そしてポートに接続されたネットワークインタフェース装置102または他のスイッチs1にそれぞれ送られる。
各ポートの送信部t1、t2、t3には、制御部t1c、t2c、t3cおよびバッファt1b、t2b、t3bがそれぞれ含まれる。また、各ポートの受信部r1、r2、r3には、制御部r1c、r2c、r3cおよびバッファr1b、r2b、r3bがそれぞれ含まれる。
各制御部t1c、t2c、t3c、r1c、r2c、r3cは、パケットの送受信に関する制御を行う。
図6には、ポートp1の送信部の制御部t1cと、各ポートp2、p3の受信部の制御部r2c、r3cとの間でパケットの送受信がそれぞれ行なわれる場合を一例として図示している。また、図6では、各ポートp2、p3の送信部の制御部t2c、t3cと、ポートp1の送信部の制御部r1cとの間でパケットがそれぞれ送受信される場合を一例として図示している。
各制御部t1c、t2c、t3c、r1c、r2c、r3cは、例えばLSIにより実現される論理回路である。
各バッファt1b、t2b、t3b、r1b、r2b、r3bは、送受信されるパケットをそれぞれ記憶する。各バッファt1b、t2b、t3b、r1b、r2b、r3bは、例えばSRAMなどのRAMである。
スイッチs1のポート数は、ネットワークのトポロジによって変わる。例えば、図1に示した2次元メッシュの構造では、ネットワークインタフェース102に対する1ポートと他のスイッチs1に対する4ポートの合計5ポートが必要である。この場合のポートの構成自体は、図6に示したスイッチのポートと同様である。
第1の実施形態に従った並列計算機が行う基本的な処理を、図7を参照して概略的に説明する。
図7は、第1の実施形態に従った並列計算機におけるルーティングの概略的説明図である。図7では、一例として、収集する輻輳情報を輻輳情報収集応答パケットの戻り順とし、演算処理装置が指示する通信経路の順番を戻り順とする。
図7(a)に示すように、ローカルノードln1が輻輳情報を収集する際、ローカルノードln1のネットワークインタフェース装置102は、演算処理装置101によって指定された経路候補1、経路候補2、経路候補3を使って輻輳情報収集パケットをリモートノードrn1に送信する。
輻輳情報収集パケットを受け取ったリモートノードrn1のネットワークインタフェース装置102は、図7(b)に示すように、輻輳情報収集応答パケットをローカルノードln1に送り返す。そして、ローカルノードln1のネットワークインタフェース装置102は、リモートノードrn1より受け取った輻輳情報収集応答パケットの戻り順を記録する。
図7(c)に示すように、ローカルノードln1がリモートノードrn1へ通信を行う際、ローカルノードln1の演算処理装置101は、戻り順で経路を指定する、すなわち、戻り順のうち輻輳情報収集応答パケットが最初に戻った経路を指定する。そして、ネットワークインタフェース装置102は、演算処理装置101からの指示に基づき、戻り順のうち最初に戻った経路を選択する。図7(c)の例では、経路候補2、経路候補3、経路候補1の順に戻ってきているため、ネットワークインタフェース装置102は、最初に戻った経路候補2を選択し、リモートノードrn1との通信を行う。
以下では、第1の実施形態に従った並列計算機について、次のような場合を例としてさらに詳述する。すなわち、輻輳情報を収集するタイミングは、演算処理装置101が輻輳情報収集をネットワークインタフェース装置102に指示した時であるとする。経路候補の種類は、ローカルノードおよびリモートノード間でパケットが通過する往路と復路の経路が同じであるとする。収集する輻輳情報は、輻輳情報収集応答パケットがローカルノードに戻ってきた戻り順に従うものとする。演算処理装置101により指定される経路の順番は、戻り順に従うものとする。なお、これらは第1の実施形態に従った並列計算機を説明するための例示であり、第1の実施形態に従った並列計算機は、これらの場合に限定されない。
第1の実施形態では、ローカルノードのネットワークインタフェース装置102の制御部1021によって、輻輳情報収集パケットの送信、戻り順等の輻輳情報の記録、および経路選択が行われる。
図8は、第1の実施形態に従った制御部が行う輻輳情報収集パケットの送信から戻り順の記録までの処理のフローチャートである。
step801において、ローカルノードの制御部1021は、演算処理装置101からの輻輳情報収集指示を受信し、輻輳情報の処理を開始する。演算処理装置101による輻輳情報収集指示には、リモートノードおよび経路候補に関する指示が含まれる。演算処理装置101による経路候補の指定は、例えば、ローカルノードとリモートノードとの間の経路の中継ノードを指定し、ローカルノードと中継ノードとの間の経路、および中継ノードとリモートノードとの間の経路の決め方を次元順ルーティングの次元の順番で指定することにより行われる。
step802において、制御部1021は、演算処理装置101からの輻輳情報収集指示に従って輻輳情報収集パケットを生成する。そして、制御部1021は、輻輳情報収集指示により指定された経路を使って、輻輳情報収集パケットをリモートノードへ送信する。輻輳情報収集パケットを受信したリモートノードのネットワークインタフェース装置102の制御部1021は、輻輳情報収集応答パケットを生成し、生成した輻輳情報収集応答パケットをローカルノードに送り返す。
図9は、第1の実施形態に従った輻輳情報収集パケットおよび輻輳情報収集応答パケットのフィールドを示す図である。
図9に示すパケットフィールド900中のパケットタイプ901は、パケットの種類を指定するフィールドである。ネットワークインタフェース装置1021は、パケットタイプ901を参照して、参照したパケットが輻輳情報収集パケットであること、または輻輳情報収集応答パケットであることを確認する。
ルーティングヘッダ902は、送信先のノードまでの経路を指定するフィールドである。例えば、経路候補を次元順で指定する場合、ルーティングヘッダ902には、X軸→Y軸の順又はY軸→X軸に経路を選択する旨の次元順の情報及びパケットを中継する中継ノードの情報等が含まれる。スイッチs1は、ルーティングヘッダ902を参照して送信するポートを決める。
ローカルノードアドレス903は、輻輳情報収集パケットを送信する送信元のノードであるローカルノードのアドレスを含むフィールドである。輻輳情報収集パケットを受信したネットワークインタフェース装置102は、輻輳情報収集パケット中のローカルノードアドレス903を参照し、輻輳情報収集応答パケットをそのアドレスのノードに送信する。また、輻輳情報収集応答パケットを受信したネットワークインタフェース装置102は、自ノードに送られたパケットであることを輻輳情報収集応答パケット中のローカルノードアドレス903を参照して確認する。
リモートノードアドレス904は、輻輳情報収集パケットを送信する宛て先のノードであるリモートノードのアドレスを含むフィールドである。輻輳情報収集パケットを受信したネットワークインタフェース装置102は、自ノードに送られたパケットであることを輻輳情報収集パケット中のリモートノードアドレス904を参照して確認する。また、輻輳情報収集応答パケットを受信したネットワークインタフェース装置102は、輻輳情報収集応答パケット中のリモートノードアドレス904を参照して輻輳情報を収集したノードを確認する。
経路905は、パケットが通る経路の情報を含むフィールドである。経路905は、例えば中継ノードと次元順により指定される。リモートノードのネットワークインタフェース装置102は、経路905に含まれる経路をそのまま輻輳情報収集応答パケットに格納し、ローカルノードに送り返す。ローカルノードのネットワークインタフェース装置102は、輻輳情報収集応答パケット中の経路905に含まれる経路を経路テーブルに書き込む。
図8のstep803において、制御部1021は、リモートノードから送られる輻輳情報収集応答パケットを待ち合わせる。待ち合わせた輻輳情報収集応答パケットを受信すると、制御部1021は、輻輳情報収集応答パケットの経路と戻り順を経路テーブルに保存する。
図10は、第1の実施形態に従った経路テーブルの一例である。本実施形態では、経路テーブルには、経路候補とその経路候補の戻り順が含まれる。
図10に示した経路テーブルでは、経路候補を経路1、経路2、・・・経路nと示している。しかし、例えば各々の経路候補を中継ノードと次元順により指定する場合には、経路1、経路2、・・・経路nは、各々の経路の中継ノードおよび次元順により示すことができる。
本実施形態では、輻輳情報収集パケットおよび輻輳情報収集応答パケットは、それらのパケット中のルーティングヘッダの情報を基にスイッチs1で中継され、送信先のノードn1に届く。そこで、図11、および図12を参照しながら、パケットがスイッチs1により中継される処理について以下に説明する。
図11は、第1の実施形態に従った輻輳情報収集パケットおよび輻輳情報収集応答パケットのルーティングヘッダの構成図である。図11には、例示として、経路候補を中継ノード1101と次元順1102で指定する場合のルーティングヘッダ1100が示されている。図11に示したルーティングヘッダ1100は、指定された次元順に従って、中継ノード1、中継ノード2を経てリモートノードにパケットが送信される場合におけるルーティングヘッダの一例である。
図11に示したルーティングヘッダ1100中のDXi1およびDYi1は、中継ノード1のノードアドレスのX軸の値から現在のアドレスを引いた値、およびY軸の値から現在のアドレスを引いた値をそれぞれ示す。DXi2およびDYi2は、中継ノード2のノードアドレスのX軸の値から現在のアドレスを引いた値、およびY軸の値から現在のアドレスを引いた値をそれぞれ示す。DXr、およびDYrは、リモートノードのノードアドレスのX軸の値の値から現在のアドレスを引いた値、およびY軸の値から現在のアドレスを引いた値をそれぞれ示す。DXi1、DYi1、DXi2、DYi2、DXr、およびDYrは、各ノードへの相対距離および方向をそれぞれ示す。
また、ルーティングヘッダ1100中の次元順1102は、ルーティングを行う次元の順番の指定を示す。例えば、2次元メッシュの構造では、X軸、Y軸順の次元順、またはY軸、X軸順の次元順が指定される。
図12は、第1の実施形態に従ったパケットを中継するスイッチの処理のフローチャートである。
step1201では、ローカルノードのネットワークインタフェース装置または他のスイッチから受信したパケットをポートの送信部のバッファで保持する。そして、送信部の制御部は、送信部のバッファに保持したパケットのルーティングヘッダを参照する。
step1202では、送信部の制御部は、受信したポートを基にルーティングヘッダを更新する。ここで、例えば図1に示した並列計算機の構成図において、図面の左下を原点とし、図面の上方向および右方向を+方向とし、図面の下方向および左方向を−方向と仮定する。例えば、パケットを受信したポートがX軸であり且つ−方向であり、ルーティングヘッダにおいてそれぞれ、DXi1=0、DXi2=1、DXr=3である場合には、中継ノード1のX軸の値DXi1が0であるので、中継ノード1に続く中継ノード2のX軸の値DXi2を-1する。また、例えば、パケットを受信したポートがY軸であり且つ+方向であり、ルーティングヘッダにおいてそれぞれ、DYi1=-1、DYi2=3、DYr=4である場合には、中継ノード1のY軸の値DYi1が0ではないので、DYi1を+1する。
step1202でのルーティングヘッダ1100の更新後、step1203では、送信部の制御部は、DXi1、DYi1、DXi2、DYi2、DXr、およびDYrが全て0であるか否かを判定する。
step1203での判定において、DXi1、DYi1、DXi2、DYi2、DXr、およびDYrが全て0である場合、そのパケットは、リモートノードに接続されるスイッチs1に位置する。そこで、step1204において、制御部の送信部は、リモートノードのネットワークインタフェース装置102に接続されるポートを選び、step1208に進む。
step1203での判定においてDXi1、DYi1、DXi2、DYi2、DXr、およびDYrの何れか1つ以上が0ではない場合、step1205において、送信部の制御部は、指定されたルーティングを行う次元順がX軸、Y軸順の次元順であるか、またはY軸、X軸順の順序による次元順であるかを判定する。
stepp1205での判定において、ルーティングを行う次元順がX軸、Y軸順の順序による次元順である場合、step1206において、送信部の制御部は、DXi1、DYi1、DXi2、DYi2、DXr、DYrの順で非0のフィールドを調べ、該当フィールドと同じ軸でありかつ+または−の符号が同じ符号であるポートを選ぶ。そして、step1208に進む。
step1205での判定において、ルーティングを行う次元順がY軸、X軸順の順序による次元順である場合、step1207において、送信部の制御部は、DYi1、DXi1、DYi2、DXi2、DYr、DXrの順で非0のフィールドを調べ、該当フィールドと同じ軸でありかつ+または−の符号が同じ符号であるポートを選ぶ。そして、step1208に進む。
step1208では、送信部の制御部は、step1204、step1206、またはstep1207において選択したポートの受信部の制御部に対して送信要求を送る。送信要求には送信するパケットのパケットサイズが含まれる。送信要求を受け取ったポートの受信部の制御部は、受信部のバッファのバッファ使用量を参照して空き容量を調べる。
送信要求を受け取った受信部のバッファの空き容量が送信するパケットのパケットサイズ以上の場合には、受信部の制御部は、送信要求を送ったポートの送信部の制御部に対して送信許可を送る。送信要求を送ったポートの送信部の制御部は、送信許可を受け取ると、該当ポートへパケットを送信する。
一方、送信要求を受け取ったポートの受信部のバッファの空き容量が送信するパケットのパケットサイズよりも小さい場合には、送信要求を送ったポートの送信部の制御部は、バッファが保持するパケットが送信されることにより、受信部のバッファの空き容量がパケットサイズ以上になるのを待つ。そして、送信要求を受け取ったポートのバッファの空き容量がパケットサイズ以上になると、送信要求を送ったポートの送信部の制御部は、選択したポートへパケットを送信する。
次に、第1の実施形態に従った並列計算機のローカルノードが通信を開始する処理を説明する。
第1の実施形態に従った並列計算機では、輻輳情報を収集したリモートノードへの通信を開始する場合、ローカルノードの演算処理装置101は、ネットワークインタフェース装置102の制御部1021に通信開始の指示を送る。そして、制御部1021は、演算処理装置101により指定された経路選択指示に従って経路テーブルを参照する。制御部1021は、経路テーブルから演算処理装置101により指定された経路選択指示に従った経路を選択し、選択した経路を使って通信を開始する。
図13は、第1の実施形態に従った経路選択を行う制御部の処理のフローチャートである。
図13のstep1301では、ローカルノードの制御部1021は、演算処理装置101から通信開始の指示を受信する。演算処理装置101が行う通信開始の指示には、リモートノードアドレス、通信の種類、メッセージを送信する場合はメッセージの格納場所、および使用する経路の戻り順などに関する経路選択指示が含まれる。
step1302では、制御部1021は、経路テーブルを参照し、演算処理装置101により指定された戻り順などの経路選択指示に従った経路を選択する。
step1303では、制御部1021は、step1302において選択した経路を使って、リモートノードへパケット送信部1023を介してパケットを送信する。
以上のように、第1の実施形態に従った並列計算機では、演算処理装置からの経路選択指示を基にネットワークインタフェース装置が経路を選択する。このため、経路選択のレイテンシを短縮することができる。
さらに、演算処理装置が指定する経路選択指示が例えば輻輳情報収集応答パケットの戻り順に関する指示である場合、演算処理装置は、全ての経路候補に対応する輻輳情報収集応答パケットが戻ってくるまで待つ必要がなく、通信開始を指示できる。このため、演算処理装置の使用効率は下がらない。
そして、輻輳情報が例えば輻輳情報収集応答パケットの戻り順の情報により表される場合、当該輻輳情報にはリモートノードからのローカルノードの返りの通信時間も反映されている。このため、Get通信などのリモートノードがメッセージを送信する通信の場合においても適切な経路選択を行うことができる。
また、輻輳情報を収集するタイミングを演算処理装置が通信開始を指示する時ではなく、演算処理装置が輻輳情報収集を指示した時とした場合、演算処理装置が明示的に指定した時のみ、輻輳情報を収集する。このため、通信を行うにあたり、輻輳情報を収集するのか否かを選択することができる。
本実施形態の前述の説明では、ローカルノードのネットワークインタフェース装置1021は、演算処理装置101からの輻輳情報収集指示に基づいて輻輳情報の収集を開始する。また、ローカルノードのネットワークインタフェース装置1021は、演算処理装置101からの通信開始の指示に基づいて演算処理装置101により指定された経路選択方法に従った経路を選択し、パケットを送信する。しかしながら、演算処理装置101は、通信開始の指示と共に輻輳情報収集の指示をネットワークインタフェース装置1021に対して行ってもよい。この場合、ローカルノードのネットワークインタフェース装置1021は、演算処理装置101により指定された経路候補に輻輳情報収集パケットを送信して輻輳情報を収集し、収集した輻輳情報の中から演算処理装置101により指定された経路選択指示に従った経路を選択して通信を開始する。
また、本実施形態の前述の説明では、演算処理装置101が指定する経路選択指示が戻り順に関する指示として説明した。経路選択指示が戻り順の情報である場合、演算処理装置101は、最初に輻輳情報収集応答パケットが戻ってきた時点で、経路を指定することが可能である。しかしながら、演算処理装置101が指定する経路選択指示は、戻り順に関する指示に限定されない。したがって、演算処理装置101は、例えば、k番目(kは1より大きい整数)の輻輳情報収集応答パケットがローカルノードに戻ってきた時点で経路を指定するとすることも可能である。
さらに、本実施形態の上述の説明では、経路候補は、パケットが通過する往路と復路の経路が同じであるとした。しかしながら、本実施形態では、パケットが通過する行きと帰りの経路が異なるとする経路候補を採ることも可能である。
<第2の実施形態>
前述したように、第1の実施形態では、各々のローカルノードが経路候補の輻輳情報を収集し、経路選択を行う。
これに対して、第2の実施形態では、ルーティング方式によっては経路を共有するローカルノードのグループおよびリモートノードのグループを、輻輳情報を収集する前に予め設定する。また、ローカルノードグループ内に輻輳情報を収集する輻輳情報収集ノードを予め設定する。そして、ローカルノードグループ内において、輻輳情報収集ノードが収集したリモートノードグループに対する輻輳情報および経路の使用ノードに関する情報を共有する。
すなわち、第2の実施形態では、ローカルノードグループ内の輻輳情報収集ノードは、ローカルノードグループおよびリモートノードグループ間の経路候補の輻輳情報を収集し、収集した輻輳情報を管理する。そして、同じローカルノードグループ内の複数のローカルノードが同じリモートノードグループ内のリモートノードへ通信する場合には、輻輳情報収集ノードは、収集した輻輳情報に基づいて、複数の通信の経路を分散するように経路選択を行う。
図14は、第2の実施形態に従った並列計算機の構成図である。
図14には、第2の実施形態に従った並列計算機の例示として、6x6のメッシュ構造が示されている。なお、図14の並列計算機の構成図では、説明を明確にするために、計算を行う情報処理装置であるノードn00〜cn55のみが示され、スイッチの図示が省略されている。しかし、第2の実施形態に従った並列計算機は、図1に示した並列計算機の構成図と同様に、各ノードn00〜cn55に接続された各スイッチを備える。
図14に示した第2の実施形態に従った並列計算機では、例示として、X軸、Y軸順の次元順ルーティングにおいて最初に指定された次元であるX軸方向で、隣接する3つのノード毎にローカルノードグループlng00〜lng15をそれぞれ設定している。また、例示として、X軸、Y軸順の次元順ルーティングにおける最後に指定された次元であるY軸方向で、隣接する3つのノード毎にリモートノードグループrng00〜rng51をそれぞれ設定している。また、ローカルノードグループlng00〜rng15毎にグループ内の1つのノードを輻輳情報収集ノードcn20、cn21、・・・、cn25、およびcn50、cn51、・・・、cn55にそれぞれ設定している。
図15は、第2の実施形態に従ったノードの構成図である。なお、図5に示した第1の実施形態に従ったノードn2の構成要素と同じ構成要素には、図15において同じ参照符号がふられている。
第2の実施形態に従った並列計算機を構成する各ノードn2は、どのノードがどのノードに通信をおこなうかの通信の態様によって、ローカルノードとなり、またはリモートノードとなる。また、第2の実施形態に従った並列計算機を構成する各ノードn2は、予めの設定に従って輻輳情報を収集する輻輳情報収集ノードとなる。図15は、ローカルノード、輻輳情報収集ノード、およびリモートノードの何れにもなり得るノードn2を示している。
第2の実施形態では、ローカルノード、輻輳情報収集ノード、およびリモートノードの各々の制御部は、以下のような処理をするようにそれぞれ構成される。
図15に示したノードn2がローカルノードである場合、ネットワークインタフェース装置202内の制御部2021は、演算処理装置101から輻輳情報収集指示を受信すると、輻輳情報の収集を指示する輻輳情報収集指示パケットを生成する。そして、制御部2021は、生成した輻輳情報収集指示パケットを、パケット送信部1023を介して輻輳情報収集ノードへ送信する。
また、図15に示したノードn2がローカルノードである場合、制御部2021は、演算処理装置101から通信開始の指示を受信すると、経路選択パケットを生成し、生成した経路選択パケットを、パケット送信部1023を介して輻輳情報収集ノードに送信する。
そして、図15に示したノードn2がローカルノードである場合、制御部2021は、輻輳情報収集ノードから送信された経路パケットを、パケット受信部1024を介して受信すると、受信した経路パケットに含まれる選択された経路を使って通信を開始する。制御部2021は、通信を完了すると、完了通知パケットを生成し、生成した完了通知パケットを、パケット送信部1023を介して輻輳情報収集ノードに送信する。
次に、図15に示したノードn2が輻輳情報収集ノードである場合、制御部2021は、ローカルノードから送信される輻輳情報収集指示パケットを、パケット受信部1024を介して受信する。そして、制御部2021は、輻輳情報収集指示パケットに含まれるリモートノードが属するグループについての輻輳情報を収集していない場合には、輻輳情報収集パケットを生成する。そして、制御部2021は、生成した輻輳情報収集パケットを、パケット送信部1023を介してリモートノードに送信する。制御部2021は、リモートノードから輻輳情報収集応答パケットを、パケット受信部1024を介して受信すると、輻輳情報を経路テーブル記憶部1022内の経路テーブルに記憶する。
また、図15に示したノードn2が輻輳情報収集ノードである場合、制御部2021は、ローカルノードから送信される経路選択パケットを、パケット受信部1024を介して受信する。また、制御部2021は、経路選択パケットに含まれる経路選択指示に従って、経路テーブル記憶部1022に記憶された経路テーブルを参照して経路を選択する。そして、制御部2021は、選択した経路についての情報を含む経路パケットを生成し、生成した経路パケットを、パケット送信部1023を介してローカルノードに返す。制御部2021は、選択した経路がそのローカルノードにより使用中であることを示す情報を経路テーブル記憶部1022内の経路テーブルに記憶する。
そして、図15に示したノードn2が輻輳情報収集ノードである場合、制御部2021は、ローカルノードから送信される完了通知パケットを、パケット受信部1024を介して受信する。そして、制御部2021は、経路がそのローカルノードにより使用中であることを示す情報を経路テーブル記憶部1022の経路テーブルから消去する。
図15に示したノードn2がリモートノードである場合、制御部2021は、輻輳情報収集ノードから送信される輻輳情報収集パケットを、パケット受信部1024を介して受信する。そして、制御部2021は、受信した輻輳情報収集パケットに基づき輻輳情報収集応答パケットを生成し、生成した輻輳情報収集応答パケットを、パケット送信部1023を介して輻輳情報収集ノードに送信する。
第2の実施形態に従ったスイッチの構成は、第1の実施形態に従ったスイッチs1の構成と同様である。
第2の実施形態に従った並列計算機について、次の場合を例として以下で詳述する。すなわち、並列計算機のローカルノードグループは、次元順ルーティングにおいてルーティングの最初に指定された次元方向に沿って存在するローカルノードから生成する。また、並列計算機のリモートノードグループは、次元順ルーティングにおいて最後に指定された次元方向で作る。輻輳情報を収集するタイミングは、ローカルノードの演算処理装置101が輻輳情報収集を指示した時とする。また、経路候補の種類は、ローカルノードおよびリモートノード間でパケットが通過する行きの経路と帰りの経路が同じであるとする。収集する輻輳情報は、輻輳情報収集応答パケットの戻り順であるとする。ローカルノードの演算処理装置101による経路選択指示は、戻り順と使用ノード数についての閾値に関する指示であるとする。なお、これらは第2の実施形態に従った並列計算機を説明するための例示であり、第2の実施形態に従った並列計算機は、このような場合に限定されない。
第2の実施形態では、ローカルノードの演算処理装置101は、ネットワークインタフェース装置202に対して輻輳情報収集指示を行う。輻輳情報収集指示では、輻輳情報収集パケットを送るリモートノードアドレス、輻輳情報収集ノードアドレス、および輻輳情報を収集する経路候補がそれぞれ指定される。
演算処理装置101から輻輳情報収集指示を受け取ったネットワークインタフェース装置202は、輻輳情報収集指示パケットを生成する。そして、ネットワークインタフェース装置202は、生成した輻輳情報収集指示パケットを同じローカルノードグループ内の輻輳情報収集ノードに送る。
図16は、第2の実施形態に従った輻輳情報収集指示パケットのフィールドを示す。
図16に示した輻輳情報収集指示パケットのフィールド1600中の輻輳情報収集ノードアドレス1604は、輻輳情報収集指示パケットの送信先のノードアドレスを含むフィールドである。輻輳情報収集指示パケットを受信したノードのネットワークインタフェース装置202は、輻輳情報収集ノードアドレスを参照して自分宛てのパケットであることを確認する。
リモートノードアドレス1605は、輻輳情報収集パケットの送信先のリモートノードのノードアドレスであるリモートノードアドレスを含むフィールドである。輻輳情報収集指示パケットを受信した輻輳情報収集ノードのネットワークインタフェース装置202は、リモートノードアドレスにより指定されたノードに輻輳情報収集パケットを送信する。
経路候補1606は、輻輳情報収集パケットの送信に使われる経路を含むフィールドである。経路候補1606は、例えば中継ノードと次元順などで指定される。輻輳情報収集指示パケットを受信した輻輳情報収集ノードのネットワークインタフェース装置202は、経路候補1606を使って輻輳情報収集パケットを送信する。
パケットタイプ1601は、パケットの種類を指定するフィールドである。ネットワークインタフェース装置202は、パケットタイプ1601を参照して、参照したパケットが輻輳情報収集指示パケットであることを確認する。
ルーティングヘッダ1602は、送信先のノードまでの経路を指定するフィールドである。例えば、経路を中継ノードと次元順で指定する場合、ルーティングヘッダ1602には、これらの情報が含まれる。
ローカルノードアドレス1603は、輻輳情報収集指示パケットを送信するローカルノードのアドレスであるローカルノードアドレスを含むフィールドである。
輻輳情報収集指示パケットを受け取った輻輳情報収集ノードのネットワークインタフェース装置202は、輻輳情報収集指示パケットに含まれるリモートノードが属するグループについての輻輳情報を収集していない場合には、輻輳情報収集パケットを生成する。そして、ネットワークインタフェース装置202は、生成した輻輳情報収集パケットを輻輳情報収集指示パケットにより指定された経路を使って送信する。
輻輳情報収集パケットを受信したリモートノードのネットワークインタフェース装置202は、輻輳情報収集応答パケットを生成し、生成した輻輳情報収集応答パケットを輻輳情報収集ノードに送り返す。
輻輳情報収集ノードのネットワークインタフェース装置202は、リモートノードから送られる輻輳情報収集応答パケットを待ち合わせる。輻輳情報収集応答パケットを受信すると、ネットワークインタフェース装置202は、輻輳情報収集応答パケットの経路と戻り順を経路テーブルに保存する。
第2の実施形態において輻輳情報の収集および記録のために輻輳情報収集ノードの制御部2021およびリモートノードの制御部2021が行う処理は、前述した第1の実施形態に従ったローカルノードの制御部1021およびリモートノードの制御部1021が行う処理と同様である。
また、第2の実施形態における輻輳情報収集パケットおよび輻輳情報収集応答パケットを中継するスイッチs1の動作は、図12を参照して前述した第1の実施形態に従ったスイッチs1の動作と同様である。
第2の実施形態に従った経路テーブルには、経路候補、戻り順などの輻輳情報、輻輳情報を収集したリモートノードグループ、および現在の経路の使用状況が記録される。
図17は、本実施形態に従った経路テーブルの一例である。図17では、輻輳情報を収集したグループ1についての経路テーブルが示されている。
図17に示した経路テーブルの一例では、経路候補を経路1、経路2、・・・経路nと示している。しかし、例えば各々の経路候補を中継ノードと次元順により指定する場合には、経路1、経路2、・・・経路nは、各々の中継ノードと次元順により示すことができる。
また、図17に示した経路テーブルの一例では、経路テーブル中の戻り順が1番目である経路1は、ローカルノードグループ内のノード1による通信およびノード2による通信に用いられていることが示されている。なお、経路テーブル中の使用ノードについての情報は、後述する通信開始時に経路テーブルに書き込まれる。
このように、第2の実施形態では、輻輳情報収集ノードは、ローカルノードグループ内の輻輳情報をまとめて収集する。このことにより、ローカルノードグループ内では、輻輳情報および経路の使用状況を共有でき、ローカルノードグループ内に含まれるローカルノード間で経路の分散ができる。
次に、輻輳情報収集指示パケットを送信したローカルノードの演算処理装置101は、通信開始を開始する際に、ネットワークインタフェース装置202に通信開始を指示する。演算処理装置101が行う通信開始の指示には、リモートノードアドレス、通信の種類、メッセージを送信する場合はメッセージの格納場所、および戻り順などに関する経路選択指示が含まれる。通信開始指示を受けたネットワークインタフェース装置202は、経路選択パケットを生成する、そして、ネットワークインタフェース装置202は、生成した経路選択パケットを輻輳情報収集ノードに送信し、収集した輻輳情報からリモートノードへの経路を選択するように指示する。
図18は、第2の実施形態に従った経路選択パケットのフィールドを示す図である。
図18に示した経路選択パケットフィールド1800中のパケットタイプ1801は、パケットの種類を指定するフィールドである。輻輳情報収集ノードのネットワークインタフェース装置は、パケットタイプ1801を参照して、参照したパケットが経路選択パケットであることを確認する。
ルーティングヘッダ1802は、送信先のノードまでの経路を指定するフィールドである。例えば、経路を中継ノードと次元順で指定する場合、ルーティングヘッダ1802には、これらの情報が含まれる。
ローカルノードアドレス1803は、経路選択パケットを送信するローカルノードのアドレスを含むフィールドである。
輻輳情報収集ノードアドレス1804は、経路選択パケットの送信先のノードアドレスを含むフィールドである。経路選択パケットを受信した輻輳情報収集ノードのネットワークインタフェース装置202は、輻輳情報収集ノードアドレスを参照して自分宛てのパケットであることを確認する。
経路選択方法1805は、収集した輻輳情報からリモートノードへの経路を選択する方法についての情報を含むフィールドである。
例えば、経路選択指示が戻り順に関する指示である場合、輻輳情報を収集した輻輳情報収集ノードのネットワークインタフェース装置202は、指定された戻り順でリモートノードへの経路を選択する。そして、輻輳情報収集ノードのネットワークインタフェース装置202は、選択した経路に関する情報を含む経路パケットを輻輳情報収集指示パケットの送信元であるローカルノードに送り返す。
図19は、第2の実施形態に従った経路パケットのフィールドを示す図である。
図19に示した経路パケットフィールド1900中のパケットタイプ1901は、パケットの種類を指定するフィールドである。経路パケットを受信したローカルノードのネットワークインタフェース装置202は、パケットタイプを参照して、そのパケットが経路パケットであることを確認する。
ルーティングヘッダ1902は、送信先のノードまでの経路を指定するフィールドである。例えば、経路を中継ノードと次元順で指定する場合、ルーティングヘッダ1902には、これらの情報が含まれる。
ローカルノードアドレス1903は、経路選択パケットを送信したローカルノードのアドレスを含むフィールドである。
リモートノードアドレス1904は、選択した経路のリモートノードのアドレスを含むフィールドである。
経路パケットフィールド1900中の経路1905は、経路選択パケットで指定された経路選択方法に従って輻輳情報収集ノードのネットワークインタフェース装置が選択した経路を含むフィールドである。
ローカルノードのネットワークインタフェース装置202は、輻輳情報収集ノードから送信される経路パケットを受信すると、経路パケットに含まれる経路を使って通信を開始する。そして、ローカルノードのネットワークインタフェース装置202は、通信を完了すると、通信を完了したことを示す情報を含む完了通知パケットを輻輳情報収集ノードに送信する。
輻輳情報収集ノードのネットワークインタフェース装置202は、完了通知パケットを受信すると、完了通知パケットの送信元であるローカルノードに関する情報を経路テーブル中の使用ノードの記録から削除する。例えば、図17に示した経路テーブルにおいて、経路1を使用した通信に関する完了通知パケットをローカルノードであるノード1から受信した場合、輻輳情報収集ノードのネットワークインタフェース装置202は、経路1がノード1により使用中である情報を経路テーブル中から削除する。
以上のように、第2の実施形態では、ローカルノードグループ内の輻輳情報収集ノードがローカルノードグループ内のローカルノード間で共有される経路候補の輻輳情報を収集し、収集した輻輳情報を管理する。また、ローカルノードグループ内のローカルノードが通信する場合には、輻輳情報収集ノードが経路選択を行う。
図20は、第2の実施形態に従った輻輳情報収集ノードのネットワークインタフェース装置の制御部が行う処理のフローチャートである。
step2001において、制御部2021が経路選択パケットまたは輻輳情報収集指示パケットを受信するとstep2002以下の処理を開始する。
step2002では、制御部2021は、経路選択パケットまたは輻輳情報収集指示パケットを参照して、経路選択または輻輳情報収集の対象となるリモートノードが属しているリモートノードグループを確認する。図17に示した経路テーブルの例では、リモートノードグループがグループ1であるか否かを確認する。
step2003において、経路選択または輻輳情報収集の対象となるリモートノードが属しているリモートノードグループが経路テーブルにない場合、step2004に進む。
step2004では、受信したパケットが経路選択パケットであるか輻輳情報収集指示パケットであるかを判定する。
step2004において制御部2021が受信したパケットが輻輳情報収集指示パケットである場合、step2005に進み、制御部2021は、リモートノードへの経路候補に輻輳情報収集パケットを送り、輻輳情報収集を開始する。
step2005において輻輳情報の収集を開始した後、リモートノードから輻輳情報収集応答パケットが制御部2021に返送されると、step2006において、制御部2021は、輻輳情報収集応答パケットの戻り順等の輻輳情報を経路テーブルに保存し、step2011に進む。
step2004において、制御部2021が受信したパケットが経路選択パケットである場合、step2007に進み、制御部2021は、経路選択の指示に先立ち指示された輻輳情報の収集が終了するのを待つ。すなわち、制御部2021は、輻輳情報収集における輻輳情報収集応答パケットの受信を待ち合わせ、受信した輻輳情報収集応答パケットにより経路テーブルが更新されて輻輳情報収集が終了するのを待つ。そして、輻輳情報の収集が終了すると、step2009に進む。
step2003において、経路選択または輻輳情報収集の対象となるリモートノードが属しているリモートノードグループが経路テーブルにある場合、step2008に進む。
step2008では、制御部2021が受信したパケットが経路選択パケットであるか輻輳情報収集指示パケットであるかを判定する。
step2008において、制御部2021が受信したパケットが経路選択パケットである場合、step2009に進む。step2009では、制御部2021は、経路テーブルを参照して、経路選択指示に従った経路を選択する。図17に示した経路テーブルの例では、制御部2021は、経路テーブル中の戻り順および使用ノードを参照し、経路選択パケットにより指定された経路選択指示に従った経路を選択する。
例えば、経路選択パケットにより指定された経路選択指示が戻り順で並べた場合のk番目(kは、1から輻輳情報を収集した経路の数nまでの整数)、および使用中のノード数に対する閾値に関する指示であるとする。この経路選択指示の場合、制御部2021は、戻り順がk番目の経路からk+1、k+2番目へと順に使用中のノード数が閾値以下である経路を検索する。そして、検索の結果、使用中のノード数が閾値以下の経路があれば、その経路を選択し、使用中のノード数が閾値以下の経路がなければ、k番目の経路を選択する。例えば、戻り順を1番目とし、閾値を1とする経路選択指示が指定された場合、図17に示した経路テーブルでは、戻り順が1番目の経路1の使用ノード数は2であり、閾値を超えているため、制御部は、2番目の経路を検索する。そして、2番目の経路である経路の2の使用ノード数は0であるため、制御部2021は、経路2を経路選択指示に従った経路として選択する。
以上のように経路選択指示に従って経路を選択すると、制御部2021は、選択した経路に関する情報を含む経路パケットを経路選択パケットの送信元のローカルノードに返し、step2010に進む。
step2010では、制御部2021は、選択した経路を使用するローカルノードに関する情報を経路テーブルに記録し、step2011に進む。
step2008において、制御部2021が受信したパケットが輻輳情報収集指示パケットである場合、step2011に進む。
step2011では、制御部2021は、輻輳情報収集指示パケット、経路選択パケット、または完了通知パケットの受信を待ち合わせる。
step2012において制御部2021が輻輳情報収集指示パケットまたは経路選択パケットを受信した場合は、step2002に戻る。
step2012において制御部2021が完了通知パケットを受信した場合には、step2013において完了通知パケットの送信元であるローカルノードに関する情報を経路テーブル中の使用ノードの記録から削除する。
以上のように、第2の実施形態に従った並列計算機では、ローカルノードグループ内のローカルノードの演算処理装置による経路選択指示の指定を基に、ローカルノードグループ内の輻輳情報収集ノードのネットワークインタフェース装置が経路を選択する。このため、演算処理装置による経路選択のレイテンシを短縮することができる。
さらに、第2の実施形態に従った並列計算機では、輻輳情報収集ノードは、ローカルノードグループ内の輻輳情報をまとめて収集する。このため、ローカルノードグループ内のローカルノード間において輻輳情報および経路の使用状況を共有でき、通信経路の分散ができる。
そして、ローカルノードの演算処理装置が指定する経路選択指示が例えば輻輳情報収集応答パケットの戻り順に関する指示である場合、ローカルノードの演算処理装置は、全ての経路候補に対応する輻輳情報収集応答パケットが戻ってくるまで待つ必要がなく、通信開始を指示できる。このため、ローカルノードの演算処理装置の使用効率は下がらない。
また、輻輳情報が例えば輻輳情報収集応答パケットの戻り順である場合、リモートノードからのローカルノードの返りの通信時間も反映されている。このため、Get通信などのリモートノードがメッセージを送信する通信の場合においても適切な経路選択を行うことができる。
さらに、輻輳情報を収集するタイミングを演算処理装置が通信開始を指示する時ではなく、演算処理装置が輻輳情報収集を指示した時とした場合、演算処理装置が明示的に指定した時のみ、輻輳情報を収集する。このため、通信を行うにあたり、輻輳情報を収集するのか否かを選択することができる。
なお、本実施形態の上述の説明では、経路候補は、パケットが通過する行きと帰りの経路が同じであるとした。しかしながら、本実施形態では、パケットが通過する行きと帰りの経路が異なるとする経路候補を採ることも可能である。
<第3の実施形態>
前述した第2の実施形態に従った並列計算機では、ローカルノードグループ内のローカルノードの演算処理装置が輻輳情報収集指示を開始した時に、輻輳情報収集ノードのネットワークインタフェース装置が輻輳情報を収集する。そして、ローカルノードの演算処理装置が通信開始を指示した時に、輻輳情報収集ノードのネットワークインタフェース装置が通信に用いられる経路を選択する。
これに対し、第3の実施形態に従った並列計算機では、ローカルノードグループ内のローカルノードの演算処理装置が通信開始を指示した時に、輻輳情報収集ノードのネットワークインタフェース装置が輻輳情報を収集する。そして、輻輳情報を収集すると、輻輳情報収集ノードのネットワークインタフェース装置は、通信に用いられる経路を選択する。
第3の実施形態に従った並列計算機では、ルーティング方式によっては経路を共有するローカルノードのグループおよびリモートノードのグループを、輻輳情報を収集する前に予め設定する。また、ローカルノードグループ内に輻輳情報収集ノードを予め設定する。第3の実施形態に従った並列計算機の構成は、図14に示した第2の実施形態に従った並列計算機の構成と同様であってよい。
図21は、第3の実施形態に従った並列計算機のノードの構成図である。なお、図15に示した第2の実施形態に従ったノードの構成要素と同じ構成要素は、図21において同じ参照符号がふられている。
第3の実施形態に従った並列計算機を構成する各ノードn3は、どのノードがどのノードに通信をおこなうかによって、ローカルノードとなり、およびリモートノードとなる。また、第3の実施形態に従った並列計算機を構成する各ノードn3は、予めの設定に従って輻輳情報収集ノードとなる。図21は、ローカルノード、輻輳情報収集ノード、およびリモートノードの何れにもなり得るノードn3を示している。
第3の実施形態では、ローカルノード、輻輳情報収集ノード、およびリモートノードの各々の制御部302は、以下のような処理をするようにそれぞれ構成される。
図21に示したノードn3がローカルノードである場合、制御部3021は、演算処理装置101から通信開始の指示を受信すると、輻輳情報収集指示パケットを生成する。そして、制御部3021は、生成した輻輳情報収集指示パケットをパケット送信部1023を介して輻輳情報収集ノードへ送信する。
また、図21に示したノードn3がローカルノードである場合、制御部3021は、輻輳情報収集ノードから送信される経路パケットをパケット受信部1024を介して受信すると、経路パケットに含まれる選択された経路を使って通信を開始する。そして、制御部3021は、通信を完了すると、完了通知パケットを生成し、生成した完了通知パケットをパケット送信部1023を介して輻輳情報収集ノードに送信する。
次に、図21に示したノードn3が輻輳情報収集ノードである場合、制御部3021は、ローカルノードから送信される輻輳情報収集指示パケットをパケット受信部1024を介して受信する。制御部3021は、輻輳情報収集指示パケットに含まれるリモートノードが属するグループについての輻輳情報を収集していない場合には、輻輳情報収集パケットを生成する。そして、制御部3021は、生成した輻輳情報収集パケットをパケット送信部1023を介してリモートノードに送信する。制御部3021は、リモートノードから輻輳情報収集応答パケットをパケット受信部1024を介して受信すると、輻輳情報を経路テーブル記憶部1022内の経路テーブルに記憶する。
また、図21に示したノードn3が輻輳情報収集ノードである場合、制御部3021は、経路テーブル記憶部1022内の経路テーブルを参照して、ローカルノードから送信された輻輳情報収集指示パケットに含まれる経路選択指示に従った経路を選択する。そして、制御部3021は、選択した経路についての情報を含む経路パケットを生成し、生成した経路パケットをパケット送信部1023を介してローカルノードに返す。また、制御部3021は、選択した経路がそのローカルノードにより使用中であることを示す情報を経路テーブル記憶部1022内の経路テーブルに保存する。
そして、図21に示したノードn3が輻輳情報収集ノードである場合、制御部3021は、ローカルノードから送信される完了通知パケットをパケット受信部1024を介して受信する。そして、制御部3021は、経路がそのローカルノードにより使用中であることを示す情報を経路テーブル記憶部1022内の経路テーブルから消去する。
図21に示したノードn3がリモートノードである場合、制御部3021は、輻輳情報収集ノードから送信される輻輳情報収集パケットをパケット受信部1024を介して受信する。そして、制御部3021は、受信した輻輳情報収集パケットに基づき輻輳情報収集応答パケットを生成し、生成した輻輳情報収集応答パケットをパケット送信部1023を介して輻輳情報収集ノードに送信する。
第3の実施形態に従った並列計算機のスイッチの構成は、第2の実施形態に従った並列計算機のスイッチs1の構成と同様である。
第3の実施形態に従った並列計算機について、次の場合を例として以下で詳述する。すなわち、並列計算機のローカルノードグループは、次元順ルーティングにおいてルーティングの最初の次元方向で作る。また、並列計算機のリモートノードグループは、次元順ルーティングにおいて最後の次元方向で作る。輻輳情報を収集するタイミングは、ローカルノードの演算処理装置101が通信開始を指示した時とする。また、経路候補の種類は、ローカルノードおよびリモートノード間でパケットが通過する行きの経路と帰りの経路が同じであるとする。収集する輻輳情報は、輻輳情報収集応答パケットの戻り順であるとする。ローカルノードの演算処理装置101による経路選択指示は、戻り順と使用ノード数についての閾値に関する指示であるとする。なお、これらは第3の実施形態に従った並列計算機を説明するための例示であり、第3の実施形態に従った並列計算機は、このような場合に限定されない。
第3の実施形態では、ローカルノードの演算処理装置101は、ネットワークインタフェース装置302に通信開始を指示する。演算処理装置101による通信開始の指示には、輻輳情報収集パケットを送るリモートノードアドレス、輻輳情報収集ノードアドレス、輻輳情報を収集する経路候補、通信の種類、メッセージを送信する場合はメッセージの格納場所、および戻り順などの経路選択指示が含まれる。
演算処理装置101から通信開始の指示を受け取ったネットワークインタフェース装置302は、輻輳情報収集指示パケットを生成する。
図22は、第3の実施形態に従った輻輳情報収集指示パケットのフィールドを示す図である。
図22に示すように、第3の実施形態に従った輻輳情報収集指示パケットのフィールドには、パケットタイプ1601、ルーティングヘッダ1602、ローカルノードアドレス1603、輻輳情報収集ノードアドレス1604、リモートノードアドレス1605、および経路候補1606が含まれる。これらのフィールドの内容は、図16を示して前述した第2の実施形態と同様である。
また、図22に示すように、第3の実施形態に従った輻輳情報収集指示パケットのフィールドには、経路選択指示2207がさらに含まれる。経路選択指示2207は、ローカルノードの演算処理装置101による通信開始の指示に含まれる経路選択指示に関する情報を含むフィールドである。
ローカルノードのネットワークインタフェース装置302は、生成した輻輳情報収集指示パケットを、通信開始を指示したローカルノードと同じローカルノードグループに属する輻輳情報収集ノードに送る。
輻輳情報収集指示パケットを受信した輻輳情報収集ノードのネットワークインタフェース装置302は、輻輳情報収集指示パケットに含まれるリモートノードが属するグループについての輻輳情報を収集していない場合には、輻輳情報収集パケットを生成する。そして、ネットワークインタフェース装置302は、輻輳情報収集指示パケットにより指定された経路でリモートノードへ生成した輻輳情報収集パケットを送信する。このようなネットワークインタフェース装置302が行う輻輳情報収集パケットの生成および送信は、前述した第2の実施形態に従った輻輳情報収集ノードのネットワークインタフェース装置202が行う輻輳情報収集パケットの生成および送信と同様である。
また、リモートノードのネットワークインタフェース装置302は、輻輳情報収集パケットを受信すると、輻輳情報収集応答パケットを生成し、生成した輻輳情報収集応答パケットを輻輳情報収集ノードに返す。このようなネットワークインタフェース装置302が行う輻輳情報収集応答パケットの生成および送信は、前述した第2の実施形態に従ったリモートノードのネットワークインタフェース装置202が行う輻輳情報収集応答パケットの生成および送信と同様である。
そして、輻輳情報収集ノードのネットワークインタフェース装置302は、輻輳情報収集応答パケットを受信すると、経路候補、戻り順などの輻輳情報、および輻輳情報を収集したリモートノードグループを経路テーブルに記録する。このようなネットワークインタフェース装置302が行う経路テーブルへの記録は、前述した第2の実施形態に従った輻輳情報収集ノードのネットワークインタフェース装置202が行う経路テーブルへの記録と同様である。また、第3の実施形態に従った経路テーブルは、図17に示した第2の実施形態に従った経路テーブルと同様であってよい。
以上のように、第3の実施形態では、輻輳情報収集ノードがまとめて輻輳情報を収集することにより、ローカルノードグループ内のローカルノード間において輻輳情報と経路の使用状況を共有でき、通信経路の分散ができる。
第3の実施形態では、輻輳情報収集ノードのネットワークインタフェース装置302は、輻輳情報収集指示パケットによる指示に基づき輻輳情報を収集した後、輻輳情報収集指示パケットに含まれる経路候補の指定に従って通信に使用する経路を選択する。
ネットワークインタフェース装置302は、選択した経路を含む経路パケットを通信開始指示パケットを送信したローカルノードのネットワークインタフェース装置302に送信する。また、選択した経路がそのローカルノードにより使用されていることを示す情報を経路テーブルに記録する。このようなネットワークインタフェース装置302が行う経路選択パケットの送信および経路テーブルへの記録は、前述した第2の実施形態に従った輻輳情報収集ノードのネットワークインタフェース装置202が行う経路選択パケットの送信および経路テーブルへの記録と同様である。また、第3の実施形態に従った経路パケットは、図19に示した第2の実施形態に従った経路パケットと同様であってよい。
ローカルノードのネットワークインタフェース装置302は、経路パケットを受信すると、経路パケットに含まれる経路を使って通信を開始する。そして、通信が完了すると、ローカルノードのネットワークインタフェース装置302は、通信完了を示す完了通知パケットを輻輳情報収集ノードのネットワークインタフェース装置302に送信する。
輻輳情報収集ノードのネットワークインタフェース装置302は、完了通知パケットを受信すると、完了通知パケットの送信元であるローカルノードに関する情報を経路テーブル中の使用ノードの記録から削除する。
図23は、第3の実施形態に従った輻輳情報収集ノードのネットワークインタフェース装置の制御部が行う処理のフローチャートである。
図23のstep2301において、制御部3021がローカルノードから輻輳情報収集指示パケットを受信するとstep2302以下の輻輳情報の処理を開始する。輻輳情報収集指示パケットには、リモートノード、経路候補、経路選択指示等が含まれる。
step2302では、制御部3021は、輻輳情報収集指示パケットを参照して、輻輳情報収集の対象となるリモートノードが属しているリモートノードグループを確認する。例えば、図17に示した経路テーブルでは、リモートノードグループがグループ1であるかを確認する。
step2303において、輻輳情報収集の対象となるリモートノードが属しているリモートノードグループが経路テーブルにない場合、step2304に進む。
step2304では、制御部3021は、輻輳情報収集指示パケットにより指示された経路候補に輻輳情報収集パケットを送り、輻輳情報の収集を開始する。
step2305では、制御部3021は、リモートノードから輻輳情報収集応答パケットを受信すると、受信した輻輳情報収集応答パケットに含まれる戻り順等の輻輳情報を経路テーブルに保存し、step2306に進む。
step2303において、輻輳情報収集の対象となるリモートノードが属しているリモートノードグループが経路テーブルにある場合、step2306に進む。
step2306では、制御部3021は、経路テーブルを参照して、経路選択指示に従った経路を選択する。図17に示した経路テーブルの例では、制御部3021は、経路テーブル中の戻り順および使用ノードを参照し、経路選択パケットにより指定された経路選択指示に従った経路を選択する。
例えば、経路選択パケットにより指定された経路選択指示が戻り順で並べた時のk番目(kは、1から輻輳情報を収集した経路の数nまでの整数)、および使用中のノード数に対する閾値に関する指示であるとする。この経路選択指示の場合に制御部3021が行う処理は、図20を参照して前述した第2の実施形態に従った制御部2021が行う処理と同様である。
経路選択指示に従って経路を選択すると、制御部3021は、選択した経路に関する情報を含む経路パケットを輻輳情報収集指示パケットの送信元のローカルノードに返し、step2307に進む。
step2307では、制御部3021は、選択した経路を使用するローカルノードに関する情報を経路テーブルに記録し、step2308に進む。
step2308では、制御部3021は、輻輳情報収集指示パケットまたは完了通知パケットの受信を待ち合わせる。
step2309において制御部が輻輳情報収集指示パケットを受信した場合は、step2302に戻る。
step2309において制御部が完了通知パケットを受信した場合には、step2310に進む。
step2310では、制御部3021は、完了通知パケットの送信元であるローカルノードに関する情報を経路テーブル中の使用ノードの記録から削除する。
以上のように、第3の実施形態に従った並列計算機では、ローカルノードグループ内のローカルノードの演算処理装置による経路選択指示の指定を基に、ローカルノードグループ内の輻輳情報収集ノードのネットワークインタフェース装置が経路を選択する。このため、演算処理装置による経路選択のレイテンシを短縮することができる。
さらに、第3の実施形態に従った並列計算機では、輻輳情報収集ノードは、ローカルノードグループ内の輻輳情報をまとめて収集する。このため、ローカルノードグループ内において輻輳情報および経路の使用状況を共有でき、通信経路の分散ができる。
そして、輻輳情報を収集するタイミングを演算処理装置が通信開始を指示した時である場合、演算処理装置が通信開始に先立ち輻輳情報収集を指示した時と比べてローカルノードと輻輳情報収集ノードとの間のパケットの送受信回数が減らすことができる。このため、ルーティングのレイテンシを減らすことができる。
また、ローカルノードの演算処理装置が指定する経路選択指示が例えば輻輳情報収集応答パケットの戻り順に関する指示である場合、ローカルノードの演算処理装置は、全ての経路候補に対応する輻輳情報収集応答パケットが戻ってくるまで待つ必要がなく、通信開始を指示できる。このため、ローカルノードの演算処理装置の使用効率は下がらない。
そして、輻輳情報が例えば輻輳情報収集応答パケットの戻り順である場合、リモートノードからのローカルノードの返りの通信時間も反映されている。このため、Get通信などのリモートノードがメッセージを送信する通信の場合においても適切な経路選択を行うことができる。
<第4の実施形態>
第1の実施形態では、ローカルノードのネットワークインタフェース装置は、輻輳情報を収集した後に、収集したその輻輳情報を基づいて通信に使用する経路を選択する。また、第2および第3の実施形態では、ローカルノードグループ内の輻輳情報収集ノードのネットワークインタフェース装置は、輻輳情報を収集した後に、収集したその輻輳情報を基づいて通信に使用する経路を選択する。
これに対して、第4の実施形態では、ローカルノードのネットワークインタフェース装置(または輻輳情報収集ノードのネットワークインタフェース装置)は、輻輳情報を収集した後に、所定の時間間隔で輻輳情報の収集を繰り返し、新たに収集した輻輳情報を基づいて通信に使用する経路を変更する。
なお、第4の実施形態の以下の説明では、第1の実施形態に従った並列計算機のようにローカルノードのネットワークインタフェース装置が輻輳情報の収集および経路選択を行う並列計算機を例に説明する。しかしながら、第4の実施形態は、第2および第3の実施形態に従った並列計算機のようにローカルノードグループ内の輻輳情報収集ノードのネットワークインタフェース装置が輻輳情報の収集および経路選択を行う並列計算機においても実現できる。
第4の実施形態に従った並列計算機の構成は、図1に示した並列計算機の構成と同様であってよい。
第4の実施形態に従った並列計算機を構成する各ノードは、どのノードがどのノードに通信をおこなうかによって、ローカルノードとなり、およびリモートノードとなる。したがって、各ノードは、ローカルノードおよびリモートノードの何れにもなり得る構成を備える。
図24は、第4の実施形態に従ったノードがローカルノードである場合のノードの構成図である。図5に示した第1の実施形態に従ったノードn1の構成要素と同じ構成要素は、図24において同じ参照符号がふられている。なお、第4の実施形態に従った並列計算機のノードn4がリモートノードである場合のノードの構成は、図5を示して前述した第1の実施形態と同様である。
図24に示すように、第4の実施形態では、ネットワークインタフェース装置402内の制御部4021は、輻輳情報収集パケット制御部4021aおよび通常パケット制御部4021bを含む。
輻輳情報収集パケット制御部4021aは、演算処理装置101からの輻輳情報収集指示に基づき輻輳情報収集パケットを処理する。すなわち、演算処理装置101からの輻輳情報収集指示に基づいて、輻輳情報収集パケットを生成し、生成した輻輳情報収集パケットを送信するように輻輳情報収集パケット送信部4023aに指示する。そして、輻輳情報収集パケット制御部4021aは、送信先のノードから返送された輻輳情報収集応答パケットをパケット受信部1024から受信し、収集した輻輳情報を経路テーブル記憶部1022内の経路テーブルに記憶する。
通常パケット制御部4021bは、演算処理装置101からの通信開始の指示に基づき通常パケットを処理する。通常パケットとは、通信の際に送信されるパケットなどの輻輳情報集パケット以外のパケットである。通常パケット制御部4021bは、演算処理装置101からの通信開始指示に基づいて、輻輳情報収集パケット制御部4021aにより経路テーブルに基づき選択された経路を使って、通常パケットを送信するように通常パケット送信部4023bに指示する。
図24に示すように、第4の実施形態では、ネットワークインタフェース装置402内のパケット送信部4023は、輻輳情報収集パケット送信部4023aおよび通常パケット送信部4023bを含む。
輻輳情報収集パケット送信部4023aは、輻輳情報収集パケット制御部4021aからの指示に基づき輻輳情報収集パケットをネットワーク105を介して他のノードn4に送信する。
通常パケット送信部4023bは、通常パケット制御部4021bからの指示に基づき通常パケットをネットワーク105を介して他のノードn4に送信する。
第4の実施形態に従ったスイッチの構成および動作は、前述した第1の実施形態に従ったスイッチs1の構成および動作と同様である。
図24に示した第4の実施形態に従ったノードn4により行われる処理について、図25を参照して以下で説明する。
図25は、第4の実施形態に従ったノードが行う処理のフローチャートである。
図25のstep2501において、ローカルノードの輻輳情報収集パケット制御部4021aは、演算処理装置101から輻輳情報収集の指示を受け取ると、step2502以下の処理を開始する。演算処理装置101による輻輳情報収集の指示には、リモートノード、経路候補、および輻輳情報を収集する間隔に関する指示が含まれる。
step2502では、輻輳情報収集パケット制御部4021aは、輻輳情報収集パケットを生成する。そして、輻輳情報収集パケット制御部4021aは、生成した輻輳情報収集パケットを演算処理装置101からの指示により指定された経路候補に、輻輳情報収集パケット送信部4023aを介して送信する。輻輳情報収集パケット制御部4021aにより行われるこれらの処理は、第1の実施形態に従ったノードn1の制御部1021により行われる処理と同様である。また、輻輳情報収集パケットは、図9を参照して説明した第1の実施形態と同様である。
輻輳情報収集パケットを受信したリモートノードのネットワークインタフェース装置は、輻輳情報収集応答パケットを生成する。そして、リモートノードのネットワークインタフェース装置は、輻輳情報収集応答パケットをローカルノードに返送する。これらの処理は、第1の実施形態に従ったリモートノードネットワーク制御部102により行われる処理と同様である。また、輻輳情報収集応答パケットは、図9を参照して説明した第1の実施形態と同様である。
step2503では、ローカルノードの輻輳情報収集パケット制御部4021aは、パケット受信部1024を介して輻輳情報収集応答パケットを受信する。そして、輻輳情報収集パケット制御部4021aは、戻り順等の輻輳情報を経路テーブルに記録する。輻輳情報収集パケット制御部4021aにより行われるこれらの処理は、第1の実施形態に従ったノードn1の制御部1021により行われる処理と同様である。また、例えば収集する輻輳情報が戻り順である場合、第4の実施形態に従った経路テーブルの構成は、図10に示した経路テーブルと同様であってよい。
step2504では、輻輳情報収集パケット制御部4021aは、輻輳情報を収集したリモートノードとの間で通信中であるか否かを通常パケット制御部4021bに問い合せる。
step2504における問合せの結果、通常パケット制御部4021bが輻輳情報を収集したリモートノードとの間で通信中である場合、step2505に進む。
step2505では、輻輳情報収集パケット制御部4021aは、経路テーブルを参照して、通常パケットの通信開始に当たって演算処理装置101から指示された経路選択指示に従った経路を選択し直す。例えば、輻輳情報収集パケット制御部4021aは、演算処理装置101から指定された戻り順で経路を選択し直す。そして、輻輳情報収集パケット制御部は、選択し直した経路に関する情報を通常パケット制御部4021bに送る。通常パケット制御部4021bは、選択し直された経路を使って通信を行い、step2506に進む。
step2504における問合せの結果、通常パケット制御部4021bが輻輳情報を収集したリモートノードとの間で通信していない場合、step2506に進む。
step2506では、輻輳情報収集パケット制御部4021aは、演算処理装置101からの輻輳情報収集指示において指定された所定の時間を待つ。所定の時間経過後、step2502に戻り、step2502以降の処理を繰り返す。
以上のように、第4の実施形態に従った並列計算機では、演算処理装置からの経路選択の指定方法を基にネットワークインタフェース装置が経路を選択する。このため、経路選択のレイテンシを短縮することができる。
また、第4の実施形態に従った並列計算機では、通信と輻輳情報収集とを分離している。このため、通信中に輻輳情報収集パケット送り、収集した輻輳情報に基づいて通信中に経路を変更することができる。
さらに、第4の実施形態では、輻輳情報収集パケット制御部が所定の時間間隔で輻輳情報を収集し、経路を選択し直す。このため、通信中の輻輳状態の変化にも対応できる。
また、演算処理装置が指定する経路選択指示が例えば輻輳情報収集応答パケットの戻り順に関する指示である場合、演算処理装置は、全ての経路候補に対応する輻輳情報収集応答パケットが戻ってくるまで待つ必要がなく、通信開始を指示できる。このため、演算処理装置の使用効率は下がらない。
そして、輻輳情報が例えば輻輳情報収集応答パケットの戻り順である場合、リモートノードからのローカルノードの返りの通信時間も反映されている。このため、Get通信などのリモートノードがメッセージを送信する通信の場合においても適切な経路選択を行うことができる。
本実施形態の前述の説明では、第1の実施形態に従った並列計算機のようにローカルノードのネットワークインタフェース装置が輻輳情報の収集および経路選択を行う並列計算機を例に説明した。しかしながら、第4の実施形態は、第2および第3の実施形態に従った並列計算機のようにローカルノードグループ内の輻輳情報収集ノードのネットワークインタフェース装置が輻輳情報の収集および経路選択を行う並列計算機においても、以下のように実現することができる。
すなわち、例えば第2の実施形態に従った輻輳情報収集ノードの制御部2021を前述した第4の実施形態に従ったローカルノードの制御部4021と同様とする。また、ローカルノードグループ内のローカルノードから送信される輻輳情報収集指示パケットにより輻輳情報の更新間隔が指定されるとする。そして、前述した本実施形態と同様の処理により、輻輳情報収集ノードのネットワークインタフェース装置2021が所定の間隔で輻輳情報を収集して経路テーブルを更新する。経路テーブルの更新後、輻輳情報収集指示パケットの送信元のノードが経路テーブル中の使用ノードにある場合、輻輳情報収集ノードの制御部2021は、経路を選択し直し、選択し直した経路に関する情報を含む経路パケットを輻輳情報収集指示パケットの送信元のローカルノードに返す。ローカルノードのネットワークインタフェース装置2021は、経路パケットを受信すると、経路パケットにより指定された経路に変更する。
<第5の実施形態>
第1〜第4の実施形態では、輻輳情報収集パケットを送信してから輻輳情報収集応答パケットが戻ってくるまでの経路候補の戻り順を輻輳情報とした。
これに対して、第5の実施形態では、輻輳情報収集パケットを送信してから輻輳情報収集応答パケットが戻ってくるまでの経路候補の応答時間を輻輳情報とする。
なお、第5の実施形態の以下の説明では、第1の実施形態に従った並列計算機のようにローカルノードのネットワークインタフェース装置が輻輳情報の収集および経路選択を行う並列計算機を例に説明する。しかしながら、第5の実施形態は、第2および第3の実施形態に従った並列計算機のようにローカルノードグループ内の輻輳情報収集ノードのネットワークインタフェース装置が輻輳情報の収集および経路選択を行う並列計算機においても実現できる。
第5の実施形態に従った並列計算機の構成は、図1に示した並列計算機の構成と同様であってよい。
第5の実施形態に従った並列計算機を構成する各ノードは、どのノードがどのノードに通信をおこなうかによって、ローカルノードとなり、およびリモートノードとなる。したがって、各ノードは、ローカルノードおよびリモートノードの何れにもなり得る構成を備える。
図26は、第5の実施形態に従ったノードがローカルノードである場合のノードの構成図である。図5に示した第1の実施形態に従ったノードn1の構成要素と同じ構成要素は、図26において同じ参照符号がふられている。なお、第5の実施形態に従った並列計算機のノードがリモートノードである場合のノードの構成は、図5を示して前述した第1の実施形態と同様である。
図26に示すように、第5の実施形態に従ったノードn5には、カウンタ5026が含まれる。輻輳情報収集パケットを送信してから輻輳情報収集応答パケットが戻ってくるまで応答時間をカウンタ5026を用いて測る。
第5の実施形態に従ったスイッチの構成および動作は、第1の実施形態に従ったスイッチs1の構成および動作と同様である。
第5の実施形態では、ローカルノードのネットワークインタフェース装置50の制御部5021は、演算処理装置101から輻輳情報収集指示を受信する。演算処理装置101による輻輳情報収集指示には、リモートノードおよび経路候補に関する指示が含まれる。
演算処理装置101から輻輳情報収集指示を受け取った制御部5021は、輻輳情報収集パケットを生成する。そして、制御部5021は、パケット送信部023に輻輳情報収集パケット送信するように指示を送る。第5の実施形態に従った制御部5021が行うこれらの処理は、第1の実施形態に従った制御部1021が行う処理と同様である。
輻輳情報収集パケットの送信指示を受けたパケット送信部5023は、輻輳情報収集パケットを送信する時にカウンタ値を輻輳情収集パケットに入れる。輻輳情報収集パケットを受信したリモートノードのネットワークインタフェース装置は、カウンタ値をそのまま輻輳情報収集応答パケットに入れてローカルノードに送り返す。
図27は、第5の実施形態に従った輻輳情報収集パケットおよび輻輳情報収集応答パケットのフィールドを示す図である。なお、図9に示した第1の実施形態に従った輻輳情報収集パケットおよび輻輳情報収集応答パケットと同じフィールドには、図24において同じ参照符号がふられている。
図27に示すように、第5の実施形態に従った輻輳情報収集パケットおよび輻輳情報収集応答パケットは、カウンタ値を含むフィールド2706をさらに持つ。
ローカルノードのパケット受信部5024は、リモートノードから輻輳情報収集応答パケットを受信すると、カウンタ5026から現在のカウンタ値を取得し、取得したカウンタ値と受信した輻輳情報収集応答パケットを制御部5021に送る。制御部5021は、現在のカウンタ値と、輻輳情報収集応答パケットに含まれるカウンタ値との差分を計算する。この算出により、制御部5021は、輻輳情報収集パケットを送信してから輻輳情報収集応答パケットが戻ってくるまでの当該経路候補の応答時間を測ることができる。
制御部5021は、応答時間を測った後、応答時間と応答時間順を経路テーブル記憶部1022内の経路テーブルに記録する。
図28は、第5の実施形態に従った経路テーブルの一例である。図28に示した経路テーブルの一例では、経路候補とその応答時間が応答時間順に示されている。
図28に示した経路テーブルの一例では、経路候補を経路1、経路2、・・・経路nと示している。しかし、例えば各々の経路候補を中継ノードと次元順により指定する場合には、経路1、経路2、・・・経路nは、各々の中継ノードと次元順により示すことができる。
次に、第5の実施形態に従った並列計算機のローカルノードn5が通信を開始する処理を説明する。
第5の実施形態に従った並列計算機では、輻輳情報を収集したリモートノードへの通信を開始する場合、ローカルノードの演算処理装置101は、ネットワークインタフェース装置502の制御部5021に通信開始指示を送る。演算処理装置101が行う通信開始指示には、リモートノードアドレス、通信の種類、メッセージを送信する場合はメッセージの格納場所、および経路選択指示としての応答時間順が含まれる。
制御部5021は、経路選択指示として指定された応答時間順に従って経路テーブルを参照する。制御部5021は、経路テーブルから該当の経路を選択し、選択した該当の経路を使って通信を開始する。
以上のように、第5の実施形態に従った並列計算機では、演算処理装置からの経路選択の指定方法を基にネットワークインタフェース装置が経路を選択する。このため、経路選択のレイテンシを短縮することができる。
さらに、第5の実施形態では、輻輳情報収集パケットを送信してから輻輳情報収集応答パケットが戻ってくるまでの応答時間を輻輳情報とする。このため、複数の経路候補の輻輳情報を収集する際に輻輳情報収集パケットを送信する順番が早いか遅いかによる時間的影響をなくして、戻り順を輻輳情報とした場合と比べてより正確な輻輳情報を収集することができる。
そして、第5の実施形態では、輻輳情報収集応答パケットの応答時間順を輻輳情報とするため、リモートノードからのローカルノードの返りの通信時間も反映されている。このため、Get通信などのリモートノードがメッセージを送信する通信の場合においても適切な経路選択を行うことができる。
第5の実施形態の上述の説明では、第1の実施形態に従った並列計算機のようにローカルノードのネットワークインタフェース装置が輻輳情報の収集および経路選択を行う並列計算機を例に説明した。しかしながら、第5の実施形態は、第2および第3の実施形態に従った並列計算機のようにローカルノードグループ内の輻輳情報収集ノードのネットワークインタフェース装置が輻輳情報の収集および経路選択を行う並列計算機においても以下のようにして実現することができる。
すなわち、例えば第2の実施形態に従った輻輳情報収集ノードのネットワークインタフェース装置202内に前述した第5の実施形態に従ったローカルノードのネットワークインタフェース装置502と同様のカウンタ5026を備える。そして、輻輳情報を収集する際の第2の実施形態に従った輻輳情報収集ノードの制御部2021の処理フローを第5実施形態に従ったローカルノードの制御部5021の処理フローと同様にする。
さらに、上述した第5の実施形態を第2および第3の実施形態に従った並列計算機において実現する場合、次のような経路選択指示を採ることもできる。すなわち、応答時間順で並べた時のk番目(kは、1から輻輳情報を収集した経路の数nまでの整数)、および経路候補である経路間の応答時間の差についての閾値に関する指示を経路選択指示とする。この場合、k番目の経路を使用するノードがない、または使用するノードがあってもk+1番目の経路との応答時間の差が閾値を超える場合には、k番目の経路を選択する。経路を使用するノードがあり、且つ応答時間の差が閾値を超えない場合には、以降同様に、k+1番目の経路を使用するノードの有無およびk+1番目の経路の応答時間とk+2の応答時間との差が閾値を超えるか否かを調べていく。そして、n-1番目の経路を使用するノードの有無およびn-1番目の経路の応答時間とn番目の経路の応答時間との差が閾値を超えるか否かを調べても経路を選択できなかった場合には、k番目の経路を選択する。
<第6の実施形態>
前述したように、第1の実施形態に従った並列計算機のようにローカルノードのネットワークインタフェース装置が輻輳情報の収集および経路選択を行う並列計算機は、第1、第4、および第5の実施形態で説明した以外の場合においても実現可能である。また、第2および第3の実施形態に従った並列計算機のようにローカルノードグループ内の輻輳情報収集ノードのネットワークインタフェース装置が輻輳情報の収集および経路選択を行う並列計算機は、第2〜第5の実施形態で説明した以外の場合においても実現可能である。
そこで、第6の実施形態として以下の場合についてさらに説明する。すなわち、輻輳情報を収集するタイミングは、演算処理装置が輻輳情報収集を指示した時とする。経路候補の種類は、ローカルノードおよびリモートノード間でパケットが通過する経路が行きと帰りで異なる経路であるとする。輻輳情報は、パケットが通過する通過スイッチのバッファ使用量とする。輻輳情報の取り方は、スイッチ内の専用の経路を通ることにより収集することとする。輻輳情報を取る単位と経路選択指示は、ローカルノードおよびリモートノード間でパケットが通過する経路が行きと帰りで異なるものとする。経路選択は、バッファの使用量順と通信種類を基に行うこととする。
なお、第6の実施形態の以下の説明では、第1の実施形態に従った並列計算機のようにローカルノードのネットワークインタフェース装置が輻輳情報の収集および経路選択を行う並列計算機を例に説明する。しかしながら、第6の実施形態は、第2および第3の実施形態に従った並列計算機のようにローカルノードグループ内の輻輳情報収集ノードのネットワークインタフェース装置が輻輳情報の収集および経路選択を行う並列計算機においても実現できる。
第6の実施形態に従った並列計算機の構成は、図1に示した並列計算機の構成と同様であってよい。
第6の実施形態に従った並列計算機を構成する各ノードは、どのノードがどのノードに通信をおこなうかによって、ローカルノードとなり、およびリモートノードとなる。したがって、各ノードは、ローカルノードおよびリモートノードの何れにもなり得る構成を備える。
図29は、第6の実施形態に従ったノードの構成図である。図5に示した第1の実施形態に従ったノードn1の構成要素と同じ構成要素は、図29において同じ参照符号がふられている。
第6の実施形態では、ローカルノードおよびリモートノードの各々のネットワークインタフェース装置601内の制御部6021は、以下のような処理をするようにそれぞれ構成される。
第6の実施形態では、ローカルノードの制御部6021は、演算処理装置101から輻輳情報収集指示を受信し、輻輳情報の処理を開始する。
演算処理装置101による輻輳情報収集指示には、リモートノードおよび経路候補に関する指示が含まれる。演算処理装置101による経路候補の指定は、例えば、ローカルノードとリモートノードとの間の経路の中継ノードを指定し、ローカルノードと中継ノードとの間、および中継ノードとリモートノードとの間の経路の決め方を次元順ルーティングの次元の順番で指定することにより行われる。
また、第6の実施形態では、経路候補は、パケットが通過する行きの経路と帰りの経路が異なるように演算処理装置101により指定される。なお、行きの経路とは、ローカルノードからリモートノードまでのパケットが通過する経路を指す。また、帰りの経路とは、リモートノードからローカルノードまでのパケットが通過する経路を指す。
演算処理装置101から輻輳情報収集指示を受け取ったローカルノードの制御部6021は、輻輳情報収集パケットを生成し、生成した輻輳情報収集パケットをパケット送信部1023を介して行きの経路を使ってリモートノードに送信する。
輻輳情報収集パケットを受信したリモートノードの制御部6021は、輻輳情報収集応答パケットを生成する。そして、リモートノードの制御部6021は、輻輳情報収集パケットにより指定される帰りの経路を使って輻輳情報収集応答パケットをローカルノードに送り返す。
図30は、第6の実施形態に従った輻輳情報収集パケットおよび輻輳情報収集応答パケットフィールドを示す図である。なお、図9に示した第1の実施形態に従った輻輳情報収集パケットおよび輻輳情報収集応答パケットと同じフィールドには、図30において同じ参照符号がふられている。
第6の実施形態では、経路候補は、パケットが通過する行きと帰りの経路が異なるように指定される。また、輻輳情報は、パケットが通過する通過スイッチのバッファ使用量とされる。
そこで、図30に示すように、第6の実施形態に従った輻輳情報収集パケットおよび輻輳情報収集応答パケットは、行きの経路3005a、帰りの経路3005b、行きのルーティングヘッダ3002a、帰りのルーティングヘッダ3002b、行きのバッファ使用量3006a、および帰りのバッファ使用量3006bを含むフィールドをさらに持つ。
図30に示したパケットフィールド3000中の行きの経路3005aは、ローカルノードからリモートノードまでの輻輳情報収集パケットの経路を含むフィールドである。また、帰りの経路3005bは、リモートノードからローカルノードまでの輻輳情報収集応答パケットの経路を含むフィールドである。
行きのバッファ使用量3006aは、輻輳情報収集パケットが通過する経路上のスイッチにおけるバッファ使用量を含むフィールドである。輻輳情報収集パケットの場合、輻輳情報収集パケットが通過するスイッチは、輻輳情報収集パケットが通過するポートのバッファ使用量を輻輳情報収集パケットの行きのバッファ使用量3006aに加算していく。
帰りのバッファ使用量3006bは、輻輳情報収集応答パケットが通過する経路上のスイッチにおけるバッファ使用量を含むフィールドである。輻輳情報収集応答パケットの場合、輻輳情報収集応答パケットが通過する経路上のスイッチは、輻輳情報収集応答パケットが通過するポートのバッファ使用量を輻輳情報収集応答パケットの帰りのバッファ使用量3006bに加算していく。
行きのルーティングヘッダ3002aは、ローカルノードからリモートノードまでの経路を指定するフィールドである。例えば、行きの経路を中継ノードと次元順で指定する場合、行きのルーティングヘッダ3002aには、これらの情報が含まれる。輻輳情報収集パケットの経路上のスイッチは、行きのルーティングヘッダ3002aを参照して送信するポートを決める。
パケットフィールド中の帰りのルーティングヘッダ3002は、リモートノードからローカルノードまでの経路を指定するフィールドである。例えば、帰りの経路を中継ノードと次元順で指定する場合、帰りのルーティングヘッダには、これらの情報が含まれる。輻輳情報収集応答パケットの経路上のスイッチは、帰りのルーティングヘッダ3002bを参照して送信するポートを決める。
ローカルノードの制御部6021は、リモートノードから送られる輻輳情報収集応答パケットを待ち合わせる。輻輳情報収集応答パケットをパケット受信部1024を介して受信すると、制御部6021は、輻輳情報収集応答パケットに含まれる輻輳情報を経路テーブル記憶部1022内の経路テーブルに記録する。第6の実施形態では、記録される輻輳情報は、行きの経路および帰りの経路ごとのバッファ使用量である。
図31は、第6の実施形態に従った経路テーブルの一例である。
図31に示されるように、経路テーブルには、行きの経路と帰りの経路毎にバッファ使用量とバッファ使用量順が記録される。
次に、輻輳情報収集後に通信を開始する際、ローカルノードの演算処理装置101は、通信開始指示を制御部6021に送る。演算処理装置101による通信開始指示には、リモートノードアドレス、通信の種類、メッセージを送信する場合はメッセージの格納場所、および経路選択指示が含まれる。本実施形態では、経路選択指示としてバッファの使用量の順番と通信の種類とが演算処理装置101により指定される。
演算処理装置101により指定された通信の種類が例えばPut通信の様にローカルノードがリモートノードにメッセージを送る通信である場合には、制御部6021は、経路テーブルを参照して行きの経路の中からバッファ使用量を並べた時の順番に基づき経路を選択する。
また、演算処理装置101により指定された通信の種類がGet通信の様にリモートノードがローカルノードにメッセージを送る通信である場合には、制御部6021は、経路テーブルを参照して帰りの経路の中からバッファの使用量を並べた時の順番に基づき経路を決定する。
本実施形態に従えば、ネットワークインタフェース装置は、メッセージを送る行きの経路または帰りの経路のみの情報に基づき経路を選択することができる。
また、本実施形態に従えば、輻輳情報収集パケットの送信により、Put通信の様にローカルノードがリモートノードにメッセージを送る通信用の輻輳情報と、Get通信の様にリモートノードがローカルノードにメッセージを送る通信用の輻輳情報とを一度に収集することができる。
次に、第6の実施形態に従った並列計算機のスイッチの構成および動作を説明する。
第6の実施形態では、輻輳情報収集パケットおよび輻輳情報収集応答パケットがスイッチ内で通過する経路と、これらのパケット以外の通常パケットがスイッチ内で通過する経路とを異なるようにする。
図32は、第6の実施形態に従ったスイッチの構成図である。
図32には、各ノードを1次元のネットワークに接続する場合のスイッチが図示されているが、多次元のネットワークを構成する場合、図32に示したスイッチs6は、図32に示した構成のポートを増やした構成となる。
図32に示すように、スイッチs6には、ネットワークインタフェースへ接続するポートと、他のスイッチへ接続するポートとが含まれる。
図32では、説明を明確にするために、各ポートp4、p5、p6には送信部または受信部のみが図示されている。しかし、各ポートp4、p5、p6は、輻輳情報パケット処理部および通常パケット処理部を各々含んだ送信部および受信部の両ユニットを有する。
ポートの送信部t4には、輻輳情報パケット処理部t4aおよび通常パケット処理部t4bが含まれる。また、ポートの受信部r5、r6には、輻輳情報パケット処理部r5a、r6a、および通常パケット処理部r5b、r6bが含まれる。
輻輳情報パケット処理部t4a、r5a、r6aは、輻輳情報収集パケットおよび輻輳情報収集応答パケットを処理するユニットである。輻輳情報パケット処理部t4a、r5a、r6aには、制御部t4ac、r5ac、r6ac、およびバッファt4ab、r5ab、r6abが含まれる。
通常パケット処理部t4b、r5b、r6bは、輻輳情報収集パケットおよび輻輳情報収集応答パケット以外の通常パケットを処理するユニットである。通常パケット処理部t4b、r5b、r6bには、制御部t4bc、r5bc、r6bc、およびバッファt4bb、r5bb、r6bbが含まれる。
図32には、ポートp4の送信部の輻輳情報パケット処理部の制御部t4acと、ポートp5、p6の輻輳情報パケット処理部の受信部の制御部r5ac、r6acとの間でパケットの送受信がなされる場合を一例として図示している。また、図32では、ポートp4の送信部の通常パケット処理部の制御部t4bcと、ポートp5、p6の通常パケット処理部の受信部の制御部r5bc、r6bcとの間でパケットの送受信がなされる場合を一例として図示している。
第6の実施形態に従ったスイッチs6では、スイッチの外のネットワークインタフェース装置602または他のスイッチs6から受信されたパケットは、ポートp4、p5、p6の送信部の通常パケット処理部または輻輳情報収集パケット処理部に振り分けられて処理される。
通常パケット制御部が行う処理については、図12を参照して前述した第1の実施形態に従ったスイッチが行う処理と同様である。
輻輳情報パケット処理部が行う処理については、図12のstep1202において次のような処理が追加される。すなわち、図12のstep1202においてルーティングヘッダを更新する際に、処理中の輻輳情報収集パケット内のバッファ使用量のフィールド、あるいは処理中の輻輳情報収集応答パケット内のバッファ使用量のフィールドに、通常パケット処理部内にあるバッファのバッファ使用量を加算する。バッファ使用量を加算した後に輻輳情報パケット処理部が行う処理は、図12を参照して前述した第1の実施形態に従ったスイッチが行う処理と同様である。
図32に示すように、輻輳情報収集パケットおよび輻輳情報収集応答パケットは、通常パケットとは異なる経路を通過し、これらのパケットのバッファ使用量のフィールドに各ポートのバッファ使用量が加算されていく。
第6の実施形態に従ったスイッチによれば、輻輳情報を収集するための輻輳情報収集パケットおよび輻輳情報収集応答パケットがその他の通信に与える影響を少なくすることができる。
なお、第6の実施形態の以上の説明では、第1、第4、および第5の実施形態に従った並列計算機のようにローカルノードのネットワークインタフェース装置が輻輳情報の収集および経路選択を行う並列計算機を例に説明した。しかしながら、第6の実施形態は、第2および第3の実施形態に従った並列計算機のようにローカルノードグループ内の輻輳情報収集ノードのネットワークインタフェース装置が輻輳情報の収集および経路選択を行う並列計算機においても実現できる。
すなわち、第2および第3の実施形態に従った並列計算機のローカルノードが行う処理を本実施形態に従ったローカルノードの演算処理装置が行う処理に合わせて変更する。第2および第3の実施形態に従った並列計算機の輻輳情報収集ノードが行う処理を本実施形態に従ったローカルノードのネットワークインタフェース装置が行う処理に合わせて変更する。第2および第3の実施形態に従った並列計算機のリモートノードが行う処理を本実施形態に従ったリモートノードのネットワークインタフェース装置が行う処理に合わせて変更する。第2および第3の実施形態に従った並列計算機のスイッチが行う処理を本実施形態に従ったスイッチが行う処理に合わせて変更する。
<第7の実施形態>
上述した第1〜第6の各々の実施形態に従った並列計算機では、ローカルノードのネットワークインタフェース装置(または輻輳情報収集ノードのネットワークインタフェース装置)は、輻輳情報収集パケットを送信した後、輻輳情報収集応答パケットを受信するまで輻輳情報を収集する処理を行う。
第7の実施形態に従った並列計算機では、ローカルノードのネットワークインタフェース装置(または輻輳情報収集ノードのネットワーク装置)により行われる輻輳情報収集の終了条件を設定する。
第7の実施形態の以下の説明では、受信した輻輳情報収集応答パケットのパケット数、および輻輳情報収集パケットを送信してから輻輳情報収集応答パケットを受信するまでのタイムアウト値を輻輳情報収集の終了条件として設定した場合について説明する。
また、第7の実施形態の以下の説明では、第1の実施形態に従った並列計算機のようにローカルノードのネットワークインタフェース装置が輻輳情報の収集および経路選択を行う並列計算機を例に説明する。しかしながら、第7の実施形態は、第2および第3の実施形態に従った並列計算機のようにローカルノードグループ内の輻輳情報収集ノードのネットワークインタフェース装置が輻輳情報の収集および経路選択を行う並列計算機においても実現できる。
第7の実施形態に従った並列計算機の構成は、図1に示した並列計算機の構成と同様であってよい。
第7の実施形態に従った並列計算機を構成する各ノードは、どのノードがどのノードに通信をおこなうかによって、ローカルノードとなり、およびリモートノードとなる。したがって、各ノードは、ローカルノードおよびリモートノードの何れにもなり得る構成を備える。
図33は、第7の実施形態に従ったノードがローカルノードである場合のノードの構成図である。図5に示した第1の実施形態に従ったノードn1の構成要素と同じ構成要素は、図33において同じ参照符号がふられている。なお、第7の実施形態に従った並列計算機のノードがリモートノードである場合のノードの構成は、図5を示して前述した第1の実施形態と同様である。
図33に示すように、第7の実施形態に従ったノードn7のネットワークインタフェース装置702には、制御部7021が輻輳情報収集パケットを送信してから輻輳情報収集応答パケットを受信するまでのタイムアウト値を計測するためのカウンタ7026が含まれる。
第7の実施形態に従ったスイッチの構成および動作は、第1の実施形態に従ったスイッチs1の構成および動作と同じであってよい。
図34は、第7の実施形態に従ったローカルノードの制御部が行う処理のフローチャートである。
step3401では、ローカルノードの演算処理装置101から輻輳情報収集指示を受信すると、制御部7021は、輻輳情報の処理を開始する。演算処理装置101による輻輳情報収集指示には、リモートノード、経路候補、輻輳情報収集応答パケット数、およびタイムアウト値が含まれる。
step3402では、制御部7021は、輻輳情報収集パケットを生成し、生成した輻輳情報収集パケットを輻輳情報収集指示により指定された経路を使ってリモートノードへ送信する。また、制御部7021は、輻輳情報収集パケットの送信と共に現在のカウンタ値をカウンタ7026から取得し記録する。なお、本実施形態に従った輻輳情報収集パケットは、第1の実施形態に従った輻輳情報収集パケットと同様であってよい。
輻輳情報収集パケットを受信したリモートノードのネットワークインタフェース装置は、輻輳情報収集応答パケットをローカルノードに送り返す。本実施形態に従ったリモートノードのネットワークインタフェース装置が行う処理は、第1の実施形態に従ったリモートノードのネットワークインタフェース装置102が行う処理と同様であってよい。また、本実施形態に従った輻輳情報収集応答パケットは、第1の実施形態に従った輻輳情報収集応答パケットと同様であってよい。
step3403では、制御部7021は、輻輳情報収集の終了条件についての判定を行う。
すなわち、step3403において、送信時に取得したカウンタ値と現在のカウンタのカウンタ値との差分が指定されたタイムアウト値未満で、かつ、受信した輻輳情報収集応答パケット数が指定された輻輳情報収集応答パケット数値未満である場合には、step3404に進む。
step3404では、制御部7021は、輻輳情報収集応答パケットの受信を待ち合わせ、受信すれば輻輳情報収集応答パケットの戻り順等の輻輳情報および経路を経路テーブル記憶部1022中の経路テーブルに保存する。また、経路テーブルへの保存と共に、受信した輻輳情報収集応答パケット数を更新して記録する。
step3403において送信時カウンタ値と現在のカウンタ値との差分が指定されたタイムアウト値以上、または受信した輻輳情報収集応答パケットの数が指定された値以上である場合には、制御部7021は、輻輳情報収集を終了する。
第7の実施形態に従えば、輻輳情報収集の終了条件が設定される。このため、例えばリモートノードまたは経路上のスイッチに故障が発生し、輻輳情報収集応答パケットが戻ってこない経路が存在しても、ローカルノードのネットワークインタフェース装置は、輻輳情報収集を終了することができる、
また、第7の実施形態に従えば、ローカルノードのネットワークインタフェース装置は、輻輳情報収集応答パケットが戻ってきた経路の中から経路を選択する。このため、故障が発生した経路を通信に使う経路として選択することを回避できる。
そして、第7の実施形態に従えば、例えば戻り順の指定で1番目に戻ってきた経路を使う場合は、輻輳情報収集の終了条件についての輻輳情報収集応答パケット数を1に設定できる。このため、輻輳情報収集の時間を短縮できる。
なお、第7の実施形態の上述の説明では、第1の実施形態に従った並列計算機のようにローカルノードのネットワークインタフェース装置が輻輳情報の収集および経路選択を行う並列計算機を例に説明した。しかしながら、第7の実施形態は、第2および第3の実施形態に従った並列計算機のようにローカルノードグループ内の輻輳情報収集ノードのネットワークインタフェース装置が輻輳情報の収集および経路選択を行う並列計算機においても実現できる。
すなわち、例えば第2の実施形態に従った輻輳情報収集ノードのネットワークインタフェース装置202内に前述した第7の実施形態に従ったローカルノードのネットワークインタフェース装置702のカウンタ7021を備える。そして、前述した本実施形態に従った輻輳情報を収集する際のカウンタ値に関する制御部7021の処理フローを第2の実施形態に従った輻輳情報収集ノードの制御部2021の処理フローにおいても行う。
本発明の実施形態に関し、さらに以下の付記を開示する。
(付記1)
並列計算機システムに含まれる他の情報処理装置と複数の経路を介して接続される情報処理装置において、
輻輳情報の収集と、通信とを指示する演算処理装置と、
通信を行なう経路情報を保持する経路情報保持部と、
輻輳情報の収集を行なうための輻輳情報収集パケットを前記複数の経路のいずれかに送信する送信部と、
前記複数の経路のいずれかから前記輻輳情報収集パケットに対応する輻輳情報収集応答パケットを受信する受信部と、
前記演算処理装置が輻輳情報の収集を指示した場合に、生成した輻輳情報収集パケットを前記送信部に送信させ、前記受信部が受信した輻輳情報収集応答パケットに含まれる輻輳情報に基づき前記経路情報保持部から経路情報を選択し、選択した経路情報に基づいて前記演算処理装置が指示した通信を前記送信部に行なわせる制御部を有することを特徴とする情報処理装置。
(付記2)
前記情報処理装置において、
前記制御部は、前記演算処理装置が通信の開始を前記制御部に指示したときに輻輳情報を収集することを特徴とする付記1に記載の情報処理装置。
(付記3)
前記情報処理装置において、
前記輻輳情報の収集の指示の際に前記演算処理装置が前記制御部に対して指定する経路は、前記情報処理装置と前記輻輳情報収集パケットの送信先情報処理装置との間の中継情報処理装置の指定と、前記中継情報処理装置間の経路および前記中継情報処理装置と前記送信先情報処理装置と間の経路についての次元順ルーティングの次元の順番の指定とにより指定することを特徴とする付記1に記載の情報処理装置。
(付記4)
前記情報処理装置において、
前記輻輳情報は、前記制御部が前記輻輳情報収集応答パケットを受信した戻り順であることを特徴とする付記1又は2に記載の情報処理装置
(付記5)
前記情報処理装置において、
前記演算処理装置が前記通信を指示する際に前記制御部に指定する経路は、前記輻輳情報を収集した経路を前記戻り順で並べた時の任意の順位により指定することを特徴とする付記4に記載の情報処理装置。
(付記6)
前記情報処理装置において、
前記制御部は、前記任意の順位の前記輻輳収集応答パケットを受信した時点で、前記通信の経路を選択することを特徴とする付記5に記載の情報処理装置。
(付記7)
前記演算処理装置は、前記輻輳情報収集パケットが通過する送信先情報処理装置までの往路の経路のみ指定することを特徴とする付記1〜6のいずれか1項に記載の情報処理装置。
(付記8)
前記情報処理装置において、
前記演算処理装置は、前記輻輳情報収集パケットが通過する送信先情報処理装置までの往路の経路と、前記輻輳情報収集応答パケットを受信する前記情報処理装置からの復路の経路とを指定することを特徴とする付記1〜6のいずれか1項に記載の情報処理装置。
(付記9)
前記情報処理装置において、
前記輻輳情報は、前記輻輳情報収集パケットを前記制御部が送信してから前記輻輳情報収集応答パケットを前記制御部が受信するまでの応答時間であることを特徴とする付記1または2に記載の情報処理装置。
(付記10)
前記情報処理装置において、
前記演算処理装置が前記通信を指示する際に前記制御部に指定する経路は、前記輻輳情報を収集した経路を前記応答時間で並べた時の任意の順位で指定することを特徴とする付記9に記載の情報処理装置。
(付記11)
前記情報処理装置において、
前記輻輳情報は、前記輻輳情報収集パケットおよび前記輻輳情報収集応答パケットが通過したスイッチのバッファのバッファ使用量であることを特徴とする付記1または2に記載の情報処理装置。
(付記12)
前記情報処理装置において、
前記輻輳情報収集パケットおよび前記輻輳情報収集応答パケットは前記スイッチ内で、他のパケットとは別の経路を通過することを特徴とする付記11に記載の情報処理装置。
(付記13)
前記情報処理装置において、
前記輻輳情報収集パケットが通過する送信先情報処理装置までの往路の経路と、前記輻輳情報収集応答パケットを受信する前記情報処理装置までの復路の経路とで、前記スイッチの前記バッファのバッファ使用量を別々に収集することを特徴とする付記11に記載の情報処理装置。
(付記14)
前記情報処理装置において、
前記演算処理装置が前記通信を指示する際に前記制御部に指定する経路は、前記輻輳情報を収集した経路を前記バッファ使用量で並べた時の任意の順位により指定することを特徴とする付記13に記載の情報処理装置。
(付記15)
前記情報処理装置において、
前記演算処理装置が前記通信を指示する際に前記制御部に指定する経路は、前記バッファの使用量の順番と前記通信の種類により指定し、
前記制御部は、前記情報処理装置が前記送信先情報処理装置にメッセージを送る通信の場合は、前記往路の経路についての前記バッファ使用量を並べた時の順番を基に経路を決定し、前記送信先情報処理装置が前記情報処理装置にメッセージを送る通信の場合は、前記復路の経路についての前記バッファ使用量を並べた時の順番を基に経路を決定することを特徴とする付記13に記載の情報処理装置。
(付記16)
前記情報処理装置において、
前記演算処理装置は、前記制御部に輻輳情報の収集を所定の間隔で繰り返すように指示し、
前記制御部は、指示された前記所定の間隔で前記輻輳情報収集パケットを繰り返し送って、受信した輻輳情報収集応答パケットに含まれる輻輳情報を前記経路情報保持部に書込み、前記輻輳情報の書込み後、前記情報処理装置が通信中である場合には、通信中の経路を選択し直すことを特徴とする付記1に記載の情報処理装置。
(付記17)
前記情報処理装置において、
前記演算処理装置は、前記制御部の受信する輻輳情報収集応答パケット数と前記輻輳情報収集パケットを送信してから前記輻輳情報収集応答パケットを受信するまでのタイムアウト期間とを、前記輻輳情報の収集の指示を開始する時に指定し、
前記制御部は、指定された数の輻輳情報収集応答パケットを受信したとき、または輻輳情報の収集を開始してから指定した前記タイムアウト期間が経過したときに、輻輳情報の収集を終了することを特徴とする付記1に記載の情報処理装置。
(付記18)
複数の情報処理装置が接続された並列計算機システムにおいて、
前記情報処理装置は、
並列計算機システム内の輻輳情報の収集と、通信とを指示する演算処理装置と、
他の情報処理装置との通信を行なう経路情報を保持する経路情報保持部と、
輻輳情報の収集を行なうための輻輳情報収集パケットを他の情報処理装置に対して送信する送信部と、
他の情報処理装置からの輻輳情報収集パケットと、前記送信部から送信した輻輳情報収集パケットに対応する他の情報処理装置からの輻輳情報収集応答パケットとを受信する受信部と、
前記演算処理装置が輻輳情報の収集を指示した場合に輻輳情報収集パケットを前記送信部に送信させ、前記受信部が受信した輻輳情報収集応答パケットに含まれる輻輳情報に基づき前記経路情報保持部から経路情報を選択し、選択した経路情報に基づいて前記演算処理装置が指示した通信を前記送信部に行わせるとともに、他の情報処理装置からの輻輳情報収集パケットを受信した場合には対応する輻輳情報収集応答パケットを生成し、他の情報処理装置に生成した輻輳情報収拾応答パケットを前記送信部に送信させる制御部とを有することを特徴とする、
並列計算機システム。
(付記19)
第1の情報処理装置と第2の情報処理装置を含む複数の情報処理装置が複数の経路を介して接続された並列計算機システムの制御方法において、
前記第1の情報処理装置が有する演算処理装置が、輻輳情報の収集を指示し、
前記演算処理装置が輻輳情報の収集を指示した場合に、前記第1の情報処理装置が有する第1の制御部が、輻輳情報の収集を行なう輻輳情報収集パケットを生成し、
前記第1の情報処理装置が有する第1の送信部が、前記第1の制御部が生成した輻輳情報収集パケットを前記複数の経路のいずれかに送信し、
前記第2の情報処理装置が有する第2の受信部が、前記複数の経路のいずれかを介して輻輳情報収集パケットを受信し、
前記第2の情報処理装置が有する第2の制御部が、前記第2の受信部が受信した輻輳情報収集パケットに対応する輻輳情報収集応答パケットを生成し、
前記第2の情報処理装置が有する第2の送信部が、前記第2の制御部が生成した輻輳情報収集応答パケットを前記複数の経路のいずれかに送信し、
前記第1の情報処理装置が有する第1の受信部が、前記複数の経路のいずれかから前記輻輳情報収集パケットに対応する輻輳情報収集応答パケットを受信し、
前記第1の制御部が、前記受信部が受信した輻輳情報収集応答パケットに含まれる輻輳情報に基づき前記第1の情報処理装置が有する経路情報保持部が保持する経路情報を書き替え、
前記書き替えた経路情報に基づいて前記演算処理装置が指示した通信を、前記第1の制御部が前記第1の送信部に行なわせることを特徴とする並列計算機の制御方法。
(付記20)
複数の情報処理装置が接続された並列計算機システムにおいて、
前記情報処理装置は、
輻輳情報の収集と、通信とを指示する演算処理装置と、
前記輻輳情報の収集指示を行なう輻輳情報収集指示パケット、前記通信を開始する際の経路指示をおこなう経路選択パケット、および前記通信が完了したことを示す完了通知パケットを、前記情報処理装置が属する通信を開始する情報処理グループ内に設定された輻輳情報を収集する他の情報処理装置に送信し、前記情報処理装置が輻輳情報を収集する情報処理装置として設定された場合に、輻輳情報の収集を行なう輻輳情報収集パケットを複数の経路のいずれかを用いて、通信を受信する情報処理装置グループに属する情報処理装置に送信し、および経路選択パケットに基づき選択された経路情報を含む経路パケットを通信を指示した情報処理装置に送信する送信部と、
前記輳情報を収集する他の情報処理装置から前記経路選択パケットに対応する経路パケットを受信し、前記情報処理装置が輻輳情報を収集する情報処理装置として設定された場合に、輻輳情報の収集を指示した情報処理装置から輻輳情報収集指示パケットを受信し、前記輻輳情報収集パケットに対応する輻輳情報収集応答パケットを通信を受信する情報処理装置グループに属する情報処理装置から受信し、および経路選択パケットと完了通知パケットとを通信を指示した情報処理装置から受信する受信部と、
前記演算処理装置からの前記輻輳情報の収集の指示に基づき輻輳情報収集指示パケットを生成し、前記生成した前記輻輳情報収集指示パケットを前記送信部に送信させ、前記演算処理装置からの通信の指示に基づき経路選択パケットを生成し、前記生成した前記経路選択パケットを前記送信部に送信させ、前記受信部が受信した経路パケットに含まれる経路に基づき前記演算処理装置が指示した通信を前記送信部に行なわせ、および前記通信が完了した場合に完了通知パケットを生成し、前記生成した完了通知パケットを前記送信部に送信させ、前記情報処理装置が輻輳情報を収集する情報処理装置として設定された場合に、前記受信部が受信した輻輳情報収集指示パケットに基づき輻輳情報収集パケットを生成し、前記生成した輻輳情報収集パケットを前記送信部に送信させ、前記受信部が受信した輻輳情報収集応答パケットに含まれる輻輳情報に基づき前記経路情報保持部が保持する経路情報を書き替え、前記受信部が受信した経路選択パケットと前記経路情報保持部が保持する経路情報とに基づき経路を選択し、前記選択した経路を含む経路パケットを通信を指示した情報処理装置に送信すると共に前記通信を指示した情報処理装置が前記選択した経路により通信中であることを示す情報を前記経路情報保持部に保持させ、および前記受信部が完了通知パケットを受信した場合に、前記経路情報保持部が保持する前記通信を指示した情報処理装置が通信中であることを示す情報を削除する制御部とを有することを特徴とする、
並列計算機システム。
(付記21)
複数の情報処理装置が複数の経路を介して接続された並列計算機システムにおいて、
前記複数の情報処理装置に対して設定された通信を開始する情報処理装置グループ内の第1の情報処理装置が有する演算処理装置が装置輻輳情報の収集を指示し、
前記演算処理装置が前記輻輳情報の収集を指示した場合に、前記第1の情報処理装置が有する第1の制御部が、前記輻輳情報の収集指示を行なう輻輳情報収集指示パケットを生成し、
前記第1の情報処理装置が有する第1の送信部が前記輻輳情報指示パケットを、前記通信を開始する情報処理装置グループ内に設定された輻輳情報を収集する情報処理装置に送信し、
前記輻輳情報を収集する情報処理装置が有する第2の受信部が前記輻輳情報収集指示パケットを受信し、
前記輻輳情報を収集する情報処理装置が有する第2の制御部が、前記輻輳情報の収集を行なう輻輳情報収集パケットを生成し、
前記輻輳情報を収集する情報処理装置が有する第2の送信部が、前記第1の制御部が生成した前記輻輳情報収集パケットを前記複数の経路のいずれかを用いて前記複数の情報処理装置に対して設定された通信を受信する情報処理装置グループ内の第2の情報処理装置に送信し、
前記輻輳情報を収集する情報処理装置が有する第2の受信部が、前記複数の経路のいずれかを用いて前記第2の情報処理装置から前記輻輳情報収集パケットに対応する輻輳情報収集応答パケットを受信し、
前記第2の制御部が、前記第2の受信部が受信した前記輻輳情報収集応答パケットに含まれる輻輳情報に基づき前記輻輳情報を収集する情報処理装置が有する経路情報保持部が保持する経路情報を書き替え、
前記演算処理装置が前記通信の開始を指示した場合に、前記第1の制御部が、前記経路保持部が保持する経路情報に基づき経路を選択するための経路選択パケットを前記第1の送信部に送信させ、
前記第2の受信部が前記経路パケットを受信し、
前記第2の制御部が、前記経路保持部が保持する経路情報に基づき経路を選択し、前記選択した経路の経路情報を含む経路パケットを生成し、前記選択した経路が前記第1の情報処理装置の通信に使用中であることを示す情報を前記経路保持部に保持させ、
前記第2の送信部が前記経路パケットを前記第1の情報処理装置に送信し、
前記第1の情報処理装置が有する第1の受信部が前記経路パケットを受信し、
前記経路パケットに含まれる前記経路情報に基づいて前記演算処理装置が指示した前記通信を、前記第1の制御部が前記第1の送信部に行なわせ、
前記通信が完了した場合に、前記第1の制御部が、通信が完了したことを示す前記完了通知パケットを生成し、
前記第1の送信部が前記完了通知パケットを前記輻輳情報を収集する情報処理装置に送信し、
前記第2の受信部が前記完了通知パケットを受信し、
前記第2の制御部が前記完了通知に基づき前記選択した経路が前記第1の情報処理装置の通信に使用中であることを示す情報を前記経路保持部から削除することを特徴とする並列計算機の制御方法。
n1、n2、n3、n4、n、5、n6、n7:ノード
101:演算処理装置
102、202、302、402、502、602、702:ネットワークインタフェース装置
1021、2021、3021、4021、5021、6021、7021:制御部
1022:経路テーブル記憶部
1023、4023:パケット送信部
1024:パケット送信部
1025:DMAコントローラ
103:主記憶部
104:バス
105ネットワーク
s1、s6:スイッチ
p1、p2、p3、p4、p5、p6:ポート
t1、t2、t3、t4:送信部
r1、r2、r3、r4、r5、r6:受信部

Claims (9)

  1. 並列計算機システムに含まれる他の情報処理装置と複数の経路を介して接続される情報処理装置において、
    輻輳情報の収集と、通信とを指示する演算処理装置と、
    通信を行なう経路情報を保持する経路情報保持部と、
    輻輳情報の収集を行なうための輻輳情報収集パケットを前記複数の経路のいずれかに送信する送信部と、
    前記複数の経路のいずれかから前記輻輳情報収集パケットに対応する輻輳情報収集応答パケットを受信する受信部と、
    前記演算処理装置が輻輳情報の収集を指示した場合に、生成した輻輳情報収集パケットを前記送信部に送信させ、前記受信部が受信した輻輳情報収集応答パケットから得られた輻輳情報に基づき前記経路情報を前記経路情報保持部に保持させ、前記演算処理装置が通信の開始を指示した場合に前記経路情報保持部から経路情報を選択し、選択した経路情報に基づいて前記演算処理装置が指示した通信を前記送信部に行なわせる制御部を有し、
    前記演算処理装置は、前記制御部の受信する輻輳情報収集応答パケット数と前記輻輳情報収集パケットを送信してから前記輻輳情報収集応答パケットを受信するまでのタイムアウト期間とを、前記輻輳情報の収集の指示を開始する時に指定し、
    前記制御部は、指定された数の輻輳情報収集応答パケットを受信したとき、または輻輳情報の収集を開始してから指定した前記タイムアウト期間が経過したときに、輻輳情報の収集を終了する
    ことを特徴とする情報処理装置。
  2. 前記情報処理装置において、
    前記制御部は、前記演算処理装置が通信の開始と共に輻輳情報の収集を前記制御部に指示したときに輻輳情報を収集することを特徴とする請求項1記載の情報処理装置。
  3. 前記情報処理装置において、
    前記輻輳情報は、前記制御部が前記輻輳情報収集応答パケットを受信した戻り順であることを特徴とする請求項1又は2記載の情報処理装置。
  4. 前記情報処理装置において、
    前記演算処理装置は、前記輻輳情報収集パケットが通過する、前記情報処理装置から送信先情報処理装置までの往路の経路と、前記輻輳情報収集応答パケットが通過する、前記送信先情報処理装置から前記情報処理装置までの復路の経路とを指定することを特徴とする請求項1〜3のいずれか1項に記載の情報処理装置。
  5. 前記情報処理装置において、
    前記輻輳情報は、前記輻輳情報収集パケットを前記制御部が送信してから前記輻輳情報収集応答パケットを前記制御部が受信するまでの応答時間であることを特徴とする請求項1または2に記載の情報処理装置。
  6. 前記情報処理装置において、
    前記輻輳情報は、前記輻輳情報収集パケットおよび前記輻輳情報収集応答パケットが通過したスイッチのバッファのバッファ使用量であることを特徴とする請求項1または2に記載の情報処理装置。
  7. 前記情報処理装置において、
    前記演算処理装置は、前記制御部に輻輳情報の収集を所定の間隔で繰り返すように指示し、
    前記制御部は、指示された前記所定の間隔で前記輻輳情報収集パケットを繰り返し送って、受信した輻輳情報収集応答パケットから得られた輻輳情報を前記経路情報保持部に書込み、前記輻輳情報の書込み後、前記情報処理装置が通信中である場合には、通信中の経路を選択し直すことを特徴とする請求項1に記載の情報処理装置。
  8. 複数の情報処理装置が接続された並列計算機システムにおいて、
    前記情報処理装置は、
    並列計算機システム内の輻輳情報の収集と、通信とを指示する演算処理装置と、
    他の情報処理装置との通信を行なう経路情報を保持する経路情報保持部と、
    輻輳情報の収集を行なうための輻輳情報収集パケットを他の情報処理装置に対して送信する送信部と、
    他の情報処理装置からの輻輳情報収集パケットと、前記送信部から送信した輻輳情報収集パケットに対応する他の情報処理装置からの輻輳情報収集応答パケットとを受信する受信部と、
    前記演算処理装置が輻輳情報の収集を指示した場合に輻輳情報収集パケットを前記送信部に送信させ、前記受信部が受信した輻輳情報収集応答パケットから得られた輻輳情報に基づき前記経路情報を前記経路情報保持部に保持させ、前記演算処理装置が通信の開始を指示した場合に前記経路情報保持部から経路情報を選択し、選択した経路情報に基づいて前記演算処理装置が指示した通信を前記送信部に行わせるとともに、他の情報処理装置からの輻輳情報収集パケットを受信した場合には対応する輻輳情報収集応答パケットを生成し、生成した輻輳情報収集応答パケットを他の情報処理装置へ前記送信部に送信させる制御部とを有し、
    前記演算処理装置は、前記制御部の受信する輻輳情報収集応答パケット数と前記輻輳情報収集パケットを送信してから前記輻輳情報収集応答パケットを受信するまでのタイムアウト期間とを、前記輻輳情報の収集の指示を開始する時に指定し、
    前記制御部は、指定された数の輻輳情報収集応答パケットを受信したとき、または輻輳情報の収集を開始してから指定した前記タイムアウト期間が経過したときに、輻輳情報の収集を終了する
    ことを特徴とする、
    並列計算機システム。
  9. 第1の情報処理装置と第2の情報処理装置を含む複数の情報処理装置が複数の経路を介して接続された並列計算機システムの制御方法において、
    前記第1の情報処理装置が有する演算処理装置が、前記第1の情報処理装置が有する第1の制御部の受信する輻輳情報収集応答パケット数と輻輳情報収集パケットを送信してから前記輻輳情報収集応答パケットを受信するまでのタイムアウト期間とを指定すると共に、輻輳情報の収集を指示し、
    前記演算処理装置が輻輳情報の収集を指示した場合に、前記第1の制御部が、輻輳情報の収集を行なう輻輳情報収集パケットを生成し、
    前記第1の情報処理装置が有する第1の送信部が、前記第1の制御部が生成した輻輳情報収集パケットを前記複数の経路のいずれかに送信し、
    前記第2の情報処理装置が有する第2の受信部が、前記複数の経路のいずれかを介して輻輳情報収集パケットを受信し、
    前記第2の情報処理装置が有する第2の制御部が、前記第2の受信部が受信した輻輳情報収集パケットに対応する輻輳情報収集応答パケットを生成し、
    前記第2の情報処理装置が有する第2の送信部が、前記第2の制御部が生成した輻輳情報収集応答パケットを前記複数の経路のいずれかに送信し、
    前記第1の情報処理装置が有する第1の受信部が、前記複数の経路のいずれかから前記輻輳情報収集パケットに対応する輻輳情報収集応答パケットを受信し、
    指定された数の輻輳情報収集応答パケットを受信したとき、または輻輳情報の収集を開始してから指定した前記タイムアウト期間が経過したときに、前記第1の制御部が輻輳情報の収集を終了し、
    前記第1の制御部が、前記第1の受信部が受信した輻輳情報収集応答パケットから得られた輻輳情報に基づき前記第1の情報処理装置が有する経路情報保持部が保持する経路情報を書き替え、
    前記書き替えた経路情報に基づいて前記演算処理装置が指示した通信を、前記第1の制御部が前記第1の送信部に行なわせることを特徴とする並列計算機システムの制御方法。
JP2011080916A 2011-03-31 2011-03-31 情報処理装置、並列計算機システム、および並列計算機システムの制御方法 Expired - Fee Related JP5703909B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2011080916A JP5703909B2 (ja) 2011-03-31 2011-03-31 情報処理装置、並列計算機システム、および並列計算機システムの制御方法
EP12152259A EP2506509A1 (en) 2011-03-31 2012-01-24 Information processing apparatus, parallel computer system, and control method of parallel computer system
US13/359,635 US9143436B2 (en) 2011-03-31 2012-01-27 Information processing apparatus, parallel computer system, and control method of parallel computer system
CN201210046987.1A CN102739513B (zh) 2011-03-31 2012-02-27 信息处理设备、并行计算机系统及其控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011080916A JP5703909B2 (ja) 2011-03-31 2011-03-31 情報処理装置、並列計算機システム、および並列計算機システムの制御方法

Publications (2)

Publication Number Publication Date
JP2012216078A JP2012216078A (ja) 2012-11-08
JP5703909B2 true JP5703909B2 (ja) 2015-04-22

Family

ID=45558559

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011080916A Expired - Fee Related JP5703909B2 (ja) 2011-03-31 2011-03-31 情報処理装置、並列計算機システム、および並列計算機システムの制御方法

Country Status (4)

Country Link
US (1) US9143436B2 (ja)
EP (1) EP2506509A1 (ja)
JP (1) JP5703909B2 (ja)
CN (1) CN102739513B (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2923279B1 (en) * 2012-11-21 2016-11-02 Coherent Logix Incorporated Processing system with interspersed processors; dma-fifo
JP6281327B2 (ja) * 2014-03-06 2018-02-21 富士通株式会社 情報処理システム、情報処理装置、スイッチ装置および情報処理システムの制御方法
JP6233193B2 (ja) * 2014-05-30 2017-11-22 富士通株式会社 経路決定装置および転送経路決定方法
US9755932B1 (en) * 2014-09-26 2017-09-05 Juniper Networks, Inc. Monitoring packet residence time and correlating packet residence time to input sources
JP6740683B2 (ja) * 2016-04-07 2020-08-19 富士通株式会社 並列処理装置及び通信制御方法
US10499306B2 (en) 2017-05-24 2019-12-03 Cisco Technology, Inc. Methods and apparatus for selecting a network route for data communications for IoT devices
CN109688059B (zh) * 2017-10-19 2022-02-01 深圳市中兴微电子技术有限公司 一种交换网络的拥塞管理方法、装置及计算机存储介质
US10791062B1 (en) * 2017-11-14 2020-09-29 Amazon Technologies, Inc. Independent buffer memory for network element
US10805178B2 (en) 2017-11-27 2020-10-13 Cisco Technology, Inc. Subscription-based event notification techniques for reducing data buffering in mobile networks
US11909638B2 (en) * 2020-02-10 2024-02-20 Syntropy Network Limited Autonomously routing data using relay nodes pre-selected from a group of distributed computer nodes based on measured one-way latencies
US11770345B2 (en) * 2021-09-30 2023-09-26 US Technology International Pvt. Ltd. Data transfer device for receiving data from a host device and method therefor

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0530139A (ja) * 1991-07-23 1993-02-05 Nec Corp 計算機システム
US5533198A (en) 1992-11-30 1996-07-02 Cray Research, Inc. Direction order priority routing of packets between nodes in a networked system
JPH11331216A (ja) * 1998-05-18 1999-11-30 Nec Corp 輻輳制御方法及び装置及び記録媒体
KR100537582B1 (ko) 2001-02-24 2005-12-20 인터내셔널 비지네스 머신즈 코포레이션 신규의 초병렬 수퍼컴퓨터
JP2005269460A (ja) * 2004-03-19 2005-09-29 Intec Netcore Inc 通信品質の計測システム及び計測方法、並びに提示サーバ装置
JP2005277923A (ja) * 2004-03-25 2005-10-06 Fujitsu Ltd ネットワーク帯域測定装置、方法及びプログラム
GB2417391B (en) * 2004-08-18 2007-04-18 Wecomm Ltd Transmitting data over a network
JP2006146391A (ja) * 2004-11-17 2006-06-08 Hitachi Ltd マルチプロセッサシステム
JP4347227B2 (ja) * 2005-01-18 2009-10-21 Necインフロンティア株式会社 警備監視システム、仮想専用線アダプタ、および警備監視方法
US20070230369A1 (en) * 2006-03-31 2007-10-04 Mcalpine Gary L Route selection in a network
US8031614B2 (en) * 2006-10-06 2011-10-04 International Business Machines Corporation Method and apparatus for routing data in an inter-nodal communications lattice of a massively parallel computer system by dynamic global mapping of contended links
US7680048B2 (en) * 2006-10-06 2010-03-16 International Business Machiens Corporation Method and apparatus for routing data in an inter-nodal communications lattice of a massively parallel computer system by dynamically adjusting local routing strategies
US7701856B2 (en) * 2006-12-14 2010-04-20 Oracle America, Inc. Method and system for bi-level congestion control for multipath transport
US7706275B2 (en) * 2007-02-07 2010-04-27 International Business Machines Corporation Method and apparatus for routing data in an inter-nodal communications lattice of a massively parallel computer system by employing bandwidth shells at areas of overutilization
CN102549955A (zh) * 2009-07-28 2012-07-04 贝尔金国际股份有限公司 自愈式组网装置系统及相关方法
US20110261696A1 (en) * 2010-04-22 2011-10-27 International Business Machines Corporation Network data congestion management probe system
US8767742B2 (en) * 2010-04-22 2014-07-01 International Business Machines Corporation Network data congestion management system

Also Published As

Publication number Publication date
EP2506509A1 (en) 2012-10-03
US20120250514A1 (en) 2012-10-04
US9143436B2 (en) 2015-09-22
JP2012216078A (ja) 2012-11-08
CN102739513A (zh) 2012-10-17
CN102739513B (zh) 2015-11-18

Similar Documents

Publication Publication Date Title
JP5703909B2 (ja) 情報処理装置、並列計算機システム、および並列計算機システムの制御方法
JP6060316B2 (ja) NoCを構成するための方法及びシステム並びにコンピュータ可読記憶媒体
US8601423B1 (en) Asymmetric mesh NoC topologies
CN109408257B (zh) 用于片上网络noc的数据传输方法、装置及电子设备
JP6216454B2 (ja) ネットワークオンチップアーキテクチャにおけるシステムレベルシミュレーション
Ramakrishna et al. GCA: Global congestion awareness for load balance in networks-on-chip
JP5276220B2 (ja) バス制御装置およびバス制御装置に指示を出力する制御装置
US10027433B2 (en) Multiple clock domains in NoC
CN107196858B (zh) 一种考虑多类型约束的k最短路径求解方法
WO2010103818A1 (ja) 最適経路選択装置、最適経路選択方法、およびプログラム
JP2012146201A (ja) オンチップルータ及びそれを用いたマルチコアシステム
JP4820466B2 (ja) 半導体システム、中継器およびチップ回路
JP2010218364A (ja) 情報処理システム、通信制御装置および方法
US11329690B2 (en) Network-on-Chip topology generation
US10547514B2 (en) Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation
US10523599B2 (en) Buffer sizing of a NoC through machine learning
JPWO2012029422A1 (ja) 通信品質監視システム、通信品質監視方法、及び記憶媒体
JP4894013B2 (ja) ネットワークに含まれるノード間の経路を探索するためのシステムおよび方法
US20180198682A1 (en) Strategies for NoC Construction Using Machine Learning
GB2607653A (en) Network-on-chip topology generation
Alzaben et al. End-to-End Routing Algorithm Based on Max-Flow Min-Cut in SDN Controllers
JP6039592B2 (ja) 動的帯域割当を行うネットワークで用いられるスケジューラ及びプログラム
JP2010041429A (ja) ネットワークに含まれるノード間の経路を探索するためのシステムおよび方法
JP2002344463A (ja) 双方向リングネットワーク、ノード装置および双方向リングネットワーク制御方法
JP2018107646A (ja) 経路制御装置及び経路制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141118

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150113

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: 20150127

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150209

R150 Certificate of patent or registration of utility model

Ref document number: 5703909

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees