JPH11259441A - 並列計算機における全対全通信方法 - Google Patents

並列計算機における全対全通信方法

Info

Publication number
JPH11259441A
JPH11259441A JP10062483A JP6248398A JPH11259441A JP H11259441 A JPH11259441 A JP H11259441A JP 10062483 A JP10062483 A JP 10062483A JP 6248398 A JP6248398 A JP 6248398A JP H11259441 A JPH11259441 A JP H11259441A
Authority
JP
Japan
Prior art keywords
computer
data
communication
computers
buffer
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.)
Pending
Application number
JP10062483A
Other languages
English (en)
Inventor
Kimihide Kureya
公英 呉屋
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP10062483A priority Critical patent/JPH11259441A/ja
Priority to EP99103894A priority patent/EP0942377A1/en
Priority to US09/265,558 priority patent/US6334138B1/en
Publication of JPH11259441A publication Critical patent/JPH11259441A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 【課題】並列計算機における全体全通信の処理時間を短
縮する。 【解決手段】並列計算機上で全体全通信を行う際に、各
計算機のメモリ内部に作業用の一時バッファを確保して
各計算機間で不連続型データを交換する方式と、作業用
の一時バッファを確保せずに各計算機間でデータを交換
する方式とを転送データ個数と計算機台数をパラメータ
として選択することにより通信を行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、並列計算機を含む
ネットワークで接続された複数の計算機間でのデータ通
信方式に関わり、特に計算機間のデータ通信の標準的な
インターフェイスであるメッセージパッシングMPIにお
ける全対全通信の高速化手法に関する。
【0002】
【従来の技術】並列計算機には大きく分けて分散メモリ
型並列計算機と共有メモリ型並列計算機の2種類が存在
するが、現在ではスケーラビリティが容易に達成できる
などの理由で分散メモリ型並列計算機が主流になってい
る。分散メモリ型並列計算機上でのプログラミングモデ
ルとして一般的にはメッセージパッシングモデルが使用
されることが多い。メッセージパッシングモデルでは、
プログラム中に明示的に通信関数を記述する必要があ
る。すなわち、計算に必要なデータが自要素計算機上に
ない場合、データを保持している要素計算機側で送信関
数を発行し、自要素計算機側で受信関数を発行すること
でデータ転送が行われる。
【0003】上記通信関数のインターフェイスの標準化
を行うことを目的として、近年MPIForumによりMPI(Mess
age Passing Interface)と呼ばれるメッセージパッシン
グのための関数仕様がまとめられている。MPIでは一対
の計算機間で通信を行う一対一通信の他に全計算機間で
通信を行う集団通信が規定されている。集団通信の中
で、全対全通信と呼ばれる通信形態がある。全対全通信
とは、全ての計算機が送信先計算機ごとに異なるデータ
を全ての計算機に送信する通信処理であり、行列の転
置、n体問題などで使用される。MPIにおいて全対全通信
を行う関数としてAlltoallがある。以下にAlltoallの関
数インターフェイスを説明するが、説明を簡単にするた
めに引き数を一部簡略化して記述する。
【0004】Alltoall(sendbuf, sendcount, sendtype,
recvbuf, recvcount, recvtype)ここで、sendbuf、sen
dcount、sendtypeはそれぞれ、送信すべき配列データが
格納された自計算機の送信バッファの先頭アドレス、各
計算機に送信する要素データの個数、およびデータ型で
ある。また、recvbuf、recvcount、recvtypeはそれぞ
れ、受信すべきデータが格納される自計算機の受信バッ
ファの先頭アドレス、各計算機から受信する要素データ
の個数、およびデータ型である。データ型としてはINTE
GERやREAL、COMPLEXなどが指定可能である。 MPIでは通
信相手を明確に示すために各計算機にランクと呼ばれる
識別番号を割り当て、このランクを用いて通信相手の特
定を行う。以下では、ランクnを割り当てられた計算機
のことを計算機nと表記する。図4(A)は6台の計算
機(402から407はそれぞれ計算機0から計算機5
を表す)がネットワーク(401)によって結合された
並列計算機を示しており、408は計算機0のメモリ領
域の拡大図である。409、410はそれぞれAlltoall
の引数として指定される送信領域sendbufと受信領域rec
vbufに格納されている配列データである。409の第i
要素0i(iは0から5まで)はそれぞれ計算機0が計
算機iに送信するデータであり、また計算機0は410
の第i要素i0(iは0から5まで)に各計算機iから
受信したデータを格納する。図2は6台の計算機間での
Alltoall通信によるデータ転送を表している。201は
Alltoall通信が開始される前の各計算機の送信領域に格
納されている配列データを取り出してランク順に並べた
図であり、また202はAlltoall通信が終了した後の各
計算機の受信領域に格納された配列データをランク順に
並べた図である。ここで203、205、207、20
9、211、213はそれぞれ計算機0〜5の送信領域
上のデータであり、204、206、208、210、
212、214はそれぞれ計算機0〜5の受信領域上の
データである。例として計算機0が行うべき配列データ
転送処理を説明する。計算機0が行う送信処理は以下の
6つである。
【0005】(a)送信領域203の第0要素00を自
分自身の受信領域204の第0要素に送信。
【0006】(b)送信領域203の第1要素01を計
算機1の受信領域206の第0要素に送信。
【0007】(c)送信領域203の第2要素02を計
算機2の受信領域208の第0要素に送信。
【0008】(d)送信領域203の第3要素03を計
算機3の受信領域210の第0要素に送信。
【0009】(e)送信領域203の第4要素04を計
算機4の受信領域212の第0要素に送信。
【0010】(f)送信領域203の第5要素05を計
算機5の受信領域214の第5要素に送信。また計算機
0が行う受信処理は以下の6つである。
【0011】(a)受信領域204の第0要素に自分自
身の送信領域203の第0要素00を受信。
【0012】(b)受信領域204の第1要素に計算機
1の送信領域205の第0要素10を受信。
【0013】(c)受信領域204の第2要素に計算機
2の送信領域207の第0要素20を受信。
【0014】(d)受信領域204の第3要素に計算機
3の送信領域209の第0要素30を受信。
【0015】(e)受信領域204の第4要素に計算機
4の送信領域211の第0要素40を受信。
【0016】(f)受信領域204の第5要素に計算機
5の送信領域213の第0要素50を受信。一般の場合
では計算機iの送信領域の第j要素は計算機jの受信領域
の第i要素に送信し、計算機iの受信領域の第j要素は計
算機jの第i要素を受信する。すなわち各計算機の送信領
域と受信領域を取り出した図上で考えるとAlltoallとは
行列の転置と同様の通信形態によりデータ転送を行う関
数である。並列計算機内の各計算機同士がお互いに一対
一通信が可能である場合に、各計算機が自分以外の全計
算機にデータを送信する方式として、特開平8−263
449があり、該方式を利用することによって並列計算
機においてAlltoall通信を実現することができる。該方
式では自分自身へのデータ転送処理が含まれていない
が、該方式に、自分自身へデータを送信する処理を付加
すると、Alltoall通信を並列に行うことが可能である。
該方式では計算機がn台の場合、自分自身へデータを送
信する処理を加えて2Lステップで通信が終了する(但
し、Lは正の整数であり2L-1<n≦2Lを満たすものとする
)。各計算機は、自分自身に割り当てられたランク番
号0〜n−1を2進数で表した値とステップ番号1〜2L−
1を2進数で表した値との排他的論理和がランク番号と
して割り当てられている計算機を、ステップ毎の通信相
手とすることにより通信が進行する。図3で6台(22
<6≦23)の計算機が通信を行う場合の該方式の具体
例を説明する。図3(A)はそれぞれの計算機が各ステ
ップでどの計算機を通信相手としているかを示すテーブ
ルである。例えばステップ2では、各計算機のランク
(0、1、2、3、4、5)を2進数表示するとそれぞ
れ(000、001、010、011、100、10
1)となる。これらに対してステップ数2の2進数表示
である010との排他的論理和を取ると(010、01
1、000、001、110、111)となる。すなわ
ち、ステップ2における計算機(0、1、2、3、4、
5)の通信相手は(2、3、0、1、6、7)となる。
ここで、計算機iの送信領域の第j要素は計算機jの受信
領域の第i要素に送信しなければならないことを考える
と、ステップ2では以下のような通信処理が行われる。
【0017】(a)計算機0は送信領域の第2要素02
を計算機2の受信領域の第0要素に送信。
【0018】(b)計算機1は送信領域の第3要素13
を計算機3の受信領域の第1要素に送信。
【0019】(c)計算機2は送信領域の第0要素20
を計算機0の受信領域の第2要素に送信。
【0020】(d)計算機3は送信領域の第1要素31
を計算機1の受信領域の第3要素に送信。
【0021】ただし、計算機(4、5)の通信相手であ
る計算機(6、7)は実際には存在しないので計算機
(4、5)は、他の計算機(0、1、2、3)の通信処
理が終了するまで待機することになる。他のステップに
おいてもステップ2と同様に通信を行うことにより該方
式では計算機台数が6台の場合、結果として7(=23
−1)ステップで通信が完了する。図3(B)は図3
(A)のテーブルから、各ステップにおいて行われるデ
ータ交換を図示したものである。なお、該方式に自分自
身にデータ転送を行うステップ0の処理(各計算機が送
信領域の第i要素iiを受信領域の第i要素に送信する
処理)を追加して8ステップでAlltoallが実現できるこ
とになる。
【0022】
【発明が解決しようとする課題】上述した従来の方法に
よれば、計算機の個数をnとした場合、全対全通信に必
要な通信ステップ数はnを2のべき乗で切り上げた数で
あるため、計算機数に比例して処理時間が増加するとい
う問題がある。本発明の目的は、MPIにおいて全対全通
信を行う関数であるAlltoallについて、転送データ個数
が小さい場合においては、作業用バッファを確保するこ
とにより従来よりも通信ステップ数の少ない方法を用
い、また転送データ個数が大きい場合においては従来の
方法を用いるというように、転送データ個数の違いによ
り二つの方法を併用してAlltoall通信を高速に動作させ
ることにある。
【0023】
【課題を解決するための手段】上記目的を達成するため
に、本発明では、各計算機が各通信ステップにおいて保
持しているデータから不連続データを構成し、また各計
算機が受信バッファとは別に作業用バッファを確保し、
不連続データを作業用バッファに転送することにより通
信ステップ数の少ない通信で処理を行う通信方式と、作
業用バッファを用意しない従来方式とを転送データ個数
と計算機台数をパラメータとして選択することにより通
信を行うことを特徴とする。
【0024】
【発明の実施の形態】以下、図面を参照して本発明によ
るAlltoallの通信方式を説明する。本発明はハイパーキ
ューブアルゴリズムと呼ばれる方式により各通信ステッ
プにおける通信先を決定し、また新たに確保した作業用
の一時バッファ上でデータ転送を行うことにより高速な
Alltoall通信を実現するものである。図4(B)は本発
明によるAlltoallを行う計算機のメモリ領域を示してい
る。411と412はそれぞれ実行時に動的に割り当て
られる第一の一時バッファと第二の一時バッファであ
る。ハイパーキューブアルゴリズムとは、計算機個数を
nとした場合に、自計算機のランク番号を2進数で表し
た値と、初期値を1としたカウンタ変数を2進数で表し
た値との排他的論理和をランク番号とする計算機を各ス
テップの通信相手として、自計算機のデータと相手計算
機のデータを交換するという処理を、カウンタ変数を2
倍にしながらlog nステップ繰り返す方式である。ハイ
パーキューブアルゴリズムは計算機台数が2のべきの場
合にのみ使用できる方式である。図8(A)は8台の計
算機でハイパーキューブアルゴリズムによる通信を行う
際に、それぞれの計算機が各ステップでどの計算機を通
信相手としているかを示すテーブルであり、図8(B)
は図8(A)のテーブルから、各ステップにおいて行わ
れるデータ転送を図示したものである。ただしAlltoall
通信のように、各計算機が送信先計算機ごとに異なるデ
ータを送信する場合にはハイパーキューブアルゴリズム
をそのまま適用することはできない。そこで本発明では
不連続型データを転送することによりハイパーキューブ
アルゴリズムが利用できるようにしている。図5を使用
して6台の計算機で本発明によるAlltoallを行う方法の
説明を行う。なお、ここでは簡単のため全計算機におい
てsendcount、recvcountを共に1としている。全計算機
は(自分自身も含めた)計算機8台から受信するデータ
を確保する第一の一時バッファbuffer(501〜50
6)と第二の一時バッファvbuffer(計算機2は50
7、計算機3は508)をあらかじめ確保しておく。ま
ず、各計算機は送信バッファ上のデータを一時バッファ
buffer(411)に移動する。また507、508はそ
れぞれは計算機2、計算機3が保持している第二の一時
バッファvbuffer(412)である。図5の実施例では
計算機の個数が6であるが、6を越える最小の2のべき
である8台の計算機が仮想的に存在するものとして処理
を行うようにする。具体的には計算機6のbufferの代わ
りとして計算機2のvbufferを、また計算機7のbuffer
の代わりとして計算機3のvbufferを使用する。
【0025】ステップ1では灰色部分のようにデータが
1つおきに並んだ不連続型データの交換が行われる。計
算機0、2、4、6(実際には2)では一時バッファの
先頭から1データ分だけ隔たった位置からのデータを、
また計算機1、3、5、7(実際には3)では一時バッ
ファの先頭からデータを送信する。始めに計算機0と1
(509)、計算機2と3(510)、計算機4と5
(511)でデータの交換を行う。ステップ1が終了し
た後でステップ2において計算機2と計算機3はvbuffe
r上でデータの交換を行う(512)。
【0026】ステップ3では、データが2個連続した不
連続型データ(図5の灰色部分)の交換を行う。計算機
0、1、4、5では一時バッファの先頭から2データ分
だけ隔たった位置からのデータを、また計算機2、3、
6(実際には2)、計算機7(実際には3)では一時バ
ッファの先頭からデータを送信する。計算機0と2(5
13)、計算機1と3(514)がデータの交換を行っ
た後でステップ4において計算機4と6(実際には2)
(515)、計算機5と7(実際には3)がデータの交
換を行う(516)。この時、(515)、(516)
において計算機6(実際には2)、7(実際には3)は
vbuffer上でデータ交換を行う。
【0027】ステップ5では、データが4個連続したデ
ータ型(図5の灰色部分)の交換を行う。計算機0、
1、2、3では一時バッファの先頭から4データ分だけ
隔たった位置からのデータを、また計算機4、5、6
(実際には2)、7(実際には3)では一時バッファの
先頭からデータを送信する。計算機0と4(517)、
計算機1と5(518)では一時バッファbuffer上でデ
ータの交換を行い、計算機2、計算機3自信のデータ交
換では一時バッファvbuffer上のデータと一時バッファb
uffer上でデータとの交換を行う。
【0028】最終的に各計算機はステップ5の後に一時
バッファbuffer上に格納されているデータを受信バッフ
ァに移動することでAlltoall通信が完了する。
【0029】次に、計算機個数が6台の場合に示した例
を一般化して、計算機個数が任意の場合にAlltoall通信
を行う例を図1のフローチャートによって説明する。こ
こでは起動される計算機個数をnとする。他の計算機か
ら受信するデータを格納する目的で一時バッファbuffe
r、vbufferを確保する(101)。送信領域sendbuf上
のデータをbufferに移動する(102)。計算機個数n
が2のべきとは限らないため、ハイパーキューブアルゴ
リズムが行えるようにnを越える最小の2のべきを求
め、その値をNとする(103)。次に各種変数の初期
化として、shift = 1、blockcnt = N/2、blocklen = re
cvcount、stride = 2 × recvcount、vrank =rank^(N/
2)とおく(^は排他的論理和を表す)(104)。shift
は繰り返し処理の終了を判定するためのカウンタ変数、
blockcnt、blocklen、strideは元のデータから不連続デ
ータ型を構成するために必要とする変数である。ここで
不連続データ型とは、元のデータを何個か連続したブロ
ックと呼ばれる構成要素を等間隔に並べたものとする。
blockcntはブロックの個数、blocklenは1ブロック内の
元データの個数、stirdeは個々のブロックの先頭の間
が、元データ何個分に相当するかを表す数である。例え
ば図5のステップ1では、blockcnt = 4、blocklen =
1、stride = 2となる。vrankはハイパーキューブアル
ゴリズムにおいて最終ステップでデータを交換し合う通
信相手のランク番号である。図5のような不連続データ
型を構成するための手段として、MPIにはType_vectorと
いう関数が用意されている。Type_vectorの関数インタ
ーフェイスは次のようになっている。
【0030】Type_vector(count, blocklen, stride, o
ldtype, newtype)ここで、count、blocklen、strideは
上で説明したものと同じ意味であり、oldtypeは各ブロ
ックの構成要素である元データのデータ型(ここでは、
Alltoallの引数として指定されたrecvtype)、newtype
はType_vectorの結果として構成される不連続データ型
へのポインタである。従って例えばこのType_vectorを
利用して不連続データ型を構成すればよい(105)。
vrankが起動計算機台数n以上である計算機は、実際には
存在しない計算機が用意すべき一時バッファbufferの代
わりにバッファvbufferを確保しなくてはならないた
め、vrankとnを比較する(106)。vrankがnを越えて
いなければその計算機は各通信ステップにおいて自分自
身のデータのみを通信相手と交換すれば良い。そこでラ
ンク番号とshiftとのビット毎の論理積を取った値が1
であれば通信相手のランク番号pareをpare =rank - shi
ftとして、また論理積の値が0であればpare = rank +
shiftとして求める(107)。ただし、pareがn以上の
場合、実際にはそのようなランク番号を持つ計算機は存
在しないので、pareとN/2との排他的論理を取った値を
通信相手のランク番号pareとする。各計算機は自分のラ
ンク番号rankと通信相手のランク番号pareを比較して、
rank < pareの場合には一時バッファbufferの先頭からs
hift × recvcountだけ隔たった位置からのデータを通
信相手のデータと交換する。データ交換のために使用す
る通信関数としてMPIの通信関数を用いる場合では、通
信関数への引数として、転送されるデータの型を指定す
る必要がある。この場合に通信関数に指定するデータ型
は105で構成したnewtypeを使用する。rank ≧ pare
の場合には一時バッファbufferの先頭位置からのデータ
と交換する(108)。vrankがn以上の場合、107、
108と同様にして送信相手のランク番号pareを計算
し、送信相手とデータの交換を行う(109、11
0)。さらに、実際には存在しない計算機に代わってデ
ータの交換を行うためにvrankにより109と同様にし
て送信相手のランク番号vrankを求め(111)、vbuff
er上のデータを送信相手と交換する(112)。以上に
よってデータの交換が終了した後に、shift = shift ×
2、blockcnt = blockcnt/2、blocklen = blocklen ×
2、stride = stride × 2とし(113)、shiftとN
を比較する(114)。shiftがN以下であれば105以
降の処理を繰り返し、shiftがN以上であれば各計算機は
一時バッファbuffer上のデータをrecvbufに移動して処
理を終了する(115)。
【0031】ハイパーキューブアルゴリズムでは以上説
明したように、計算機台数をnとして2L-1<n≦2L (L
は正の整数)と表された場合に、Lステップで一時バッ
ファ上の通信が終了する。1ステップにおいて2回デー
タ交換が行われるが、1回のデータ交換において自計算
機から相手計算機への送信と、相手計算機から自計算機
への受信の計2回の通信が行われるため、ハイパーキュ
ーブアルゴリズムでは4 L回の通信が発生する。従っ
て、始めに送信バッファ上のデータを一時バッファに移
動する通信と、最後に一時バッファ上から受信バッファ
にデータを移動する通信の2回を加えると4L + 2回
の通信が発生する。従来方式の通信回数は2Lステップで
あるが、1ステップにおいて自計算機から相手計算機へ
の送信と、相手計算機から自計算機への受信の計2回の
通信が行われるため、合計通信回数は2L+1である。 nが
大きい場合にはハイパーキューブアルゴリズムの方が遥
かに少ない通信回数で処理を行えるが、作業用メモリを
必要とするため、作業用メモリ確保の処理時間が大きく
なる。またハイパーキューブアルゴリズムでは不連続型
データのデータ転送を行っているが、一般的には不連続
型データ転送のコストは連続データのそれと比較すると
高くついてしまい、ハイパーキューブアルゴリズムでの
通信回数が少ないという利点が相殺されることになる。
そこで、計算機台数とデータ個数をパラメータとしてハ
イパーキューブアルゴリズムと従来方式を切り替えて使
用することにする。図6は以上を考慮して得られたAllt
oallの全体の実施形態を表すフローチャートである。Al
ltoall関数が呼ばれた際に、転送されるデータ個数と起
動される計算機数を取得し(601)、あらかじめ作成
しておいたテーブルによりハイパーキューブアルゴリズ
ムと従来方式とでどちらが有利であるかを判断する(6
02)。図7は両方式を比較するために作成されたテー
ブルの一例を表している。ここではハイパーキューブア
ルゴリズムが有利な場合として、計算機数nが1≦n<8
では転送データ個数がa個以下、9≦n<16ではb個以
下、17≦n<32ではc個以下、33≦n<64ではd個
以下、65≦n<128ではe個以下、129≦n<25
6ではf個以下の場合として作成されたテーブルを例示
してある。ハイパーキューブアルゴリズムが有利な場合
には、以降ハイパーキューブアルゴリズムで処理を行い
(603)、そうでなければ従来方式で処理を行う(6
04)。なおテーブルに記述された数値a〜fなどは実装
する計算機の特性、すなわち一対一通信の性能などによ
って異なる。
【0032】
【発明の効果】以上本発明によれば、起動計算機数と転
送データ個数に応じた効率の良い処理方式で全体全通信
を行うことが可能となる。
【図面の簡単な説明】
【図1】実施例のフローチャートを示す図。
【図2】Alltoall通信の通信形態の説明図。
【図3】Alltoall通信の従来方式の説明図。
【図4】実施例を説明するための並列計算機システムの
概略構成図。
【図5】実施例を説明するためのAlltoall通信の中間状
態の説明図。
【図6】従来方式と本発明による方式とを、計算機台数
と転送データ個数とによって切り替える処理のフローチ
ャートを示す図。
【図7】ハイパーキューブアルゴリズムと従来方式を切
り替えるために使用するテーブルの説明図。
【図8】ハイパーキューブアルゴリズムの説明図。
【符号の説明】
101 一時バッファを確保する処理 102 送信領域上のデータを一時バッファに移動する
処理 103 計算機台数を越える最小の2のべきを計算する
処理 104 各変数の初期化処理 105 不連続型データを構成する処理 106 通信相手の計算機のランク番号と計算機台数の
大小を比較する処理 109、111 通信相手の計算機のランク番号を計算
する処理 108、110、112 第一の一時バッファ上で通信
相手の計算機とデータを交換する処理 113 各変数の更新処理 114 カウンタ変数と計算機台数を越える最小の2の
べきとの大小を比較する処理 115 一時バッファ上のデータを受信領域に移動する
処理

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】固有の識別番号を有する複数個の計算機が
    ネットワークで結合された分散メモリ型並列計算機にお
    いて全対全通信を行う場合に、各計算機内に第一の作業
    用バッファと第二の作業用バッファを用意して不連続デ
    ータを交換する方式と、前記作業用バッファを用意せず
    に計算機個数を2のべき乗に切り上げた通信ステップ数
    で処理を実行する方式とを、計算機個数と転送データ量
    をパラメータとして選択することにより通信を行うこと
    を特徴とする通信方式。
  2. 【請求項2】請求項1記載の通信方式において、前記不
    連続データは、各計算機へ送信するデータ個数を単位と
    して、前記第一の作業用バッファ上において前記計算機
    の台数より大きい最小の2のべき(=2n )より小さい
    任意の2のべき個(=2k )のデータと、2k個の間隔
    を有することを特徴とする通信方式。
  3. 【請求項3】請求項1記載の通信方式において、自計算
    機の識別番号に前記2kを加えることにより求められる
    数値を識別番号として持つ計算機をデータ交換の相手計
    算機とする場合に、自計算機内の第一のバッファの先頭
    位置から、各計算機へ送信するデータ個数を単位として
    前記2k個隔たった位置からのデータを送信し、また、
    自計算機の識別番号に前記2kを引くことにより求めら
    れる数値を識別番号として持つ計算機をデータ交換の相
    手計算機とする場合に、自計算機内の第一バッファの先
    頭からデータを送信することを特徴とする通信方式。
  4. 【請求項4】請求項3記載のデータ交換において、自計
    算機の識別番号に前記2kを加えた値が計算機台数より
    も大きい場合には、該値と2n-1との排他的論理和を取
    った値を識別番号として持つ計算機を送信相手とするこ
    とを特徴とする通信方式。
  5. 【請求項5】請求項1記載の通信方式において、自計算
    機の識別番号と2n-1との排他的論理和を取った値を仮
    想的な自計算機の識別番号とし、該値が計算機の台数よ
    りも大きい場合には、請求項3記載のデータ交換を行っ
    た後に、該値に前記2kを加えることにより求められる
    数値を識別番号として持つ計算機をデータ交換の相手計
    算機とする場合に、自計算機内の第二のバッファの先頭
    位置から、各計算機へ送信するデータ個数を単位として
    2k個隔たった位置からのデータを送信し、また、該値
    に前記2kを引くことにより求められる数値を識別番号
    として持つ計算機をデータ交換の相手計算機とする場合
    に、自計算機内の第二バッファの先頭からデータを送信
    することを特徴とする通信方式。
  6. 【請求項6】前記正の整数2kにおけるkは0、1、〜、
    n−1まで変化することを特徴とする請求項2〜5のいず
    れかに記載の通信方式。
