JP6366291B2 - 並列コンピューティング・システムにおける全対全メッセージ交換のための方法、システム、計算ノード、およびコンピュータ・プログラム(並列コンピューティング・システムにおける全対全メッセージ交換) - Google Patents

並列コンピューティング・システムにおける全対全メッセージ交換のための方法、システム、計算ノード、およびコンピュータ・プログラム(並列コンピューティング・システムにおける全対全メッセージ交換) Download PDF

Info

Publication number
JP6366291B2
JP6366291B2 JP2014023356A JP2014023356A JP6366291B2 JP 6366291 B2 JP6366291 B2 JP 6366291B2 JP 2014023356 A JP2014023356 A JP 2014023356A JP 2014023356 A JP2014023356 A JP 2014023356A JP 6366291 B2 JP6366291 B2 JP 6366291B2
Authority
JP
Japan
Prior art keywords
task
level
exchange
hierarchical
identifier
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
JP2014023356A
Other languages
English (en)
Other versions
JP2014164756A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2014164756A publication Critical patent/JP2014164756A/ja
Application granted granted Critical
Publication of JP6366291B2 publication Critical patent/JP6366291B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)

Description

本発明は、一般に、並列コンピューティング・システムにおける全対全メッセージ交換(all-to-all message exchange)動作に関する。階層型相互接続ネットワークによって接続されたプログラム・タスク間での、全対全メッセージ交換のための方法、ならびにこうした方法を実装するための装置およびコンピュータ・プログラムが提供される。
並列コンピューティング・システムにおいて、プログラムは、並列に動作している複数の計算ノードによって実行可能である。計算ノードは、一般に、並行処理が実装されるハードウェア・レベルに応じて、別々のマシン(たとえばワークステーション、サーバ)、プロセッサ、コアなどであってよい。個々の計算ノードは、並列アルゴリズムの並列プログラム・エンティティまたはタスクのうちの1つまたは複数を実行することができる(本明細書において「タスク」という用語は、一般に、いずれの特定レベルの細分性をも暗示することなく、こうしたプログラム・エンティティを表す)。ほとんどの並列アルゴリズムは計算と通信の相を交互に行い、データはプログラム・タスクによって交換される。集合的に並列アルゴリズムを実装する計算ノードのセットは、通常、このデータ交換を可能にするためにネットワークを介して相互接続される。
並列タスクのグループ間でデータが交換される方法は多様であるが、実際には、1ペアを超えるタスクが関与しているほとんどのデータ交換は、小規模の典型的な交換セットにマッピング可能である。最も幅広く使用される集合的な通信動作の1つが、全対全交換である(時には、全交換、インデックス動作、または個人化全対全交換と呼ばれる)。全対全メッセージ交換において、所与のセット内の各タスクは、1つの別個のメッセージをそのセット内のあらゆる他のタスクに(また、いくつかのケースではそれ自体にも)送信しなければならない。交換動作は、典型的には連続相に編成され、その数は各タスクによって送信されることになるメッセージの数に等しいため、各タスクは交換の各相において1つのメッセージを送信する。全体的な交換パターン、すなわち、交換の連続相において、ソース(送信側)タスクが宛先(受信側)タスクと通信する際に従うパターンは、交換の全体的な効率の基本である。これを検証するための簡単な方法は、所与の相においてすべての送信側タスクが同じ宛先タスクを同時に選択するという、極端なケースを考えることである。受信者の入力ポートでのメッセージのシリアル化により、すべての送信者は輻輳を体験することになる。相互接続ネットワーク内でのこれらすべてのメッセージのブロックによってさらに輻輳が生じ、性能に重大な影響を与える可能性がある。この極端な例は容易に回避され、ほとんどの全対全交換の提案がこの特定のシナリオに対処する。
形式上、全対全交換パターンは、ソース・タスク・インデックス(s)及び相インデックス(p)を採用し、それらを宛先タスク・インデックス(d)にマッピングする、関数
Figure 0006366291
によって完全に特徴付けられるため、各sは1つ(および唯一)のメッセージを各dに送信し、各dは1つ(および唯一)のメッセージを各sから受信することになる。ほとんどの通信ライブラリ内にある2つの非常に一般的な交換は、
(a)
Figure 0006366291
で表される線形シフト(又は「ストライド化(strided)」)交換、および
(b)
Figure 0006366291
で表されるXOR(「2進XOR」又は「再帰的2分化(recursive halving)」)交換、であり、
上式で「shift」は固定整数値であり、Xは通信しているタスクの合計数である。
タスクがそれを介して接続される相互接続ネットワークの厳密な構造は、メッセージ交換動作に対して強い影響を与える。こうしたネットワークは、一般に、何らかの形の階層型ネットワーク・トポロジを有する。階層型ネットワークは、ドラゴンフライ(dragonfly)ネットワークなどの明示的に階層型のトポロジ、並びに、ツリー・ネットワーク及びファット・ツリー・ネットワーク(拡張一般化ファット・ツリー、スリム化ファット・ツリーなどを含む)などのツリー型トポロジを含む。これらについて、以下で簡単に説明する。
ツリー型トポロジでは、階層は、ツリーのリーフ(レベル0)からルート(レベルN)までの一連のレベルによって定義される。タスクはリーフ・ノード上に配置されるものとみなされ、他のすべてのノードはメッセージ・ルーティングに使用される。添付の図面の図1は、計算ノード当たり1タスクの3レベル・ツリー相互接続の単純な例を示す。ここで、円で表される計算ノードは、ツリーのレベル0においてリーフを形成する。より上位のレベルはスイッチ(四角で表される)で構成され、それぞれがリンク(線で表される)を介して直前のレベル内の派生または「子」のグループに接続される。図示された例で、レベル1スイッチは、レベル0内の3つの計算ノードのグループにそれぞれ接続される。レベル2スイッチは、3つのレベル1スイッチのグループにそれぞれ接続される。この例の最上位レベルであるレベル3は、ここでは単一スイッチからなり、先行レベル内の3つのスイッチのグループに再度接続される。良く知られたファット・ツリー・ネットワーク・トポロジは、こうした標準ツリー・トポロジと同様に、レベル0のリーフ上にN個のレベルを有し、レベルl上の各ノードは正確にMの派生を有するが、任意の所与のノードとその親との間の接続が複数のリンクで構成されるという相違点がある。オリジナルの設計では、ノードから親までが使用可能なリンク容量は、そのノードの子からそれ自体までの総リンク容量に等しかった。したがって、レベルlでの各上方リンクの総容量は、上方リンクが開始するノードから到達可能なリーフに、ノード当たりの注入容量を掛け合わせた合計数に等しい(M・M・...・Mに等しく、「・」は乗算を示す)。この数はツリーの高さと共に指数関数的に大きくなるため、拡張一般化ファット・ツリー(XGFT)の概念が導入される。このクラスのトポロジは、ネットワークのルートに向かって容量が指数関数的に増加するスイッチを必要とせずに、基本のファット・ツリー・ネットワークのそれと機能的に同様の設計を達成する。XGFTは、現在、高性能コンピューティングにおける相互接続設計のための最も普及しているオプションの1つである。
ドラゴンフライ・ネットワークは、図2が示す別の良く知られた階層型ネットワークの単純な例である。この例は、階層のレベル1で、それぞれのスイッチ(再度四角で表される)に2つずつのグループで接続された計算ノード(再度円で表される)あたり1タスクを有する。図中では、上位レベルは破線で示される。レベル2は4つのグループのレベル1スイッチを備え、各レベル2グループは、ここでは3つの相互接続されたレベル1スイッチの「局所グループ」を備える。ここでの最上位レベルであるレベル3は、すべてが4つのレベル2局所グループを含む、単一のグループを備える。
所与の全対全交換動作は、基礎となるトポロジにかかわらず正常に完了可能であるが、結果として交換パターンは次善の性能となる可能性がある。例として、図3は、図4に示された階層型ネットワーク・トポロジを用いて、相互接続ネットワークによって接続された16のタスク間での線形シフト交換に関する交換パターンを示す。ここで特定のネットワーク実装は、リーフ・レベルのそれぞれの計算ノードに配置された16の通信タスク、4つの第1レベル・スイッチ、および単一の第2レベル・スイッチを伴う、(N=2)レベルのツリー型ネットワークとすることができる。ここではlとラベル表示されたトポロジ階層の第1のレベルは、それぞれが4つのタスクからなる4つのlグループを備える。lとラベル表示された次の(ここでは最上位の)レベルは、4つすべてのレベルlグループからなる、単一のlグループを備える。図3の交換パターンは、シフト値0を伴うこのトポロジにおける線形シフト交換パターンを示す。タスクは、図の左側に0から15の番号が付けられた円で示される。図の連続列内の線は、交換の16の連続相における送信側タスクと宛先側タスクのペアリングを示す。相0では、破線によって示されるように、各タスクはそれ自体にメッセージを送信する。
図3の交換パターンの考察から、線形シフト交換関数がネットワーク・トポロジのレイアウトを完全に無視することが明らかである。したがって、この交換パターンはトポロジの階層構造には気付かず、送信側ノードと受信側ノードとの間の階層距離(すなわち、通信のためにトラバースしなければならない階層レベル数)は考慮しない。しかしながら、階層距離の概念は階層型ネットワークの基本であり、これらのトポロジにおいて固有の局所性/遠隔性の概念を提供する。タスクのペアを区切る階層レベルが少ないほど、タスクは「近く」、すなわちそれらの間の経路は短く、互いに到達するための待ち時間は短い。
図5は、図4の階層型ネットワーク・トポロジに関するXOR交換アルゴリズムで取得される交換パターンを示す。第1の4つの相は、同じレベルl1グループ内のタスク間での局所交換を処理することが理解できよう。後続の相は、異なるレベルl1グループ内のノード間での交換を処理する。この単純な例によって示されるように、このネットワーク・トポロジにおけるXOR交換パターンの適用の結果、メッセージ交換は、遠隔性の増加順に実行されることになる。したがって、同じノード上に共設されたタスクは、(計算ノードあたり複数のタスクが存在する場合)第1にそれらの間の交換を実行し、次に(階層的な意味で)隣接するノード内のタスクが排他的にそれらの間で交換を実行する(したがって、ノード内交換は除外される)、という具合に、階層を通じて進行していく。これには、トラフィックが、大多数の相内でより下位レベルにできる限り多くのトラフィックが含まれることを保証し、さらに、所与の相内のすべてのペア間で(競合が存在しない場合)通信待ち時間は一定である、という利点がある。これにより、それぞれの相内により良い同期化が提供される。非同期化は、後続の相が重複し、したがって追加の競合が発生すること、または後続の相間にギャップが出現することの、いずれかを暗示するため、同期化は交換の全体性能を最適化する際に重要な要素である。
XOR交換の重大な制限は、タスクが配置可能な相互接続されたノードの数が2の整数累乗である場合にのみ使用可能である、ということである。これは、ドラゴンフライ・ネットワークを含む実際的関心事の多くのネットワークを除外する。さらに、XOR交換は、適用が2の累乗数のタスク内で区切られる場合にのみ、使用可能である。実際にアルゴリズムは、この制限されたクラスのネットワークに対するその適用の制約を通じて、上記で説明した「遠隔性増加」機能を達成するのみである。アルゴリズム自体は、真のネットワーク・トポロジに依然として気付かず、物理ネットワーク階層に関係なく、単にソース・タスク・インデックスsおよび相インデックスpの2進表現のビット単位の2を法とする加算を実行する。たとえば図4および図5の例では、XOR交換は、各レベルlグループ内に2つのタスクがあり、各レベルl(n>1)グループが2つのレベルl(n−1)グループを含む、4つのレベルを有するオーバーレイ・トポロジの場合のように挙動する。したがって、図4のネットワーク・トポロジ内のそれぞれの実際の階層レベルは、2つのオーバーレイ・レベルに効果的に分離される。したがって局所交換および遠隔交換を、1つが一方のオーバーレイ下位レベルを含み、1つが他方を含む、2つの別々のカテゴリに分化することがわかる。したがって、XOR関数がメッセージの宛先タスクを決定する方法が、実際のネットワーク・トポロジには依存せず、制限されたクラスのネットワーク・トポロジにのみ課せられる可能性のある単純なオーバーレイ構造に依存していることが理解できる。
実際、並列コンピューティング・システムは、特に基礎となるネットワーク・トポロジに関して、XOR交換関数を使用するために必要な制限にほとんど準拠しない。そのため、より効果的ではないが、より一般的な、前述の線形シフト交換の使用をしばしば採用する。元のノード数の2の累乗の下位区分におけるXORパターンの不均衡かつ次善の適用は、Thakur等による「Optimization of Collective CommunicationOperations in MPICH」、2005年春、International Journal of HighPerformance Computing Applications, Vol.19, No.1, 49〜66ページでも提案されている。Sanders等による「The Hierarchical Factor Algorithm forAll-to-All Communication」、2002年、Proceedingsof the 8th International Euro-Par Conference on Parallel Processing, LNCS 2400、799〜803ページでは、ノード・サイズ(ノード内のプロセッサの数)の順にメッセージが交換される、異なる数のプロセッサを有するノードを伴う階層型システムについての手法が記載されている。
Thakur等による「Optimization of Collective CommunicationOperations in MPICH」、2005年春、International Journal of HighPerformance Computing Applications, Vol.19, No.1, 49〜66ページ Sanders等による「The Hierarchical Factor Algorithm forAll-to-All Communication」、2002年、Proceedingsof the 8th International Euro-Par Conference on Parallel Processing, LNCS 2400、799〜803ページ
階層型ネットワークのための全対全交換動作における改良が、非常に望ましい。
本発明の第1の態様は、N>1の階層レベルlを備え、n=1からNである、階層型ネットワーク・トポロジを用いる相互接続ネットワークによって接続されたプログラム・タスク間での、全対全メッセージ交換のための方法を提供し、ここで第1のレベルlは当該タスクの複数のグループを備え、各上位レベルl(n>1)はレベルl(n−1)グループの少なくとも1つのグループを備える。方法は、
各タスクについて、ネットワーク・トポロジのそれぞれの階層レベルにおいて、そのタスクが属するグループに依存する固有の階層識別子を定義すること、および、
送信側タスクの階層識別子およびネットワーク・トポロジに基づいて、各タスクで、交換の連続相のそれぞれにおいて、その階層識別子が決定されるそれぞれの宛先タスクにネットワークを介してメッセージを送信することであって、結果として生じる全対全メッセージ交換のための交換パターンが、ネットワーク・トポロジにおける階層距離を所望の様式で活用する、送信すること、
を含む。
したがって、本発明を具体化する方法は、タスクが通信する際に介するネットワークが階層トポロジを有するシステムにおいて、全対全メッセージ交換を提供する。タスクに関する階層識別子は、トポロジの異なる階層レベルにおいてそれらのタスクが属するグループに依存し、したがって、ネットワークに関する階層情報を取り込む。メッセージ交換プロセスの各相において、それぞれのタスクはそれぞれの宛先タスクにメッセージを送信し、それによって各タスクは各連続相においてメッセージを送信および受信する。所与の相でタスクを送信するために、各メッセージの宛先タスクの階層識別子は、送信側タスクの階層識別子およびネットワーク・トポロジの両方に基づいて決定され、ネットワーク・トポロジにおける階層距離を所望の様式で活用する。したがって、前述の従来の交換とは異なり、交換動作は、(たとえばXOR交換関数に埋め込まれたような、実際のネットワーク・トポロジの上に課せられたオーバーレイの何らかの固定トポロジとは対照的に)物理ネットワークの実際の階層トポロジに依存するという意味で、真に「トポロジを意識」している。これにより、ネットワーク・トポロジにおける階層距離を所望に応じて活用することが可能であり、階層型ネットワーク内に非常に効率的な交換パターンを提供する。さらに、本発明を具体化する方法は、前述のXOR交換のような制限されたクラスのネットワークに制約されることはない。以下に記載された例によって示されるように、本発明を具体化するトポロジを意識した交換方法は、著しい性能特典を提供し、様々な性能要件に容易に適合可能であり、様々なタイプの階層型ネットワークについて異なる基準に従った交換の最適化を可能にする。
本発明の実施形態における交換パターンは、ネットワーク・トポロジにおける階層距離を様々な方法で活用することができる。たとえば、交換パターンは、階層距離の増加の順に(全体的または部分的に)メッセージ交換を実装することができる。したがって交換は、前述のように、「遠隔性増加」の順に実行可能である。いくつかの実施形態は、負荷分散、待ち時間、相内同期化、または帯域幅効率などの、動作のいくつかの特定の態様を改良するために、さらに適合される。本発明を具体化するいくつかの交換では、交換パターンはある程度遠隔増加の順に進行し、所望の程度の帯域幅最適化を達成するために、この順序から逸脱する。記載される特定の例では、交換パターンは、遠隔性増加の程度が効果的に最小化され、完全な帯域幅最適化が達成されるように保証することによって、階層距離を活用する。
連続メッセージに関する特定順序の宛先タスクが各送信側タスクについて事前に計算される、実施形態が想定され得るが、各メッセージに関する適切な宛先タスクの階層識別子は、典型的には、各タスクで動的に決定される。したがって、本発明を具体化する方法は、好ましくは、各タスクで、交換の各相で送信されるメッセージに関する宛先タスクの階層識別子を動的に決定することを含む。
本発明の第2の態様は、システムの相互接続ネットワークによって接続されたプログラム・タスクを含む複数の計算ノードを備える並列コンピューティング・システムを提供し、ネットワークは、N>1の階層レベルlを備え、n=1からNである、階層型ネットワーク・トポロジを有し、ここで第1のレベルlは当該タスクの複数のグループを備え、各上位レベルl(n>1)はレベルl(n−1)グループの少なくとも1つのグループを備え、システムは、当該プログラム・タスク間での全対全メッセージ交換のための本発明の第1の態様に従った方法を実行するように適合される。
本発明の第3の態様は、本発明の第2の態様に従った並列コンピューティング・システムの計算ノードを提供し、計算ノードは当該システムの少なくとも1つのプログラム・タスクを含み、当該システムの他の計算ノードと集合的に、システムのプログラム・タスク間での全対全メッセージ交換のための当該方法を実行するように適合される。
本発明の第4の態様は、本発明の第3の態様に従い、当該他の計算ノードと集合的に、全対全メッセージ交換のための当該方法を計算ノードに実行させるための、プログラム・コード手段を含む、コンピュータ・プログラムを提供する。計算ノードは何らかの形のコンピュータによって実装可能であり、「コンピュータ」という用語は、本明細書では最も一般的な意味で使用され、コンピュータ・プログラムを実装するためのデータ処理機能を有する、任意のデバイス、構成要素、またはシステムを含む。さらに、本発明を具体化するコンピュータ・プログラムは、独立プログラムを構成するか、またはより大きなプログラムの要素とすることが可能であり、コンピュータ内にロードするためのディスクまたは電子伝送などのコンピュータ読み取り可能媒体内に供給され、たとえば具体化されることが可能である。コンピュータ・プログラムのプログラム・コード手段は、当該の方法を、直接、あるいは、(a)他の言語、コード、または表記への変換、および(b)異なる材料形式での再作成の、いずれかまたは両方の後に、コンピュータに実行させるように意図された命令セットの、任意の言語、コード、または表記での任意の式を含むことができる。
一般に、本明細書では、本発明の一態様の実施形態を参照しながら特徴が説明され、対応する特徴は、適宜、本発明の他の態様の実施形態において提供可能である。
ここで、本発明の好ましい実施形態について、添付の図面を参照しながら例として説明する。
ツリー型相互接続ネットワークの例を示す図である。 ドラゴンフライ・ネットワークの例を示す図である。 例示のネットワーク・トポロジに関する線形シフト交換パターンを示す図である。 図3の交換パターンに関するネットワーク・トポロジを示す図である。 図4のトポロジに関するXOR交換パターンを示す図である。 本発明を具体化する方法における、タスクおよび階層相互接続トポロジのグループへのサブグループ・ラベルの割り当てを示す図である。 本発明を具体化する第1の全対全交換方法に関する交換パターンを示す図である。 本発明を具体化する第2の全対全交換方法に関する交換パターンを示す図である。 本発明を具体化する第3の全対全交換方法におけるステップの順序付けを示す図である。 本発明を具体化する第4の全対全交換方法に関する交換パターンを示す図である。
説明される方法は、通信中のプログラム・タスクが、階層型ネットワーク・トポロジを用いて相互接続ネットワークによってシステム内で接続される、並列コンピューティング・システムにおける全対全メッセージ交換を提供する。一般に、こうしたネットワーク・トポロジは、ここではlで示されるN>1階層レベルを備えるものとみなすことが可能であり、ここでn=1からNである。階層の第1のレベルlは、複数グループのプログラム・タスクを備える。各上位レベルl(n>1)は、レベルl(n−1)グループの少なくとも1つのグループを備える。
図6は、本発明を具体化する交換方法において、タスクに関して階層識別子がどのように定義されるかを説明するために使用されることになる例示のシステムのトポロジを示す。示された特定のトポロジは、計算ノードあたり1つのタスク、12のレベル1スイッチ、4つのレベル2スイッチ、および1つのレベル3スイッチを伴う、ツリー型相互接続ネットワークに対応する。しかしながら、説明される原理は、他の階層型ネットワークに容易に拡張可能であることを理解されよう。
図6のトポロジにおいて、影付き円は集合的通信動作に関与する並列プログラム・タスクのセットに対応する。これらのタスクはそれぞれ、計算ノード上で実行しているソフトウェアによって実装される。この例で計算ノードあたり1タスクと想定すると、影付き円はそれぞれが1タスクを含むそれぞれの計算ノードを表す。階層の第1のレベルlは、それぞれが3つのプログラム・タスクを含む、12のレベルlグループを備える。階層の第2のレベルlは、それぞれが3つのレベルlグループを含む4つのレベルlグループを備える。ここでは最上位である階層の第3のレベルlは、4つのレベルlグループを含む単一のレベルlグループを備える。結果として生じる構造は、同種の階層であり、それによって同じ階層レベルl内のすべてのグループは同じサイズMを有する(ここでグループの「サイズ」は以前の階層レベルから含む要素の数(すなわち、レベルlグループ内のタスクの数またはレベルlグループ内のレベルl(n−1)グループの数)として定義される)。したがって、示された例におけるグループ・サイズは、M=3、M=3、M=4である。Nレベル階層への一般化の場合、階層のレベルl内のグループはMの通信タスクで構成され、レベルl内のグループはMのレベルlグループ(したがってM・M)タスクで構成され、Mのレベルl(N−1)グループ、したがって、
Figure 0006366291

