JP5540609B2 - 並列計算システムおよび通信制御プログラム - Google Patents

並列計算システムおよび通信制御プログラム Download PDF

Info

Publication number
JP5540609B2
JP5540609B2 JP2009201560A JP2009201560A JP5540609B2 JP 5540609 B2 JP5540609 B2 JP 5540609B2 JP 2009201560 A JP2009201560 A JP 2009201560A JP 2009201560 A JP2009201560 A JP 2009201560A JP 5540609 B2 JP5540609 B2 JP 5540609B2
Authority
JP
Japan
Prior art keywords
absolute value
relative coordinates
processor
relative
sign inversion
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
JP2009201560A
Other languages
English (en)
Other versions
JP2011053876A (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 JP2009201560A priority Critical patent/JP5540609B2/ja
Priority to US12/872,338 priority patent/US10430375B2/en
Priority to EP10174920A priority patent/EP2302525A1/en
Publication of JP2011053876A publication Critical patent/JP2011053876A/ja
Application granted granted Critical
Publication of JP5540609B2 publication Critical patent/JP5540609B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/803Three-dimensional arrays or hypercubes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Description

本発明は、多数のプロセッサが接続される並列計算機などにおける全対全通信方法に関する。
分散並列計算機において、プロセッサ間通信性能はアプリケーションの全体性能に多大な影響を与える。メッシュやトーラスのような二分帯域の小さなネットワークでは通信経路の重なりが起き易く、そのために通信性能が悪化する。このようなネットワークでは特に、全帯域を使用できる通信アルゴリズムの開発が重要である。
なお、「メッシュ」とは並列計算機のプロセッサを接続するネットワーク構成の一方式であり、多次元直交格子の格子点にプロセッサを配置し、多次元直交座標の各次元において隣接するプロセッサ間を接続する方式を言う。また、「トーラス」も並列計算機のネットワーク構成の一方式を指す語であり、多次元直交格子の格子点にプロセッサを配置し、多次元直交座標の各次元において隣接するプロセッサ間を接続、さらに各次元の終端のプロセッサ同士を接続し、各次元が循環した座標系を持つ。
図3にメッシュとトーラスの例をいくつか示す。図3では、プロセッサを丸または球で表しており、各種ネットワークにおけるプロセッサ間の接続状態を示している。図3(A)は4×4の2次元メッシュ、図3(B)は4×4の2次元トーラスを夫々示している。図3(A)および図3(B)では、各次元の長さが等しい例を示しているが、本質的にはメッシュ、トーラスの各次元の長さは同じでなくても良い。図3(C)は、4×6の2次元トーラスの例を示す。図3(D)は4×4×4の3次元メッシュ、図3(E)は4×4×4の3次元トーラスの例を示す。
「二分帯域」とは、ネットワークの帯域を表す指標であり、プロセッサ数を等しくネットワークを二分割し、分割されたネットワーク間にある全リンク(プロセッサ間を接続するデータ転送路)の帯域幅を合計したものを言う。ネットワークを二分割する場合に想定される分割パターンが複数ある場合には、二分帯域が最小となる分割パターンを使用する。
全対全通信 (all-to-all communication) は、分散並列計算機に含まれる全てのプロセッサ各々が、他の全プロセッサに対して、互いに異なるメッセージを転送する通信パターンを取る通信を言う。全体全通信は、行列転置や高速フーリエ変換のような、多くのアプリケーションで頻繁に利用される。
ネットワークにおける通信経路の重なりを考慮した全対全通信アルゴリズムが、これまでにいくつか提案されている。
非特許文献1は、ハイパーキューブおよびメッシュ・トポロジー向けのアルゴリズムを提案している。
非特許文献2および非特許文献3は、n次元トーラス・トポロジー向けのアルゴリズムを提案している。
これらのアルゴリズムは理論的な下限の通信時間を達成する。これらのアルゴリズムは全てメッセージ通信の「フェーズ分割の方法」を仮定している。これは、プロセッサ間通信をいくつかのセットに分けた上で、プロセッサ間通信のセットを順番に進めることによって全対全通信を実現する。各プロセッサは予め計画された通りにメッセージ転送と転送停止を繰り返し、ネットワークの全てのリンク使用率を100%にする。
しかし、フェーズ分割の方法は全てのプロセッサが同期してメッセージ転送や転送停止を行う必要があり、各フェーズの開始毎に全プロセッサの同期が必要なため、実際のシステムで使用する際には問題となる。これは全対全通信に余計なオーバヘッドを増やしてしまう。
非特許文献5では、BlueGene(登録商標)(非特許文献4参照)において、通信宛先のランダム化と適応的ルーティング技術を組み合わせた特別なアルゴリズムを使用している。
非特許文献6は、非対称なトーラスにおける、静的ルーティングとバリア同期を使用した技術を開示している。
近年の並列計算機には、プロセッサあたり複数の通信コントローラを持つものがある。この種のハードェアは、いくつかのメッセージ通信を並行して行うことができる。
非特許文献7及び非特許文献8は、複数の通信コントローラを効率的に使用する方法を開示している。LSIの集積度が上がるに従い、プロセッサあたりに複数の通信ハードェアを実装することは容易になってきており、全対全通信のような特定の通信パタ−ンにおいて複数の通信ハードェアを効率的に使用する方法の必要性が増している。一方、非特許文献7、非特許文献8では、通信経路の重なりを考慮しておらず、メッシュやトーラス・トポロジーの並列計算機では通信経路の重なりにより通信性能が悪化する。
D. S. Scott, "Efficient all-to-all communication patterns in hypercube and mesh topologies," in 6th Distributed Memory Computing Conference, 1991, pp. 398-403. 堀江 健志, 林 憲一, "トーラスネットワークにおける最適全対全通信方式," 情報処理学会論文誌, vol.34, no.4, pp. 628-637, 1993. Y.-C. Tseng and S. K. S. Gupta, "All-to-all personalized communication in a wormhole-routed torus," IEEE Transactions on Parallel and Distributed Systems, vol.7, no.5, pp. 498-505, May 1996. N. R. Adiga, M. A. Blumrich, D. Chen, P. Coteus, A. Gara, M. E. Giampapa, P. Heidelberger, S. Singh, B. D. Steinmacher-Burow, T. Takken, M. Tsao, and P. Vranas, "Blue Gene/L torus interconnection network," IBM journal of Research and Development, vol.49, no. 2/3, pp. 265-276, 2005. G. Alamasi, P. Heidelberger, C. J. Archer, X. Martorell, C. C. Erway, J. E. Moreira, B. Steinmacher-Burow, and Y.Zheng, "Optimization of mpi collective communication on bluegene/l systems," in ICS '05: Proceedings of the 19th annual internationnal conference on Supercomputing. New York, NY, USA: ACM, 2005, pp. 253-262. S. Kumar, Y. Sabharwal, R. Garg, and P. Heidelberger, "Optimization of All-to-All Communication on the Blue Gene/L Supercomputer," in 37th International Conference on Parallel Processing, Sept 2008, pp. 320-329. J. Bruck, C.-T. Ho, S. Kipnis, D. Weathersby, "Efficient Algorithms for all-to-all communications in multi-port message-passing systems," in SPAA '94: Proceedings of the sixth annual ACM symposium on Parallel algorithms and architectures. New York, NY, USA: ACM, 1994, pp.298-309. V. Tipparaju and J. Nieplocha, "Optimizing all-to-all collective communication by exploiting concurrency in modern networks," in SC '05: Proceedings of the 2005 ACM/IEEE conference on Supercomputing. Washington, DC, USA: IEEE Computer Society, 2005, p. 46.
トーラス・ネットワーク向けの最適な全対全通信では、フェーズ分割の方法が取られていた。フェーズ分割では、プロセッサ間通信をいくつかのセットに分けた上で、プロセッサ間通信のセットを順番に進めることによって、全対全通信を実現する。各フェーズ内の通信は、経路が重なり合わないように、かつ全ての接続が使用されるように選択される。このような方法では、同じ通信フェーズ中で、通信を行うプロセッサと行わないプロセッサが発生する。このため、各プロセッサの通信を異なる制御方式の協調動作で実現する必要があり、制御が複雑になる問題があった。
課題を解決するために、本発明は、複数のプロセッサを格子状のメッシュ・トポロジーまたはトーラス・トポロジーの相互接続ネットワークにより接続した並列計算システムにおいて、並列計算システムの各プロセッサから他のプロセッサへの相互接続ネットワークにおける通信経路次元オーダで決定され、各プロセッサに対して、同じタイミングで実行されるデータ通信における、各プロセッサから見た送信先プロセッサの相対的位置を特定するための相対座標として、全ての各プロセッサで共通な相対座標が設定され、各プロセッサは、各プロセッサから同じタイミングで実行されるデータ通信の宛先となる複数の相対座標値を設定された共通な相対座標に基づいて選択し、選択した複数の相対座標値に対応する複数の送信先プロセッサに対するデータ通信を同じタイミングで行う同時通信処理を、相互接続ネットワーク内の前記各プロセッサを除くすべてのプロセッサが一度だけ宛先となるように、宛先となる複数の相対座標値を適宜変更しながら繰り返し実行することを特徴とする。

本発明の並列計算システムおよびプログラムは、二次元トポロジーあるいは三次元トポロジーの並列計算システムにおいて、全リンクを均一な負荷で使用する全対全通信を実現する。本発明では、各計算ノードが同時に複数の送信先ノードに対してノード間通信を行うが、本発明の並列計算システムおよびプログラムでは全ノードの送信制御を同一とするため、ノード間の複雑な制御の依存関係に起因する制御オーバヘッドを削減できる。また、本発明では、各プロセッサは共通のアルゴリズムで送信先プロセッサを決定するため、プロセッサへの送信制御の実装が容易である。
また、本発明の並列計算システムおよびプログラムによれば、どの通信路でも同じ数の通信が重なる状態とすることが可能となり、これによって最適な全対全通信を実現できる。
一実施例による、辺の長さが奇数の二次元トーラストポロジーを示す図面である。 一実施例による、辺の長さが偶数の二次元トーラストポロジーを示す図面である。 ネットワーク構成の例を示す図面である。 一実施例によるノードの構成を示す図面である。
以下、本発明の実施形態を説明する。
(実施形態1)
本発明の一実施形態による並列計算システムは、複数のプロセッサを相互接続ネットワークで接続したシステムである。本実施形態において、相互接続ネットワークは二次元トーラスであり、相互接続ネットワークの通信経路は次元オーダで決定されている。また、相互結合ネットワークの第1の次元の長さと第2の次元の長さは互いに等しい。
本実施例による並列計算システム中の各プロセッサは、それぞれ最大4つのプロセッサに対して同時にデータを送信することが出来る。また、各送信元プロセッサから各送信先プロセッサに対して同時にデータ送信する場合の、送信元プロセッサから見た送信先プロセッサの相対座標は、並列計算システム中の全プロセッサ間で共通となるようにする。
ここで、本実施形態による相互結合ネットワークの第1の次元の長さおよび第2の次元の長さをLとする。なお、長さ「L」とは、ここでは各次元方向のリンクの数を指し、必ずしも物理的な長さを意味しない。この点は、他の実施形態についても同様である。
また、送信元プロセッサから第nの送信先プロセッサへの相対座標の第1の次元の相対座標値をXn、第2の次元の相対座標値をYnとする。本実施形態では、並列計算システム中の任意の送信元プロセッサから、送信先プロセッサに対して同時に、且つ二次元トーラス相互接続ネットワークの全リンクを均等な負荷で使用してデータを送信しするものとする。
本実施形態による並列計算システムでは、各プロセッサは以下のような動作を実行する。
任意の送信元プロセッサから見た第1の送信先プロセッサの相対座標を「X1,Y1」とする。相対座標「X1,Y1」については、以下のようにして相対座標値を決定する。
1)X1の絶対値とY1の絶対値とを異なる値とし、且つ
2)X1を0としてY1の絶対値をLの半分の値とは異なる値とする、あるいはY1を0としてX1の絶対値をLの半分の値とは異なる値とする。
この場合の各相対座標の相対座標値は、以下のようにして決定される。
相対座標「X2,Y2」では、X2をX1の符号反転とし、Y2をY1の符号反転とする。相対座標「X3,Y3」では、X3をY1とし、Y3をX1とする。相対座標「X4,Y4」では、X4をY1の符号反転とし、Y4をX1の符号反転とする。
並列計算システム中の各プロセッサは、上記のように決定した相対座標「X1,Y1」、「X2、Y2」、「X3、Y3」、「X4、Y4」の各位置にある4つの送信先プロセッサに対して、同時にデータを送信する。この際に、並列計算システムの全プロセッサは、同じタイミングで、且つ同一相対座標により示される送信先プロセッサに対して同時にデータを送信することから、本実施形態では二次元トーラス相互接続ネットワークの全リンクを均等な負荷で使用してデータを送信することが出来る。
また、相対座標「X1.Y1」の各相対座標値を:
1)X1の絶対値をY1の絶対値と等しい値、且つ
2)X1の絶対値およびY1の絶対値がLの半分の値とは異なる値:
として設定し、各相対座標の相対座標値を以下のように決定する。
相対座標「X2,Y2」については、X2をX1の符号反転とし、Y2をはY1の符号反転とする。また、相対座標「X3、Y3」については、X3をY1とし、Y3をX1とする。更に、相対座標「X4,Y4」については、X4をY1の符号反転とし、Y4をX1の符号反転とする。並列計算システム中の全プロセッサはそれぞれ、上記のように決定された相対座標「X1,Y1」、「X2、Y2」、「X3、Y3」、「X4、Y4」の位置にある4つの送信先プロセッサに対して、同時にデータを送信する。
一方、相対座標「X1,Y1」の各相対座標値を:
1)X1の絶対値をY1の絶対値と等しい値、且つ
2)X1の絶対値およびY1の絶対値をLの半分の値:
として設定し、各相対座標の相対座標値を以下のように決定する。
相対座標「X2,Y2」は、X2をX1の符号反転とし、Y2を0とする。また相対座標「X3,Y3」は、X3を0とし、Y3をY1の符号反転となるようにする。並列計算システム中の各プロセッサは、上記のように決定された相対座標「X1,Y1」、「X2、Y2」、「X3、Y3」の位置にある3つの送信先プロセッサに対して、同時に、且つ二次元トーラス相互接続ネットワークの全リンクを均等な負荷で使用してデータを送信する。
このように、本実施形態では上記の3種類の相対座標決定アルゴリズムを適宜組み合わせて、同時データ送信すべき送信先プロセッサを決定する。
ここで、Lが奇数の場合、並列計算システム中のプロセッサ数も奇数となる。従って、任意の送信元プロセッサから見ると、全対全通信を行うべき送信先プロセッサの数は偶数となる。この場合、4つの送信先プロセッサに対する同時送信を、X1の絶対値とY1の絶対値とを異ならせて(L−1)2/4回、X1の絶対値とY1の絶対値とを等しくして(L−1)/2回、各々各相対座標値を変えながら、同じプロセッサに2回以上送信しないように相対座標値を決めた上で行う。
一方、Lが偶数の場合は、並列計算システム中のプロセッサ数は偶数となる。従って、任意の送信元プロセッサから見た場合、全対全通信を行うべき送信先プロセッサの数は奇数となる。従って、この場合には、X1の絶対値とY1の絶対値とを異ならせた4つの送信先プロセッサに対する同時送信を(L−1)2 /4回、X1の絶対値とY1の絶対値を等しくした4つの送信先プロセッサに対する同時送信を(L/2−1)回、更にX1の絶対値をY1の絶対値とを等しい値とし且つX1の絶対値およびY1の絶対値をLの半分の値とした、3つの送信先プロセッサに対する同時送信を1回、各々相対座標値を変えながら、送信先プロセッサが重ならないように相対座標値を決めて行う。
このような動作によって、各プロセッサから同時に送信するデータの転送距離を次元および方向別に総和をとると、どの次元、方向も転送距離の総和が等しくなる。さらに全プロセッサが同じ相対座標でデータ転送を行うため、並列計算システムでの全対全通信を、リンクの負荷を均等にした上で実現することができる。ただしLが偶数の場合、相対座標の絶対値がLの半分の次元では、データ転送毎に転送方向を並列計算システムが任意に決められるものとする。
本実施形態の並列計算システムでは各プロセッサは同時送信を複数回行う。ここで、全プロセッサが同じように同時送信を行うことが、リンクの負荷を均等にする条件である。しかし、プロセッサは外乱要因により処理時間がばらつく場合があり、結果としてあるプロセッサが前の同時通信を実行している間に、別のプロセッサが次の同時通信を始めてしまう非対称性が生じうる。ここで、同時送信と次の同時送信との間で並列計算システム中の全プロセッサ間で同期を取ることにより、外乱要因による非対称性の発生を防ぎ、同じ時刻に全プロセッサが同一の同時送信を実行することを保証可能となる。この点は、以降に説明する他の実施形態についても同様である。なお同期については、並列計算システムに一般的に備わっている、ハードウェアによる同期機構を利用する。また、PCクラスタ等の同期機構を備えない並列計算システムにおいても、通常はソフトウェアによる同期ライブラリが提供される。
送信先プロセッサの相対座標値決定の処理は、データ送信処理を実行するたびに行なっても良い。また、任意のアルゴリズムによって予め決定した送信先プロセッサの相対座標値をテーブルなどに設定しておき、データ送信処理を実行するたびにテーブルなどに設定された相対座標値を読み出すようにしてもよい。
(実施形態2)
本発明の他の実施形態による並列計算システムは、複数のプロセッサを相互接続ネットワークで接続したシステムである。相互接続ネットワークは二次元トーラスであり、相互接続ネットワークの通信経路は次元オーダで決定されているものとする。また、相互結合ネットワークの第1の次元の長さと第2の次元の長さは異なるものとする。
本実施形態による並列計算システム中の各プロセッサは、それぞれ最大4つのプロセッサに対して同時にデータを送信することが出来る。各プロセッサから複数の送信先プロセッサへデータを同時送信する際の相対座標は、並列計算システム中の全プロセッサで共通である。
本実施形態では、相互結合ネットワークの第1の次元の長さおよび第2の次元の長さの最大値をLとし、送信元プロセッサから第nの送信先プロセッサへの相対座標の第1の次元の相対座標値をXn、第2の次元の相対座標値をYnとする。ただし、第1の次元と第2の次元で長さがLより短い次元については、予め次元の長さに該当する送信可能範囲を設定し、送信可能範囲を超える相対座標に対する送信動作は行わないものとする。
本実施形態では、並列計算システム内の各プロセッサは、以下のように決定した相対座標を持つ送信先プロセッサに対して同時に、二次元トーラス相互接続ネットワークの各リンクを一定以下の負荷で使用してデータを送信する。
まず、相対座標「X1,Y1」の各相対座標値を、以下のようにして決定する。
1)X1の絶対値をY1の絶対値と異なる値、且つ
2)X1を0としてY1の絶対値をLの半分の値とは異なる値とする、あるいはY1を0としてX1の絶対値をLの半分の値とは異なる値とする。
この場合、各相対座標の相対座標値は、以下のように決定する。
相対座標「X2,Y2」はX2をX1の符号反転とし、Y2をY1の符号反転とする。相対座標「X3,Y3」は、X3をY1とし、Y3をX1とする。相対座標「X4,Y4」は、X4をY1の符号反転とし、Y4をX1の符号反転とする。
並列計算システム中の各プロセッサは、上記のように決定された相対座標「X1,Y1」、「X2、Y2」、「X3、Y3」、「X4、Y4」の位置にある4つの送信先プロセッサに対して、同時に、且つ二次元トーラス相互接続ネットワークの全リンクを均等な負荷で使用してデータを送信する。
また、相対座標「X1,Y1」の各相対座標値を:
1)X1の絶対値をY1の絶対値と等しい値とし、且つ
2)X1の絶対値およびY1の絶対値がLの半分の値とは異なる値とする:
場合、各相対座標の相対座標値は以下のように決定される。
相対座標「X2,Y2」は、X2をX1の符号反転とし、Y2をY1の符号反転とする。相対座標「X3,Y3」は、X3をY1とし、Y3をはX1とする。相対座標「X4,Y4」は、X4をY1の符号反転とし、Y4をX1の符号反転とする。
並列計算システム中の各プロセッサはそれぞれ、上記のように決定した相対座標「X1,Y1」、「X2,Y2」、「X3、Y3」、「X4、Y4」に位置する4つの送信先プロセッサに対して同時に、二次元トーラス相互接続ネットワークの各リンクを一定以下の負荷で使用してデータを送信する。
更に、相対座標「X1,Y1」の各相対座標を:
1)X1の絶対値をY1の絶対値と等しい値とし、且つ
2)X1の絶対値およびY1の絶対値をLの半分の値とする:
場合、各相対座標の相対座標値は以下のように決定する。
相対座標「X2,Y2」は、X2をX1の符号反転とし、Y2を0とする。相対座標「X3,Y3」は、X3を0とし、Y3をY1の符号反転とする。
並列計算システム中の各プロセッサはそれぞれ、上記のように決定した相対座標「X1,Y1」、「X2,Y2」、「X3、Y3」に位置する3つの送信先プロセッサに対して同時に、二次元トーラス相互接続ネットワークの各リンクを一定以下の負荷で使用してデータを送信する。
ここで、Lが奇数の場合は、任意のプロセッサから4つの送信先プロセッサに対する同時送信を、X1の絶対値とY1の絶対値とを異ならせて(L−1)2/4回、X1の絶対値とY1の絶対値とを等しくして(L−1)/2回、各々送信先となるプロセッサが重ならないように、各相対座標値を変えながら行う。
一方、Lが偶数の場合は、X1の絶対値とY1の絶対値とを異ならせた4つの送信先プロセッサに対する同時送信を(L−1)2 /4回、X1の絶対値とY1の絶対値とを等しくした4つの送信先プロセッサに対する同時送信を(L/2−1)回、更にX1の絶対値をY1の絶対値と等しい値とし且つX1の絶対値およびY1の絶対値をLの半分の値とした、3つの送信先プロセッサに対する同時送信を1回、各々送信先となるプロセッサが重ならないように行う。
(実施形態3)
本発明の更に他の実施形態は、並列計算システムは複数のプロセッサを相互接続ネットワークで接続したシステムである。相互接続ネットワークは二次元メッシュであり、相互接続ネットワークの通信経路は次元オーダで決定されている。また、並列計算システム中の各プロセッサはそれぞれ、最大4つのプロセッサに対して同時にデータを送信する。ここで、任意のプロセッサから複数の送信先プロセッサへの相対座標は、並列計算システム中の全プロセッサで共通であるものとする。
本実施形態では、相互結合ネットワークの第1の次元の長さおよび第2の次元の長さの最大値をLとし、送信元プロセッサから第nの送信先プロセッサへの相対座標の第1の次元の相対座標値をXn、第2の次元の相対座標値をYnとする。ただし、任意のプロセッサからの相対座標が相互接続ネットワークの外部に位置する場合は、当該プロセッサからの送信を行わないものとする。
ここで、相対座標「X1,Y1」の相対座標値を、以下のように決定する。
1)X1の絶対値がY1の絶対値と異なる値とし、且つ;
2)X1を0としてY1の絶対値をLの半分の値とは異なる値とする、あるいはY1を0としてX1の絶対値をLの半分の値とは異なる値とする。
この場合、各相対座標の相対座標値は、以下のようにして決定される。
相対座標「X2,Y2」は、X2をX1の符号反転とし、Y2をY1の符号反転とする。相対座標「X3、Y3」は、X3をY1とし、Y3をX1とする。相対座標「X4、Y4」は、X4をY1の符号反転とし、Y4をX1の符号反転とする。
並列計算システム中の各プロセッサはそれぞれ、上記のように決定した相対座標「X1,Y1」、「X2、Y2」、「X3、Y3」、「X4、Y4」の位置にある4つの送信先プロセッサに対して同時に、二次元トーラス相互接続ネットワークの各リンクを一定以下の負荷で使用してデータを送信する。
また、相対座標「X1、Y1」の各相対座標値を:
1)X1の絶対値をY1の絶対値と等しい値とし、且つ
2)X1の絶対値およびY1の絶対値をLの半分の値とは異なる値とする:
場合、各相対座標値は以下のようにして決定する。
相対座標「X2、Y2」は、X2をX1の符号反転とし、Y2をY1の符号反転とする。相対座標「X3、Y3」は、X3をY1とし、Y3をX1とする。相対座標「X4、Y4」は、X4をY1の符号反転とし、Y4をX1の符号反転とする。
並列計算システム中の全プロセッサはそれぞれ、上記のように相対座標「X1,Y1」、「X2、Y2」、「X3、Y3」、「X4、Y4」の位置にある4つの送信先プロセッサに対して同時に、二次元トーラス相互接続ネットワークの各リンクを一定以下の負荷で使用してデータを送信する。
更に、相対座標「X1、Y1」の各相対座標値を:
1)X1の絶対値をY1の絶対値と等しい値とし、且つ;
2)X1の絶対値およびY1の絶対値をLの半分の値とする:
場合、各相対座標値は以下のように決定する。
相対座標「X2、Y2」を、X2をX1の符号反転とし、Y2を0とする。相対座標「X3、Y3」は、X3を0とし、Y3をY1の符号反転とする。
並列計算システム中の全プロセッサはそれぞれ、上記のように決定された相対座標「X1、Y1」、「X2、、Y2」、「X3、Y3」に位置する3つの送信先プロセッサに対して同時に、二次元メッシュ相互接続ネットワークの各リンクを一定以下の負荷で使用してデータを送信する。
ここで、Lが奇数の場合には、任意のプロセッサからの4つの送信先プロセッサに対する同時送信を、X1の絶対値とY1の絶対値とを異ならせて(L−1)2/4回、X1の絶対値とY1の絶対値とを等しくして(L−1)/2回、各々送信先となるプロセッサが重ならないように行う。
一方、Lが偶数の場合は、任意のプロセッサからの4つの送信先プロセッサに対する同時送信を、X1の絶対値とY1の絶対値とを異ならせて(L−1)2 /4回、X1の絶対値とY1の絶対値とを等しくして(L/2−1)回、3つの送信先プロセッサに対する同時送信を1回、各々送信先となるプロセッサが重ならないように行う。
(実施形態4)
本発明の更に他の並列計算システムでは、相互接続ネットワークは三次元トーラスであり、相互接続ネットワークの通信経路は次元オーダで決定されている。また、相互結合ネットワークの第1の次元の長さと第2の次元の長さと第3の次元の長さは等しいものとする。
本実施形態の並列計算システム中の各プロセッサはそれぞれ、最大6つのプロセッサに対して同時にデータを送信する。また、任意のプロセッサから複数の送信先プロセッサへの相対座標は並列計算システム中の全プロセッサで共通であるものとする。本実施形態では、並列計算システム中の任意の送信元プロセッサは以下の手順により、送信先プロセッサに対して同時に、且つ三次元トーラス相互接続ネットワークの全リンクを均等な負荷で使用してデータを送信しするものとする。
ここで、相互結合ネットワークの第1の次元の長さ、第2の次元の長さ、第3の次元の長さのそれぞれをLとし、送信元プロセッサから第nの送信先プロセッサへの相対座標の第1の次元の相対座標値をXn、第2の次元の相対座標値をYn、第3の次元の相対座標値をZnとする。
ここで、相対座標「X1、Y1,Z1」の相対座標値を、以下の手順で設定する場合を想定する。この場合、X1の絶対値とY1の絶対値とZ1の絶対値のうち少なくとも1つが異なる値であり、且つ以下のいずれかに該当するものとする。
1)X1を0、Y1の絶対値とZ1の絶対値のどちらかをLの半分の値とは異なる値とする;
2)Y1を0、X1の絶対値とZ1の絶対値のどちらかをLの半分の値とは異なる値とする;
3)Z1を0、X1の絶対値とY1の絶対値のどちらかをLの半分の値とは異なる値とする;
4)X1およびY1を0、Z1の絶対値をLの半分の値とは異なる値とする;
5)X1およびZ1を0、Y1の絶対値をLの半分の値とは異なる値とする;あるいは
6)Y1およびZ1を0、X1の絶対値をLの半分の値とは異なる値とする。
この場合、他の送信先プロセッサの相対座標は以下のようにして決定する。
相対座標「X2,Y2,Z2」では、X2をX1の符号反転とし、Y2をY1の符号反転とし、Z2をZ1の符号反転とする。相対座標「X3、Y3,Z3」では、X3をZ1とし、Y3をX1とし、Z3をY1とする。相対座標「X4,Y4、Z4」については、X4をZ1の符号反転とし、Y4をX1の符号反転とし、Z4をY1の符号反転とする。相対座標「X5、Y5、Z5」については、X5をY1とし、Y5をZ1とし、Z5をX1とする。相対座標「X6、Y6、Z6」については、X6をY1の符号反転とし、Y6をZ1の符号反転とし、Z6をX1の符号反転とする。
並列計算システム中の全プロセッサはそれぞれ、上記のように決定される相対座標「X1、Y1、Z1」、「X2、Y2、Z2」、「X3、Y3、Z3」、「X4、Y4、Z4」、「X5、Y5、Z5」、「X6、Y6、Z6」の各位置にある6つの送信先プロセッサに対して同時に、三次元トーラス相互接続ネットワークの全リンクを均等な負荷で使用してデータを送信する。また、全プロセッサは、各々同じタイミングで、同じ同じ相対座標値を持つ送信先プロセッサに対して同時にデータを送信する。
また、相対座標「X1,Y1、Z1」の相対座標値を以下のように決定する。ここでは:
1)X1の絶対値とY1の絶対値とZ1の絶対値とを等しい値とし、且つ
2)X1の絶対値、Y1の絶対値およびZ1の絶対値をそれぞれLの半分の値とは異なる値とする。
この場合、他の各送信先プロセッサの相対座標を以下のように決定する。
相対座標「X2、Y2、Z2」は、X2をX1の符号反転とし、Y2をY1の符号反転とし、Z2をZ1の符号反転とする。相対座標「X3、Y3、Z3」については、X3をX1とし、Y3をY1とし、Z3をZ1の符号反転とする。相対座標「X4、Y4、Z4」については、X4をX1の符号反転とし、Y4をY1の符号反転とし、Z4をZ1とする。
並列計算システム中の全プロセッサはそれぞれ、上記のように決定された相対座標「X1、Y1、Z1」、「X2、Y2、Z2」、「X3、Y3、Z3」、「X4、Y4、Z4」に位置する4つの送信先プロセッサに対して同時に、三次元トーラス相互接続ネットワークの全リンクを均等な負荷で使用してデータを送信する。
また、相対座標「X1、Y1、Z1」の相対座標値を以下のように決定する。
1)X1の絶対値とY1の絶対値とZ1の絶対値とを等しくし、且つ:
2)X1の絶対値、Y1の絶対値およびZ1の絶対値をそれぞれLの半分の値とする。
この場合、他の相対座標を以下のように決定する。
相対座標「X2、Y2、Z2」については、X2をX1の符号反転とし、Y2とZ2とを0とする。相対座標「X3、Y3、Z3」については、X3を0とし、Y3をY1の符号反転とし、Z3をZ1の符号反転とする。相対座標「X4、Y4、Z4」については、X4とZ4とは0とし、Y4をY1とする。相対座標「X5、Y5、Z5」については、X5をX1とし、Y5と0とし、Z5をZ1とする。更に、相対座標「X6、Y6、Z6」については、X6とY6とを0とし、Z6をZ1の符号反転とする。また、相対座標「X7、Y7、Z7」については、X7をX1の符号反転とし、Y7をY1の符号反転とし、Z7を0とする。
並列計算システム中の全プロセッサはそれぞれ、1回目は相対座標「X1、Y1、Z1」の第1の送信先プロセッサと、相対座標「X2、Y2、Z2」の第2の送信先プロセッサと、相対座標「X3、Y3、Z3」の第3の送信先プロセッサに同時に、三次元トーラス相互接続ネットワークの全リンクを均等な負荷で使用してデータを送信する。各送信元プロセッサは続いて、2回目の同時送信としてそれぞれ相対座標「X4、Y4、Z4」の第4の送信先プロセッサと、相対座標「X5、Y5、Z5」の第5の送信先プロセッサと、相対座標「X6、Y6、Z6」の第6の送信先プロセッサと、相対座標「X7、Y7、Z7」の第7の送信先プロセッサとに同時に、三次元トーラス相互接続ネットワークの全リンクを均等な負荷で使用してデータを送信する。つまり、この例では都合7つの送信先プロセッサへのデータ送信を、2回に分けて行なう。
本実施形態による並列計算システムでは、上記3種類の相対座標決定アルゴリズムを適宜組み合わせて、送信先プロセッサの相対座標を決定し、送信先プロセッサに対する同時データ送信を実行する。
ここで、Lが奇数の場合は、任意のプロセッサから6つの送信先プロセッサに対する同時送信を(L3−4L+3)/4回、4つの送信先プロセッサに対する同時送信をL−1回、互いに送信先となるプロセッサが重ならないように行う。
一方、Lが偶数の場合は、6つの送信先プロセッサに対する同時送信を(L3−4L+1)/4回、4つの送信先プロセッサに対する同時送信をL−2回、更に7つの送信先プロセッサに対して3送信先同時送信と4送信先同時送信をそれぞれ1回、送信先が重ならないように行う。
(実施形態5)
本発明の更に他の実施形態による並列計算システムは、複数のプロセッサを相互接続ネットワークで接続しており、相互接続ネットワークは三次元トーラスであり、相互接続ネットワークの通信経路は次元オーダで決定されている。また、相互結合ネットワークの第1の次元の長さと第2の次元の長さと第3の次元の長さの少なくとも一つの次元の長さが他の次元とは異なるものとする。更に、並列計算システム中の全プロセッサはそれぞれ最大6つのプロセッサに対して同時にデータを送信するものであり、任意のプロセッサから複数の送信先プロセッサへ同時にデータ送信する際の送信先プロセッサの相対座標は、並列計算システム中の全プロセッサで共通であるものとする。
ここで、相互結合ネットワークの第1の次元の長さ、第2の次元の長さ、第3の次元の長さの最大値をLとする。また、送信元プロセッサから第nの送信先プロセッサへの相対座標の第1の次元の相対座標値をXn、第2の次元の相対座標値をYn、第3の次元の相対座標値をZnとする。ただし、第1の次元、第2の次元あるいは第3の次元で長さがLより短い次元については、予め次元の長さに該当する送信可能範囲を設定し、送信可能範囲を超える相対座標に位置するプロセッサへの送信処理は行わないものとする。
ここで、相対座標「X1、Y1、Z1」の各相対座標値を、以下のように決定する。
ここで、X1の絶対値とY1の絶対値とZ1の絶対値とのうち少なくとも1つを異なる値とする場合:
1)X1を0、Y1の絶対値とZ1の絶対値とのどちらかとLの半分の値とは異なる値とする;
2)Y1を0、X1の絶対値とZ1の絶対値とのどちらかをLの半分の値とは異なる値とする;
3)Z1を0、X1の絶対値とY1の絶対値とのどちらかをLの半分の値とは異なる値とする;
4)X1およびY1を0、Z1の絶対値をLの半分の値とは異なる値とする;
5)X1およびZ1を0、Y1の絶対値をLの半分の値とは異なる値とする;あるいは
6)Y1およびZ1を0、X1の絶対値をLの半分の値とは異なる値とする。
この場合、他の相対座標は以下のように決定する。
相対座標「X2、Y2、Z2」については、X2をX1の符号反転とし、Y2をY1の符号反転とし、Z2をZ1の符号反転とする。相対座標「X3、Y3、Z3」については、X3をZ1とし、Y3をX1とし、Z3をY1とする。相対座標「X4、Y4、Z4」については、X4をZ1の符号反転とし、Y4をX1の符号反転とし、Z4をY1の符号反転とする。相対座標「X5、Y5、Z5」については、X5をY1とし、Y5をZ1とし、Z5をX1とする。相対座標「X6.Y6、Z6」については、X6をY1の符号反転とし、Y6をZ1の符号反転とし、Z6をX1の符号反転とする。
並列計算システム中の全プロセッサはそれぞれ、上記のように決定された相対座標「X1、Y1、Z1」乃至「X6、Y6、Z6」の各相対座標に位置する6つの送信先プロセッサに対して同時に、三次元トーラス相互接続ネットワークの各リンクを一定以下の負荷で使用してデータを送信する。
また、相対座標「X1、Y1、Z1」の各相対座標値を、以下のように決定する。
1)X1の絶対値とY1の絶対値とZ1の絶対値とを等しい値とし、且つ
2)X1の絶対値、Y1の絶対値およびZ1の絶対値のそれぞれをLの半分の値とは異なる値とする。
この場合、他の相対座標は以下のように決定する。
相対座標「X2、Y2、Z2」については、X2をX1の符号反転とし、Y2をY1の符号反転とし、Z2をZ1の符号反転とする。相対座標「X3、Y3、Z3」については、X3をX1とし、Y3をY1とし、Z3をZ1の符号反転とする。相対座標「X4、Y4、Z4」については、X4をX1の符号反転とし、Y4をY1の符号反転とし、Z4をZ1とする。
並列計算システム中の全プロセッサはそれぞれ、上記のように決定された相対座標「X1、Y1、Z1」乃至「X4、Y4、Z4」に位置する4つの送信先プロセッサに対して同時に、三次元トーラス相互接続ネットワークの各リンクを一定以下の負荷で使用してデータを送信する。
一方、相対座標「X1、Y1、Z1」の各相対座標値を、以下のように決定する。
1)X1の絶対値とY1の絶対値とZ1の絶対値とを等しい値とし、且つ:
2)X1の絶対値、Y1の絶対値およびZ1の絶対値をそれぞれLの半分の値とする。
この場合、他の相対座標は以下のように決定する。
相対座標「X2、Y2、Z2」については、X2をX1の符号反転であり、Y2とZ2とを0とする。相対座標「X3、Y3、Z3」については、X3を0とし、Y3をY1の符号反転とし、Z3をZ1の符号反転とする。相対座標「X4、Y4、Z4」については、X4とZ4とを0とし、Y4をY1とする。相対座標「X5、Y5、Z5」については、X5をX1とし、Y5を0とし、Z5をZ1とする。相対座標「X6、Y6、Z6」については、X6とY6とを0とし、Z6をZ1の符号反転とする。相対座標「X7、Y7、Z7」については、X7をX1の符号反転とし、Y7をY1の符号反転とし、Z7を0とする。
並列計算システム中の全プロセッサはそれぞれ、1回目には相対座標「X1、Y1、Z1」の第1の送信先プロセッサと、相対座標「X2、Y2、Z2」の第2の送信先プロセッサと、相対座標「X3、Y3、Z3」の第3の送信先プロセッサとに対して同時に、三次元トーラス相互接続ネットワークの全リンクを均等な負荷で使用してデータを送信する。各送信元プロセッサは次いで、2回目の同時送信として、相対座標「X4、Y4、Z4」の第4の送信先プロセッサと、相対座標「X5、Y5、Z6」の第5の送信先プロセッサと、「相対座標「X6、Y6、Z6」の第6の送信先プロセッサと、相対座標「X7、Y7、Z7」の第7の送信先プロセッサとに同時に、三次元トーラス相互接続ネットワークの各リンクを一定以下の負荷で使用してデータを送信する。
本実施形態による並列計算システムでは、上記3種類の相対座標決定アルゴリズムを適宜組み合わせて、送信先プロセッサの相対座標を決定し、送信先プロセッサに対する同時データ送信を実行する。
ここで、Lが奇数の場合は、6つの送信先プロセッサに対する同時送信を(L3−4L+3)/4回、4つの送信先プロセッサに対する同時送信をL−1回、送信先が重ならないように行う。
また、Lが偶数の場合は、6つの送信先プロセッサに対する同時送信を(L3−4L+1)/4回、4つの送信先プロセッサに対する同時送信をL−2回、更に7つの送信先プロセッサに対して3送信先同時送信と4送信先同時送信をそれぞれ1回、送信先が重ならないように行う。
(実施形態6)
本発明の更に他の実施形態による並列計算システムは、複数のプロセッサを相互接続ネットワークで接続したものである。相互接続ネットワークは三次元メッシュであり、相互接続ネットワークの通信経路は次元オーダで決定されている。また、並列計算システム中の全プロセッサは、それぞれ最大6つのプロセッサに対して同時にデータを送信し、各プロセッサから見た複数の送信先プロセッサへの相対座標は、並列計算システム中の全プロセッサで共通であるものとする。
ここで、相互結合ネットワークの第1の次元の長さ、第2の次元の長さおよび第3の次元の長さのそれぞれの最大値をLとする。また、送信元プロセッサから第nの送信先プロセッサへの相対座標の第1の次元の相対座標値をXn、第2の次元の相対座標値をYn、第3の次元の相対座標値をZnとする。ただし、送信先プロセッサが相互接続ネットワークの外部に位置する場合は送信を行わないものとする。
相対座標「X1、Y1、Z1」の相対座標値は、以下のように決定する。
この場合、X1の絶対値とY1の絶対値とZ1の絶対値のうち少なくとも1つを異なる値として、且つ以下のいずれかの条件に対応するように相対座標値を決定する。
1)X1を0、Y1の絶対値とZ1の絶対値とのどちらかをLの半分の値とは異なる値とする;
2)Y1を0、X1の絶対値とZ1の絶対値とのどちらかをLの半分の値とは異なる値とする;
3)Z1を0、X1の絶対値とY1の絶対値とのどちらかをLの半分の値とは異なる値とする;
4)X1およびY1を0、Z1の絶対値をLの半分の値とは異なる値とする;
5)X1およびZ1を0、Y1の絶対値をLの半分の値とは異なる値とする;あるいは
6)Y1およびZ1を0、X1の絶対値をLの半分の値とは異なる値とする。
この場合、他の相対座標は以下のようにして決定する。
相対座標「X2、Y2、Z2」については、X2をX1の符号反転とし、Y2をY1の符号反転とし、Z2をZ1の符号反転とする。相対座標「X3、Y3、Z3」については、X3をZ1とし、Y3をX1とし、Z3をY1とする。相対座標「X4、Y4、Z4」については、X4をZ1の符号反転とし、Y4をX1の符号反転とし、Z4をY1の符号反転とする。相対座標「X5、Y5、Z5」については、X5をY1とし、Y5をZ1とし、Z5をX1とする。相対座標「X6、Y6,Z6」については、X6をY1の符号反転とし、Y6をZ1の符号反転とし、Z6をX1の符号反転とする。
並列計算システム中の全プロセッサはそれぞれ、上記のように決定された相対座標「X1、Y1、Z1」乃至「X6、Y6、Z6」に位置する6つの送信先プロセッサに対して同時に、三次元トーラス相互接続ネットワークの各リンクを一定以下の負荷で使用してデータを送信する。
また、相対座標「X1、Y1、Z1」の相対座標値を、以下のように決定する。ここでは:
1)X1の絶対値とY1の絶対値とZ1の絶対値とを等しい値とし、且つ:
2)X1の絶対値とY1の絶対値とZ1の絶対値とをLの半分の値とは異なる値とする。
この場合の他の相対座標は、以下のように決定する。
相対座標「X2、Y2、Z2」については、X2をX1の符号反転とし、Y2をY1の符号反転とし、Z2をZ1の符号反転とする。相対座標「X3、Y3、Z3」については、X3をX1とし、Y3をY1とし、Z3をZ1の符号反転とする。相対座標「X4、Y4、Z4」については、X4をX1の符号反転とし、Y4をY1の符号反転とし、Z4をZ1とする。
並列計算システム中の全プロセッサはそれぞれ、上記のように決定された相対座標「X1、Y1、Z1」乃至「X4、Y4、Z4」に位置する4つの送信先プロセッサに対して同時に、三次元トーラス相互接続ネットワークの各リンクを一定以下の負荷で使用してデータを送信する。
また、相対座標「X1、Y1、Z1」の相対座標値を:
1)X1の絶対値とY1の絶対値とZ1の絶対値とを等しい値とし、且つ
2)X1の絶対値とY1の絶対値とZ1の絶対値とをLの半分の値とする。
この場合、他の相対座標値は以下のように決定する。
相対座標「X2、Y2、Z2」については、X2をX1の符号反転とし、Y2とZ2とを0とする。相対座標「X3、Y3、Z3」については、X3を0とし、Y3をY1の符号反転とし、Z3をZ1の符号反転とする。相対座標「X4、Y4、Z4」については、X4とZ4とを0とし、Y4をY1とする。相対座標「X5、Y5、Z5」については、X5をX1とし、Y5を0とし、Z5をZ1とする。相対座標「X6、Y6,Z6」については、X6とY6を0とし、Z6をZ1の符号反転とする。相対座標「X7、Y7、Z7」についてはX7をX1の符号反転とし、Y7をY1の符号反転とし、Z7を0とする。
並列計算システム中の全プロセッサはそれぞれ、1回目には、相対座標「X1、Y1、Z1」の第1の送信先プロセッサと、相対座標「X2、Y2、Z2」の第2の送信先プロセッサと、相対座標「X3、Y3、Z3」の第3の送信先プロセッサとに同時に、三次元トーラス相互接続ネットワークの全リンクを均等な負荷で使用してデータを送信する。各送信元プロセッサは、2回目の同時送信として、相対座標「X4、Y4、Z4」の第4の送信先プロセッサと、相対座標「X5、Y5、Z5」の第5の送信先プロセッサと、相対座標「X6、Y6、Z6」の第6の送信先プロセッサと、相対座標「X7、Y7、z7」の第7の送信先プロセッサとに同時に、三次元メッシュ相互接続ネットワークの各リンクを一定以下の負荷で使用してデータを送信する。
ここで、Lが奇数の場合は、6つの送信先プロセッサに対する同時送信を(L3−4L+3)/4回、4つの送信先プロセッサに対する同時送信をL−1回、送信先が重ならないように行う。
一方、Lが偶数の場合は、6つの送信先プロセッサに対する同時送信を(L3−4L+1)/4回、4つの送信先プロセッサに対する同時送信をL−2回、7つの送信先プロセッサに対して3送信先同時送信と4送信先同時送信をそれぞれ1回、送信先が重ならないように行う。
上記した三次元トーラス相互接続ネットワークの例では、同時送信と同時送信との間に並列計算システム中の全プロセッサ間で同期を取ることにより、三次元トーラス相互接続ネットワークのリンクの負荷に非対称性が生じた場合においても、同じ時刻に全プロセッサが同一の同時送信を実行することを保証する。
(実施例7)
本実施形態による全対全通信方法は、各々のプロセッサが、複数の通信コントローラにより並行して複数のメッセージを送受信する。本実施形態では、通信先となるプロセッサの順番を工夫することで、各ノードから見た送信先となるプロセッサの相対座標を全ノード間で同一とするともに、システムにおける全てのネットワークルータ間リンクを通過するプロセッサ間通信の数を均一にする。
各ノードがプロセッサ、4つの通信コントローラ、ネットワークルータを持つ、図4に示す構成のノードを接続した2次元トーラスの並列計算システムでは、以下のアルゴリズムにより各リンクを通過するプロセッサ間通信の数を均一にする。
図1は、一実施形態による二次元トーラス・トポロジーを示す図面である。図1に示す二次元トーラス・トポロジーは、二辺の長さが等しく、かつ辺の長さが奇数となるものである。
図1の二次元トーラス・トポロジーでは、各辺の長さを2n+1と表す。なお「n」は自然数とする。また、図1に示す星印は、送信元プロセッサを示す。
本実施形態による二次元トーラス・トポロジーでは、0<j<i≦nとなる全ての自然数i,jについて、まず全プロセッサが各々、自身からの相対座標(i,j)、(−i,−j)、(j,i)、(−j,−i)の各座標に位置する4つのプロセッサと同時に通信する(図1A)。
次に、各プロセッサは、自身からの相対座標(i,−j)、(−i,j)、(−j,i)、(j,−i)の各座標に位置する4つのプロセッサと同時通信する(図1B)。
さらに、0<i≦nとなる全ての自然数iについて、各プロセッサは自身からの相対座標(i,0)、(−i,0)、(0,i)、(0,−i) の各座標に位置する4つのプロセッサと同時通信する(図1C)。
次いで、各プロセッサは、自身からの相対座標が(i,i)、(−i,−i)、(−i,i)、(i,−i)の各座標に位置する4つのプロセッサと同時通信する(図1D)。
(実施例8)
図2は、二辺の長さが等しく、かつ各辺の長さが偶数である2次元トーラス・トポロジーを示している。図2においても、星印は送信元プロセッサを示す。
図2の例では、辺の長さを2n+2と表す。任意のプロセッサからの各座標軸上の相対座標が−n以上n以下のプロセッサについては、二辺の長さが等しくかつ奇数である、図1に示した2次元トーラス・トポロジーの場合と同様に通信を行う。続いて残りの、任意のプロセッサからの少なくとも片方の座標軸上の相対座標が−n−1またはn+1であるプロセッサと、以下の組合せで通信する。
まず、0<i≦nとなる全ての自然数iについて、全プロセッサが自身からの相対座標(n+1,i)、(−n−1,−i)、(i,n+1)、(−i,−n−1)の各座標に位置する4つのプロセッサと同時通信する(図2A)。次いで、全プロセッサが、自身からの相対座標が(n+1,0)、(0,n+1)、(−n−1,−n−1)の各座標に位置する3つのプロセッサと同時通信する(図2B)。
(実施例9)
各プロセッサが6つの通信コントローラを持つ3次元トーラスの並列計算システムでは、以下のアルゴリズムにより、全リンクを通過するプロセッサ間通信の数を均一にする。
以下、三辺の長さが等しく、かつ各辺の長さが奇数である3次元トーラス・トポロジーの場合について説明する。ここでは、各辺の長さを2n+1と表すものとする。各プロセッサは、まず0<k<j<i≦nとなる全ての自然数i,j,kについて、以下の相対座標の各組合せにより、6プロセッサと同時に通信する。以下では、かぎかっこで囲われた6つの相対座標が、各々1つの組を構成する。この点は、以下同様とする。
「(i,j,k)、(−i,−j,−k)、(k,i,j)、(−k,−i,−j)、(j,k,i)、(−j,−k,−i)」
「(i,j,−k)、(−i,−j,k)、(−k,i,j)、(k,−i,−j)、(j,−k,i)、(−j,k,−i)」
「(i,−j,k)、(−i,j,−k)、(k,i,−j)、(−k,−i,j)、(−j,k,i)、(j,−k,−i)」
「(i,−j,−k)、(−i,j,k)、(−k,i,−j)、(k,−i,j)、(−j,−k,i)、(j,k,−i)」
「(i,k,j)、(−i,−k,−j)、(j,i,k)、(−j,−i,−k)、(k,j,i)、(−k,−j,−i)」
「(i,k,−j)、(−i,−k,j)、(−j,i,k)、(j,−i,−k)、(k,−j,i)、(−k,j,−i)」
「(i,−k,j)、(−i,k,−j)、(j,i,−k)、(−j,−i,k)、(−k,j,i)、(k,−j,−i)」
「(i,−k,−j)、(−i,k,j)、(−j,i,−k)、(j,−i,k)、(−k,−j,i)、(k,j,−i)」
次に、各プロセッサは、0<j<i≦nとなる全ての自然数i,jについて、自身からの相対座標が以下の組合せとなる6プロセッサと同時に通信する。以下の例でも、6つの相対座標が1つの組みを構成する。
「(i,i,j)、(−i,−i,−j)、(j,i,i)、(−j,−i,−i)、(i,j,i)、(−i,−j,−i)」
「(i,i,−j)、(−i,−i,j)、(−j,i,i)、(j,−i,−i)、(i,−j,i)、(−i,j,−i)」
「(i,−i,j)、(−i,i,−j)、(j,i,−i)、(−j,−i,i)、(−i,j,i)、(i,−j,−i)」
「(i,−i,−j)、(−i,i,j)、(−j,i,−i)、(j,−i,i)、(−i,−j,i)、(i,j,−i)」
「(j,j,i)、(−j,−j,−i)、(i,j,j)、(−i,−j,−j)、(j,i,j)、(−j,−i,−j)」
「(j,j,−i)、(−j,−j,i)、(−i,j,j)、(i,−j,−j)、(j,−i,j)、(−j,i,−j)」
「(j,−j,i)、(−j,j,−i)、(i,j,−j)、(−i,−j,j)、(−j,i,j)、(j,−i,−j)」
「(j,−j,−i)、(−j,j,i)、(−i,j,−j)、(i,−j,j)、(−j,−i,j)、(j,i,−j)」
「(0,i,j)、(0,−i,−j)、(j,0, )、(−j,0,−i)、(i,j,0)、(−i,−j,0)」
「(0,i,−j)、(0,−i,j)、(−j,0,i)、(j,0,−i)、(i,−j,0)、(−i,j,0)」
「(0,j,i)、(0,−j,−i)、(i,0,j)、(−i,0,−j)、(j,i,0)、(−j,−i,0)」
「(0,j,−i)、(0,−j,i)、(−i,0,j)、(i,0,−j)、(j,−i,0)、(−j,i,0)」
さらに、各プロセッサは、0<i≦nとなる全ての自然数iについて、自身からの相対座標が以下の組合せとなるように、複数のプロセッサと同時に通信する。
「(0,i,i)、(0,−i,−i)、(i,0,i)、(−i,0,−i)、(i,i,0)、(−i,−i,0)」
「(i,0,0)、(−i,0,0)、(0,0,i)、(0,0,−i)、(0,i,0)、(0,−i,0)」
「(i,i,i)、(−i,−i,−i)、(i,i,−i)、(−i,−i,i)」
「(i,−i,i)、(−i,i,−i)、(i,−i,−i)、(−i,i,i)」
(実施例9)
続いて、三辺の長さが等しく、かつ各辺の長さが偶数である3次元トーラス・トポロジーについて説明する。この例では、各辺の長さを2n+2と表す。任意のプロセッサは、自身からの各座標軸(x軸、y軸、z軸)の3つとも相対座標が−n以上n以下となるプロセッサについては、三辺の長さが等しくかつ各変の長さが奇数である3次元トーラス・トポロジーの場合と同様に通信を行う。各プロセッサは続いて、残りのプロセッサのうち、3つの座標軸上の相対座標のうち少なくとも1つの座標軸の相対座標が−n−1またはn+1であるプロセッサと、以下の組合せで通信する。
各プロセッサは次に、0<j<i≦nとなる全ての自然数i,jについて、自身からの相対座標が以下の組合せとなる6プロセッサと同時に通信する。
「(n+1,i,j)、(−n−1,−i,−j)、(j,n+1,i)、(−j,−n−1,−i)、(i,j,n+1)、(−i,−j,−n−1)」
「(n+1,i,−j)、(−n−1,−i,j)、(−j,n+1,i)、(j,−n−1,−i)、(i,−j,n+1)、(−i,j,−n−1)」
「(n+1,j,i)、(−n−1,−j,−i)、(i,n+1,j)、(−i,−n−1,−j)、(j,i,n+1)、(−j,−i,−n−1)」
「(n+1,−j,i)、(−n−1,j,−i)、(i,n+1,−j)、(−i,−n−1,j)、(−j,i,n+1)、(j,−i,−n−1)」
各プロセッサはさらに、0<i≦nとなる全ての自然数iについて、自身からの相対座標が以下の組合せとなる6プロセッサと同時に通信する。
「(n+1,i,i)、(−n−1,−i,−i)、(i,n+1,i)、(−i,−n−1,−i)、(i,i,n+1)、(−i,−i,−n−1)」
「(n+1,i,−i)、(−n−1,−i,i)、(−i,n+1,i)、(i,−n−1,−i)、(i,−i,n+1)、(−i,i,−n−1)」
「(n+1,i,0)、(−n−1,−i,0)、(0,n+1,i)、(0,−n−1,−i)、(i,0,n+1)、(−i,0,−n−1)」
「(n+1,0,i)、(−n−1,0,−i)、(i,n+1,0)、(−i,−n−1,0)、(0,i,n+1)、(0,−i,−n−1)」
「(i,n+1,n+1)、(−i,−n−1,−n−1)、(n+1,i,n+1)、(−n−1,−i,−n−1)、(n+1,n+1,i)、(−n−1,−n−1,−i)」
最後に、各プロセッサは、自身からの相対座標が以下の組合せとなる複数のプロセッサと同時に通信する。
「(n+1,n+1,0)、(0,0,n+1)、(−n−1,0,−n−1)、(0,−n−1,0)」
「(0,n+1,n+1)、(n+1,0,0)、(−n−1,−n−1,−n−1)」
(付記1)
複数のプロセッサを相互接続ネットワークで多次元に接続した並列計算システムにおいて、
前記並列計算システムの各プロセッサから他のプロセッサへの前記相互接続ネットワークにおける通信経路は次元オーダで決定され、
前記各プロセッサは、同じタイミングで実行されるデータ通信における、各プロセッサから見た送信先プロセッサの相対座標として、前記全プロセッサで共通な相対座標が設定され、
前記設定された相対座標を持つ送信先プロセッサに対するデータ通信を行うことを特徴とする、並列計算システム。
(付記2)
付記1に記載の並列計算システムにおいて、
前記並列計算システム中の各プロセッサは、最大4つのプロセッサに対して同時にデータを送信可能であり、
送信元プロセッサから第nの送信先プロセッサへの相対座標の第1の次元の相対座標値をXn、第2の次元の相対座標値をYnとした場合、
各プロセッサは、
X1の絶対値をY1の絶対値と異なる値とし、X1を0としてY1の絶対値をLの半分の値とは異なる値あるいはY1を0としてX1の絶対値をLの半分の値とは異なる値とした相対座標(X1、Y1)と、X2をX1の符号反転、Y2をY1の符号反転とした相対座標(X2、Y2)と、X3をY1、Y3をX1とした相対座標(X3、Y3)と、X4をY1の符号反転、Y4をX1の符号反転とした相対座標(X4、Y4)との各位置にある4つの送信先プロセッサに対してデータを送信する第一の送信処理と、
X1の絶対値をY1の絶対値と等しい値とし、X1の絶対値およびY1の絶対値をLの半分の値とは異なる値とした相対座標(X1、Y1)と、X2をX1の符号反転、Y2をY1の符号反転とした相対座標(X2,Y2)と、X3をY1、Y3をX1とした相対座標(X3,Y3)と、X4をY1の符号反転、Y4をX1の符号反転とした相対座標(X4、Y4)との各位置にある4つの送信先プロセッサに対してデータを送信する第二の送信処理と、
X1の絶対値をY1の絶対値と等しい値とし、X1の絶対値およびY1の絶対値をLの半分の値とした相対座標(X1,Y1)と、X2をX1の符号反転、Y2を0とした相対座標(X2,Y2)と、X3を0、Y3をY1の符号反転とした相対座標(X3,Y3)との各位置にある3つの送信先プロセッサに対してデータを送信する第三の送信処理とを適宜実行するものであり、
前記並列計算システムの各プロセッサが、同一の相対座標を持つ送信先プロセッサに対する同一の送信処理を適用したデータ通信を、同じタイミングで実行することを特徴とする、並列計算システム。
(付記3)
付記1記載の並列計算システムにおいて、
前記並列計算システム中の各プロセッサは、最大4つのプロセッサに対して同時にデータを送信可能であり、
前記相互接続ネットワークは二次元トーラスであり、前記相互結合ネットワークの第1の次元の長さと第2の次元の長さが異なり、前記相互結合ネットワークの第1の次元の長さおよび第2の次元の長さの最大値をLとし、送信元プロセッサから第nの送信先プロセッサへの相対座標の第1の次元の相対座標値をXn、第2の次元の相対座標値をYnとした場合、
各プロセッサが、
X1の絶対値をY1の絶対値と異なる値とし、X1を0としてY1の絶対値をLの半分の値とは異なる値、あるいはY1を0としてX1の絶対値をLの半分の値とは異なる値とした相対座標(X1,Y1)と、X2をX1の符号反転、Y2をY1の符号反転とする相対座標(X2,Y2)と、X3をY1、Y3をX1とする相対座標(X3、Y3)と、X4をY1の符号反転、Y4をX1の符号反転とする相対座標(X4,Y4)との各位置にある4つのプロセッサに対しデータを送信する第一の送信処理と、
X1の絶対値をY1の絶対値と等しい値とし、X1の絶対値およびY1の絶対値をLの半分の値とは異なる値とした相対座標(X1,Y1)と、X2をX1の符号反転、Y2をY1の符号反転とした相対座標(X2,Y2)と、X3をY1、Y3をX1とした相対座標(X3、Y3)と、X4をY1の符号反転、Y4をX1の符号反転とした相対座標(X4,Y4)との各位置にある4つの送信先プロセッサに対してデータを送信する第二の送信処理と、
X1の絶対値をY1の絶対値と等しい値とし、X1の絶対値およびY1の絶対値をLの半分の値とした相対座標(X1、Y1)と、X2をX1の符号反転、Y2を0とする相対座標(X2,Y2)と、X3を0、Y3をY1の符号反転とする相対座標(X3,Y3)との各位置にある3つの送信先プロセッサに対してデータを送信する第三の送信処理とを実行するものであり、
前記並列計算システムの各プロセッサが、同一の相対座標の送信先プロセッサに対する、同一の送信処理を適用したデータ通信を、同じタイミングで実行することを特徴とする、並列計算システム。
(付記4)
付記1記載の並列計算システムにおいて、
前記並列計算システム中の各プロセッサは、最大4つのプロセッサに対して同時にデータを送信可能であり、
前記相互接続ネットワークは二次元メッシュであり、前記相互結合ネットワークの第1の次元の長さおよび第2の次元の長さの最大値をLとし、送信元プロセッサから第nの送信先プロセッサへの相対座標の第1の次元の相対座標値をXn、第2の次元の相対座標値をYnとした場合、
各プロセッサが、
X1の絶対値をY1の絶対値と異なる値とし、X1を0としてY1の絶対値をLの半分の値とは異なる値、あるいはY1を0としX1の絶対値をLの半分の値とは異なる値とした相対座標(X1,Y1)と、X2をX1の符号反転、Y2をY1の符号反転とした相対座標(X2,Y2)と、X3をY1、Y3をX1とした相対座標(X3,Y3)と、X4をY1の符号反転、Y4をX1の符号反転とした相対座標(X4,Y4)との各位置にある4つの送信先プロセッサに対しデータを送信する第一の送信処理と、
X1の絶対値をY1の絶対値と等しい値とし、X1の絶対値およびY1の絶対値をLの半分の値とは異なる値とした相対座標(X1,Y1)と、X2をX1の符号反転、Y2をY1の符号反転とした相対座標(X2,Y2)と、X3をY1、Y3をX1とした相対座標(X3,Y3)と、X4をY1の符号反転、Y4をX1の符号反転とした相対座標(X4,Y4)との各位置にある4つの送信先プロセッサに対してデータを送信する第二の送信処理と、
X1の絶対値をY1の絶対値と等しい値とし、X1の絶対値およびY1の絶対値をLの半分の値とした相対座標(X1,Y1)と、X2をX1の符号反転、Y2を0とした相対座標(X2、Y2)と、X3を0、Y3をY1の符号反転とした相対座標(X3,Y3)との各位置にある3つの送信先プロセッサに対してデータを送信する第三の送信処理とを実行するものであり、
前記並列計算システムの各プロセッサが、同一の相対座標の送信先プロセッサに対する、同一の送信処理を適用したデータ通信を、同じタイミングで実行することを特徴とする、並列計算システム。
(付記5)
付記2、付記3又は付記4記載の並列計算システムにおいて、
前記Lが奇数の場合、4つの送信先プロセッサに対する同時送信を、X1の絶対値とY1の絶対値とを異ならせた4つの送信先プロセッサに対する同時送信を(L−1)2/4回、X1の絶対値とY1の絶対値とを等しくした4つの送信先プロセッサに対する同時送信を(L−1)/2回、各々相対座標値を変えながら行なう一方、
前記Lが偶数の場合は、X1の絶対値とY1の絶対値とを異ならせた4つの送信先プロセッサに対する同時送信を(L−1)2 /4回、X1の絶対値とY1の絶対値を等しくした4つの送信先プロセッサに対する同時送信を(L/2−1)回、X1の絶対値をY1の絶対値とを等しい値とし且つX1の絶対値およびY1の絶対値をLの半分の値とした、3つの送信先プロセッサに対する同時送信を1回、各々相対座標値を変えながら行なう並列計算システム。
(付記6)
付記1記載の並列計算システムにおいて、
前記相互接続ネットワークは三次元トーラスであり、前記相互結合ネットワークの第1の次元の長さと第2の次元の長さと第3の次元の長さは互いに等しく、前記相互結合ネットワークの各次元の長さをLとし、送信元プロセッサから第nの送信先プロセッサへの相対座標の第1の次元の相対座標値をXn、第2の次元の相対座標値をYn、第3の次元の相対座標値をZnとした場合に、
前記各プロセッサは、
X1の絶対値とY1の絶対値とZ1の絶対値との少なくとも1つを異なる値とし、以下の1)〜6)のいずれかとに該当する相対座標(X1,Y1,Z1)と、
1)X1を0とし、Y1の絶対値とZ1の絶対値とのどちらかをLの半分の値とは異なる値とする;
2)Y1を0とし、X1の絶対値とZ1の絶対値とのどちらかをLの半分の値とは異なる値とする;
3)Z1を0とし、X1の絶対値とY1の絶対値とのどちらかをLの半分の値とは異なる値とする;
4)X1およびY1を0とし、Z1の絶対値をLの半分の値とは異なる値とする;
5)X1およびZ1を0とし、Y1の絶対値をLの半分の値とは異なる値とする;
6)Y1およびZ1を0とし、X1の絶対値をLの半分の値とは異なる値とする;
X2をX1の符号反転、Y2をY1の符号反転、Z2をZ1の符号反転とする相対座標(X2,Y2,Z2)と、X3をZ1、Y3をX1、Z3をY1とする相対座標(X3、Y3,Z3)と、X4をZ1の符号反転、Y4をX1の符号反転、Z4をY1の符号反転とする相対座標(X4,Y4,Z4)と、X5をY1、Y5をZ1、Z5をX1とする相対座標(X5,Y5,Z5)と、X6をY1の符号反転、Y6をZ1の符号反転、Z6をX1の符号反転とする相対座標(X6,Y6,Z6)との位置にある6つの送信先プロセッサに対してデータを送信する第一の送信処理と、
X1の絶対値とY1の絶対値とZ1の絶対値とを等しい値とし、X1の絶対値とY1の絶対値とZ1の絶対値とをそれぞれLの半分の値とは異なる値とした相対座標(X1,Y1、Z1)と、X2をX1の符号反転、Y2をY1の符号反転、Z2をZ1の符号反転とする相対座標(X2,Y2、Z2)と、X3をX1、Y3をY1、Z3をZ1の符号反転とする相対座標(X3,Y3,Z3)と、X4をX1の符号反転、Y4をY1の符号反転、Z4をZ1とする相対座標(X4,Y4,Z4)との各位置にある4つの送信先プロセッサに対してデータを送信する第二の送信処理と、
X1の絶対値とY1の絶対値とZ1の絶対値とを等しい値とし、X1の絶対値とY1の絶対値とZ1の絶対値とをLの半分の値とした相対座標(X1,Y1,Z1)と、X2をX1の符号反転、Y2とをZ2とを0とする相対座標(X2,Y2,Z2)と、X3を0、Y3をY1の符号反転、Z3をZ1の符号反転とする相対座標(X3,Y3Z3)と、X4とZ4とを0、Y4をY1とする相対座標(X4,Y4,Z4)と、X5をX1、Y5を0、Z5をZ1とする相対座標(X5、Y5,Z5)と、X6とY6とを0、Z6をZ1の符号反転とする相対座標(X6,Y6、Z6)と、X7をX1の符号反転、Y7をY1の符号反転、Z7を0とする相対座標(X7,Y7,Z7)との各位置にある7つの送信先プロセッサに対してデータを送信する第三の送信処理とを実行するものであり、
前記並列計算システムの各プロセッサが、同一の相対座標の送信先プロセッサに対する、同一の送信処理を適用したデータ通信を、同じタイミングで実行することを特徴とする、並列計算システム。
(付記7)
付記1記載の並列計算システムにおいて、
前記相互接続ネットワークは三次元トーラスであり、前記相互結合ネットワークの第1の次元の長さと第2の次元の長さと第3の次元の長さのいずれかは異なり、前記相互結合ネットワークの第1の次元の長さおよび第2の次元の長さおよび第3の次元の長さの最大値をLとし、送信元プロセッサから第nの送信先プロセッサへの相対座標の第1の次元の相対座標値をXn、第2の次元の相対座標値をYn、第3の次元の相対座標値をZnとした場合に、
X1の絶対値とY1の絶対値とZ1の絶対値とのうち少なくとも1つを異なる値とし、以下の1)〜6)のいずれかに該当する相対座標(X1,Y1,Z1)と、
1)X1を0とし、Y1の絶対値とZ1の絶対値とのどちらかをLの半分の値とは異なる値とする;
2)Y1を0とし、X1の絶対値とZ1の絶対値とのどちらかをLの半分の値とは異なる値とする;
3)Z1を0とし、X1の絶対値とY1の絶対値とのどちらかをLの半分の値とは異なる値とする:
4)X1およびY1を0とし、Z1の絶対値をLの半分の値とは異なる値とする;
5)X1およびZ1を0とし、Y1の絶対値をLの半分の値とは異なる値とする;
6)Y1およびZ1を0とし、X1の絶対値をLの半分の値とは異なる値とする;
X2をX1の符号反転、Y2をY1の符号反転、Z2をZ1の符号反転とする相対座標(X2,Y2、Z2)と、X3をZ1、Y3をX1、Z3をY1とする相対座標(X3,Y3,Z3)と、X4をZ1の符号反転、Y4をX1の符号反転、Z4をY1の符号反転とする相対座標(X4,Y4Z4)と、X5をY1、Y5をZ1、Z5をX1とする相対座標(X5,Y5,Z5)と、X6をY1の符号反転、Y6をZ1の符号反転、Z6をX1の符号反転とする相対座標(X6,Y6,Z6)との各位置にある6つの送信先プロセッサに対してデータを送信する第一の送信処理と、
X1の絶対値とY1の絶対値とZ1の絶対値とを等しい値とし、X1の絶対値とY1の絶対値とZ1の絶対値とがLの半分の値とを異なる値とする相対座標(X1,Y1,Z1)と、X2をX1の符号反転、Y2をY1の符号反転、Z2をZ1の符号反転とする相対座標(X2,Y2,Z2)と、X3をX1、Y3をY1、Z3をZ1の符号反転とする相対座標(X3,Y3、Z3)と、X4をX1の符号反転、Y4をY1の符号反転、Z4をZ1とする相対座標(X4,Y4,Z4)との各位置にある4つの送信先プロセッサに対してデータを送信する第二の送信処理と、
X1の絶対値とY1の絶対値とZ1の絶対値とを等しい値とし、X1の絶対値とY1の絶対値とZ1の絶対値とをLの半分の値とする相対座標(X1,Y1,Z1)と、X2をX1の符号反転、Y2とZ2とを0とする相対座標(X2,Y2、Z2)と、X3を0、Y3をY1の符号反転、Z3をZ1の符号反転とする相対座標(X3,Y3,Z3)と、X4とZ4とを0、Y4をY1とする相対座標(X4,Y4,Z4)と、X5をX1、Y5を0、Z5をZ1とする相対座標(X5,Y5,Z5)と、X6とY6とを0、Z6をZ1の符号反転とする相対座標(X6,Y6,Z6)と、X7をX1の符号反転、Y7をY1の符号反転、Z7を0とする相対座標(X7,Y7,Z7)との各位置にある7つの送信先プロセッサに対しデータを送信する第三の送信処理をと実行するに動作し、
前記並列計算システムの各プロセッサが、同一の相対座標の送信先プロセッサに対する、同一の送信処理を適用したデータ通信を、同じタイミングで実行することを特徴とする、並列計算システム。
(付記8)
請求項1記載の並列計算システムにおいて、
前記相互接続ネットワークは三次元メッシュであり、前記相互結合ネットワークの第1の次元の長さおよび第2の次元の長さおよび第3の次元の長さの最大値をLとし、送信元プロセッサから第nの送信先プロセッサへの相対座標の第1の次元の相対座標値をXn、第2の次元の相対座標値をYn、第3の次元の相対座標値をZnとした場合に、
各プロセッサが、
X1の絶対値とY1の絶対値とZ1の絶対値のうち少なくとも1つを異なる値とし、且つ以下の1)から6)のいずれかに該当する相対座標(X1,Y1,Z1)と、
1)X1を0、Y1の絶対値とZ1の絶対値とのどちらかをLの半分の値とは異なる値とする;2)Y1を0、X1の絶対値とZ1の絶対値とのどちらかをLの半分の値とは異なる値とする;
3)Z1を0、X1の絶対値とY1の絶対値とのどちらかをLの半分の値とは異なる値とする;
4)X1およびY1を0、Z1の絶対値をLの半分の値とは異なる値とする;
5)X1およびZ1を0、Y1の絶対値をLの半分の値とは異なる値とする;あるいは
6)Y1およびZ1を0、X1の絶対値をLの半分の値とは異なる値とする。
X2をX1の符号反転、Y2をY1の符号反転、Z2をZ1の符号反転とした相対座標(X2,Y2,Z2)と、X3をZ1、Y3をX1、Z3をY1とした相対座標(X3,Y3,Z3)と、X4をZ1の符号反転、Y4をX1の符号反転、Z4をY1の符号反転とした相対座標(X4,Y4,Z4)と、X5をY1、Y5をZ1、Z5をX1とする相対座標(X5,Y5,Z5)と、X6をY1の符号反転、Y6をZ1の符号反転、Z6をX1の符号反転とする相対座標(X6,Y6,Z6)との各位置にある6つの送信先プロセッサに対しデータを送信する第一の送信処理と、
X1の絶対値とY1の絶対値とZ1の絶対値とを等しい値とし、且つX1の絶対値とY1の絶対値とZ1の絶対値とがLの半分の値とは異なる値とする相対座標(X1,Y1,Z1)と、X2をX1の符号反転、Y2をY1の符号反転、Z2をZ1の符号反転とする相対座標(X2,Y2,Z2)と、X3をX1、Y3をY1、Z3をZ1の符号反転とする相対座標(X3,Y3Z3)と、X4をX1の符号反転、Y4をY1の符号反転、Z4をZ1とする相対座標(X4,Y4,Z4)とに位置する4つの送信先プロセッサに対してデータを送信する第二の送信処理と、
X1の絶対値とY1の絶対値とZ1の絶対値とを等しい値とし、且つX1の絶対値とY1の絶対値とZ1の絶対値とをLの半分の値とする相対座標(X1,Y1,Z1)と、X2をX1の符号反転、Y2とZ2とを0とする相対座標(X2,Y2,Z2)と、X3を0、Y3をY1の符号反転、Z3をZ1の符号反転とする相対座標(X3,Y3,Z3)と、X4とZ4とを0、Y4をY1とする相対座標(X4,Y4,Z4)と、X5をX1、Y5を0、Z5をZ1とする相対座標(X5,Y5,Z5)と、X6とY6とを0、Z6をZ1の符号反転とする相対座標(X6,Y6,Z6)と、X7をX1の符号反転、Y7をY1の符号反転、Z7を0とする相対座標(X7.Y7.Z7)との各位置にある7つの送信先プロセッサに対してデータを送信する第三の送信処理とを実行するものであり、
前記並列計算システムの各プロセッサが、同一の相対座標の送信先プロセッサに対する、同一の送信処理を適用したデータ通信を、同じタイミングで実行することを特徴とする、並列計算システム。
(付記9)
付記6、付記7または付記8に記載の並列計算システムにおいて、
前記Lが奇数の場合は、6つの送信先プロセッサに対する同時送信を(L3−4L+3)/4回、4つの送信先プロセッサに対する同時送信をL−1回、各々相対座標値を変えながら行なう一方、
前記Lが偶数の場合は、6つの送信先プロセッサに対する同時送信を(L3−4L+1)/4回、4つの送信先プロセッサに対する同時送信をL−2回、7つの送信先プロセッサに対する同時送信をそれぞれ1回、各々相対座標値を変えながら行なう並列計算システム。
(付記10)
付記1乃至付記9のいずれかに記載の並列計算システムにおいて、
同時送信と同時送信の間に前記並列計算システム中の全プロセッサ間で同期を取ることとを特徴とする、並列計算システム。
(付記11)
付記1乃至付記10のいずれかに記載された動作を、並列計算システムのプロセッサに実行させることを特徴とする、通信制御プログラム。

