JP6459630B2 - データ転送制御装置、データ転送制御プログラム、および並列計算システム - Google Patents

データ転送制御装置、データ転送制御プログラム、および並列計算システム Download PDF

Info

Publication number
JP6459630B2
JP6459630B2 JP2015037641A JP2015037641A JP6459630B2 JP 6459630 B2 JP6459630 B2 JP 6459630B2 JP 2015037641 A JP2015037641 A JP 2015037641A JP 2015037641 A JP2015037641 A JP 2015037641A JP 6459630 B2 JP6459630 B2 JP 6459630B2
Authority
JP
Japan
Prior art keywords
node
nodes
region
latin
migration
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
JP2015037641A
Other languages
English (en)
Other versions
JP2016162014A (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 JP2015037641A priority Critical patent/JP6459630B2/ja
Priority to EP16152693.4A priority patent/EP3062233A3/en
Priority to US15/007,366 priority patent/US10091280B2/en
Publication of JP2016162014A publication Critical patent/JP2016162014A/ja
Application granted granted Critical
Publication of JP6459630B2 publication Critical patent/JP6459630B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17387Three dimensional, e.g. hypercubes

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multi Processors (AREA)
  • Information Transfer Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、データ転送制御装置、データ転送制御プログラム、および並列計算システムに関する。
ICT(Information and Communication Technology)サービスを提供するノード(コンピュータ)を変更する技術として、マイグレーション技術がある。例えばICTサービスの負荷の増加に伴い、現在サービスを実行しているノードのすべてのプロセスを、より処理能力の高いノードに移動するノードマイグレーションがある。また、特定のプロセスのみを移動するプロセスマイグレーションもある。
いずれのマイグレーションの方式においても、移動元から移動先へ必要なメモリ上のデータ(マイグレーションデータ)の転送が行われる。一般的には、移動元ノードではマイグレーションデータを共有ディスク(二次記憶装置)に書き込み、移動先ノードではマイグレーションデータを共有ディスクから読み出し、メモリ上に展開することでマイグレーションが実現される。本方式では、マイグレーション処理は共有ディスクに対する入出力処理時間が大半を占めるため、マイグレーションに長い時間を要する。
近年では、より高速なマイグレーションとして、移動元から移動先へネットワークを介して直接マイグレーションデータを転送するディスクレスマイグレーションが実現されている。ディスクレスマイグレーションでは、移動元ノードと移動先ノードとが協調してマイグレーションを行う。このようなディスクレスマイグレーションは、HPC(High Performance Computing)システムのように、特に高速な処理が要求されるシステムにおいて非常に有用である。
HPCシステムでは、高速なインターコネクトで接続された複数の計算ノードで、ジョブを並列処理する方式が一般化している。このようなシステムでは、並列処理過程において互いの計算ノードで使用するデータを、インターコネクトを通じて送受信するのに、例えばMPI(Message Passing Interface)が利用される。
特に大規模なHPCシステムにおいては、トーラスやメッシュ接続のネットワークが利用されている。メッシュまたはトーラス接続のネットワークは、各ノードがルータを内蔵し、ノード間が直接接続されるため、直接網と呼ばれる。メッシュまたはトーラス接続のネットワークにおける並列ジョブは、例えば最小限の大きさのサブメッシュ(3次元であれば直方体領域)内のノード集合に割り当てられる。これは、ジョブ内のノード間通信が他のジョブへ影響するのを排除するためである。このようなHPCシステムのマイグレーションでは、現行のサブメッシュのノード集合(移動元)から新たなサブメッシュのノード集合(移動先)に、マイグレーションデータが転送される。
データを並列で処理する際のデータ転送に関する技術としては、例えばアレイの相互接続配線の必要条件を実質的に低減する並列処理アーキテクチャがある。また、ワームホールルーティング技術を用いたメッシュ接続のマルチコンピュータにおける効率的なタスクマイグレーション技術も考えられている。
特表2002−507300号公報
Gwo-jong Yu, Chih-yung Chang, Tzung-shi Chen, "Task migration in n-dimensional wormhole-routed mesh multicomputers", Journal of Systems Architecture, March 2004, Volume 50, Issue 4, pp.177-192
しかし、移動元のノード集合から移動先のノード集合へのマイグレーションを行うと、隣接する複数のノードが一斉に大量のデータを送信することになり、通信の輻輳が発生しやすい。輻輳が発生すると、パケットロスによる再送信などの余計な処理が発生し、データの転送効率が低下する。なお、マイグレーションに限らず、あるサブメッシュ内のノード集合から他のサブメッシュ内のノード集合へ一斉にデータ転送を行う場合、輻輳の発生によりデータ転送効率が低下する。
1つの側面では、本件は、ノード集合間のデータ転送時の輻輳の発生を抑止することを目的とする。
1つの案では、複数のノードがn次元(nは2以上の整数)でメッシュまたはトーラス接続されたネットワーク内の第1領域に含まれる複数の第1ノードからネットワーク内の第2領域に含まれる複数の第2ノードへのデータ転送を制御するデータ転送制御装置が提供される。データ転送制御装置は複数のノードと通信する通信インタフェースと、データ転送対象のノードに対して、通信インタフェースを介してデータ転送を指示する制御部とを有する。制御部は、第1領域のサイズに応じた数を各軸方向の記号数とするn次元のラテン超方格を生成する。次に制御部は、第1領域内での複数の第1ノードそれぞれの位置に応じて、複数の第1ノードそれぞれに、ラテン超方格内の対応する位置の記号を対応付ける。そして制御部は、ラテン超方格内の同じ種類の記号に対応付けられた第1ノード同士を纏めた複数の第1ノード群それぞれによる並列データ転送を、第1ノード群単位で順番に実行するように、複数の第1ノードそれぞれに指示する。
1態様によれば、ノード集合間のデータ転送時の輻輳の発生を抑止できる。
第1の実施の形態に係る並列計算システムの構成例を示す図である。 並列計算システムの構成例を示す図である。 制御ノードのハードウェアの一構成例を示す図である。 計算ノードのハードウェア構成の一例を示す図である。 並列計算システム内の各装置の機能を示すブロック図である。 輻輳の発生状況を示す第1の例を示す図である。 輻輳の発生状況を示す第2の例を示す図である。 ラテン方格の例を示す図である。 ラテン方格を用いたマイグレーションデータの転送例を示す第1の図である。 ラテン方格を用いたマイグレーションデータの転送例を示す第2の図である。 サブメッシュの軸長が異なる場合のマイグレーションデータ転送例を示す図である。 複数のラテン方格を積み重ねた場合の第1の例を示す図である。 複数のラテン方格を積み重ねた場合の第2の例を示す図である。 計算ノードの配置の回転を伴うマイグレーションの例を示す図である。 生成するラテン方格のタイプを示す図である。 マイグレーション処理の手順の一例を示すフローチャートである。 ラテン方格生成処理の手順の一例を示すフローチャートである。 マイグレーションデータ転送処理に用いる変数を示す図である。 マイグレーションデータ転送処理の手順の一例を示すフローチャートである。 3次元のメッシュまたはトーラス接続のネットワークの例を示す図である。 ラテン超方格の一例を示す図である。 第3の実施の形態におけるマイグレーションデータ転送手順を示すシーケンス図である。 ノード割り当て管理表の一例を示す図である。 広帯域転送管理表の一例を示す図である。 ラテン方格選択処理の手順の一例を示す図である。 通信干渉度合い評価処理の手順の一例を示すフローチャートである。 第5の実施の形態におけるデータ通信経路の一例を示す図である。
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る並列計算システムの構成例を示す図である。並列計算システムは、複数のノード1aがn次元(nは2以上の整数)でメッシュまたはトーラス接続されたネットワーク1を含んでいる。ネットワーク1内のノードは、ノード間を接続するリンクと別に、データ転送制御装置10に接続されている。データ転送制御装置10は、ネットワーク1内での、複数の領域間のデータ転送を制御する。
データ転送制御装置10は、データ転送を制御するために、通信インタフェース11、制御部12、および記憶部13を有している。通信インタフェース11は、ネットワーク1内の複数のノード1aと通信する。制御部12は、ネットワーク1内のデータ転送対象のノードに対して、通信インタフェース11を介してデータ転送を指示する。記憶部13は、データ転送制御に用いるラテン超方格を記憶する。
ラテン超方格とは、2次元のラテン方格をn次元に拡張したものである。2次元のラテン方格は、k行k列(kは2以上の整数)の表にk個の異なる記号を、各記号が各行および各列に1回だけ現れるように並べたものである。従って、ネットワーク1が2次元のメッシュまたはトーラス接続であれば、記憶部13に記憶されるラテン超方格は、2次元のラテン方格13aとなる。
制御部12は、例えば、第1領域2に含まれる複数の第1ノードから第2領域3に含まれる複数の第2ノードへのデータ転送制御指示を受けると、まずn次元のラテン超方格を生成する。なお第1領域2と第2領域3との形状とサイズは同じである。すなわち、第1領域2と第2領域3とは合同である。そのため、第1領域2と第2領域3とのそれぞれに含まれるノード数も同じである。例えば、第1領域2と第2領域3とのそれぞれに含まれるノード数がK個(Kは1以上の整数)の場合、第1領域2内の複数の第1ノードと第2領域3内の複数の第2ノードとの間で、K組の1対1通信が行われる。このような通信は、例えば並列ジョブのマイグレーション時に発生する。
生成されるラテン超方格の各軸方向の記号数は、第1領域2のサイズに応じた数である。例えば、制御部12は、第1領域2内のn次元の各軸方向の幅のうち、最長の幅の軸方向に並べられた第1ノード数を、ラテン超方格の各軸方向の記号数とする。制御部12は、生成したラテン超方格を、例えば記憶部13に格納する。
ラテン超方格を生成後、制御部12は、第1領域2内での複数の第1ノードそれぞれの位置に応じて、複数の第1ノードそれぞれに、ラテン超方格内の対応する位置の記号を対応付ける。例えば制御部12は、第1領域2内の第1ノードの配列上に、ラテン超方格の記号を重ね合わせる。そして制御部12は、第1ノードそれぞれの上に重ねられた記号を、その第1ノードに対応付ける。これにより、第1領域2内の同じ軸上に並んだ第1ノードには、異なる種類の記号が対応付けられる。
そして制御部12は、ラテン超方格内の同じ種類の記号に対応付けられた第1ノード同士を纏めた複数の第1ノード群それぞれによる並列データ転送を、第1ノード群単位で順番に実行するように、複数の第1ノードそれぞれに指示する。
このようにして、第1領域2内の複数の第1ノードから第2領域3内の複数の第2ノードへのデータ転送が行われる。図1の例では、ネットワーク1が2次元のメッシュまたはトーラス接続である。この場合、生成されるラテン超方格は、2次元のラテン方格13aである。例えば第1領域2のサイズは、x軸方向(図中横方向)とy軸方向(図中縦方向)にそれぞれノード3個分の幅である。この場合、生成されるラテン方格13aのサイズは、3行3列(各軸方向の記号数が「3」)である。図1の例では、ラテン方格13aに設定する記号として「0」、「1」、「2」の3種類が用いられている。ラテン方格13aでは、行方向と列方向とに並ぶ3つの記号は、常に異なる種類となる。
このようなラテン方格13aの記号が、第1領域2内の3×3のノードに対応付けられる。図1の例では、9個の第1ノードに「1」から「9」までの識別子が付与されている。識別子「1」、「5」、「9」の第1ノード群には、記号「0」が対応付けられている。識別子「2」、「6」、「7」の第1ノード群には、記号「1」が対応付けられている。識別子「3」、「4」、「8」の第1ノード群には、記号「2」が対応付けられている。このように3×3に配置された複数の第1ノードに、各第1ノードの位置に応じて、3×3のラテン方格13a内の対応する位置の記号を対応付けることで、同じ軸方向に並ぶ3つの第1ノードには、常に異なる記号が対応付けられる。
第1領域2内の複数の第1ノードに対して、例えば、記号「0」に対応する第1ノード群、記号「1」に対応する第1ノード群、記号「2」に対応する第1ノード群の順で、第2領域3内の第2ノードへの並列データ転送の指示が、順番に出される。2番目以降にデータ転送を行う第1ノード群には、前の順番の第1ノード群によるデータ転送が完了した後にデータ転送を開始するように、指示が出される。図1の例では、複数の第2ノードにも、複数の第1ノードと同じ順に識別子が付与されている。すなわち、左下(x座標、y座標ともに最小の位置)のノードから、右(x軸正の方向)に向かって昇順の番号が識別子として付与され、下の列のノードに識別子を付与後、その上の列のノードの左から右に向かって、昇順の番号が識別子として付与される。そして各第1ノードは、同じ識別子が付与された第2ノードに対してデータを送信する。
制御部12からのデータ転送指示に基づいて、まず識別子「1」、「5」、「9」の第1ノード群が並列にデータを転送する(step0)。次に識別子「2」、「6」、「7」の第1ノード群が並列にデータを転送する(step1)。最後に識別子「3」、「4」、「8」の第1ノード群が並列にデータを転送する(step2)。同じ第1ノード群内の第1ノードは、異なる経路でデータ転送を行う。並列にデータ転送を行う第1ノード群内の各第1ノードは、すべて異なる通信経路でデータを転送することができる。その結果、データ転送中の通信の輻輳が抑止され、効率的なデータ転送が可能となる。
なお、第1領域2と第2領域3との間で、少なくとも1つの軸方向の範囲が重複する場合がある。これは換言すると、第1領域2と第2領域3の位置のある軸方向のずれ量が、その軸方向の第1領域2の幅よりも小さい場合である。この場合、第1ノードへの記号の対応付けでは、範囲が重複する該軸方向に、ラテン超方格を複数積み重ね、積み重ねられたラテン超方格それぞれ内の記号を、第1領域内の複数の第1ノードに対応付けることができる。このとき、例えば、範囲が重複する軸方向への第1領域2と第2領域3とのずれ幅と、第1領域2内の範囲が重複する軸以外の軸方向の幅のうちの最長の幅とのうちの、長い方の幅に応じた値が、ラテン超方格の各軸方向の記号数となる。このように、ラテン超方格を積み重ねることで、ラテン超方格のサイズを小さくすることができる。ラテン超方格のサイズが小さくなれば、ラテン超方格に含まれる記号の種別が少なくなり、データ転送のステップ数も少なくなる。その結果、少ないステップ数でデータ転送が可能となり、データ転送効率が向上する。
また第2領域3が、第1領域2を所定の軸周り(例えばx−y平面に垂直な軸周り)に回転させた配置となっている場合がある。例えば、第1領域2をx軸、y軸方向に平行移動させ、時計回りまたは反時計回りに90度回転させたときに第1領域2が占めることとなる領域が、第2領域3となる場合である。この場合、第1領域2のn次元の各軸方向の幅のうち、最長の幅の軸方向に、ラテン超方格を複数積み重ね、積み重ねられたラテン超方格それぞれ内の記号を、第1領域2内の複数の第1ノードに対応付けることができる。このとき、例えば、第1領域2内のn次元の各軸方向の幅のうち、2番目に長い幅の軸方向に並べられた第1ノード数が、ラテン超方格の各軸方向の記号数となる。これにより、小さいラテン方格を用いて、効率的なデータ転送が可能となる。
ラテン超方格の生成では、複数のラテン超方格を生成し、通信経路上の通信状況に基づいて、最も効率的にデータ転送が可能なラテン超方格を用いることもできる。この場合、複数のラテン超方格から選択された1つのラテン超方格内の記号が、第1領域2内での複数の第1ノードそれぞれの位置に応じて、複数の第1ノードそれぞれに対応付けられる。このように複数のラテン超方格から効率的なデータ転送が可能なラテン超方格を選択することで、データ転送効率を向上させることができる。
さらに、データ転送の指示を、複数の第1ノードと複数の第2ノードとのそれぞれに対して行うこともできる。この場合、制御部12は、例えば、複数の第1ノードそれぞれに対して、転送するデータの半分のデータを第1の経路で送信するように指示する。また制御部12は、例えば複数の第2ノードそれぞれに対して、転送するデータの残りの半分のデータを、複数の第1ノードそれぞれから、第1の経路とは別の第2の経路で取得するように指示する。これにより、1つの第1ノードから対応する第2ノードへのデータ転送が2つの経路で並列で実行される。その結果、データ転送効率を向上する。
なお、制御部12は、例えばデータ転送制御装置10が有するプロセッサにより実現することができる。また、記憶部13は、例えばデータ転送制御装置10が有するメモリにより実現することができる。
また、図1に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、メッシュまたはトーラス接続による並列計算システムにおける、ジョブの効率的なマイグレーションを実現するものである。
図2は、並列計算システムの構成例を示す図である。制御ノード100が、ネットワーク20を介して計算ノード群200内の計算ノード210−1,210−2,210−3,・・・に接続されている。制御ノード100は、計算ノード群200で構成されたHPCシステムを制御するコンピュータである。計算ノード群200に含まれる各計算ノード210−1,210−2,210−3,・・・は、制御ノード100からの指示に従ってジョブを実行するコンピュータである。
制御ノード100は、計算ノード群200内の1以上の計算ノードをジョブに割り当て、そのジョブの実行指示を、割り当てた計算ノードに送信する。また制御ノード100は、ジョブの実行途中で、そのジョブを割り当てる計算ノードを変更できる。その場合、制御ノード100は、ジョブを実行するタスクを、マイグレーションにより移動させる。ジョブのマイグレーションを行う場合、そのジョブのデータが、移行元の計算ノードから移行先の計算ノードに転送される。
計算ノード群200内の各計算ノード210−1,210−2,210−3,・・・は、メッシュまたはトーラス接続でネットワークが組まれている。メッシュ接続の場合、計算ノード210−1,210−2,210−3,・・・が、n次元(nは2以上の整数)の各軸方向に、並べられている。各計算ノード210−1,210−2,210−3,・・・は、各軸方向に隣接する他の計算ノードと高速のインターコネクトで接続されている。トーラス接続の場合、各軸方向の両端の計算ノード同士も、インターコネクトで接続されている。
図3は、制御ノードのハードウェアの一構成例を示す図である。制御ノード100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
メモリ102は、制御ノード100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
バス109に接続されている周辺機器としては、HDD(Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、制御ノード100の補助記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの不揮発性の半導体記憶装置(SSD:Solid State Drive)を使用することもできる。
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース107は、制御ノード100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。第1の実施の形態に示した装置も、図3に示した制御ノード100と同様のハードウェアにより実現できる。
制御ノード100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。制御ノード100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、制御ノード100に実行させるプログラムをHDD103に格納しておくことができる。プロセッサ101は、HDD103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また制御ノード100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、HDD103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
図4は、計算ノードのハードウェア構成の一例を示す図である。計算ノード210−1は、CPU/メモリ部201とルータ202とを有している。CPU/メモリ部201とルータ202とは、複数の通信インタフェース(NIC)203で接続されている。他の計算ノード210−2,210−4,210−5も同様のハードウェア構成である。
直接網のネットワークでは、図に示すように、各計算ノードは複数のNIC203を持つことが多い。図の例では、4つのNIC203により、CPU/メモリ部201とルータ202とが接続されている。これにより、CPU/メモリ部201から送出可能な転送幅は、1つのNIC203の転送幅の4倍となる。一方、ルータ202から先は隣接する他の計算ノード210−2,210−4が複数存在することから、1対のルータ間の通信速度は、CPU/メモリ部201から送出可能な転送幅より小さいことが普通である。つまり、特定の2つの計算ノード間の通信は、通信方向・通信手順が同じであれば、その通信速度はルータ間の通信速度に律速される。そこで、ルータ間の通信を伴うデータ転送を効率的に行うことが重要となる。
図5は、並列計算システム内の各装置の機能を示すブロック図である。制御ノード100は、ジョブマネージャ110を有している。ジョブマネージャ110は、計算ノード210−1,210−2,210−3,・・・を用いたジョブの実行を制御する。例えばジョブマネージャ110は、投入されたジョブに対する計算ノードの割り当てや、ジョブを実行している計算ノードへのマイグレーション指示を行う。
ジョブマネージャ110は、マイグレーションの管理のために、マイグレーション情報記憶部111、移行先決定部112、ラテン方格生成部113、およびデータ転送管理部114を有する。
マイグレーション情報記憶部111は、マイグレーションに利用する情報を記憶する。例えばマイグレーション情報記憶部111は、マイグレーションさせるジョブの移行元の計算ノード集合、移行先の計算ノード集合、マイグレーションの実行順を表すラテン方格などを記憶する。例えばメモリ102の記憶領域の一部が、マイグレーション情報記憶部111として使用される。
移行先決定部112は、マイグレーションさせるジョブの移行先の計算ノードを決定する。例えば移行先決定部112は、メッシュまたはトーラス接続のネットワーク内から、ジョブの実行に利用する計算ノード数以上の、空きの計算ノードを包含するサブメッシュを検出する。サブメッシュは、2次元のメッシュまたはトーラス接続のネットワークであれば、長方形領域であり、3次元のメッシュまたはトーラス接続のネットワークであれば、直方体領域である。空きの計算ノードとは、現在ジョブを実行していない計算ノードである。そして移行先決定部112は、検出したサブメッシュ内の計算ノードを、移行先の計算ノード集合に決定する。移行先決定部112は、ジョブを現在実行している移行元の計算ノード集合を示す情報と、決定した移行先の計算ノード集合を示す情報とを、マイグレーション情報記憶部111に格納する。
ラテン方格生成部113は、マイグレーションの効率的な実行手順を表すラテン方格を生成する。ラテン方格生成部113は、生成したラテン方格を、マイグレーション情報記憶部111に格納する。
データ転送管理部114は、マイグレーションデータの転送を管理する。例えばデータ転送管理部114は、生成されたラテン方格の数値を、移行元の計算ノード集合の、サブメッシュ内での計算ノードに対応付けている。データ転送管理部114は、ラテン方格の数値を、その数値に対応付けられた計算ノードのマイグレーションデータの転送順に決定する。そして、データ転送管理部114は、移行元の各計算ノードのマイグレーションデータを、その計算ノードの転送順に従って順番に転送するように、移行元の各計算ノードに対してマイグレーションデータの転送指示を行う。
計算ノード210−1は、マイグレーション部211とジョブデータ記憶部212とを有している。マイグレーション部211は、制御ノード100からの指示に応じて、ジョブのマイグレーションを行う。例えばマイグレーション部211は、実行しているジョブのマイグレーションの指示を受けると、そのジョブのデータをジョブデータ記憶部212から取得し、マイグレーションによる移行先の計算ノードに送信する。ジョブデータ記憶部212は、ジョブの実行に使用するデータを記憶する。ジョブデータ記憶部212は、例えば、計算ノード210−1のメモリである。計算ノード210−1以外の計算ノード210−2,210−3,・・・も、計算ノード210−1と同様の要素を有している。
なお、図5に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図5に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
このような並列計算システムにおいて、並列処理を行うジョブを実行する際には、そのジョブに対して、サブメッシュ内の計算ノード集合が割り当てられる。このジョブのマイグレーションでは、移行元の計算ノード集合内の各計算ノードから、移行先の計算ノード集合内の各計算ノードへ、データが送信される。その際、ジョブマネージャ110は、マイグレーション中の輻輳を抑制できるように、移行元の各計算ノードがデータを送信する順番を制御する。
ここで、マイグレーション中に輻輳が発生する原因について説明する。
図6は、輻輳の発生状況を示す第1の例を示す図である。図6では、2次元メッシュを持つインターコネクトにおいて、4×4のサブメッシュ31内の計算ノード集合で実行されているジョブを、サブメッシュ31をx軸方向に平行に移動させた位置の4×4のサブメッシュ32内の計算ノード集合に移行する。
この例では、計算ノード31aのマイグレーションデータは、計算ノード32aに送信される。計算ノード31bのマイグレーションデータは、計算ノード32bに送信される。計算ノード31cのマイグレーションデータは、計算ノード32cに送信される。計算ノード31dのマイグレーションデータは、計算ノード32dに送信される。
図6の例では、移動元の計算ノード31a〜31dから移動先の計算ノード32a〜32dへ、一斉にマイグレーションデータの送信が開始されている。このようにx軸方向のみにマイグレーションデータを転送する場合において、移動元の計算ノード31a〜31dが一斉にマイグレーションデータの送信を開始すると、通信経路の途中で最大4多重の輻輳が生じる。
図7は、輻輳の発生状況を示す第2の例を示す図である。図7では、4×4のサブメッシュ33内の計算ノード集合で実行されているジョブを、サブメッシュ33をx軸方向とy軸方向とに平行に移動させた位置の4×4のサブメッシュ34内の計算ノード集合に移行させる。この際のマイグレーションデータのルーディングは、x軸方向、y軸方向の順で行われるものとする。
この例では、計算ノード33aのマイグレーションデータは、計算ノード34aに送信される。計算ノード33bのマイグレーションデータは、計算ノード34bに送信される。計算ノード33cのマイグレーションデータは、計算ノード34cに送信される。計算ノード33dのマイグレーションデータは、計算ノード34dに送信される。計算ノード33eのマイグレーションデータは、計算ノード34eに送信される。計算ノード33fのマイグレーションデータは、計算ノード34fに送信される。計算ノード33gのマイグレーションデータは、計算ノード34gに送信される。
図7の例では、移動元の計算ノード33a〜33gから移動先の計算ノード34a〜34gへ、一斉にマイグレーションデータの送信が開始されている。このようにx軸方向とy軸方向とにマイグレーションデータを転送する場合において、各計算ノード33a〜33gが一斉にマイグレーションデータの送信を開始すると、x軸方向の通信において最大4多重、y軸方向の通信において最大4多重の輻輳が生じる。
通信経路の輻輳はネットワーク遅延やパケットロスを引き起こす主原因であり、結果として通信性能の大幅な劣化をまねく。
図6,図7に示したような通信経路の輻輳の発生を抑止するためには、通信を複数のステップに分けて、計画的に行う方法が考えられる。例えば図6においては、サブメッシュ31内のy軸方向の列ごとに、順番にマイグレーションデータを送信すれば、輻輳の発生を抑止できる。すなわち、最初に、計算ノード31aと同じ列に属する4つの計算ノードが一斉にマイグレーションデータの転送を行い、その後、計算ノード31bと同じ列に属する4つの計算ノードが一斉にマイグレーションデータの転送を行う。その後、同様に、計算ノード31cと同じ列に属する4つの計算ノード、計算ノード31dと同じ列に属する4つの計算ノードの順で、マイグレーションデータの転送を行う。これにより、輻輳なくデータ通信が可能となる。
しかし、図7のようにx軸方向とy軸方向とのデータ転送がある場合には、図6の場合と同じ方法ではx軸方向の通信では輻輳は発生しないが、y軸方向の通信において輻輳が発生してしまう。
第2の実施の形態では、輻輳の発生を抑制するために、マイグレーション対象のジョブに割り当てられた計算ノード集合を、複数の計算ノード群に分け、計算ノード群ごとに、複数のステップで順番にデータ転送を行う。このとき、各通信ステップにおいて同時通信する計算ノード群において、x軸座標値とy軸座標値とがすべて異なるようにする。また、ジョブに割り当てられた計算ノード集合内の各ノードは、いずれかのステップの一つに属するようにする。このような条件を満たすように、通信順を決定する方法として、ラテン方格を利用することができる。
図8は、ラテン方格の例を示す図である。ラテン方格41〜43は、k行,k列の表にk個の異なる記号を、各記号が各行、各列に1回だけ現れるように並べたものである(kは1以上の整数)。ラテン方格41〜43は、ラテン方陣とも呼ばれる。図8の例では、ラテン方格41〜43の記号として、1からnまでの数値を用いている。
特に1行・1列が自然な順序で並んでいる場合を「標準形」という。例えばラテン方格41,42は、数値が0,1,2,3の順で並んでいるため、標準形である。
k×kのラテン方格の組み合わせ数は、計算式「k!(k−1)!×ik」で求められる。ここで、ikは、i1=i2=i3=1,i4=4,i5=56,i6=9408…である。4×4のラテン方格であれば、576通り生成できる。
このようなラテン方格を用いて、マイグレーションデータの転送順を決定すれば、通信の輻輳を抑止できる。すなわち、ラテン方格では、k行,k列の表にk種の記号が設定され、各種別の記号が各行、各列に1回だけしか現れない。その記号を、マイグレーションを行う計算ノード集合内の各計算ノードに対応付けると、同種の記号が対応付けられた計算ノード同士は、行と列が重なることがない。すると、同種の記号が対応付けられた計算ノード群を、同時通信する計算ノードとすることで、同時通信する計算ノード群において、x軸座標値とy軸座標値とがすべて異なるようにすることができる。そして、マイグレーション対象の計算ノード群のすべてを包含できる最小限のサイズのラテン方格を生成すれば、通信の輻輳を発生させずに、最小限のステップ数でマイグレーションデータの転送が可能となる。
図9は、ラテン方格を用いたマイグレーションデータの転送例を示す第1の図である。図9の例では、4×4のサブメッシュ51内の計算ノードで実行されているジョブを、4×4の別のサブメッシュ52にマイグレーションによって移動させる。サブメッシュ51,52に含まれる計算ノードには、サブメッシュ51,52内での識別番号が付与されている。図9中、丸い図形が計算ノードを表し、その図形内の数値が、サブメッシュ51,52内での識別番号である。
このようなマイグレーションにおけるマイグレーションデータの転送を、ラテン方格41を用いて行うものとする。その場合、ラテン方格41内での各数値の位置が、移行元の各計算ノードのサブメッシュ51内での位置に対応する。そして、ラテン方格41の数値が、対応する計算ノードがマイグレーションデータを送信する順番を表す。
例えば最初のステップ(step0)において、ラテン方格41の「0」に対応する計算ノード(識別子「1」、「6」、「11」、「16」)が、マイグレーションデータを、サブメッシュ52内の同じ識別子の計算ノードへ送信する。次のステップ(step1)において、ラテン方格41の「1」に対応する計算ノード(識別子「2」、「7」、「12」、「13」)が、マイグレーションデータを、サブメッシュ52内の同じ識別子の計算ノードへ送信する。
図10は、ラテン方格を用いたマイグレーションデータの転送例を示す第2の図である。さらに次のステップ(step2)において、ラテン方格41の「2」に対応する計算ノード(識別子「3」、「8」、「9」、「14」)が、マイグレーションデータを、サブメッシュ52内の同じ識別子の計算ノードへ送信する。最後のステップ(step3)において、ラテン方格41の「3」に対応する計算ノード(識別子「4」、「5」、「10」、「15」)が、マイグレーションデータを、サブメッシュ52内の同じ識別子の計算ノードへ送信する。
このように、ラテン方格を用いることで、x,y座標の異なる複数の計算ノード(図9,図10の例では対角線状)を同時通信単位としてマイグレーションデータを転送することができる。そして、ラテン方格の数値の数の分だけ、通信ステップを繰り返すことで、経路輻輳がなくかつ最小ステップ数で、マイグレーションデータの転送を実現することができる。
なお、図9に示したラテン方格41は、標準形である。そのためstep0で対角線方向の計算ノードがデータ転送を行った後、ステップを進めるごとに、通信する計算ノードを右(x軸の正の方向)にシフトしていくことで、図9、図10に示したような順番でのデータ転送を行うことができる。なお、右にシフトするとサブメッシュ51の範囲を超える場合、逆側の最小位置の計算ノードが通信の対象となる。
通信を行う計算ノード群をシフトすることでstep0〜3すべてにおいて、同時通信するすべてのノード群のx,y座標が異なる。結果的に、図9、図10に示す4×4のノード集合のマイグレーションデータの転送は、同時通信ノード数:4ノード、ステップ数:4で完了することができる。
1対の移動元・移動先ノード間の通信速度を1とした場合、各ステップにおける通信速度は経路輻輳を排除したため、維持される。一方、4回のステップに分けて転送するため、全ノードのマイグレーションデータ転送時間は、1対のノード間通信時間の4倍となる。このとき、通信の輻輳が発生しないことで、それ以上の大きな通信時間の劣化はなく、通信時間を短縮することができる。
なお、図9、図10の例では、標準形のラテン方格41を用いたため、step0の同時通信を行う計算ノード群が対角線方向に並んでおり、その後の各ステップでも、その座標をシフトした位置の計算ノード群となっている。
次に、サブメッシュのx軸方向の幅とy軸方向の幅とが異なる場合について説明する。なお第2の実施の形態では、計算ノード間のx軸方向およびy軸方向の間隔は「1」であるものとする。この場合、サブメッシュのx軸方向の幅とy軸方向の幅とは、サブメッシュ内のx軸方向の計算ノード数と、y軸方向の計算ノード数で表される。
図11は、サブメッシュの軸長が異なる場合のマイグレーションデータ転送例を示す図である。図11には、x軸方向に幅「4」(計算ノード4つ分)、y軸方向に幅「5」(計算ノード5つ分)のサブメッシュ53内の計算ノードが割り当てられたジョブを、同様に4×5のサブメッシュ54内の計算ノードにマイグレーションする場合の例が示されている。このように軸長が異なる場合、ラテン方格生成部113は、最も長い軸(最長軸)の長さに合わせたラテン方格を生成する。図11の例では、5×5のラテン方格44が生成される。
この場合、サブメッシュ53,54を含む5×5の領域の計算ノードに対して、ラテン方格44の各数値が対応付けられる。その際、ラテン方格44の最も右側の列は使用されない。すなわち、その列の数値は、サブメッシュ53,54内の計算ノードに対応付けられない。サブメッシュ53内の計算ノードは、ラテン方格44内の対応する数値に応じた順番で、マイグレーションデータを転送する。例えば最初のステップ(step0)では、サブメッシュ53内の識別子「1」、「6」、「11」、「16」の計算ノードが、一斉にマイグレーションデータを送信する。
図11の例では、5×5のラテン方格44を用いているため、すべてのマイグレーションデータを転送するのに、5ステップを要する。サブメッシュの軸長が異なる場合において、所定の条件を満たす場合には、より少ないステップ数でマイグレーションデータの転送を完了させることもできる。例えば、移動元の計算ノード集合を表すサブメッシュと、移動先の計算ノード集合を表すサブメッシュとの間で、サブメッシュの長い方の軸において重複する範囲がある場合、複数のラテン方格を積み重ねることで、ステップ数を減らすことが可能である。
図12は、複数のラテン方格を積み重ねた場合の第1の例を示す図である。移動元の計算ノード集合と、移動先の計算ノード集合との間で、いずれか1軸方向で座標の重なりがある場合、2つのラテン方格を積み上げて、マイグレーションデータの転送に要するステップ数を削減できる。
積み上げるラテン方格は、重なりがある軸方向のサブメッシュ55,56のずれ幅と、重なりがない軸方向の、サブメッシュ55,56の幅との大きい方の幅(Max(x,y))に応じたサイズとなる。図12には、4×10のサブメッシュ55内の計算ノードから、同じサイズの4×10のサブメッシュ56内の計算ノードへのマイグレーションを行う場合の例を示している。移行元のサブメッシュ55と移行先のサブメッシュ56は、y軸方向の範囲が重複する。y軸方向のずれ幅は、「3」(3ノード分)である。この場合、各サブメッシュ55,56のx軸方向の幅「4」と、y軸方向のずれ幅「3」と、の大きい方の値(Max(4,3)=4)に応じた、4×4のラテン方格41が生成される。そして、ラテン方格41が3つ積み重ねられ、サブメッシュ55,56内の各計算ノードと対応付けられる。これにより、サブメッシュ55,56内のすべての計算ノードを、ラテン方格41内のいずれかの数値と対応付けることができる。
そして、ラテン方格の数値の順番に、各数値に対応する計算ノードが、マイグレーションデータを送信する。例えば最初のステップ(step0)では、識別子「2」、「7」、「12」、「13」、「18」、「23」、「28」、「29」、「34」、「39」の各計算ノードが、一斉にマイグレーションデータを送信する。その後、ラテン方格41の数値に従って、その数値に対応する計算ノードがデータ送信を行うことで、4ステップでマイグレーションデータの転送を完了することができる。
図13は、複数のラテン方格を積み重ねた場合の第2の例を示す図である。図13には、4×11のサブメッシュ57内の計算ノードから、同じサイズの4×11サブメッシュ58内の計算ノードへのマイグレーションを行う場合の例を示していている。移行元のサブメッシュ57と移行先のサブメッシュ58は、y軸方向の範囲が重複する。y軸方向のずれ幅は、「5」(5ノード分)である。この場合、各サブメッシュ57,58のx軸方向の幅「4」と、y軸方向のずれ幅「5」と、の大きい方の値(Max(4,5)=5)に応じた、5×5のラテン方格44が生成される。そして、ラテン方格44が3つ積み重ねられ、サブメッシュ57,58内の各計算ノードと対応付けられる。これにより、サブメッシュ57,58内のすべての計算ノードを、ラテン方格44内のいずれかの数値と対応付けることができる。
そして、ラテン方格の数値の順番に、各数値に対応する計算ノードが、マイグレーションデータを送信する。例えば最初のステップ(step0)では、識別子「1」、「6」、「11」、「16」、「21」、「26」、「31」、「36」、「41」の各計算ノードが、一斉にマイグレーションデータを送信する。その後、ラテン方格44の数値に従って、その数値に対応する計算ノードがデータ送信を行うことで、5ステップでマイグレーションデータの転送を完了することができる。
次に、マイグレーションの際に、計算ノードの配置を回転させる場合について説明する。
図14は、計算ノードの配置の回転を伴うマイグレーションの例を示す図である。図14の例は、ジョブに割り当てる計算ノード集合の配置を、マイグレーション時に時計回りに90度回転させている。この場合、移行元のサブメッシュ59におけるマイグレーションのデータの送信順を示すラテン方格41に対し、数値の配置を時計周りに90度回転させたラテン方格45が生成される。このラテン方格45が、移行先のサブメッシュ60内の計算ノードのデータ受信順を表している。このように、ラテン方格41,45を用いれば、計算ノードの配置が回転していても、輻輳の発生を抑止して、マイグレーションを行うことができる。
なお、計算ノードの配置の回転は、移行元のサブメッシュのx軸方向とy軸方向との軸長が異なる場合に、特に有効である。すなわち回転が共用されることで、マイグレーションをする際の移行先のサブメッシュの探索において、移行元のサブメッシュの平行移動と回転とを組み合わせて得られる、空き計算ノードの集合を包含するサブメッシュが探索される。これにより、移行元のサブメッシュを平行移動することで得られるサブメッシュだけを探索対象とする場合に比べて、移行先のサブメッシュを検出できる可能性が高くなる。
これまでに説明したように、ラテン方格を用いたマイグレーションデータの転送方式には、複数の方法が考えられる。ラテン方格を生成する際には、最もデータ転送を効率的に行うことができるラテン方格が生成される。どのようなラテン方格が適切なのかは、回転の有無と、移行元と移行先とのサブメッシュ同士の長軸座標の重複の有無とに基づいて判断される。
図15は、生成するラテン方格のタイプを示す図である。タイプ1は、計算ノードの配置の回転がなく、移行元のサブメッシュと移行先のサブメッシュとの長軸方向の範囲の重複がない場合である。この場合、移行元のサブメッシュの長軸方向の計算ノード数を、行および列の記号数とするラテン方格が生成される。
タイプ2は、計算ノードの配置の回転がなく、移行元のサブメッシュと移行先のサブメッシュとの長軸方向の範囲の重複がある場合である。この場合、移行元のサブメッシュと移行先のサブメッシュとの長軸方向のずれ幅と、移行元のサブメッシュの短軸方向の幅との大きい方の値が求められ、その値を行および列の記号数とするラテン方格が生成される。そして生成されたラテン方格が積み重ねられる。
タイプ3は、計算ノードの配置の回転がある場合である。この場合、移行元のサブメッシュの短軸方向の計算ノード数を、行および列の記号数とするラテン方格が生成される。そして生成されたラテン方格が積み重ねられる。
次に、ラテン方格を用いた効率的なマイグレーション処理の手順について説明する。
図16は、マイグレーション処理の手順の一例を示すフローチャートである。マイグレーション処理は、例えば、ジョブのマイグレーション指示が入力されたときに実行される。
[ステップS101]移行先決定部112は、マイグレーションするジョブの移行先とする計算ノード集合を検索する。例えば移行先決定部112は、ジョブの並列度に応じ、そのジョブに割り当てる計算ノード数を判断する。次に移行先決定部112は、割り当てる計算ノード数分の空き計算ノードを包含するサブメッシュ(矩形の領域)を検索する。該当するサブメッシュが複数検出できた場合、移行先決定部112は、例えば、ジョブに現在割り当てられている計算ノード集合と、位置が近いサブメッシュを選択する。そして移行先決定部112は、選択したサブメッシュに含まれる計算ノード集合を、マイグレーションによるジョブの移行先に決定する。移行先決定部112は、決定した移行先の計算ノード集合を示す情報を、マイグレーション情報記憶部111に格納する。例えば移行先決定部112は、計算ノード集合を包含するサブメッシュの各軸方向の範囲(下限と上限)を示す情報を、マイグレーション情報記憶部111に格納する。
[ステップS102]ラテン方格生成部113は、マイグレーションデータの転送順を表すラテン方格を生成する。ラテン方格生成処理の詳細は後述する(図17参照)。
[ステップS103]データ転送管理部114は、生成されたラテン方格を用いて、移行元の計算ノード集合から移行先の計算ノード集合へ、マイグレーションデータの転送処理を行う。マイグレーションデータ転送処理の詳細は後述する(図19参照)。
次に、ラテン方格生成処理の手順について詳細に説明する。
図17は、ラテン方格生成処理の手順の一例を示すフローチャートである。
[ステップS111]ラテン方格生成部113は、移行元の計算ノード集合と移行先の計算ノード集合とを比較し、マイグレーション時に計算ノードの配置を回転させるか否かを判断する。例えばラテン方格生成部113は、移行元と移行先とのサブメッシュの各軸方向の長さが異なっており、移行元のサブメッシュの最長軸と移行先のサブメッシュの最長軸とが異なる場合、回転をするものと判断する。計算ノードの配列を回転させる場合、処理がステップS112に進められる。計算ノードの配列を回転させない場合、処理がステップS113に進められる。
[ステップS112]ラテン方格生成部113は、最も短い軸方向の幅(Min(x,y))を行と列の記号数とするラテン方格を生成する。そして、ラテン方格生成部113は、生成したラテン方格と同一の複数のラテン方格を積み重ねる。その後、ラテン方格生成部113は、生成したラテン方格をマイグレーション情報記憶部111に格納し、ラテン方格生成処理を終了する。
[ステップS113]ラテン方格生成部113は、回転させない場合、移行元のサブメッシュと移行先のサブメッシュとで、長軸方向の範囲に重複があるか否かを判断する。重複がある場合、処理がステップS115に進められる。重複がない場合、処理がステップS114に進められる。
[ステップS114]ラテン方格生成部113は、最も長い軸方向の幅(Max(x,y))を行と列の記号数とするラテン方格を生成する。その後、ラテン方格生成部113は、生成したラテン方格をマイグレーション情報記憶部111に格納し、ラテン方格生成処理を終了する。
[ステップS115]ラテン方格生成部113は、移行元と移行先とのサブメッシュ間の長軸方向のずれ幅と短軸の幅との長い方の幅を、行と列の記号数とするラテン方格を生成する。そして、ラテン方格生成部113は、生成したラテン方格と同一の複数のラテン方格を積み重ねる。その後、ラテン方格生成部113は、生成したラテン方格をマイグレーション情報記憶部111に格納し、ラテン方格生成処理を終了する。
次に、マイグレーションデータ転送処理について詳細に説明する。
図18は、マイグレーションデータ転送処理に用いる変数を示す図である。マイグレーションデータを転送する場合、データ転送管理部114は、マイグレーション情報記憶部111から、移行元のサブメッシュ61を示す情報と、移行先のサブメッシュ62を示す情報とを取得する。
移行元のサブメッシュ61を示す情報には、例えば、サブメッシュ61内の、x座標値とy座標値とが最小である計算ノード61aの座標(xs0,ys0)と、x座標値とy座標値とが最大である計算ノード61bの座標(xsm,ysm)とが含まれる。計算ノード61aの座標(xs0,ys0)と計算ノード61bの座標(xsm,ysm)とにより、サブメッシュ61のx軸方向の範囲が「xs0」から「xsm」であり、y軸方向の範囲が「ys0」から「ysm」であることが分かる。サブメッシュ61のx軸方向の幅xszは、「xsz=xsm−xs0+1」で求められる。サブメッシュ61のy軸方向の幅yszは、「ysz=ysm−ys0+1」で求められる。
同様に、移行先のサブメッシュ62を示す情報には、例えば、サブメッシュ62内の、x座標値とy座標値とが最小である計算ノード62aの座標(xr0,yr0)と、x座標値とy座標値とが最大である計算ノード62bの座標(xrm,yrm)とが含まれる。計算ノード62aの座標(xr0,yr0)と計算ノード62bの座標(xrm,yrm)とにより、サブメッシュ62の領域が特定できると共に、サブメッシュ62のx軸・y軸方向の幅を算出できる。
図18には、計算ノードの配置の回転がなく、サブメッシュ61,62間の長軸方向の重なりがない例が示されている。この場合、サブメッシュ61のx軸方向の幅とy軸方向の幅とのうちの小さい方の値「Min(xsz,ysz)」が、1ステップ当たりの同時送信計算ノード数(同時通信数)となる。また、サブメッシュ61のx軸方向の幅とy軸方向の幅とのうちの大きい方の値「Max(xsz,ysz)」が、ステップ数となる。例えば、最初のステップ(step0)では、識別子「1」、「6」、「11」、「16」の計算ノードが、一斉にデータを送信する。2番目のステップ(step1)では、識別子「2」、「7」、「12」、「17」の計算ノードが、一斉にデータを送信する。3番目のステップ(step2)では、識別子「3」、「8」、「13」、「18」の計算ノードが、一斉にデータを送信する。4番目のステップ(step3)では、識別子「4」、「9」、「14」、「19」の計算ノードが、一斉にデータを送信する。5番目のステップ(step4)では、識別子「5」、「10」、「15」、「20」の計算ノードが、一斉にデータを送信する。
このような処理を、フローチャートで表すと、図19のようになる。
図19は、マイグレーションデータ転送処理の手順の一例を示すフローチャートである。
[ステップS121]データ転送管理部114は、実行するステップ番号m(mは0以上の整数)を0から1ずつ増加させながら、ステップ数分M(=Max(xsz,ysz))だけ、ステップS122〜S125の処理を繰り返す。
[ステップS122]データ転送管理部114は、同時通信数分N(=Min(xsz,ysz)だけ、ステップS123の処理を繰り返す。
[ステップS123]データ転送管理部114は、m番目のステップにおけるノード間のデータ転送を行う。例えばデータ転送管理部114は、m番目のステップでマイグレーションデータを送信する計算ノードに対して、マイグレーションデータの送信を指示する。マイグレーションデータの送信指示には、例えば、マイグレーションデータの送信先の計算ノードの識別子(例えばネットワーク上の位置を示す座標値)が含まれる。このような送信指示が、n番目のステップにいてマイグレーションデータの送信を行う計算ノードそれぞれに対して行われる。
[ステップS124]データ転送管理部114は、m番目のステップにおけるノード間のデータ転送を行うすべての計算ノードがデータ送信を開始すると、処理をステップS125に進める。
[ステップS125]データ転送管理部114は、m番目のステップにおけるノード間のデータ転送(同時通信)が完了したか否かを判断する。例えばデータ転送管理部114は、マイグレーションデータを送信したすべての計算ノードから、データ転送完了の通知を受信すると、同時通信が完了したものと判断する。同時通信が完了した場合、処理がステップS126に進められる。同時通信が完了していなければ、完了するまでステップS125の処理が繰り返される。
[ステップS126]データ転送管理部114は、ステップ数分の処理が完了したら、マイグレーションデータ転送処理を終了する。
以上のようにして、ジョブのマイグレーション時に、通信の輻輳の発生を抑止することができ、効率的なマイグレーションが可能となる。
なお、上記の例は、ネットワークが2次元のメッシュまたはトーラス接続の例であるが、3次元のメッシュまたはトーラス接続のネットワークにも同様に適用できる。
図20は、3次元のメッシュまたはトーラス接続のネットワークの例を示す図である。3次元接続のネットワークでは、ジョブに、直方体状のサブメッシュ63内の計算ノード集合が割り当てられる。そのジョブのマイグレーションを行う場合、移行先として、同様に直方体状のサブメッシュ64内の計算ノード集合が決定される。3次元接続の場合であっても2次元と同様、同一ステップでデータ通信をする計算ノードのx軸、y軸、z軸の座標値が重複しないようにすれば、輻輳の発生を抑止できる。
図20の例では、4×4×4の3次元のサブメッシュ63内の計算ノード集合から、サブメッシュ64内の計算ノード集合へジョブのマイグレーションを行うものである。この例では、平面63a,63b上の計算ノードであれば、x軸、y軸、z軸の座標値が重複せず、同時に通信を行っても、輻輳は発生しない。
4×4×4の3次元のサブメッシュ63内の計算ノード集合で実行されているジョブのマイグレーションでは、同時通信可能な計算ノード数は16ノードで、必要な通信ステップ数は4である。各ノードの通信ステップ番号を割り当てると、n次元座標の任意の2軸の組み合わせ面(xy面、xz面、yz面)でラテン方格の関係がある。このような関係をラテン超方格という。つまり、n次元においてもラテン超方格の同一記号のノード群の通信を繰り返すことによって、各ステップにおける通信経路の重複・輻輳なくマイグレーションデータを移動元ノード群から移動先ノード群へ移動することができる。
図21は、ラテン超方格の一例を示す図である。図21に示すように、ラテン超方格は、xy面、xz面、yz面のいずれかに平行な任意の面上の数値が、ラテン方格となっている。なお、図21に示したのは4×4×4のラテン超方格の一例であり、ラテン超方格となる記号の組み合わせは複数存在する。
このように、ラテン超方格を用いることで、n次元のメッシュまたはトーラス接続のネットワークにおいて、ジョブのマイグレーションを効率的に行うことができる。例えばTofu(Torus Fusion)インターコネクトと呼ばれる6次元のメッシュ/トーラス接続のネットワークにも適用できる。すなわち、n次元の直接網(メッシュ接続またはトーラス接続など)を持つHPCにおいて、直方体ノード群で並列実行されるジョブのディスクレスマイグレーション時に、移動元・先間のマイグレーションデータを効率的に転送・移動することが可能となる。
〔第3の実施の形態〕
次に第3の実施の形態について説明する。第3の実施の形態は、ジョブマネージャが通信順を確定し、そのデータ転送の実行のコントロールについては、マイグレーションデータを転送する計算ノード集合自らが行うものである。以下、第3の実施の形態における、第2の実施の形態との相違点について説明する。
図22は、第3の実施の形態におけるマイグレーションデータ転送手順を示すシーケンス図である。
[ステップS210]制御ノード100のジョブマネージャ110は、ラテン方格を用いて、マイグレーションの移行元の計算ノードのデータ送信順を決定する。例えばジョブマネージャ110は、移動元と移動先とのサブメッシュの形状、位置情報、回転の有無から、適切なラテン方格を作成し、各ステップにおける同時通信ノード群を決定する。ラテン方格の作成処理は、図17に示した第2の実施の形態の処理と同様である。
図22の例では、(step0)で同時通信を行う計算ノード群310,(step1)で同時通信を行う計算ノード群320,・・・,(stepN)で同時通信を行う計算ノード群330が決定されている。
[ステップS211]ジョブマネージャ110は、送信元のすべての計算ノードに対して、通信順情報を通知する。通信順情報には、例えば、送信先の計算ノード、属する通信ステップ番号、および全体の通信ステップ数が含まれる。
[ステップS212〜S214]各計算ノードは、通信順情報を受信後、バリア同期待ち状態に遷移する。
[ステップS215]全計算ノードにおいてバリア同期の完了後、通信ステップ番号(step0)の計算ノード群310内の各計算ノードが、マイグレーションデータの送信信処理を行う。
[ステップS216]計算ノード群310内の各計算ノードは、マイグレーションデータを送信後、バリア同期待ち状態に遷移する。
[ステップS217,S218]通信ステップ番号(step0)に属さない計算ノードは、再度バリア同期待ち状態に遷移する。
[ステップS219]通信ステップ番号(step0)の通信が完了し、全計算ノードのバリア同期が再度完了すると、通信ステップ番号(step1)の計算ノード群320内の各計算ノードが、マイグレーションデータの送信処理を行う。その後、同様に、バリア同期とステップごとのデータ送信とが繰り返される。
[ステップS220]通信ステップ番号(stepN−1)の通信が完了し、全計算ノードのバリア同期が再度完了すると、通信ステップ番号(stepN)の計算ノード群330内の各計算ノードが、マイグレーションデータの送信処理を行う。
[ステップS221]通信ステップ番号(stepN)の通信が完了すると、計算ノード群330内のいずれかの計算ノードが、制御ノード100に対して、マイグレーションデータ転送処理の完了を通知する。
このようにして、計算ノードに、効率的なマイグレーションデータの転送を、自律的に実行させることができる。
〔第4の実施の形態〕
次に、第4の実施の形態について説明する。第4の実施の形態は、マイグレーションデータ転送時の経路上の通信状況に応じて、複数のラテン方格の中から、効率的に通信可能なラテン方格を選択し、データ転送に適用するものである。以下、第4の実施の形態における、第2の実施の形態との相違点について説明する。
直接網(トーラスやメッシュ)接続において、ジョブは必要最小限の直方体に割り当てるが、ジョブマイグレーションにおいては、他のジョブが実行している領域を通過する必要がある。第2または第3の実施の形態では、マイグレーションデータの転送において、通過ノードで行われている通信の影響を考慮していない。
そこで第4の実施の形態では、制御ノード100はマイグレーションデータの転送を行う前に、マイグレーションデータを通信する経路上に存在するマイグレーションジョブ以外の通信状況を取得する。そして、制御ノード100は、通信衝突が最も小さくなるラテン方格を選択する。つまり制御ノード100のラテン方格生成部113は、複数のラテン方格から適切なラテン方格を選択する最適化処理を行う。例えばラテン方格生成部113が次の2つの処理を行うことで、マイグレーションのデータ転送順序が最適化される。
(1)複数の「ラテン方格」の選び方で性能差がありうる場合を検出する処理。
(2)複数の「ラテン方格」から、最適なものを選ぶ処理。
マイグレーションデータの転送量は1ノード当たり数GBから数十、数百GBに達することが想定される。そのため、通信経路の通信帯域をほぼ使い切るものと想定する。つまり通信経路上に別の通信が存在する場合にはマイグレーションデータの転送速度に影響する。ラテン方格の各記号(番号)に従った通信を順に行っている最中に、経路上の通信状況が変化する場合には、適切な順序を選択することによって最適化の余地がある。
第4の実施の形態では、経路上の通信状況の変化要因となる情報をジョブマネージャ110で管理する。経路上の通信状況の変化要因としては、例えば以下の(要因a)、(要因b)の要因がある。
(要因a)通信予定経路上でジョブに割り当てられるノード配置が変化する。
ジョブに割り当てられるノード配置が、マイグレーションにより変化する場合、ジョブマネージャ110は単位時間ごとに各ノードにどのジョブを割り当てるかを定めた予定表(ノード割り当て管理表)を保持する。
図23は、ノード割り当て管理表の一例を示す図である。ジョブマネージャ110は各ジョブに対して割り当てる計算ノード集合を示すサブメッシュ(3次元であれば直方体領域)を決定する。そしてジョブマネージャ110は、割り当てる計算ノード集合の各軸の座標の最小値と最大値を保持したノード割り当て管理表71a,・・・,71nを、割り当ての単位となる時間帯ごとに生成し、メモリ102に格納する。
(要因b)通信予定経路上で、通信予定時間帯内に他のマイグレーションやメモリダンプの転送などの通信リンクのバンド幅を限界近くまで使う転送(以下「広帯域転送」と呼ぶ)が並列に行われる。
「広帯域転送」の通信についても予定表(広帯域転送管理表)が、メモリ102に保持されているものとする。広帯域転送管理表には、例えばシステムによって生じるジョブ外の転送についても保持されるものとする。
図24は、広帯域転送管理表の一例を示す図である。N次元のメッシュ/トーラスネットワークで、所定の軸順でルーティングを行っている場合(例えばx軸、y軸、z軸の順)、2つの計算ノード対の間での通信経路は、最大N−1回の方向転換を含む。そのため、通信経路が、軸ごとのN個の直線経路に分解して管理される。図24の例では、広帯域転送管理表72には、予定されている通信の識別子(通信ID)ごとに、通信の開始時刻、通信量、および第1軸から第N軸までの軸ごとの通信経路が設定されている。
第4の実施の形態では、以上の(要因a)と(要因b)とがあることを前提とし、ジョブ外(ジョブに割り当てられた計算ノード集合以外)の通信が、広帯域転送管理表で管理されているものとする。すなわち、ジョブマネージャ110内に、「広帯域転送」の通信管理を行うコンポーネントが用意されている。例えば、広帯域転送を行う各々のジョブは、ジョブマネージャ110に対し、通信で使用する経路を通信開始前に通知する。ジョブマネージャ110は、通知内容に応じて、広帯域転送の通信内容を、広帯域転送管理表72に登録する。
次に、マイグレーションで使用するラテン方格の選択処理手順について説明する。
図25は、ラテン方格選択処理の手順の一例を示す図である。
[ステップS301]ジョブマネージャ110は、通信干渉がない場合のマイグレーション終了予定時刻を求める。例えば、ジョブマネージャ110は、マイグレーション開始予定時刻S0に対し、他のジョブや「広帯域転送」との通信干渉がない場合のマイグレーション終了予定時刻T0を以下の式で求める。
0=S0+Σマイグレーションデータ転送の経路ごとの通信データ量/転送バンド幅
マイグレーションデータ転送の経路は、例えばx軸方向の経路、y軸方向の経路、z軸方向の経路である。転送バンド幅は、予め設定された値(例えば5GB)である。経路ごとの通信時間(通信データ量/転送バンド幅)の合計(Σ)を、マイグレーション開始予定時刻S0に加算することで、マイグレーション終了予定時刻T0となる。
[ステップS302]ジョブマネージャ110は、他のジョブや「広帯域転送」との干渉可能性を判定する。例えばジョブマネージャ110は、以下の2つの要件が満たされるかどうかを判定する。
・要件1:S0からT0までの期間内に、マイグレーションデータ転送路上の計算ノードにジョブが存在する。
・要件2:S0からT0までの期間内に、マイグレーションデータ転送路上に、予想終了時刻(=s(i)+d(i)/バンド幅)が含まれる「広帯域転送」がある。
s(i)は、通信IDが「i」(iは1以上の整数)の通信の開始時刻である。d(i)は、通信IDが「i」の通信の通信量である。各通信のs(i)とd(i)とは、広帯域転送管理表72から取得できる。
ジョブマネージャ110は、2つの要件の一方でも成立すれば、干渉可能性ありと判定する。干渉可能性がある場合、処理がステップS304に進められる。干渉可能性がなければ、処理がステップS303に進められる。
[ステップS303]ジョブマネージャ110は、予め決められたラテン方格を使用することを決定する。その後、ラテン方格決定処理が終了する。
[ステップS304]ジョブマネージャ110は、事前に用意した複数のラテン方格の各々に対し、一斉に転送を行う計算ノード群(ラテン方格の同一記号に対応する複数の計算ノード)ごとに、通信干渉の度合いを評価する。そして通信の干渉度合いに基づいて、各ラテン方格の終了予定時刻が算出される。通信干渉度合いの評価処理の詳細は後述する(図26参照)。
[ステップS305]ジョブマネージャ110は、複数のラテン方格のうち、マイグレーションの終了予定時刻が最も早いラテン方格を、マイグレーションデータの転送に使用するラテン方格に決定する。
図26は、通信干渉度合い評価処理の手順の一例を示すフローチャートである。
[ステップS311]ジョブマネージャ110は、予め用意された複数のラテン方格のち、未処理のラテン方格を1つ選択する。
[ステップS312]ジョブマネージャ110は、選択したラテン方格の記号ごとに、マイグレーション開始予定時刻S0からマイグレーション終了予定時刻T0までの時間帯内に、マイグレーションで使用する経路上で実行されるジョブ数n1を求める。例えばジョブマネージャ110は、時間帯[S0,T0]と重なる部分の時間帯のノード割り当て管理表を選択する。そしてジョブマネージャ110は、選択したノード割り当て管理表から、ジョブに割り当てた計算ノード集合が属するサブメッシュの範囲が、マイグレーションで使用する経路と少なくとも一部で重なるジョブを、選択したラテン方格の記号ごとに抽出する。すなわち、マイグレーションで使用する経路は、記号ごとに異なるため、経路上で実行されるジョブも記号ごとに異なる。サブメッシュの範囲は、ノード割り当て管理表における各座標軸の上限と下限とで表されている。
[ステップS313]ジョブマネージャ110は、選択したラテン方格の記号ごとに、S0からT0までの時間帯内に、マイグレーションで使用する経路が交差する「広帯域転送」の数n2を求める。例えばジョブマネージャ110は、時間帯[S0,T0]と重なる部分の時間帯の「広帯域転送」の管理表から、通信経路の直方体の座標範囲がマイグレーションで使用する経路と重なる部分を持つ通信経路を抽出し、抽出した経路数を求める。
[ステップS314]ジョブマネージャ110は、n1とn2に対し、各々の重み付け係数を掛けて、合計した値を「記号ごとの通信干渉度」とする。「記号ごとの通信干渉度」を式で表すと、以下の通りである。
記号ごとの通信干渉度=A1×n1+A2×n2
ここでは、A1は「ジョブ内通信が使用する平均バンド幅/リンクのバンド幅」である。A2は、「1」とする。
[ステップS315]ジョブマネージャ110は、選択したラテン方格を用いたマイグレーションデータ転送における終了予定時刻を求める。例えばジョブマネージャ110は、「実効バンド幅=リンクの最大バンド幅/通信干渉度」として各転送の所要時間を見積もり、次の記号のデータ転送の開始予定時刻を順次求める。そして、ジョブマネージャ110は、最後の記号のデータ転送の終了予定時刻を、選択したラテン方格を用いたマイグレーションデータ転送の終了予定時刻とする。
[ステップS316]ジョブマネージャ110は、未処理のラテン方格があるか否かを判断する。未処理のラテン方格があれば、処理がステップS311に進められる。未処理のラテン方格がなければ、干渉度合い評価処理が終了する。
以上のようにして、終了予定時刻が最も早いラテン方格を用いて、マイグレーションデータ転送を行うことができる。その結果、マイグレーションデータの転送経路上で実行されるジョブ、および転送経路上での広帯域通信を考慮して、効率的なデータ転送を行うことができる。
なお、上記の説明では、予定されている広帯域転送の情報に基づいて、適切なラテン方格を選択しているが、現在の通信量の統計情報を、計算ノード内のルータから取得し、その統計情報に基づいて適切なラテン方格を選択することもできる。ルータからの通信量の統計情報から、ラテン方格を適切に選択することによって、より正確な通信量に基づく適切なラテン方格の選択が可能となる。これにより、マイグレーションデータ転送と、そのデータ転送時の通過計算ノードで実行されるジョブ間通信との相互影響を最小化することができる。
〔第5の実施の形態〕
次に第5の実施の形態について説明する。第5の実施の形態は、1対の計算ノード間のデータ転送経路を2つ用いることで、データ転送の効率化を図るものである。
計算ノード間での通信手段としては、自ノードから相手ノードにデータを送る手順(put,write)と、相手ノードから自ノードにデータを持ってくる手順(get,read)とがある。通信のルーティングルールに依存するが、2ノード間でデータ通信を行う場合には、移動元・先ノード間のx,y座標が共に異なる場合には、移動元から移動先へput通信するケースと、移動先から移動元へget通信するケースで通信経路が異なる場合がある。これらの特性を利用することによって、マイグレーションデータを2分割し、移動元からのput通信,移動先からのget通信を同時に利用することによってマイグレーションデータの通信に要する時間を1/2に短縮することができる。
図27は、第5の実施の形態におけるデータ通信経路の一例を示す図である。図27に示すように移動元から移動先へのput通信によるマイグレーションデータの転送では、x軸、y軸の順にデータが転送(反時計回り)される。一方、移動先から移動元へget通信によってマイグレーションデータを転送する場合には、移動先の計算ノードが、x軸、y軸の順の経路を辿りデータを取りに行く。そのためget通信では、結果としてマイグレーションデータは送信元からy軸、x軸の順に転送(時計回り)される。つまり、put,getによる通信では異なる通信経路を使用することになる。
なお、図27のような通信を実現するためには、制御ノード100のジョブマネージャ110は、各計算ノードがデータ通信を行う順番を、移行元の計算ノードと移行先の計算ノードとの両方に通知することとなる。例えばジョブマネージャ110は、生成したラテン方格を、移行元のすべての計算ノードと、移行先のすべての計算ノードとに送信する。
このように、互いに通信を行う計算ノード対間の通信を、2つの経路を用いて実行することで、通信時間を短縮することができる。その結果、マイグレーションデータ転送全体に要する時間も短縮される。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1 ネットワーク
1a ノード
2 第1領域
3 第2領域
10 データ転送制御装置
11 通信インタフェース
12 制御部
13 記憶部
13a ラテン方格

Claims (10)

  1. 複数のノードがn次元(nは2以上の整数)でメッシュまたはトーラス接続されたネットワーク内の第1領域に含まれ、前記第1領域内での位置に応じた識別子が付与された複数の第1ノードから前記ネットワーク内の第2領域に含まれ、前記第2領域内での位置に応じて、前記第1領域内の対応する位置の第1ノードと同じ識別子が付与された複数の第2ノードへのデータ転送を制御するデータ転送制御装置において、
    前記複数のノードと通信する通信インタフェースと、
    データ転送対象のノードに対して、前記通信インタフェースを介してデータ転送を指示する制御部と、を有し、
    前記制御部は、
    前記第1領域のサイズに応じた数を各軸方向の記号数とするn次元のラテン超方格を生成し、
    前記第1領域内での前記複数の第1ノードそれぞれの位置に応じて、前記複数の第1ノードそれぞれに、前記ラテン超方格内の対応する位置の記号を対応付け、
    前記ラテン超方格内の同じ種類の記号に対応付けられた第1ノード同士を纏めた複数の第1ノード群それぞれによる、送信元の第1ノード群内の各第1ノードから該第1ノードと同じ識別子の第2ノードへの並列データ転送を、第1ノード群単位で順番に実行するように、前記複数の第1ノードそれぞれに指示する、
    ことを特徴とするデータ転送制御装置。
  2. 前記ラテン超方格の生成では、前記第1領域内のn次元の各軸方向の幅のうち、最長の幅の軸方向に並べられた第1ノード数を、前記ラテン超方格の各軸方向の記号数とする、
    請求項1記載のデータ転送制御装置。
  3. 前記記号の対応付けでは、前記第1領域と前記第2領域との間で、少なくとも1つの軸方向の範囲が重複する場合、範囲が重複する該軸方向に、前記ラテン超方格を複数積み重ね、積み重ねられた前記ラテン超方格それぞれ内の記号を、前記第1領域内の前記複数の第1ノードに対応付ける、
    請求項1または2記載のデータ転送制御装置。
  4. 前記ラテン超方格の生成では、前記第1領域と前記第2領域との間で、少なくとも1つの軸方向の範囲が重複する場合、範囲が重複する該軸方向への前記第1領域と前記第2領域とのずれ幅と、前記第1領域内の該軸方向以外の方向の幅のうちの最長の幅とのうちの長い方の幅に応じた値を、前記ラテン超方格の各軸方向の記号数とする、
    請求項3記載のデータ転送制御装置。
  5. 前記記号の対応付けでは、前記第1領域を平行移動させ、所定の軸周りに時計回りまたは反時計回りに90度回転させたときに前記第1領域が占めることとなる領域が前記第2領域となっている場合、前記第1領域のn次元の各軸方向の幅のうち、最長の幅の軸方向に、前記ラテン超方格を複数積み重ね、積み重ねられた前記ラテン超方格それぞれ内の記号を、前記第1領域内の前記複数の第1ノードに対応付ける、
    請求項1乃至4のいずれかに記載のデータ転送制御装置。
  6. 前記ラテン超方格の生成では、前記第1領域を平行移動させ、所定の軸周りに時計回りまたは反時計回りに90度回転させたときに前記第1領域が占めることとなる領域が前記第2領域となっている場合、前記第1領域内のn次元の各軸方向の幅のうち、2番目に長い幅の軸方向に並べられた第1ノード数を、前記ラテン超方格の各軸方向の記号数とする、
    請求項5記載のデータ転送制御装置。
  7. 前記ラテン超方格の生成では、複数のラテン超方格を生成し、
    前記記号の対応付けでは、前記第1領域と前記第2領域との間の通信経路上の通信状況に基づいて、前記複数のラテン超方格のうちの1つを、使用ラテン超方格として選択し、前記第1領域内での前記複数の第1ノードそれぞれの位置に応じて、前記複数の第1ノードそれぞれに前記使用ラテン超方格内の記号を対応付ける、
    請求項1乃至6のいずれかに記載のデータ転送制御装置。
  8. 前記指示では、前記複数の第1ノードそれぞれに対して、転送するデータの半分のデータを第1の経路で送信するように指示し、前記複数の第2ノードそれぞれに対して、転送するデータの残りの半分のデータを、前記複数の第1ノードそれぞれから、前記第1の経路とは別の第2の経路で取得するように指示する、
    請求項1乃至7のいずれかに記載のデータ転送制御装置。
  9. 複数のノードがn次元(nは2以上の整数)でメッシュまたはトーラス接続されたネットワーク内の第1領域に含まれ、前記第1領域内での位置に応じた識別子が付与された複数の第1ノードから前記ネットワーク内の第2領域に含まれ、前記第2領域内での位置に応じて、前記第1領域内の対応する位置の第1ノードと同じ識別子が付与された複数の第2ノードへのデータ転送を制御するためのデータ転送制御プログラムにおいて、
    コンピュータに、
    前記第1領域のサイズに応じた数を各軸方向の記号数とするn次元のラテン超方格を生成し、
    前記第1領域内での前記複数の第1ノードそれぞれの位置に応じて、前記複数の第1ノードそれぞれに、前記ラテン超方格内の対応する位置の記号を対応付け、
    前記ラテン超方格内の同じ種類の記号に対応付けられた第1ノード同士を纏めた複数の第1ノード群それぞれによる、送信元の第1ノード群内の各第1ノードから該第1ノードと同じ識別子の第2ノードへの並列データ転送を、第1ノード群単位で順番に実行するように、前記複数の第1ノードそれぞれに指示する、
    処理を実行させるデータ転送制御プログラム。
  10. n次元(nは2以上の整数)のメッシュまたはトーラス接続のネットワークに含まれる複数のノードと、
    前記ネットワーク内の第1領域に含まれ、前記第1領域内での位置に応じた識別子が付与された複数の第1ノードから前記ネットワーク内の第2領域に含まれ、前記第2領域内での位置に応じて、前記第1領域内の対応する位置の第1ノードと同じ識別子が付与された複数の第2ノードへのデータ転送を制御する制御ノードと、
    を有する並列計算システムであって、
    前記制御ノードは、
    前記第1領域のサイズに応じた数を各軸方向の記号数とするn次元のラテン超方格を生成し、
    前記第1領域内での前記複数の第1ノードそれぞれの位置に応じて、前記複数の第1ノードそれぞれに、前記ラテン超方格内の対応する位置の記号を対応付け、
    前記ラテン超方格内の同じ種類の記号に対応付けられた第1ノード同士を纏めた複数の第1ノード群それぞれによる、送信元の第1ノード群内の各第1ノードから該第1ノードと同じ識別子の第2ノードへの並列データ転送を、第1ノード群単位で順番に実行するように、前記複数の第1ノードそれぞれに指示し、
    前記複数の第1ノードそれぞれは、
    前記制御ノードからの指示に従って、前記複数の第2ノードのうちの所定の第2ノードに対してデータを送信する、
    並列計算システム。
JP2015037641A 2015-02-27 2015-02-27 データ転送制御装置、データ転送制御プログラム、および並列計算システム Active JP6459630B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2015037641A JP6459630B2 (ja) 2015-02-27 2015-02-27 データ転送制御装置、データ転送制御プログラム、および並列計算システム
EP16152693.4A EP3062233A3 (en) 2015-02-27 2016-01-26 Data transfer control apparatus, computer program, and parallel computing system
US15/007,366 US10091280B2 (en) 2015-02-27 2016-01-27 Data transfer control apparatus that control transfer of data between nodes and parallel computing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015037641A JP6459630B2 (ja) 2015-02-27 2015-02-27 データ転送制御装置、データ転送制御プログラム、および並列計算システム

Publications (2)

Publication Number Publication Date
JP2016162014A JP2016162014A (ja) 2016-09-05
JP6459630B2 true JP6459630B2 (ja) 2019-01-30

Family

ID=55310651

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015037641A Active JP6459630B2 (ja) 2015-02-27 2015-02-27 データ転送制御装置、データ転送制御プログラム、および並列計算システム

Country Status (3)

Country Link
US (1) US10091280B2 (ja)
EP (1) EP3062233A3 (ja)
JP (1) JP6459630B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017090517A1 (ja) * 2015-11-24 2017-06-01 日本電気株式会社 ソフトウェアストレージユニット、バックアップ方法、およびバックアップ制御プログラムが記録された記録媒体
CN107733810B (zh) * 2016-08-10 2020-11-27 华为技术有限公司 一种确定路由的方法、装置及通信设备
CN108520317B (zh) * 2018-03-27 2021-07-27 华中科技大学 一种水电系统联合优化调度的拉丁方动态规划降维方法
US11516087B2 (en) * 2020-11-30 2022-11-29 Google Llc Connecting processors using twisted torus configurations

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6456588B1 (en) * 1997-04-21 2002-09-24 At&T Corp. Hypercube routing and restoration in telecommunications networks
US6023753A (en) 1997-06-30 2000-02-08 Billion Of Operations Per Second, Inc. Manifold array processor
US6763519B1 (en) * 1999-05-05 2004-07-13 Sychron Inc. Multiprogrammed multiprocessor system with lobally controlled communication and signature controlled scheduling
US7466656B2 (en) * 2004-10-26 2008-12-16 International Business Machines Corporation Method, apparatus and program storage device for efficient construction of network overlays through interconnection topology embedding
US7853639B2 (en) * 2006-09-12 2010-12-14 International Business Machines Corporation Performing process migration with allreduce operations
JP5849486B2 (ja) * 2011-07-19 2016-01-27 富士通株式会社 ネットワーク装置及びネットワーク管理装置
US9769112B2 (en) * 2011-10-26 2017-09-19 International Business Machines Corporation Optimising data transmission in a hypercube network
JP2014137732A (ja) * 2013-01-17 2014-07-28 Fujitsu Ltd 情報処理システム及び情報処理システムの制御方法

Also Published As

Publication number Publication date
US20160255138A1 (en) 2016-09-01
EP3062233A2 (en) 2016-08-31
US10091280B2 (en) 2018-10-02
JP2016162014A (ja) 2016-09-05
EP3062233A3 (en) 2017-06-21

Similar Documents

Publication Publication Date Title
US9009648B2 (en) Automatic deadlock detection and avoidance in a system interconnect by capturing internal dependencies of IP cores using high level specification
JP6060316B2 (ja) NoCを構成するための方法及びシステム並びにコンピュータ可読記憶媒体
US8499222B2 (en) Supporting distributed key-based processes
JP6459630B2 (ja) データ転送制御装置、データ転送制御プログラム、および並列計算システム
RU2702268C2 (ru) Масштабируемые пулы хранения данных
KR101082701B1 (ko) 정보 처리 시스템, 통신 제어 장치 및 방법
CN111630505A (zh) 深度学习加速器系统及其方法
US11537443B2 (en) Reconfigurable computing pods using optical networks
CN112188325B (zh) 使用具有一对多光交换机的光网络的可重新配置的计算平台
JP5665208B2 (ja) ハイパーキューブ・ネットワーク内のデータ伝送の最適化
US20200235815A1 (en) Methods and sysems for reconfigurable network topologies
JP5182162B2 (ja) 計算機システム及びi/o制御方法
US9329898B1 (en) Method and apparatus for job management
US10061624B2 (en) Parallel computing system, job management device, and job management method
US9762474B2 (en) Systems and methods for selecting a router to connect a bridge in the network on chip (NoC)
US9372816B2 (en) Advanced programmable interrupt controller identifier (APIC ID) assignment for a multi-core processing unit
Yu et al. Flex tuner: A flexible container-based tuning system for cloud applications
US11082325B2 (en) Communication control method and information processing apparatus
US11656920B2 (en) Information processing apparatus and computer-readable storage medium storing parallel computing program
JP7152343B2 (ja) 半導体装置
JP2016038649A (ja) 並列計算機システム及び並列計算機システムの制御方法
US20200337114A1 (en) Communication control method and information processing apparatus
JP2012199767A (ja) 電子回路システム
JP2018081346A (ja) ストレージ装置、ストレージシステム、ストレージ制御方法、および、ストレージ制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181002

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181129

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181217

R150 Certificate of patent or registration of utility model

Ref document number: 6459630

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150