の通信タスクで構成される、レベルNまで同様であることが理解できよう。
固有の階層識別子が、システム内の各タスクについて定義される。タスクの階層識別子は、それぞれの階層レベル内でそのタスクが属するグループに依存する。好ましい実施形態において、階層識別子は、それぞれの階層レベルl、l、...、lに対応するN個の値セット(本明細書では「識別子要素」と呼ばれる)m、m、...、mを含む。階層識別子は、以下の方法で取得される。固有のサブグループ・ラベルs、i=1からMは、最初に各レベルlグループ内の各タスクについて、および各レベルl(n>1)グループ内の各レベルl(n−1)グループについて、定義される。代替が想定可能であるが、好ましい実施形態において、各サブグループ・ラベルはs=(i−1)であるため、s=0、s=1、以下同様であり、それによってサブグループ・ラベルsは整数0、1、...、(M−1)である。タスクに関する階層識別子のN個の識別子要素m(n=1からN)のセットにおいて、階層レベルlに対応する識別子要素mは、そのタスクに関するサブグループ・ラベルsに依存する。階層レベルl(n>1)に対応するさらなる各識別子要素m(n>1)は、そのタスクが属するレベルl(n−1)グループのサブグループ・ラベルsに依存する。
前述のようなサブグループ・ラベルの割り当ては、図6内のタスクおよびグループのうちのいくつかについて示されている。説明される第1の交換方法において、識別子要素mは、単にそのタスクのサブグループ・ラベルsに等しい。同様に、さらなる識別子要素m(n>1)は、単にそのタスクが属するレベルl(n−1)グループのサブグループ・ラベルsである。このシステムに基づき、図内でtとラベル付けされたタスクの階層識別子は、0,0,0となる。tとラベル付けされたタスクの階層識別子は、2,2,0となり、以下同様である。(しかしながら、サブグループ・ラベル付けステップでは、サブグループ/タスクのセット全体をラベル付けする明確な方法、M!・M!・...・M!があり、これらのいずれも説明される方法で使用可能であることに留意されたい。)
本発明を具体化する交換方法は、階層識別子に加えて、交換プロセスの相に同様の表現を使用する。特定の相は、値が交換の各連続相によって変化する相インデックスによって識別される。説明されるいくつかの交換方法において、相インデックスpは、当該階層識別子のそれぞれの識別要素mに対応するN個の相要素pのセットを含む。全対全交換プロセスには、通信タスクと同数の相が存在するため、相インデックスpは、交換の連続相について、整数値
Figure 0006366291