Claims (8)

  1. 複数のプロセッサを格子状のメッシュ・トポロジーまたはトーラス・トポロジーの相互接続ネットワークにより接続した並列計算システムにおいて、
    前記並列計算システムの各プロセッサから他のプロセッサへの前記相互接続ネットワークにおける通信経路は次元オーダで決定され、
    前記各プロセッサに対して、同じタイミングで実行されるデータ通信における、各プロセッサから見た送信先プロセッサの相対的位置を特定するための相対座標として、前記全ての各プロセッサで共通な相対座標が設定され、
    前記各プロセッサは、前記各プロセッサから同じタイミングで実行されるデータ通信の宛先となる複数の相対座標値を前記設定された共通な相対座標に基づいて選択し、前記選択した複数の相対座標値に対応する複数の送信先プロセッサに対するデータ通信を同じタイミングで行う同時通信処理を、前記相互接続ネットワーク内の前記各プロセッサを除くすべてのプロセッサが一度だけ宛先となるように、宛先となる前記複数の相対座標値を適宜変更しながら繰り返し実行する
    ことを特徴とする並列計算システム。
  2. 請求項1に記載の並列計算システムにおいて、
    前記並列計算システム中の各プロセッサは、最大4つのプロセッサに対して同時にデータを送信可能であり、
    前記相互接続ネットワークは二次元トーラスであり、前記相互接続ネットワークの第1の次元の長さと第2の次元の長さをともにLとし、送信元プロセッサから第nの送信先プロセッサへの相対座標の第1の次元の相対座標値をXn、第2の次元の相対座標値をYnとした場合、
    各プロセッサは、
    X1の絶対値をY1の絶対値と異なる値とし、且つX1の絶対値およびY1の絶対値をLの半分の値とは異なる値とした相対座標(X1,Y1)と、X2をX1の符号反転、Y2をY1の符号反転とした相対座標(X2,Y2)と、X3をY1、Y3をX1とした相対座標(X3,Y3)と、X4をY1の符号反転、Y4をX1の符号反転とした相対座標 (X4,Y4)との各位置にある4つの送信先プロセッサに対してデータを送信する第一の送信処理と、
    X1の絶対値をY1の絶対値と等しい値とした相対座標(X1,Y1)と、X2をX1 の符号反転、Y2をY1の符号反転とした相対座標(X2,Y2)と、X3をX1の符号反転、Y3をY1とした相対座標(X3,Y3)と、X4をX1、Y4をY1の符号反転とした相対座標(X4,Y4)との各位置にある4つの送信先プロセッサに対してデータを送信する第二の送信処理と、
    X1の絶対値をY1の絶対値と等しい値とし、相対座標(X1,0)と、相対座標(0,Y1)と、X2をX1の符号反転とした相対座標(X2,0)と、Y2をY1の符号反転とした相対座標(0,Y2)との各位置にある4つの送信先プロセッサに対してデータを送信する第三の送信処理とを適宜実行するものであり、
    前記並列計算システムの各プロセッサが、同一の相対座標を持つ送信先プロセッサに対する同一の送信処理を適用したデータ通信を、同じタイミングで実行する
    ことを特徴とする並列計算システム。
  3. 請求項1記載の並列計算システムにおいて、
    前記並列計算システム中の各プロセッサは、最大4つのプロセッサに対して同時にデータを送信可能であり、
    前記相互接続ネットワークは二次元トーラスであり、前記相互接続ネットワークの第1の次元の長さと第2の次元の長さが異なり、前記相互接続ネットワークの第1の次元の長さおよび第2の次元の長さの最大値をLとし、送信元プロセッサから第nの送信先プロセッサへの相対座標の第1の次元の相対座標値をXn、第2の次元の相対座標値をYnとした場合、
    各プロセッサが、
    X1の絶対値をY1の絶対値と異なる値とし、且つX1の絶対値およびY1の絶対値をLの半分の値とは異なる値とした相対座標(X1,Y1)と、X2をX1の符号反転、Y2をY1の符号反転とする相対座標(X2,Y2)と、X3をY1、Y3をX1とする相対座標(X3,Y3)と、X4をY1の符号反転、Y4をX1の符号反転とする相対座標(X4,Y4)との各位置にある4つの送信先プロセッサに対しデータを送信する第一の送信処理と、
    X1の絶対値をY1の絶対値と等しい値とした相対座標(X1,Y1)と、X2をX1の符号反転、Y2をY1の符号反転とした相対座標(X2,Y2)と、X3をX1の符号反転、Y3をY1とした相対座標(X3,Y3)と、X4をX1、Y4をY1の符号反転とした相対座標(X4,Y4)との各位置にある4つの送信先プロセッサに対してデータを送信する第二の送信処理と、
    X1の絶対値をY1の絶対値と等しい値とし、相対座標(X1,0)と、相対座標(0,Y1)と、X2をX1の符号反転とした相対座標(X2,0)と、Y2をY1の符号反転とした相対座標(0,Y2)との各位置にある4つの送信先プロセッサに対してデータを送信する第三の送信処理とを実行するものであり、
    前記並列計算システムの各プロセッサが、同一の相対座標の送信先プロセッサに対する、同一の送信処理を適用したデータ通信を、同じタイミングで実行する
    ことを特徴とする並列計算システム。
  4. 請求項1記載の並列計算システムにおいて、
    前記並列計算システム中の各プロセッサは、最大4つのプロセッサに対して同時にデータを送信可能であり、
    前記相互接続ネットワークは二次元メッシュであり、前記相互接続ネットワークの第1の次元の長さおよび第2の次元の長さの最大値をLとし、送信元プロセッサから第nの送 信先プロセッサへの相対座標の第1の次元の相対座標値をXn、第2の次元の相対座標値をYnとした場合、
    各プロセッサが、
    X1の絶対値をY1の絶対値と異なる値とし、且つX1の絶対値およびY1の絶対値をLの半分の値とは異なる値とした相対座標(X1,Y1)と、X2をX1の符号反転、Y2をY1の符号反転とした相対座標(X2,Y2)と、X3をY1、Y3をX1とした相対座標(X3,Y3)と、X4をY1の符号反転、Y4をX1の符号反転とした相対座標(X4,Y4)との各位置にある4つの送信先プロセッサに対しデータを送信する第一の送信処理と、
    X1の絶対値をY1の絶対値と等しい値とした相対座標(X1,Y1)と、X2をX1の符号反転、Y2をY1の符号反転とした相対座標(X2,Y2)と、X3をX1の符号反転、Y3をY1とした相対座標(X3,Y3)と、X4をX1、Y4をY1の符号反転とした相対座標(X4,Y4)との各位置にある4つの送信先プロセッサに対してデータを送信する第二の送信処理と、
    X1の絶対値をY1の絶対値と等しい値とし、相対座標(X1,0)と、相対座標(0,Y1)と、X2をX1の符号反転とした相対座標(X2,0)と、Y2をY1の符号反転とした相対座標(0,Y2)との各位置にある4つの送信先プロセッサに対してデータを送信する第三の送信処理とを実行するものであり、
    前記並列計算システムの各プロセッサが、同一の相対座標の送信先プロセッサに対する、同一の送信処理を適用したデータ通信を、同じタイミングで実行する
    ことを特徴とする並列計算システム。
  5. 請求項1記載の並列計算システムにおいて、
    前記相互接続ネットワークは三次元トーラスであり、前記相互接続ネットワークの第1の次元の長さと第2の次元の長さと第3の次元の長さは互いに等しく、前記相互接続ネットワークの各次元の長さをLとし、送信元プロセッサから第nの送信先プロセッサへの相対座標の第1の次元の相対座標値をXn、第2の次元の相対座標値をYn、第3の次元の相対座標値をZnとした場合に、
    前記各プロセッサは、
    X1の絶対値とY1の絶対値とZ1の絶対値との少なくとも1つを異なる値とし、且つ以下の1)〜3)のいずれかに該当する相対座標(X1,Y1,Z1)と、
    1)X1の絶対値とY1の絶対値とZ1の絶対値はいずれも0およびLの半分の値とは異なる値とする;
    )X1を0とし、Y1の絶対値とZ1の絶対値はいずれもLの半分の値とは異なる値とする;
    )X1およびY1を0とし、Z1の絶対値をLの半分の値とは異なる値とする
    X2をX1の符号反転、Y2をY1の符号反転、Z2をZ1の符号反転とする相対座標(X2,Y2,Z2)と、X3をZ1、Y3をX1、Z3をY1とする相対座標(X3,Y3,Z3)と、X4をZ1の符号反転、Y4をX1の符号反転、Z4をY1の符号反転とする相対座標(X4,Y4,Z4)と、X5をY1、Y5をZ1、Z5をX1とする相対座標(X5,Y5,Z5)と、X6をY1の符号反転、Y6をZ1の符号反転、Z6をX1の符号反転とする相対座標(X6,Y6,Z6)との位置にある6つの送信先プロセッサに対してデータを送信する第一の送信処理と、
    X1の絶対値とY1の絶対値とZ1の絶対値とを0およびLの半分の値とは異なる等しい値とした相対座標(X1,Y1,Z1)と、X2をX1の符号反転、Y2をY1の符号反転、Z2をZ1の符号反転とする相対座標(X2,Y2,Z2)と、X3をX1、Y3をY1、Z3をZ1の符号反転とする相対座標(X3,Y3,Z3)と、X4をX1の符号反転、Y4をY1の符号反転、Z4をZ1とする相対座標(X4,Y4,Z4)との各位置にある4つの送信先プロセッサに対してデータを送信する第二の送信処理とを少なくとも実行するものであり、
    前記並列計算システムの各プロセッサが、同一の相対座標の送信先プロセッサに対する、同一の送信処理を適用したデータ通信を、同じタイミングで実行する
    ことを特徴とする並列計算システム。
  6. 請求項1記載の並列計算システムにおいて、
    前記相互接続ネットワークは三次元トーラスであり、前記相互接続ネットワークの第1の次元の長さと第2の次元の長さと第3の次元の長さのいずれかは異なり、前記相互接続ネットワークの第1の次元の長さおよび第2の次元の長さおよび第3の次元の長さの最大値をLとし、送信元プロセッサから第nの送信先プロセッサへの相対座標の第1の次元の相対座標値をXn、第2の次元の相対座標値をYn、第3の次元の相対座標値をZnとした場合に、
    前記各プロセッサは、
    X1の絶対値とY1の絶対値とZ1の絶対値とのうち少なくとも1つを異なる値とし、且つ以下の1)〜3)のいずれかに該当する相対座標(X1,Y1,Z1)と、
    1)X1の絶対値とY1の絶対値とZ1の絶対値はいずれも0およびLの半分の値とは異なる値とする;
    )X1を0とし、Y1の絶対値とZ1の絶対値はいずれもLの半分の値とは異なる値とする;
    )X1およびY1を0とし、Z1の絶対値をLの半分の値とは異なる値とする
    X2をX1の符号反転、Y2をY1の符号反転、Z2をZ1の符号反転とする相対座標(X2,Y2,Z2)と、X3をZ1、Y3をX1、Z3をY1とする相対座標(X3,Y3,Z3)と、X4をZ1の符号反転、Y4をX1の符号反転、Z4をY1の符号反転とする相対座標(X4,Y4,Z4)と、X5をY1、Y5をZ1、Z5をX1とする相対座標(X5,Y5,Z5)と、X6をY1の符号反転、Y6をZ1の符号反転、Z6をX1の符号反転とする相対座標(X6,Y6,Z6)との各位置にある6つの送信先プロセッサに対してデータを送信する第一の送信処理と、
    X1の絶対値とY1の絶対値とZ1の絶対値とを0およびLの半分の値とは異なる等しい値とする相対座標(X1,Y1,Z1)と、X2をX1の符号反転、Y2をY1の符号反転、Z2をZ1の符号反転とする相対座標(X2,Y2,Z2)と、X3をX1、Y3をY1、Z3をZ1の符号反転とする相対座標(X3,Y3,Z3)と、X4をX1の符号反転、Y4をY1の符号反転、Z4をZ1とする相対座標(X4,Y4,Z4)との各位置にある4つの送信先プロセッサに対してデータを送信する第二の送信処理とを少なくとも適宜実行するものであり、
    前記並列計算システムの各プロセッサが、同一の相対座標の送信先プロセッサに対する、同一の送信処理を適用したデータ通信を、同じタイミングで実行する
    ことを特徴とする並列計算システム。
  7. 請求項1記載の並列計算システムにおいて、
    前記相互接続ネットワークは三次元メッシュであり、前記相互接続ネットワークの第1の次元の長さおよび第2の次元の長さおよび第3の次元の長さの最大値をLとし、送信元プロセッサから第nの送信先プロセッサへの相対座標の第1の次元の相対座標値をXn、第2の次元の相対座標値をYn、第3の次元の相対座標値をZnとした場合に、
    各プロセッサが、
    X1の絶対値とY1の絶対値とZ1の絶対値とのうち少なくとも1つを異なる値とし、且つ以下の1)〜3)のいずれかに該当する相対座標(X1,Y1,Z1)と、
    1)X1の絶対値とY1の絶対値とZ1の絶対値はいずれも0およびLの半分の値とは異なる値とする;
    )X1を0とし、Y1の絶対値とZ1の絶対値はいずれもLの半分の値とは異なる値とする;
    )X1およびY1を0とし、Z1の絶対値をLの半分の値とは異なる値とする
    X2をX1の符号反転、Y2をY1の符号反転、Z2をZ1の符号反転とする相対座標(X2,Y2,Z2)と、X3をZ1、Y3をX1、Z3をY1とする相対座標(X3,Y3,Z3)と、X4をZ1の符号反転、Y4をX1の符号反転、Z4をY1の符号反転とする相対座標(X4,Y4,Z4)と、X5をY1、Y5をZ1、Z5をX1とする相対座標(X5,Y5,Z5)と、X6をY1の符号反転、Y6をZ1の符号反転、Z6をX1の符号反転とする相対座標(X6,Y6,Z6)との各位置にある6つの送信先プロセッサに対してデータを送信する第一の送信処理と、
    X1の絶対値とY1の絶対値とZ1の絶対値とを0およびLの半分の値とは異なる等しい値とする相対座標(X1,Y1,Z1)と、X2をX1の符号反転、Y2をY1の符号反転、Z2をZ1の符号反転とする相対座標(X2,Y2,Z2)と、X3をX1、Y3をY1、Z3をZ1の符号反転とする相対座標(X3,Y3,Z3)と、X4をX1の符号反転、Y4をY1の符号反転、Z4をZ1とする相対座標(X4,Y4,Z4)とに位置する4つの送信先プロセッサに対してデータを送信する第二の送信処理とを少なくとも実行するものであり、
    前記並列計算システムの各プロセッサが、同一の相対座標の送信先プロセッサに対する、同一の送信処理を適用したデータ通信を、同じタイミングで実行する
    ことを特徴とする並列計算システム。
  8. 複数のプロセッサを格子状のメッシュ・トポロジーまたはトーラス・トポロジーの相互 接続ネットワークにより接続した並列計算システムの各プロセッサに、
    前記各プロセッサから同じタイミングで実行されるデータ通信における、各プロセッサから見た送信先プロセッサの相対的位置を特定するための相対座標として、前記全ての各プロセッサに共通な相対座標を設定し、
    前記各プロセッサから同じタイミングで実行されるデータ通信の宛先となる複数の相対座標値を前記設定された共通な相対座標に基づいて選択し、前記選択した複数の相対座標値に対応する複数の送信先プロセッサに対するデータ通信を同じタイミングで行う同時通信処理を、前記相互接続ネットワーク内の前記各プロセッサを除くすべてのプロセッサが一度だけ宛先となるように、宛先となる前記複数の相対座標値を適宜変更しながら繰り返し実行させる
    ことを特徴とする通信制御プログラム。