JP10062483A 1998-03-13 1998-03-13 並列計算機における全対全通信方法 Pending JPH11259441A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP10062483A JPH11259441A (ja) 1998-03-13 1998-03-13 並列計算機における全対全通信方法
EP99103894A EP0942377A1 (en) 1998-03-13 1999-03-01 Method for performing all-to-all communication in parallel computers
US09/265,558 US6334138B1 (en) 1998-03-13 1999-03-09 Method for performing alltoall communication in parallel computers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10062483A JPH11259441A (ja) 1998-03-13 1998-03-13 並列計算機における全対全通信方法

Publications (1)

Publication Number Publication Date
JPH11259441A true JPH11259441A (ja) 1999-09-24

Family

ID=13201484

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10062483A Pending JPH11259441A (ja) 1998-03-13 1998-03-13 並列計算機における全対全通信方法

Country Status (3)

Country Link
US (1) US6334138B1 (ja)
EP (1) EP0942377A1 (ja)
JP (1) JPH11259441A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012190389A (ja) * 2011-03-14 2012-10-04 Ricoh Co Ltd プロセッサ装置及びその演算方法
WO2014020959A1 (ja) * 2012-07-30 2014-02-06 日本電気株式会社 分散処理装置及び分散処理システム並びに分散処理方法

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003067354A (ja) * 2001-08-29 2003-03-07 Hitachi Ltd 並列計算機システム及びプロセッサ間通信処理方法
US20050097300A1 (en) * 2003-10-30 2005-05-05 International Business Machines Corporation Processing system and method including a dedicated collective offload engine providing collective processing in a distributed computing environment
US7554464B1 (en) * 2004-09-30 2009-06-30 Gear Six, Inc. Method and system for processing data having a pattern of repeating bits
US7539989B2 (en) 2004-10-12 2009-05-26 International Business Machines Corporation Facilitating intra-node data transfer in collective communications
US20080022079A1 (en) * 2006-07-24 2008-01-24 Archer Charles J Executing an allgather operation with an alltoallv operation in a parallel computer
DE102006037020A1 (de) * 2006-08-08 2008-02-14 Wacker Chemie Ag Verfahren und Vorrichtung zur Herstellung von hochreinem polykristallinem Silicium mit reduziertem Dotierstoffgehalt
US7752421B2 (en) * 2007-04-19 2010-07-06 International Business Machines Corporation Parallel-prefix broadcast for a parallel-prefix operation on a parallel computer
US8140826B2 (en) * 2007-05-29 2012-03-20 International Business Machines Corporation Executing a gather operation on a parallel computer
US8161480B2 (en) * 2007-05-29 2012-04-17 International Business Machines Corporation Performing an allreduce operation using shared memory
US8090704B2 (en) * 2007-07-30 2012-01-03 International Business Machines Corporation Database retrieval with a non-unique key on a parallel computer system
US7827385B2 (en) * 2007-08-02 2010-11-02 International Business Machines Corporation Effecting a broadcast with an allreduce operation on a parallel computer
US7840779B2 (en) * 2007-08-22 2010-11-23 International Business Machines Corporation Line-plane broadcasting in a data communications network of a parallel computer
US7734706B2 (en) * 2007-08-22 2010-06-08 International Business Machines Corporation Line-plane broadcasting in a data communications network of a parallel computer
US7991857B2 (en) * 2008-03-24 2011-08-02 International Business Machines Corporation Broadcasting a message in a parallel computer
US8122228B2 (en) * 2008-03-24 2012-02-21 International Business Machines Corporation Broadcasting collective operation contributions throughout a parallel computer
US8422402B2 (en) 2008-04-01 2013-04-16 International Business Machines Corporation Broadcasting a message in a parallel computer
US8161268B2 (en) * 2008-05-21 2012-04-17 International Business Machines Corporation Performing an allreduce operation on a plurality of compute nodes of a parallel computer
US8375197B2 (en) * 2008-05-21 2013-02-12 International Business Machines Corporation Performing an allreduce operation on a plurality of compute nodes of a parallel computer
US8484440B2 (en) 2008-05-21 2013-07-09 International Business Machines Corporation Performing an allreduce operation on a plurality of compute nodes of a parallel computer
US8281053B2 (en) 2008-07-21 2012-10-02 International Business Machines Corporation Performing an all-to-all data exchange on a plurality of data buffers by performing swap operations
US9251118B2 (en) * 2009-11-16 2016-02-02 International Business Machines Corporation Scheduling computation processes including all-to-all communications (A2A) for pipelined parallel processing among plurality of processor nodes constituting network of n-dimensional space
US8565089B2 (en) 2010-03-29 2013-10-22 International Business Machines Corporation Performing a scatterv operation on a hierarchical tree network optimized for collective operations
US8332460B2 (en) 2010-04-14 2012-12-11 International Business Machines Corporation Performing a local reduction operation on a parallel computer
US9424087B2 (en) 2010-04-29 2016-08-23 International Business Machines Corporation Optimizing collective operations
US8346883B2 (en) 2010-05-19 2013-01-01 International Business Machines Corporation Effecting hardware acceleration of broadcast operations in a parallel computer
US8489859B2 (en) 2010-05-28 2013-07-16 International Business Machines Corporation Performing a deterministic reduction operation in a compute node organized into a branched tree topology
US8949577B2 (en) 2010-05-28 2015-02-03 International Business Machines Corporation Performing a deterministic reduction operation in a parallel computer
US8776081B2 (en) 2010-09-14 2014-07-08 International Business Machines Corporation Send-side matching of data communications messages
US8566841B2 (en) 2010-11-10 2013-10-22 International Business Machines Corporation Processing communications events in parallel active messaging interface by awakening thread from wait state
US8893083B2 (en) 2011-08-09 2014-11-18 International Business Machines Coporation Collective operation protocol selection in a parallel computer
US8667501B2 (en) 2011-08-10 2014-03-04 International Business Machines Corporation Performing a local barrier operation
US8910178B2 (en) 2011-08-10 2014-12-09 International Business Machines Corporation Performing a global barrier operation in a parallel computer
US9495135B2 (en) 2012-02-09 2016-11-15 International Business Machines Corporation Developing collective operations for a parallel computer
KR101994929B1 (ko) * 2012-12-03 2019-07-01 삼성전자주식회사 집합 통신 수행 방법 및 이를 이용한 집합 통신 시스템
US9772876B2 (en) * 2014-01-06 2017-09-26 International Business Machines Corporation Executing an all-to-allv operation on a parallel computer that includes a plurality of compute nodes

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5170393A (en) * 1989-05-18 1992-12-08 California Institute Of Technology Adaptive routing of messages in parallel and distributed processor systems
EP0506135A3 (en) * 1991-03-29 1993-11-03 Ibm Multi-sender/switching apparatus for status reporting over unbuffered asynchronous multi-stage networks
US5367692A (en) * 1991-05-30 1994-11-22 Thinking Machines Corporation Parallel computer system including efficient arrangement for performing communications among processing node to effect an array transposition operation
US5617538A (en) * 1991-07-02 1997-04-01 Tm Patents, L.P. Message transfer system and method for parallel computer with message transfers being scheduled by skew and roll functions to avoid bottlenecks
US5859981A (en) * 1995-07-12 1999-01-12 Super P.C., L.L.C. Method for deadlock-free message passing in MIMD systems using routers and buffers
US5694602A (en) * 1996-10-01 1997-12-02 The United States Of America As Represented By The Secretary Of The Air Force Weighted system and method for spatial allocation of a parallel load

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012190389A (ja) * 2011-03-14 2012-10-04 Ricoh Co Ltd プロセッサ装置及びその演算方法
WO2014020959A1 (ja) * 2012-07-30 2014-02-06 日本電気株式会社 分散処理装置及び分散処理システム並びに分散処理方法
JPWO2014020959A1 (ja) * 2012-07-30 2016-07-21 日本電気株式会社 分散処理装置及び分散処理システム並びに分散処理方法
US9807152B2 (en) 2012-07-30 2017-10-31 Nec Corporation Distributed processing device and distributed processing system as well as distributed processing method