を通じて増分可能である。N個の相要素のセットp、p、...、pは、可変基数M、M、...、M内にこれらの値の可変基数表現を提供し、これによって各相要素pは基数Mに対応する。可変基数表現は、数の均一基数表現の良く知られた概念と同様であるが、あらゆる数字の基数があらゆる他の数字の基数に依存していないという点が異なる。例として、数の(均一な)基数10表現において、いずれの数字も0から9の値(すなわち10−1)を取ることが可能である。同様に、数の(均一な)基数2表現において、いずれの数字も0から1の値(すなわち2−1)を取ることが可能である。これに対して、可変基数(2,10)表現では、最下位の数字は0から(2−1)の間の値を取ることが可能であり、最下位から2番目の数字は0から(10−1)の間の値を取ることが可能である。この可変基数における数0、1、2、3、4は、00、10、01、11、02(一番左が最下位の数字)として表されることになる。相表現p、p、...、pに戻ると、qが積M・M・...・M(r−1)によるpの整数除算の商である場合、各数字pは、Mによるqの整数除算の剰余として算出可能である。
前述の階層識別子は、ネットワークの初期セットアップ時、または集合的通信のための特定の並列タスク・セットの定義時に決定可能であり、各特定タスクの識別子を定義するために計算ノードのメモリ内に格納可能である。可変基数相表現は同様に、相インデックスpがメッセージ交換の連続相に対して適切に増分できるように、計算ノードで定義される。タスク・セットによって全対全交換動作が実行される場合、各タスクは、交換の連続相のそれぞれにおけるそれぞれの宛先タスクに、ネットワークを介してメッセージを送信する。したがって各タスクは、正確に1つのメッセージを送信および受信するため、各相内の送信側タスクと宛先タスクとの間に1対1のペアリングが存在することになる。各送信側タスクからの各メッセージについて、ペアリングされる宛先タスクの階層識別子は、
送信側タスクの階層識別子および相互接続ネットワークのトポロジの両方に依存する交換アルゴリズム、ならびに相インデックスの値を介して、動的に決定される。交換アルゴリズムは、結果として生じる交換パターンがネットワーク・トポロジにおける階層距離を所望の様式で活用するようなものである。
本発明を具体化する第1の交換方法において、各メッセージに関する宛先タスクの階層識別子は、送信側タスクの階層識別子、および相の可変基数表現から、以下の交換関数
Figure 0006366291