JP2009201560A 2009-09-01 2009-09-01 並列計算システムおよび通信制御プログラム Active JP5540609B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2009201560A JP5540609B2 (ja) 2009-09-01 2009-09-01 並列計算システムおよび通信制御プログラム
US12/872,338 US10430375B2 (en) 2009-09-01 2010-08-31 Parallel computing system and communication control program
EP10174920A EP2302525A1 (en) 2009-09-01 2010-09-01 Parallel computing system and communication control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009201560A JP5540609B2 (ja) 2009-09-01 2009-09-01 並列計算システムおよび通信制御プログラム

Publications (2)

Publication Number Publication Date
JP2011053876A JP2011053876A (ja) 2011-03-17
JP5540609B2 true JP5540609B2 (ja) 2014-07-02

Family

ID=43500980

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009201560A Active JP5540609B2 (ja) 2009-09-01 2009-09-01 並列計算システムおよび通信制御プログラム

Country Status (3)

Country Link
US (1) US10430375B2 (ja)
EP (1) EP2302525A1 (ja)
JP (1) JP5540609B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9624774B2 (en) 2011-09-28 2017-04-18 Toyota Jidosha Kabushiki Kaisha Engine control apparatus
US9442472B2 (en) 2011-12-12 2016-09-13 Toyota Jidosha Kabushiki Kaisha Engine control device
RU2486581C1 (ru) * 2012-07-11 2013-06-27 Открытое акционерное общество "Научно-исследовательский институт "Субмикрон" Параллельная вычислительная система с программируемой архитектурой
US9807152B2 (en) 2012-07-30 2017-10-31 Nec Corporation Distributed processing device and distributed processing system as well as distributed processing method
US9077616B2 (en) 2012-08-08 2015-07-07 International Business Machines Corporation T-star interconnection network topology
US9055078B2 (en) 2013-01-10 2015-06-09 International Business Machines Corporation Token-based flow control of messages in a parallel computer
JP2014137732A (ja) * 2013-01-17 2014-07-28 Fujitsu Ltd 情報処理システム及び情報処理システムの制御方法
EP2811796A1 (en) * 2013-06-07 2014-12-10 Stichting Vu-Vumuc Position-based broadcast protocol and time slot schedule for a wireless mesh network
JP6499388B2 (ja) 2013-08-14 2019-04-10 富士通株式会社 並列計算機システム、管理装置の制御プログラムおよび並列計算機システムの制御方法
US20150106589A1 (en) * 2013-10-16 2015-04-16 REMTCS, Inc. Small form high performance computing mini hpc
US9690734B2 (en) * 2014-09-10 2017-06-27 Arjun Kapoor Quasi-optimized interconnection network for, and method of, interconnecting nodes in large-scale, parallel systems
US11516087B2 (en) * 2020-11-30 2022-11-29 Google Llc Connecting processors using twisted torus configurations

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4814973A (en) * 1983-05-31 1989-03-21 Hillis W Daniel Parallel processor
US5152000A (en) 1983-05-31 1992-09-29 Thinking Machines Corporation Array communications arrangement for parallel processor
US4598400A (en) * 1983-05-31 1986-07-01 Thinking Machines Corporation Method and apparatus for routing message packets
US4805091A (en) * 1985-06-04 1989-02-14 Thinking Machines Corporation Method and apparatus for interconnecting processors in a hyper-dimensional array
US5175865A (en) 1986-10-28 1992-12-29 Thinking Machines Corporation Partitioning the processors of a massively parallel single array processor into sub-arrays selectively controlled by host computers
JPH03116357A (ja) * 1989-09-29 1991-05-17 Fujitsu Ltd 並列処理方式
US5247694A (en) 1990-06-14 1993-09-21 Thinking Machines Corporation System and method for generating communications arrangements for routing data in a massively parallel processing system
JPH04235654A (ja) 1991-01-10 1992-08-24 Fujitsu Ltd ネットワーク制御方式
JP2601591B2 (ja) 1991-11-26 1997-04-16 富士通株式会社 並列計算機およびその全対全通信方法
JPH09330304A (ja) * 1996-06-05 1997-12-22 Internatl Business Mach Corp <Ibm> プロセッサ間の通信スケジュールを決定する方法
JP3709322B2 (ja) * 2000-03-10 2005-10-26 株式会社日立製作所 多次元クロスバーネットワークおよび並列計算機システム
IL157512A0 (en) 2001-02-24 2004-03-28 Ibm A global tree network for computing structures
US8495411B2 (en) 2005-02-07 2013-07-23 International Business Machines Corporation All row, planar fault detection system
JP5056844B2 (ja) * 2007-03-20 2012-10-24 富士通株式会社 一意情報集団通信プログラム、計算ノード、および一意情報集団通信方法
JP5369775B2 (ja) * 2009-03-11 2013-12-18 富士通株式会社 n次元トーラス型分散処理システム、集団通信方法及び集団通信プログラム