Also Published As

Publication number Publication date
EP0942377A1 (en) 1999-09-15
US6334138B1 (en) 2001-12-25

Similar Documents

Publication Publication Date Title
JPH11259441A (ja) 並列計算機における全対全通信方法
JP2601591B2 (ja) 並列計算機およびその全対全通信方法
CN107690622A (zh) 实现硬件加速处理的方法、设备和系统
CN100407185C (zh) 主机设备、设备单元、通信系统和数据发送/接收方法
Yechiali Analysis and control of polling systems
US6886082B1 (en) Information processing system
CN102693194A (zh) 通过多个虚拟通道传输分割的数据分组
KR102063282B1 (ko) 온-칩 광학적 상호연결 구조 및 네트워크
CN101178666A (zh) 一种异构多核间协调调度的方法及异构多核系统
WO2023040197A1 (zh) 一种跨节点通信方法、装置、设备及可读存储介质
CN105677605A (zh) 一种高效的可配置片上互联系统及其实现方法、装置
CN101014948A (zh) 单指令多数据处理器结构中的互连
CN111078286B (zh) 数据通信方法、计算系统和存储介质
US5528768A (en) Multiprocessor communication system having a paritioned main memory where individual processors write to exclusive portions of the main memory and read from the entire main memory
JP3506612B2 (ja) スケジューリング制御装置
Li et al. A concurrent weighted communication scheme for blockchain transaction
CN112866041B (zh) 一种自适应性的网络系统的训练方法
JP4367427B2 (ja) 計算機システム、並列計算機システムにおける通信方法、およびプログラム
CN212696010U (zh) 一种有源配电网实时仿真器的网络通讯接口
JP5230545B2 (ja) 制御装置
JPH11238042A (ja) 分散シミュレーション制御装置
CN115379316A (zh) 一种流水线式的benes网络路由求解硬件加速装置
Ikoma et al. Resource Allocation Considering Impact of Network on Performance in a Disaggregated Data Center
CN117648190A (zh) 一种基于实体负载的并行任务划分方法
JP2000339278A (ja) 並列計算機におけるリダクション処理方法