を介して決定され、上式で、
Figure 0006366291

は、宛先タスクの階層識別子のn番目の識別要素であり、
Figure 0006366291

は、送信側タスクの階層識別子のn番目の識別要素である。この関数を用いると、各ステップにおける加算はMを法として実行されるため、相互接続ネットワーク階層の適切なレベルでの実際のグループ・サイズに依存する。この交換関数の効果は図7に示されている。この図は、各レベルlグループにおける4つの通信タスク、および単一のレベルlグループにおける4つのレベルlグループに対応する、図4の階層トポロジを伴うシステムに対して結果として生じる交換パターンを示している。相0から3は局所(同じレベルlグループ内のタスク間での交換に対応する)であり、残りの相は遠隔である。遠隔相については、明確にするために、第1のlグループ内のタスクから開始される交換のみが示されている。(図7は、特定のサブグループ・ラベル付けシステムに対応する1つの可能な交換パターンのみを示していることに留意されたい。このラベル付けは交換の特性に対して直角であり、M!・M!・...・M!の明確なラベル付けシステムのそれぞれは、新しい明確な交換パターンにつながる。)
図7から、この全対全メッセージ交換に関する交換パターンは、ネットワーク・トポロジにおける階層距離の増加順に進行することが理解できよう。特に、交換は第1に階層の最下位レベル内で実行され、次に階層の第2レベル内の同じ第1の階層レベル・グループに属さないノード間で排他的に実行され、以下同様に実行される。したがって、メッセージ交換は遠隔性増加の順に実行され、結果として前述の性能利点が生じる。さらに、XOR交換とは対照的に、この交換は、物理ネットワークの実際の階層トポロジに忠実な方法で達成される。XOR交換とは異なり、数式1によって定義される交換は、基礎となるいかなる物理ネットワークにもオーバーレイを課すことがなく、実際のネットワーク階層の本来のトポロジ特性を使用するのみである。
上記の交換プロセスの他の利点は、ツリー型ネットワーク(たとえば標準ツリー、および、XGFT、スリム・ファット・ツリーなどのそれらの様々な形のファット・ツリー)およびドラゴンフライ・ネットワークの両方を含む、直接および間接の階層型ネットワークに適用可能な点である。しかしながら、この第1の交換は本明細書で説明される実施形態の最も通常の形状を有し、この通常性は、いくつかのタイプのトポロジにおけるある欠点を犠牲にするものである。たとえばドラゴンフライなどの直接階層型ネットワークにおいて、第1の交換は遠隔リンクに過負荷をかける傾向がある。この影響を軽減する第2の交換について、以下で説明する。
本発明を具体化する第2の交換方法において、発明者等は、サブグループ・ラベルsに加えて、各階層レベル内でタスクが属する各グループ内のオフセットを各タスクに割り当てる。特に、各レベルlグループに属するタスクの場合、各タスクにオフセット値Oが定義され、このオフセット値はそのグループ内のタスク間で固有である。この特定の例では、各レベルlグループに属するタスクのオフセット値Oは整数{0,1,...,(T−1)}であり、ここでTは、そのグループ内のタスクの数である。この実施形態において、メッセージの宛先タスクの階層識別子は、ここでは「オフセット相表現」と呼ばれる、pで示される修正された相表現を用いて決定される。このオフセット相表現pは、メッセージの送信側タスクに特有である。特にオフセット相表現pは、相インデックスp、および、それぞれの階層レベルでタスクが属するグループ内の送信側タスクについて定義されたオフセット値の、両方に依存する。この好ましい実施形態では、所与の相内の所与の送信側タスクsについて、オフセット相表現pは、N個の構成要素
Figure 0006366291

を含み、これら構成要素は、
Figure 0006366291

のように、その相に関する相インデックスpのそれぞれの対応する相要素pに依存し、
n>1の場合、対応する相要素p=0であれば、
Figure 0006366291