Also Published As

Publication number Publication date
US10430375B2 (en) 2019-10-01
JP2011053876A (ja) 2011-03-17
US20110213946A1 (en) 2011-09-01
EP2302525A1 (en) 2011-03-30

Similar Documents

Publication Publication Date Title
JP5540609B2 (ja) 並列計算システムおよび通信制御プログラム
JP4676463B2 (ja) 並列計算機システム
Su et al. Adaptive deadlock-free routing in multicomputers using only one extra virtual channel
CN1921437B (zh) 内外连网络拓扑架构及自洽扩展该架构的并行计算***
Wang et al. NovaCube: A low latency Torus-based network architecture for data centers
JP2008516346A5 (ja)
CN112188325B (zh) 使用具有一对多光交换机的光网络的可重新配置的计算平台
KR102583771B1 (ko) 광학 네트워크들을 사용하는 재구성가능한 컴퓨팅 포드들
Adda et al. Routing and fault tolerance in Z-fat tree
US8504731B2 (en) Network for interconnecting computers
JP2018185650A (ja) 情報処理装置、情報処理方法及びプログラム
Zhang et al. Fault-tolerant routing algorithm based on disjoint paths in 3-ary n-cube networks with structure faults
JP2019008648A (ja) 情報処理システム及び情報処理方法
Zhao et al. On peer-assisted data dissemination in data center networks: Analysis and implementation
CN111262913B (zh) 一种数据中心网络拓扑结构、确定方法及***
Kashefi et al. RP2: a high-performance data center network architecture using projective planes
Chen et al. Wavelength assignment for realizing parallel FFT on regular optical networks
Souravlas et al. Dynamic Load Balancing on All-to-All Personalized Communications Using the NNLB Principal
Shamaei et al. Adaptive routing in hexagonal torus interconnection networks
JP3532102B2 (ja) 間接ローテータグラフネットワーク及び間接ローテータグラフネットワークにおける伝送経路の設定方法
CN1984011B (zh) 数据传输网络和数据传输网络的运用方法
Rashidi et al. FRED: Flexible REduction-Distribution Interconnect and Communication Implementation for Wafer-Scale Distributed Training of DNN Models
Navaridas et al. Indirect cube: A power-efficient topology for compute clusters
Romashikhin Implementation of Regular Topologies for NoCs Based on schoolMIPS Soft-Processor Cores
Wu et al. Efficient multiple multicast on heterogeneous network of workstations

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120510

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131015

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140107

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140306

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140421

R150 Certificate of patent or registration of utility model

Ref document number: 5540609

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150