であり、そうでなければ、
Figure 0006366291

である。したがって第1の実施形態と比較すると、そのメッセージの宛先を計算するためにソース・タスクによって使用される元の相インデックスの各非ゼロ相要素p(n>1)は、その相要素pに対応するレベルlの直下の階層レベル内でそのソース・タスクに割り当てられたオフセットによって効果的に増補される。結果として生じるオフセット相表現pは、第2の実施形態のための交換関数を取得するために、上記の数式(1)内の相インデックスpの代わりに使用される。すなわち、各メッセージに関する宛先タスクの階層識別子は、以下の交換関数
Figure 0006366291

を介して、送信側タスクの階層識別子およびオフセット相表現から決定される。再度、図4の階層トポロジに対して、結果として生じる交換パターンが図8に示されている。前述のように、相0から3は局所であり、後続の相は遠隔であって、遠隔相では明確にするために、第1のレベルlグループ内のタスクから開始される交換のみが示されている。
図8から、交換パターンは、ネットワーク・トポロジにおける階層距離の増加の順に進行することが理解されよう。しかしながらこの方法は、対称性のわずかな損失を犠牲にして遠隔リンクの競合を最小限に減少させる一方で、交換の階層特性を維持し、性能を向上させる、負荷分散型階層交換を提供する。
直前で説明した第2の交換を用いるドラゴンフライ・ネットワークとの関連を維持しながら、同じ相内の交換は、ネットワークをトラバースする際に、異なる経路長さによる異なる待ち時間を有する。この非対称性は、本発明を具体化する第3の交換方法を用いて取り除き、結果として相内同期化を大幅に増加することができる。
第3の交換方法は、ドラゴンフライ・ネットワークに特に適用可能である。これらのネットワークにおいて、階層のレベルl内のグループはタスクを含む計算ノードに接続されたそれぞれのスイッチに対応し、ここで、各計算ノードが単一のタスクを含む場合はc=1であり、各計算ノードが複数のタスクを含む場合はc=2である。たとえば図2では、c=1であり、これによってレベルlグループはスイッチに対応する。しかしながら、このネットワーク内で各計算ノードが複数のタスクを含む場合、計算ノードはレベルlグループに対応し、レベルlはスイッチの第1のレベルを表すことになる。したがって、一般にドラゴンフライ・トポロジの場合、各レベルlc+1グループはレベルlスイッチの局所グループに対応する。これらレベルlスイッチのそれぞれは、遠距離リンクを介して、少なくとも1つの他のレベルlc+1グループ内のスイッチに接続される。その後、各レベルlc+2グループは、レベルlc+1グループのグループに対応する。図9は、図2の単純なドラゴンフライ・ネットワークに関する様々なグループを示す。図内では遠距離リンクは太線で示される。この例で各スイッチは、遠距離リンクを介して、単一の他の局所グループ内のスイッチに接続される。他のドラゴンフライ・ネットワークにおいて、各スイッチは、遠距離リンクを介して、複数の他の局所グループ内のスイッチに接続可能である。
前述の定義に基づき、第3の交換方法は、特定の順序で宛先タスクを選択することによって、所与の送信側タスクからのメッセージに関して宛先タスクを決定する。特に、交換の連続相において、各タスクは、以下の順に選択されたそれぞれの宛先タスクにメッセージを送信する。
a.送信側タスクと同じ計算ノード内のタスク
b.送信側タスクと同じレベルlスイッチに接続された計算ノード内のタスク
c.スイッチSと同じレベルlc+1局所グループ内のスイッチに接続された計算ノード内のタスク
d.当該遠距離リンクを介して当該スイッチSに接続された、当該少なくとも1つの他のレベルlc+1グループ内の、スイッチS’に接続された計算ノード内のタスク
e.当該スイッチS’と同じレベルlc+1局所グループ内のレベルlスイッチに接続された計算ノード内のタスク
f.当該遠距離リンクを介して当該スイッチSと同じレベルlc+1局所グループ内の別のスイッチに接続された、当該少なくとも1つの他のレベルlc+1グループ内の、スイッチS’に接続された計算ノード内のタスク
g.すべての他のタスク
したがってこの第3の交換方法では、送信側タスクからのメッセージに関する宛先タスクの階層識別子が、送信側タスクの階層識別子およびネットワーク・トポロジに基づいて、各送信側タスクに対する上記の順序に従い、連続相内で決定される。図9は、特定の送信側タスクに対する、上記のステップのそれぞれに対応するノードを示す。ここで「a」とラベル付けされたノードは、送信側タスクを含むノードである。上記プロセスの後続のステップが到達するタスクを含むノードは、適切なステップに対応する文字でラベル付けされる。
この方法の階層識別子は、第1または第2の交換について定義され得るか、あるいは、何らかの他の方法で、異なる階層レベルにおいてタスクが属するグループに依存することができる。相は、前述のように、または何らかの他の便利な方法で、相インデックスによって同様に表すことができる。当業者であれば、特に、全対全交換の特性が維持されることを保証することによって、および、負荷分散手法などの第2の交換を定義する際に使用される原理から借用することによって、所与のシナリオで上記メッセージ順を正確かつ効率的に実装するための、特定のアルゴリズムが明らかとなろう。この負荷分散手法を用いる場合、結果として生じる第3の交換方法に関する交換パターンは、一般に、第2の交換に関する階層距離の増加の順に進行することに対応するが、同じ相内のメッセージ交換のための待ち時間も均一にし、それによって相内の同期化を向上させる。待ち時間は、任意の所与の相において、それぞれおよびあらゆるメッセージがたどる経路が同一である点、それらが同じ数およびリンクのタイプ、同じ順序で構成される点で、均一になる。したがって、ネットワーク競合がない場合、メッセージはその経路をトラバースするために任意の他のメッセージと同じ時間がかかることになる。しかしながら、競合が存在する場合、待ち時間は異なる可能性があるが、交換の待ち時間最適化特性はこの経路の均一化を精密に言い表す。
本発明を具体化する第4の交換方法は、スリム・ファット・ツリー・ネットワークにおける帯域幅使用の問題に対処する。XGFTなどの間接階層トロポジの場合、典型的なネットワーク設計は、同じ階層レベルのグループ間、および、任意の置換トラフィック・パターンにルーティングするための階層レベル間に、競合が無いように十分な帯域幅容量を提供する(置換トラフィック・パターンとは、あらゆるソースが単一の宛先に送信し、宛先セットがソース・セットと同一である、トラフィック・パターンのことである)。したがって、負荷分散はいかなる追加の特典も提供しない。さらに、トポロジの間接的な性質により、前述の第1の交換方法はすでに待ち時間も均衡化されている。したがってこの典型的なケース(たとえばすべてのk変数、nツリーのケース)では、第1の交換方法はすでに最適である。しかしながら、新しい設計は、使用可能な帯域幅の一部を削減することによってネットワーク・コストを削減することを追及している。これがいわゆるスリム・ファット・ツリーのケースである。前述の純粋に階層型の交換方法は、いくつかの相において全帯域幅を必要とし、他の相はネットワークの一部を完全に未使用のまま残す。第4の交換方法は、相全体にわたってより均一にネットワークを使用する傾向があるため、交換の対称性および階層特性を犠牲にして帯域幅使用を最適化する。言い換えれば、この交換方法は、一方の階層構造と他方の帯域幅使用との間のトレードオフを調整することができる。これにより、非スリム化設計よりも二分割(bisection)帯域幅を1/M減らすことで、したがって非スリム化二分割帯域幅のわずか半分で、最適な性能が可能となる。
第4の交換方法では、第1の方法の階層識別子を使用して、階層識別子を可変基数M、M、...、M内の可変基数表現として取り扱うことで、各タスクのタスク・インデックスtが取得される。すなわち、タスク・インデックスtは、各識別子要素mが基数Mnに対応する可変基数表現において、タスクの階層識別子のN個の識別子要素mのセットによって示される値である。その後、各タスクの2次識別子が、異なる可変基数M、M(N−1)、...、Mk+2、Mk+1、M、M、...、Mにおけるそのタスクのタスク・インデックスtの表現として定義され、ここでkは、1≦k≦Nとなるように選択される調整パラメータである。したがって、タスクの2次識別子は、それぞれの基数Mに対応するN個の2次要素mのセットを含み、ここでj=N、(N−1)、...、k+2、k+1、1、2、...、kである。その後、相インデックスp(その値はここでは、交換の連続相について整数値
Figure 0006366291

を通じて増分される)はこの新しい可変基数で表される。したがって、相インデックスpは、可変基数M、M(N−1)、...、Mk+2、Mk+1、M、M、...、Mにおける整数値
Figure 0006366291

の可変基数表現を提供する、N個の相要素pのセットを含む。
その後、送信側タスクおよび相インデックスのこれらの新しい表現を使用して、前述のようにモジュロ加算が実行される。宛先タスクの階層識別子を取得するために、可変基数結果の数字が単にその元の階層順に戻される。すなわち、交換の各相で送信される各メッセージについて、そのメッセージの宛先タスクの階層識別子のN個の識別要素は、
(a)宛先タスクの2次識別子を
Figure 0006366291

として取得することであり、ここで
Figure 0006366291

は、宛先タスクの2次識別子のj番目の要素であり、
Figure 0006366291

は、送信側タスクの2次識別子のj番目の要素である、取得すること、およびその後、
(b)宛先タスクの2次識別子のN個の要素
Figure 0006366291

を、基数順Mに変えることであり、n=1からNである、変えること、
によって決定される。
この第4の交換について結果として生じる交換パターンは、帯域幅最適化と、ネットワーク・トポロジにおいて階層距離の増加の順に進行することの間に、パラメータkを調整するために選択された値を介して調整可能なトレードオフを提供する。調整パラメータkのために選択される値が小さいほど、帯域幅占有がより最適化され(拡張された一般化ファット・ツリー内で最上位レベルから始まるより多くのレベルが、帯域幅を最適化され)、k=1の場合、最終的に完全な最適化となる。kのために選択される値が大きいほど、交換がより階層的になり、k=Nの場合、最終的に前述の第1の交換方法になる。2つのレベルと、下方分岐パラメータ4および4を伴う、拡張された一般化ファット・ツリーに関するk=1の交換パターンが、図10に示されている。太線で示された以外の線は、ネットワークの二分割をまたがる交換を表す。純粋な階層交換とは対照的に、(図の下部に各相についてマーク付けされた)二分割の使用は、交換の相全体に均一に広がり、帯域幅使用の最適化につながることが理解できよう。したがってこの特定のパターンは、「遠隔性増加」の程度が効果的に最小化され、完全な帯域幅最適化が達成されることを保証することによって、トポロジ内の階層距離を活用する。単一相内の通信ペアはすべて、可能な限り多くの遠隔性レベルをまたがって分散される。これにより、完全なファット・ツリーのすべてのリンクの完全に均衡な帯域幅使用によって、ファット・ツリーを最低限のコストに最適化する(最上位レベルの二分割帯域幅を大幅に削減する)ことができる。従来のアルゴリズムには、帯域幅を二分割してファット・ツリーで最適な性能を達成できたものはなかった。特に、線形シフトおよびXOR(およびその変形)交換パターンは、コストが削減されたネットワークでは性能が低い。
前述の様々な実施形態は、ネットワーク・トポロジの階層構造を本質的に考慮する、効率的なトポロジを意識した交換パターン群を提供することが理解されよう。これらの交換の非常に重要な利点は、それらの適用が、XORのように階層型ネットワーク設計の制限されたクラスに制約されないことである。さらにこれらの交換は、性能の点で、スリム・ファット・ツリーにおけるXORおよび線形シフトの両方を20から40%上回る。ドラゴンフライでは、この差はより顕著であり、基本的な線形シフトに比べて300%(交換は3倍の速さで完了する)、ランダムな線形シフトに比べて60%上回り、これが現在は最善の手法であるとみなされている(もちろん、XORはこのケースでは適用不可である)。
説明された例示の実施形態に対して、多くの変形および修正が実行可能であることを理解されよう。たとえば前述の交換の代替実施形態において、あらゆる相における交換の構造は完全に保持されるが、相自体は、上記で使用された基本の
Figure 0006366291

の順序とは異なる順序で実行される。この相順序は、シーケンス
Figure 0006366291

の任意の置換とすることができる。すなわち前述の交換方法は、相の順序を前述の順序の任意の置換に変更することによって、修正可能である。第1、第2、および第4の交換方法では、これは、交換の各連続相について、整数値
Figure 0006366291

の異なる1つを取る相インデックスpを使用することによって達成可能であり、これらの値は任意の順序で発生可能である。前述の第3の交換方法では、この方法と共に取得される結果として生じる交換の相は、単に別の相順序で実行可能である。以前の交換プロセスは遠隔性増加(すなわちネットワーク・トポロジにおける階層距離の増加)の順に進行し、異なる相順序では、任意の所与の相でのメッセージ交換は同じ「遠隔性の値」を有するものであった。すなわち、任意の特定相内のすべてのメッセージによって、同じ階層距離がトラバースされた。各個別の相の構造がこの順序変更によって影響を受けないままであるという事実は、依然として、前述のほとんどの性能利得が保持されることにつながる。
ここまで、いくつかのシステムについて、簡略化のために計算ノードあたり1つのタスクを有するものとして説明してきたが、計算ノードあたり複数のタスクが存在する場合でも動作は本質的に同じである。そのため、タスク・レベルとスイッチ・レベルとの間に追加の階層レベルが効果的に加えられる。したがって、計算ノードあたり単一のタスクを備えるシステムでは、レベルlグループは、計算ノードのグループに接続されたスイッチに対応する。計算ノードが複数のタスクを含むシステムでは、レベルlグループは計算ノードに対応する。
所与のネットワークについて特定の交換関数が事前に決定できるが、この関数はもちろん、たとえば条件または動作要件の変更に合わせるために、動作時に動的に変更可能である。
本発明の範囲を逸脱することなく、説明された実施形態に対して多くの他の変更および修正が実行可能である。

Claims (21)

  1. N>1の階層レベルlを備え、n=1からNである、階層型ネットワーク・トポロジを用いる相互接続ネットワークによって接続されたプログラム・タスク間での、全対全メッセージ交換のための方法であって、第1のレベルlは前記タスクの複数のグループを備え、各上位レベルl(n>1)はレベルl(n−1)グループの少なくとも1つのグループを備え、
    各タスクについて、前記ネットワーク・トポロジのそれぞれの階層レベルにおいて、そのタスクが属する前記グループに依存する固有の階層識別子を定義すること、および、
    送信側タスクの前記階層識別子および前記ネットワーク・トポロジに基づいて、各タスクで、前記交換の連続相のそれぞれにおいて、その階層識別子が決定されるそれぞれの宛先タスクに前記ネットワークを介してメッセージを送信することであって、結果として生じる全対全メッセージ交換のための交換パターンが、前記ネットワーク・トポロジにおける階層距離を使用する、前記送信すること、
    を含
    同じ階層レベルl 内のすべてのグループが同じサイズM を有し、
    固有のサブグループ・ラベルs 、i=1からM が、各レベルl グループ内の各タスクについて、および各レベルl (n>1) グループ内の各レベルl (n−1) グループについて、定義され、
    前記タスクについての前記階層識別子が、それぞれの階層レベルに対応するN個の識別子要素のセットを有し、前記N個の識別子要素のセットのうち階層レベルl に対応する識別子要素m が、そのタスクに関する前記サブグループ・ラベルs に依存し、前記N個の識別子要素のセットのうち階層レベルl (n>1) に対応する識別子要素m (n>1) が、そのタスクが属する前記レベルl (n−1) グループに関する前記サブグループ・ラベルs に依存する、方法。
  2. 各サブグループ・ラベルs=(i−1)である、請求項に記載の方法。
  3. 前記タスクについての前記階層識別子において、前記識別子要素mがそのタスクについての前記サブグループ・ラベルsであり、各識別子要素m(n>1)がそのタスクが
    属する前記レベルl(n−1)グループに関する前記サブグループ・ラベルsである、
    請求項またはに記載の方法。
  4. 前記交換で送信される各メッセージについて、そのメッセージに関する前記宛先タスクの前記階層識別子が、前記交換の各連続相についてその値が変化する相インデックスにさらに依存する、請求項1からのいずれか一項に記載の方法。
  5. 前記相インデックスが、前記階層識別子のそれぞれの識別要素mに対応するN個の相要素pのセットを備える、請求項に依存する請求項に記載の方法。
  6. 前記相インデックスpが、前記交換の各連続相について、
    Figure 0006366291
    を満たす整数値の異なる1つを取り、前記N個の相要素pが、各相要素pが基数M
    に対応する前記値の可変基数表現を提供する、請求項に記載の方法。
  7. 前記交換の前記相のそれぞれで送信される各メッセージについて、そのメッセージに関する前記宛先タスクの前記階層識別子の前記N個の識別要素が、
    Figure 0006366291
    として決定され、上式で
    Figure 0006366291
    が前記宛先タスクの前記階層識別子のn番目の識別要素であり、
    Figure 0006366291
    が前記メッセージに関する前記送信側タスクの前記階層識別子のn番目の識別要素である、
    請求項に記載の方法。
  8. 各レベルlグループに属する前記タスクについて、各タスクについてオフセット値O
    が定義され、前記オフセット値がそのグループ内のタスク間で固有であり、
    前記交換の各相において各タスクによって送信される各メッセージについて、そのメッセージに関する前記宛先タスクの前記階層識別子が、前記相に関する前記相インデックスp、および、そのタスクがそれぞれの階層レベル内で属する前記グループ内の前記タスクについて定義された前記オフセット値に依存する、オフセット相表現pに依存する、
    請求項に記載の方法。
  9. 前記交換の各相において各タスクによって送信される各メッセージについて、前記オフセット相表現pが、
    Figure 0006366291
    のように、前記相に関する前記相インデックスpのそれぞれの対応する相要素pに依存する、N個の構成要素
    Figure 0006366291
    を含み、n>1の場合、前記対応する相要素p=0であれば、
    Figure 0006366291
    であり、そうでなければ、
    Figure 0006366291
    =1プラス(M−1)を法とする(p−1)の合計、および、そのタスクが属する前記レベルl(n−1)グループ内のそのタスクに関する前記オフセット値Oである、
    請求項に記載の方法。
  10. 前記交換の前記相のそれぞれで送信される各メッセージについて、そのメッセージに関する前記宛先タスクの前記階層識別子の前記N個の識別要素が、
    Figure 0006366291
    として決定され、上式で
    Figure 0006366291
    が前記宛先タスクの前記階層識別子のn番目の識別要素であり、
    Figure 0006366291
    が前記メッセージに関する前記送信側タスクの前記階層識別子のn番目の識別要素である、
    請求項に記載の方法。
  11. 各タスクの2次識別子を、可変基数M、M(N−1)、...、Mk+2、Mk+1、M、M、...、Mにおけるそのタスクのタスク・インデックスtの表現として定義することを含み、ここでkは、1≦k≦Nとなるような所定の調整パラメータであり、前記タスク・インデックスtが、可変基数表現で前記タスクに関する前記階層識別子の
    N個の要素mの前記セットによって示される値であり、各識別子要素mが基数M
    対応し、それによって前記2次識別子は、それぞれの基数Mに対応するN個の2次要素mのセットを含み、ここでj=N、(N−1)、...、k+2、k+1、1、2、.
    ..、kであり、
    前記交換の前記相のそれぞれで送信される各メッセージについて、そのメッセージに関する前記宛先タスクの前記階層識別子が、前記交換の各連続相について、整数値
    Figure 0006366291
    の異なる1つを取る相インデックスpにさらに依存し、前記相インデックスpが、前記可
    変基数M、M(N−1)、...、Mk+2、Mk+1、M、M、...、M
    おける前記整数値の可変基数表現を提供する、N個の相要素pのセットを含み、
    前記交換の前記相のそれぞれで送信される各メッセージについて、そのメッセージに関する前記宛先タスクの前記階層識別子の前記N個の識別要素が、前記宛先タスクの前記2次識別子を、
    Figure 0006366291
    として取得することであって、上式で
    Figure 0006366291
    は、前記宛先タスクの前記2次識別子のj番目の要素であり、
    Figure 0006366291
    は、前記メッセージに関する前記送信側タスクの前記2次識別子のj番目の要素である、取得することによって、およびその後、前記宛先タスクの前記2次識別子の前記N個の要素
    Figure 0006366291
    を、前記基数Mの順に変えることであり、n=1からNである、変えることによって、
    決定される、
    請求項およびに記載の方法。
  12. 前記ネットワークが、前記階層のレベルl内の前記グループが前記タスクを含む計算ノードに接続されたそれぞれのスイッチに対応する、ドラゴンフライ・ネットワークを含み、ここで、各計算ノードが単一のタスクを含む場合はc=1であり、各計算ノードが複数のタスクを含む場合はc=2であり、各レベルlc+1グループは、それぞれが遠距離リンクを介して少なくとも1つの他のレベルlc+1グループ内のスイッチに接続された
    レベルlスイッチの局所グループに対応し、各レベルlc+2グループは、レベルl
    +1グループのグループに対応し、前記交換の連続相において、各タスクは、
    a.そのタスクと同じ計算ノード内のタスク、
    b.そのタスクと同じレベルlスイッチに接続された計算ノード内のタスク、
    c.スイッチSと同じレベルlc+1局所グループ内のスイッチに接続された計算ノード内のタスク、
    d.当該遠距離リンクを介して当該スイッチSに接続された、当該少なくとも1つの他のレベルlc+1グループ内の、スイッチS’に接続された計算ノード内のタスク、
    e.当該スイッチS’と同じレベルlc+1局所グループ内のレベルlスイッチに接続された計算ノード内のタスク、
    f.当該遠距離リンクを介して当該スイッチSと同じレベルlc+1局所グループ内の別のスイッチに接続された、当該少なくとも1つの他のレベルlc+1グループ内の、スイッチS’に接続された計算ノード内のタスク、
    g.すべての他のタスク、
    の順に選択されたそれぞれの宛先タスクにメッセージを送信する、請求項1からのいずれか一項に記載の方法。
  13. 前記交換の結果として生じる相が他の相順序で実行される、請求項12に記載の方法。
  14. 各タスクで、前記交換の各相で送信される前記メッセージについて、前記宛先タスクの前記階層識別子を動的に決定することを含む、請求項1から13のいずれか一項に記載の方法。
  15. システムの相互接続ネットワークによって接続されたプログラム・タスクを含む、複数の計算ノードを備える並列コンピューティング・システムであって、前記ネットワークが、N>1の階層レベルlを備える階層ネットワーク・トポロジを有し、n=1からNで
    あり、第1のレベルlは前記タスクの複数のグループを備え、各上位レベルl(n>1
    はレベルl(n−1)グループの少なくとも1つのグループを備え、前記システムが、
    前記プログラム・タスク間での全対全メッセージ交換のために、請求項1から14に記載の方法を実行するように適合される、並列コンピューティング・システム。
  16. 前記ネットワークがファット・ツリー・ネットワークであり、前記システムが、前記プ
    ログラム・タスク間での全対全メッセージ交換のために、請求項に記載の方法を実行するように適合される、請求項15に記載のシステム。
  17. 前記ネットワークがドラゴンフライ・ネットワークを含み、前記システムが、前記プロ
    グラム・タスク間での全対全メッセージ交換のために、請求項11に記載の方法を実行するように適合される、請求項1に記載のシステム。
  18. 前記ネットワークがスリム・ファット・ツリー・ネットワークを含み、前記システムが、前記プログラム・タスク間での全対全メッセージ交換のために、請求項12に記載の方法を実行するように適合される、請求項15に記載のシステム。
  19. 前記ネットワークがドラゴンフライ・ネットワークを含み、前記システムが、前記プロ
    グラム・タスク間での全対全メッセージ交換のために、請求項13または14に記載の方法を実行するように適合される、請求項15に記載のシステム。
  20. 前記システムの少なくとも1つのプログラム・タスクを含む計算ノードであって、前記
    システムの前記プログラム・タスク間での全対全メッセージ交換のために、前記システムの他の計算ノードと集合的に、前記方法を実行するように適合される、請求項15から19のいずれか一項に記載の並列コンピューティング・システムの計算ノード。
  21. 前記他の計算ノードと集合的に、全対全メッセージ交換のために、請求項20に記載の計算ノードに前記方法を実行させるためのプログラム・コード手段を備える、コンピータ・プログラム。
JP2014023356A 2013-02-22 2014-02-10 並列コンピューティング・システムにおける全対全メッセージ交換のための方法、システム、計算ノード、およびコンピュータ・プログラム(並列コンピューティング・システムにおける全対全メッセージ交換) Expired - Fee Related JP6366291B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1303181.0 2013-02-22
GB1303181.0A GB2511089A (en) 2013-02-22 2013-02-22 All-to-all message exchange in parallel computing systems

Publications (2)

Publication Number Publication Date
JP2014164756A JP2014164756A (ja) 2014-09-08
JP6366291B2 true JP6366291B2 (ja) 2018-08-01

Family

ID=48091952

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014023356A Expired - Fee Related JP6366291B2 (ja) 2013-02-22 2014-02-10 並列コンピューティング・システムにおける全対全メッセージ交換のための方法、システム、計算ノード、およびコンピュータ・プログラム(並列コンピューティング・システムにおける全対全メッセージ交換)

Country Status (4)

Country Link
US (3) US9329914B2 (ja)
JP (1) JP6366291B2 (ja)
CN (1) CN104009907B (ja)
GB (1) GB2511089A (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2511089A (en) * 2013-02-22 2014-08-27 Ibm All-to-all message exchange in parallel computing systems
CN104331336B (zh) * 2014-11-21 2016-01-20 北京应用物理与计算数学研究所 匹配于高性能计算机结构的多层嵌套负载平衡方法
JP6665607B2 (ja) 2016-03-16 2020-03-13 富士通株式会社 通信管理方法、通信管理プログラム及び情報処理装置
JP6623939B2 (ja) 2016-06-06 2019-12-25 富士通株式会社 情報処理装置、通信手順決定方法、および通信プログラム
US10394738B2 (en) * 2016-09-29 2019-08-27 Intel Corporation Technologies for scalable hierarchical interconnect topologies
US10425358B2 (en) * 2016-09-29 2019-09-24 International Business Machines Corporation Network switch architecture supporting multiple simultaneous collective operations
JP6844198B2 (ja) 2016-10-25 2021-03-17 富士通株式会社 情報処理装置、情報処理方法、およびプログラム
JP6930381B2 (ja) * 2017-11-06 2021-09-01 富士通株式会社 情報処理システム、演算処理装置及び情報処理システムの制御方法
CN114221736A (zh) * 2020-09-04 2022-03-22 华为技术有限公司 数据处理的方法、装置、设备及介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08110846A (ja) * 1994-10-11 1996-04-30 Nippon Telegr & Teleph Corp <Ntt> 階層ネットワーク情報の階層型メニュー表示装置
WO2005043328A2 (en) * 2003-10-29 2005-05-12 Interactic Holdings, Llc Highly parallel switching systems utilizing error correction
BRPI0508465A (pt) * 2004-03-05 2007-07-31 Samsung Electronics Co Ltd método e aparelho para a alocação de subportadoras em um sistema de comunicação sem fio de banda larga usando-se postadoras múltiplas
US20100049942A1 (en) * 2008-08-20 2010-02-25 John Kim Dragonfly processor interconnect network
JP5860670B2 (ja) * 2010-11-05 2016-02-16 インテル コーポレイション Dragonflyプロセッサ相互接続ネットワークにおけるテーブル駆動型ルーティング
JP5849486B2 (ja) * 2011-07-19 2016-01-27 富士通株式会社 ネットワーク装置及びネットワーク管理装置
CN102868782A (zh) * 2012-09-27 2013-01-09 北京邮电大学 一种物理实体连接网络的命名分析方法
US9577918B2 (en) * 2012-11-19 2017-02-21 Cray Inc. Increasingly minimal bias routing
GB2511089A (en) * 2013-02-22 2014-08-27 Ibm All-to-all message exchange in parallel computing systems

Also Published As

Publication number Publication date
JP2014164756A (ja) 2014-09-08
US9740542B2 (en) 2017-08-22
GB2511089A (en) 2014-08-27
US20160239356A1 (en) 2016-08-18
CN104009907A (zh) 2014-08-27
CN104009907B (zh) 2017-05-31
GB201303181D0 (en) 2013-04-10
US10042683B2 (en) 2018-08-07
US20170220398A1 (en) 2017-08-03
US20140245324A1 (en) 2014-08-28
US9329914B2 (en) 2016-05-03

Similar Documents

Publication Publication Date Title
JP6366291B2 (ja) 並列コンピューティング・システムにおける全対全メッセージ交換のための方法、システム、計算ノード、およびコンピュータ・プログラム(並列コンピューティング・システムにおける全対全メッセージ交換)
US9317336B2 (en) Method and apparatus for assignment of virtual resources within a cloud environment
Prisacari et al. Bandwidth-optimal all-to-all exchanges in fat tree networks
CN103036792B (zh) 一种最大化最小公平多数据流传输调度方法
Avin et al. Demand-aware network design with minimal congestion and route lengths
JP6275263B2 (ja) 大規模データセンターネットワークのためのトラフィック工学
CN102804712A (zh) 用于在多个相等成本路径之间进行选择的方法和设备
Chen et al. NFV middlebox placement with balanced set-up cost and bandwidth consumption
US20060268691A1 (en) Divide and conquer route generation technique for distributed selection of routes within a multi-path network
WO2018166249A1 (zh) 一种网络业务传输的方法及系统
CN103873367B (zh) 路由数据分组以及确定路由的方法和装置、胖树网络
US10637739B2 (en) Network topology system and building method for topologies and routing tables thereof
Yuan et al. Oblivious routing in fat-tree based system area networks with uncertain traffic demands
CN117176638A (zh) 一种路由路径确定方法及相关组件
CN114237985B (zh) 修复纠删码存储系统中失效存储块的方法及相关设备
US20230094933A1 (en) Connecting processors using twisted torus configurations
Castillo Various Network Topologies and an Analysis Comparative Between Fat-Tree and BCube for a Data Center Network: An Overview
CN114298431A (zh) 一种网络路径选择方法、装置、设备及存储介质
Liu et al. Multi-stage aggregation and lightpath provisioning of geo-distributed data over EON assisted by MEC
Guan et al. Multidimensional Resource Fragmentation-Aware Virtual Network Embedding for IoT Applications in MEC Networks
JP6915434B2 (ja) 情報処理システム、情報処理方法及びプログラム
Chen et al. Deploying virtual network functions with non-uniform models in tree-structured networks
WO2018028457A1 (zh) 一种确定路由的方法、装置及通信设备
Sayed et al. A Comparative Study on Load Balancing Techniques in Software Defined Networks
Huang et al. Communication and Computing Integrated Service Deployment Algorithms for All-Optical Clos Datacenter Networks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180105

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171228

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20180329

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180522

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180612

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180703

R150 Certificate of patent or registration of utility model

Ref document number: 6366291

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees