JP3407358B2 - バリア同期における非同期通信完了保証方法 - Google Patents

バリア同期における非同期通信完了保証方法

Info

Publication number
JP3407358B2
JP3407358B2 JP27586193A JP27586193A JP3407358B2 JP 3407358 B2 JP3407358 B2 JP 3407358B2 JP 27586193 A JP27586193 A JP 27586193A JP 27586193 A JP27586193 A JP 27586193A JP 3407358 B2 JP3407358 B2 JP 3407358B2
Authority
JP
Japan
Prior art keywords
processor
counter
write
communication
synchronization
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
JP27586193A
Other languages
English (en)
Other versions
JPH07129526A (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 JP27586193A priority Critical patent/JP3407358B2/ja
Publication of JPH07129526A publication Critical patent/JPH07129526A/ja
Application granted granted Critical
Publication of JP3407358B2 publication Critical patent/JP3407358B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】 【0001】 【産業上の利用分野】本発明は、バリア同期機能を備え
た分散メモリ型並列計算機上での、非同期通信の完了確
認を高速に行う方法に関する。 【0002】最近、高速な計算機、例えば、スーパーコ
ンピュータを実現する方法として、並列計算機が注目を
浴びている。該並列計算機において、複数のプロセッサ
が一つの仕事を協力して計算し、正しい結果を得ること
を保証するためには、プロセッサ間の通信と、プロセッ
サ間のソフトウェア上の同期処理が、欠かすことができ
ない重要な技術であり、この同期処理をバリア同期と呼
んでいる。又、これらの処理は、できるだけ、短い時間
で処理できることが、処理全体の高速化に繋がる。 【0003】そこで、最近においては、分散メモリ型並
列計算機における代表的な通信方式で、send動作と rec
eive動作とが組になって通信が成立する、メッセージパ
ッシング方法によることなく、直接、相手先のメモリに
データを書き込んだり、直接、相手先のメモリからデー
タを読み出す非同期通信が、その高速性から注目されて
いる。 【0004】この非同期通信では、上記メッセージパッ
シング方法とは異なり、非同期で行われるため、上記バ
リア同期処理においては、各プロセッサから起動された
非同期書き込み, 或いは、非同期読み出しの処理が完全
に終了していることを、効果的に確認する方法が要求さ
れる。 【0005】 【従来の技術】図9, 図10は、バリア同期を説明する
図であり、図11, 図12 は、従来の非同期通信の完
了を保証する方法を説明する図である。 【0006】先ず、図9, 図10によって、バリア同期
を説明する。前述の並列計算機では、各プロセッサ P
(1) 1,〜のプログラム処理の進み具合を制御するための
同期処理をする必要がある。この同期処理のために、該
同期が必要な箇所に特別な同期命令 (バリア同期命令)
が埋め込まれる。この同期命令が埋め込まれた箇所を同
期点と呼び、該同期点に挿入された同期命令は、2つの
部分からなる同期動作を行う。 【0007】同期動作の前半は、自分がこの同期点に到
着したことを、他の P(2) 2,〜に通知する処理で、該同
期動作の後半は、該同期動作を行う P(1) 1,〜として指
定された全ての P(1) 1,〜が、この同期点に到着するま
で、待ち続ける処理である。 【0008】図10(a1),(a2) は、各 P(1) 1,P(2) 2,
〜の CPU 10 で実行されるバリア同期プログラムの例を
示したもので、図示されている如くに、同期命令が、プ
ログラムの所定の位置に挿入されている。 【0009】図10(b) は、その同期動作のタイムチャ
ートを示したもので、P(2) 2が、P(1) 1が実行する同期
命令によって、同期点に到着するのを待ち、各 P(2) 2,
P(1) 1 が同期点に到着した時点から、次の命令を同期
して実行する例を示している。 【0010】このような処理の為に、各 P(1) 1, P(2)
2,〜が同期点に到着したか否かを検出し、更に、検出結
果を各 P(1) 1, P(2) 2 〜に通知する為のハードウェア
機構が必要となる。 【0011】図9は、このハードウェア機構を示したも
ので、各 P(1) 1 〜P(n) nには、図示されている同期プ
ロセッサ選択マスク 140と、同期検出回路 141が設けら
れており、又、各 P(1) 1 〜P(n) n外に、同期処理網
(バリア処理網) 4 が設けられている。 【0012】1) 先ず、各 P(1) 1,〜の CPU〜 10 は、
これから行う同期処理を適用する P(1) 1,〜の集合を、
上記同期プロセッサ選択マスク 140を使って設定する。
該同期プロセッサ選択マスク 140は、並列計算機システ
ム内の P(1) 1 〜P(n) nの数と等しい数のラッチで構成
されており、各ビットが各 P(1) 1 〜P(n) nに対応して
いる。CPU 10は、同期をする P(1) 1,〜に対応するビッ
トを“1”に設定し、対応外のビットを“0”に設定す
る。 【0013】2) 各CPU 〜 10 の実行する前述のプログ
ラムの実行が、同期命令が挿入されている同期点に到着
すると、該同期点に到着したことを、他の P(2) 2 〜に
知らしめる処理、即ち、前述の同期命令の前半の処理を
行う。具体的には、各 P(1)1 内のバリア処理ユニット
(BA)内の同期点到着表示ラッチ 142に“1”を設定す
る。 【0014】3) 該同期点到着表示ラッチ 142の値
“1”は、上記同期処理網 (バリア処理網) 4 に通知さ
れる。 4) 該同期処理網 (バリア処理網) 4 は、全ての P(1)
1,〜からの上記同期点到着表示ラッチ 142の信号を纏め
て、全ての P(1) 1,〜に返送する。 【0015】5) 各 P(1) 1 〜P(n) nのバリア処理ユニ
ット(BA)内の上記同期検出回路 141は、「同期プロセッ
サ選択マスク 140中の“1”であるビットに対応する P
(1)1 〜P(n) nからの同期点到着表示ラッチ 142が全て
“1”である」条件を検査し、この条件が満たされる
と、同期が完了したとして、該同期命令の後半の処理を
終了して、次の命令の実行に移ることができるようにな
る。 【0016】6) 該同期検出回路 141は、同期の完了し
たことを、自己の CPU 10 に、図示の同期完了信号(SYN
E)を通知することにより、該CPU 10は、次の命令の実行
の再開を始める。 【0017】各プロセッサ P(1) 1,〜が、非同期通信を
行っている場合には、上記バリア同期命令の実行が行わ
れる迄に、全ての非同期通信が完了していることが必要
であり、各プロセッサ P(1) 1,〜において、該非同期通
信が完了していることを確認すると、上記同期点到着表
示ラッチ 142を“オン”にし、全てのプロセッサ P(1)
1,〜において、該同期点到着表示ラッチ 142が“オン”
になったことが、それぞれのプロセッサ P(1) 1,〜で認
識された時点でバリア同期が取れることになる。 【0018】分散メモリ型並列計算機において、上記バ
リア同期時に、それまで、各プロセッサ P(1) 1,〜で行
われた非同期通信が、全て完了していることを保証する
従来技術を、図11, 図12によって説明する。 【0019】図11(a) は、メッセージパッシングによ
る非同期通信の完了を保証する方法を示している。この
方法では、例えば、プロセッサ P(1) 1 から、プロセッ
サ P(2) 2 にデータの書き込みを行う場合、図示されて
いる如くに、send(P(2),data1)命令と, receive(P(1),d
ata2) 命令とが組になって、非同期通信が成立する。 【0020】図11(b) は、アクティブメッセージを応
用して、非同期通信の完了を保証する方法を示してい
る。この方法は、ティ・エイシェン(T.Eichen)等によっ
て、1992年の ISCA で発表された非同期通信方式であ
る。「 "アクティブメッセージ:通信と計算を統合した
メカニズム",第19回,ISCA,ゴールドゴースト, オースト
ラリヤ,1992,{"Active Messages:a mechanism integra
ted communication and computation",19th ISCA,Gold
Goast,Australia,1992}参照」この方法は、特定のアド
レスのデータに対する書き込み要求や, 読み出し要求に
対する処理を、相手側のプロセッサ P(2) 2 での割込み
ハンドラ内で実現することにより、メッセージパッシン
グ方式でのオーバヘッドを克服しようとするものであ
る。 【0021】同期をとるために、図示されている如く
に、書き込みのときは、書き込み相手側のプロセッサ P
(2) 2 に1ビットのフラグを用意し、読み出しのときに
は、読み出し要求を行う側のプロセッサ P(1) 1 に1ビ
ットのフラグを用意して、それぞれの処理の終了後に、
該当のフラグを“オン”にする機構である。 【0022】図12(c) は、ハードウェアによる検出方
法の一例を示したもので、プロセッサ P(1) 1 と P(2)
2 間を結合する伝送路上の、例えば、バッファに、特定
の通信データが無いかどうかを、論理和回路で抽出し
て、判定する方法であり、対象となるデータが伝送路上
に無ければ、目的とする読み書き処理が完了しているこ
とを保証するものである。 【0023】該ハードウェアによる検出方法の他の方法
として、図示していないが、分散メモリ型の共有メモリ
を実現した並列計算機で、キャッシュメモリの同一性を
保証するハードウェアによって、プロセッサ間に跨がる
読み書きの完了を保証する方法が提起されている。その
代表的なものに, スタンフォード大学の「DASH」が
ある。その詳細は、「“DASH試作品:構築と性能,
第19回,ISCA,ゴールドゴースト, オーストラリヤ,1992,
{"The DASH Prototype:Implementation and Performan
ce",19th ISCA,Gold Goast,Australia,1992 }参照」そ
の他として、これも図示していないが、終了確認パケッ
トを送出する方法がある。この方法は、バリア同期時
に、通信が終了したことを確認するためのパケットを、
全てのプロセッサに順番に流し、そのパケットが1周し
て戻ってきた時点で、全ての通信が終了したと確認する
方法である。 【0024】 【発明が解決しようとする課題】上記の従来の非同期通
信の終了を保証する方法には、以下の問題点を含んでい
る。 【0025】1) メッセージパッシング方法:図11
(a) から明らかなように、データの送出(send)を non-b
locking にする為には、受信側のプロセッサ P(2) にバ
ッファエリアを設けて、一時的にコピーする必要があ
る。この為、バッファエリアとコピー時間が、それぞれ
の空間的, 時間的なオーバヘッドとなる。 【0026】又、受信側のプロセッサ P(2) が receive
状態となるのを待って通信する blocking 型のデータ送
出(send)を行うと、上記の如き、一時的なバッファやコ
ピーをするオーバヘッドは避けられるが、送信側のプロ
セッサ P(1) は、通信相手がreceive状態となるまで待
たされてしまい、無駄な時間が発生する問題がある。
又、この方法では、相手のプロセッサの状態によって、
データを送受信する方法であるので、デッドロックを発
生する危険がある。 【0027】2) アクティブメッセージの応用:図11
(b) に示されている1つのフラグだけでは、1回1回の
通信に対して同期をとる必要がある。又、書き込みに対
して、書き込まれるプロセッサ P(2) 2 側にフラグを持
つ方法では、送信側での送信要求が、所定の条件 (図示
の if 文の条件)が成立した時点で行われる場合、受信
側のプロセッサ P(2) 2 では、自分に、いつ、データが
書き込まれることを知ることができないので、このよう
な場合には適用できないという問題がある。 【0028】3) ハードウェアによる検出:図12(c)
に示されているように、通信路上でのデータの有無を検
出する為の特殊なハードウェアを必要とする。その為、
コストがかかるという問題があるし、上記のようなハー
ドウェアを備えていない並列計算機では実現することが
できないという問題がある。 【0029】4) 終了確認パケットを送出する方法:こ
の方法ではバリア同期の時に、新たに通信を行う必要が
あり、そのオーバヘッドが大きい。本発明は上記従来の
欠点に鑑み、バリア同期機能を備えた分散メモリ型並列
計算機上での、非同期通信の完了確認を高速に行うの
に、無駄なデータのバッファへのコピーを避けることが
でき、特殊なハードウェアを必要とせず、又、同期のた
めのオーバヘッドを小さくすることができ、且つ書き込
み,読み出しの両方をサポートして、非同期通信の完了
を保証することができる方法を提供することを目的とす
るものである。 【0030】 【課題を解決するための手段】図1,図2は、本発明の
一実施例を模式的に示した図であり、図1(a) はフラグ
を設ける場合を示し、図1(b) は、フラグの代わりにカ
ウンタを設ける場合を示し、図1(c) は、要求カウンタ
と、応答カウンタを設ける場合を示し、図2(d) は、バ
リア同期の直前に行う非同期書き込みに対してのみ、該
書き込みの終了を伝える通信を発生させる場合を示して
いる。上記の問題点は下記の如くに構成したバリア同期
における通信完了保証方法によって解決される。 【0031】(1) バリア同期機能を備えた分散メモリ型
並列計算機において、直接、相手先のメモリにデータを
書き込んだり、直接、相手先のメモリからデータを読み
出す非同期通信の、全ての非同期通信の完了を確認した
時点で、バリア同期点への到着を指示して、バリア同期
を行う方法であって、非同期の書き込みに対して、書き
込みの要求元のプロセッサP(1) 1は、該書き込みの要求
を出すとき、所定のフラグを“1”にし、書き込まれ
たプロセッサP(2)からの、該書き込みの終了を知らせる
通信により、上記フラグを“0”とし、全てのプロセ
ッサP(1) 1,P(2) 2,〜が、自己のフラグを見て、
“0”になったことを確認して、自己の要求した書き込
みが終了したことを保証するように構成する。 【0032】(2) 上記非同期の書き込みに対して、要求
元のプロセッサP(1) 1にカウンタaを設け、カウンタ
aの初期値を“0”にして、要求元のプロセッサP(1)
1で、書き込みの要求を行う際に、該カウンタaを1
つカウントアップし、該書き込みの終了を伝える通信が
戻ってきたとき、該カウンタaを1つカウントダウン
し、バリア同期の際、該カウンタaの値が“0”にな
っていることを確認して、自己の要求した全ての書き込
みが終了したことを保証するように構成する。 【0033】(3) 非同期の読み出しに対して、要求元の
プロセッサP(1) 1にカウンタbを設け、カウンタb
の初期値を“0”にして、要求元のプロセッサP(1) 1
で、読み出しの要求を行う際に、該カウンタbを1つ
カウントアップし、該読み出しの終了を伝える通信が戻
ってきたとき、該カウンタbを1つカウントダウン
し、バリア同期の際、該カウンタbの値が“0”にな
っていることを確認して、自己の要求した全ての読み出
しが終了したことを保証するように構成する。 【0034】(4) 非同期の書き込みに対して、要求元の
プロセッサP(1) 1に、要求カウンタaと、応答カウン
タaとを設け、それぞれのカウンタa,aの初期
値を“0”にして、要求元のプロセッサP(1) 1で、書き
込みの要求を行う際に、該要求カウンタaを1つカウ
ンタアップし、該書き込みの終了を伝える通信が戻って
きたとき、上記応答カウンタaを1つカウントアップ
し、バリア同期の際、該書き込みの要求元のプロセッサ
P(1) 1において、上記要求カウンタaと、上記応答カ
ウンタaの値が一致していることを確認して、自己の
要求した全ての書き込みが終了したことを保証するよう
に構成する。 【0035】(5) 非同期の読み出しに対して、要求元の
プロセッサP(1) 1に、要求カウンタbと、応答カウン
タbとを設け、それぞれのカウンタb,bの初期
値を“0”にして、要求元のプロセッサP(1) 1で、読み
出しの要求を行う際に、該要求カウンタbを1つカウ
ンタアップし、該読み出しの終了を伝える通信が戻って
きたとき、上記応答カウンタbを1つカウントアップ
し、バリア同期の際、該読み出しの要求元のプロセッサ
P(1) 1において、上記要求カウンタbと、上記応答カ
ウンタbの値が一致していることを確認して、自己の
要求した全ての読み出しが終了したことを保証するよう
に構成する。 【0036】(6) 特定のプロセッサP(2)に対して、別の
特定のプロセッサP(1) 1から、複数回の非同期書き込み
を要求した場合、その書き込みの順序が、要求した通り
になることが保証されている並列計算機において、各プ
ロセッサP(1) 1, 〜毎にバリア同期をとる直前に行う要
求に対してのみ、該書き込みの終了を伝える通信を発生
させるように構成する。 【0037】 【作用】即ち、(1) のフラグを用いる方法では、要求元
のプロセッサP(1) 1から書き込みの要求を行う毎に、フ
ラグを“1”とし、相手先のプロセッサP(2) 2からの
書き込みの終了を知らせる通信を受けて、該フラグを
“0”とし、バリア同期時には、要求元の各プロセッサ
P(1) 1, 〜において、該フラグの“0”になっている
ことを確認して、要求した書き込みの終了を保証するも
のであるので、自分が書き込みの要求を出したときに
“1”としたフラグが、相手プロセッサからの書き込み
終了通信で“0”になったことを自分で見ることで、該
書き込みの終了を保証することができ、書き込まれる側
のプロセッサP(2) 2では、書き込まれることを知らなく
ても同期が可能になる。 【0038】又、(2),(3) で示したカウンタa,又
は、bを用いる方法では、要求元のプロセッサP(1) 1
から複数の書き込み, 又は、読み出しの要求を行う毎
に、対応するカウンタa,又は、bをカウントアッ
プし、相手のプロセッサP(2) 2から、書き込み,又は,
読み出しの終了を伝える通信が戻ってきた時、対応する
カウンタa,又は、bをカウントダウンすること
で、それぞれのプロセッサP(1) 1, 〜で、該カウンタ
a,又は、bの値を調べて“0”であることを確認す
ることで、自己の要求した書き込み,又は、読み出しが
終了していることを保証することができるようにしたも
ので、上記フラグを用いる場合と異なり、複数の書き込
み,又は、読み出しを連続して行った場合でも、該複数
の書き込み,又は、読み出しの終了を認識することがで
きる。即ち、複数の非同期書き込み,又は、読み出しに
対して、纏めて、同期をとることができる。 【0039】又、(4),(5) で示した2つのカウンタ
a,a,又は、b,bを用いる方法では、要求元
のプロセッサP(1) 1から複数の書き込み, 又は、読み出
しの要求を行う毎に、対応する要求カウンタa,又
は、bをカウントアップし、相手のプロセッサP(2) 2
から、書き込み,又は,読み出しの終了を伝える通信が
戻ってきた時、対応する応答カウンタa,又は、b
をカウントアップすることで、それぞれのプロセッサP
(1) 1, 〜で、該要求カウンタa,又は、bの値
と、応答カウンタa,又は、bの値を調べて、両方
のカウンタの値が一致していることを確認することで、
自己の要求した書き込み,又は、読み出しが終了してき
ることを保証することができるようにしたもので、上記
カウンタを1つ用いる方法では、要求時のカウントアッ
プする処理と、処理終了を伝える通信によるカウントダ
ウンする処理とが、1つのカウンタに対して非同期で行
われるために、このカウンタに対するアクセスを排他制
御を行う必要があるが、要求カウンタと,応答カウンタ
との2つのカウンタを用いることにより、排他制御を必
要とすることなく、複数の書き込み要求,又は、読み出
し要求に対して、同期を取ることができる。従って、排
他制御を行うハードウェアを持たない並列計算機におい
ても、複数の非同期書き込み,又は、読み出しに対して
まとめて同期を取ることができる。 【0040】又、(6) で示した複数の書き込み要求に対
して、各プロセッサ毎にバリア同期をとる直前に行う書
き込み要求に対してのみ処理の終了を伝える通信を発生
させる事で、バリア同期の為の通信の終了を保証する為
に必要なプロセッサ間の通信を減らすことができ、処理
のオーバヘッドを少なくすることができる。 【0041】本発明によるバリア同期における通信完了
保証方法は、以上のように作用するので、分散メモリ型
の並列計算機において、非同期書き込み, 又は、読み出
しによる高速なプロセッサ間通信を行いながら、その通
信が完了したことを保証する処理を高速化することがで
きる効果がある。 【0042】 【実施例】以下本発明の実施例を図面によって詳述す
る。前述の図1,図2は、本発明の一実施例を模式的に
示した図であり、図3〜図8は、本発明の一実施例を実
行ルーチンで示した図である。 【0043】本発明においては、バリア同期機能を備え
た分散メモリ型並列計算機において、非同期書き込みを
要求したプロセッサ P(1) 1,〜は、所定のフラグを
“1”にして書き込みを行い、書き込まれたプロセッサ
が、書き込みの終了を知らせる通信が戻ってきたとき、
上記フラグを“0”にし、該フラグが“0”である
と、該非同期の通信の終了を認識し、又、書き込み/読
み出し要求元のプロセッサP(1) 1,〜に、上記フラグ
の代わりに、カウンタa,又は、bを設け、書き込
み/読み出し要求元のプロセッサ P(1) 1,〜で、書き込
み/読み出しの要求を行う毎に、1つカウントアップ
し、書き込み/読み出しの終了を伝える通信が戻ってき
たとき、該カウンタa,bをカウントダウンし、
“0”になると、要求した非同期通信が全て終了したと
認識し、又、上記書き込み/読み出し要求元のプロセッ
サ P(1) 1,〜に、要求カウンタa/bと、応答カウ
ンタa/bとを設け、要求元のプロセッサ P(1) 1,
〜で、該要求カウンタa/bと、応答カウンタa
/bの値が一致したことで、該非同期通信の終了を認
識して、バリア同期の同期点到着時点とする手段が、本
発明を実施するのに必要な手段である。尚、全図を通し
て同じ符号は同じ対象物を示している。 【0044】以下、図9,図10のバリア同期の手法を
参照しながら、図1,図2,及び、図3〜図8によっ
て、本発明のバリア同期における非同期通信完了保証方
法を説明する。 【0045】先ず、プロセッサ P(1) 1,P(2) 2, 〜間
で、非同期にデータを書き込むサブルーチンを、以下の
関数で表す。 writeRemote(プロセッサ番号, リモートアドレス, デー
タ) このとき、該非同期の書き込みをされたプロセッサP(1)
1,P(2) 2,〜が、要求元に書き込みの完了を伝えるサブ
ルーチンを、以下の関数で表す。 writeReply (要求元プロセッサ番号) 又、プロセッサ P(1) 1,P(2) 2, 〜間で、非同期にデー
タを読み出すサブルーチンを、以下の関数で表す。 readRemote (プロセッサ番号, リモートアドレス, ロー
カルアドレス) このとき、該非同期の読み出しをされたプロセッサP(1)
1,P(2) 2,〜が、要求元に読み出しデータを伝えるため
のサブルーチンを、以下の関数で表す。 readReply(要求元プロセッサ番号, 要求元のアドレス,
データ) 以下、上記サブルーチンを使用して、非同期の書き込
み, 読み出しを行う場合のプロセッサの処理例、即ち、
実行するプログラムの例を、各請求項に対応して説明す
る。 【0046】1) 請求項1,7に対応する実施例:書き
込み要求をするプロセッサは、図3(a) に示したプログ
ラムを実行する。即ち、書き込み要求をするプロセッサ
P(1) 1, 〜は、所定のフラグ(flag)を“1”に設定し
て、上記writeRemote(プロセッサ番号, リモートアドレ
ス, データ)を実行することで、該書き込みルーチンが
指示するデータが、相手プロセッサP(2) 2のリモードア
ドレスに送出される。 【0047】書き込みをされるプロセッサP(2) 2, 〜で
は、図3(b) に示した、例えば、割り込みルーチンが起
動され、該データの書き込みが行われる。ここで、"*ア
ドレス= データ" は、上記書き込みの要求元のプロセッ
サP(1) 1, 〜で実行されたプログラムで指定されたリモ
ートアドレスに、該要求元のプロセッサP(1) 1, 〜が指
示するデータが書き込まれたことを示している。 【0048】該書き込み要求をしたプロセッサP(1) 1,
〜での、相手先のプロセッサ(P2) 2, 〜からのリプライ
に対する割り込みルーチンは、図3(c) に示したものに
なる。即ち、該書き込み要求をしたプロセッサP(1) 1,
〜で、図3(c) に示した割り込みルーチンが実行され、
上記フラグ(flag)が“0”にリセットされることで、上
記非同期の書き込み処理が終了する。 【0049】従って、各プロセッサP(1) 1, 〜におい
て、図9,図10で説明したバリア同期命令を実行する
とき、上記フラグ(flag)が“0”であることを認識した
とき、該非同期書き込み通信が終了しているとして、同
期点到着の表示を行うことで、バリア同期がとれること
になる。 【0050】2) 請求項2,8に対応する実施例:書き
込み要求をするプロセッサは、図4(a) に示したプログ
ラムを実行する。即ち、書き込み要求をするプロセッサ
P(1) 1, 〜は、書き込みの要求を行う毎に、、排他制御
(LOCK 命令,UNLOCK 命令による) を行って、所定のカウ
ンタ(w-counter) をカウントアップ(w-counter++;)し
て、相手のプロセッサP(2) 2の、所定のアドレス (リモ
ートアドレス) にデータを書き込む。 【0051】書き込みをされるプロセッサP(2) 2, 〜に
は、図4(b) に示した、例えば、割り込みルーチンが起
動され、該データの書き込みが行われる。該書き込み要
求をしたプロセッサP(1) 1, 〜での、相手先のプロセッ
サP(2) 2, 〜からのリプライに対する割り込みルーチン
は、図4(c) に示したものになる。即ち、該書き込み要
求をしたプロセッサP(1) 1, 〜で、図4(c) に示した割
り込みルーチンが実行され、上記カウンタ(w-counter)
をカウントダウン(w-counter--;)することで、上記非同
期の書き込み処理が終了する。 【0052】従って、各プロセッサP(1), 〜において、
図9,図10で説明したバリア同期命令を実行すると
き、上記カウンタ(w-counter) が“0”であることを認
識したとき、該非同期書き込み通信が終了しているとし
て、同期点到着の表示を行うことで、バリア同期がとれ
ることになる。 【0053】同様にして、図5は、請求項3に対応する
実施例を示している。図4に示した実施例と比較して、
書き込み→読み出しに代わっている点を除いて、同じ動
作となるので、詳細な説明は省略する。 【0054】3) 請求項4,9に対応する実施例:書き
込み要求をするプロセッサは、図6(a) に示したプログ
ラムを実行する。即ち、書き込み要求をするプロセッサ
P(1) 1, 〜は、書き込みの要求を行う毎に、、排他制御
(LOCK 命令,UNLOCK 命令による) を使用することなく、
所定の要求カウンタ(w-request-counter) をカウントア
ップ(w-request-counter++;)して、相手のプロセッサP
(2) 2の、所定のアドレス (リモートアドレス) でデー
タを書き込む。 【0055】書き込みをされるプロセッサP(2) 2, 〜で
は、図6(b) に示した、例えば、割り込みルーチンが起
動され、該データの書き込みが行われる。該書き込み要
求をしたプロセッサP(1) 1, 〜での、相手先のプロセッ
サP(2),〜からのリプライに対する割り込みルーチン
は、図6(c) に示したものになる。即ち、該書き込み要
求をしたプロセッサP(1) 1, 〜で、図6(c) に示した割
り込みルーチンが実行され、所定の応答カウンタ(w-rep
ly-counter) をカウンタアップ(w-reply-counter++;)す
ることで、上記非同期の書き込み処理が終了する。 【0056】従って、各プロセッサP(1) 1, 〜におい
て、図9,図10で説明したバリア同期命令を実行する
とき、上記要求カウンタ(w-request-counter) と、上記
応答カウンタ(w-reply-counter) の値が一致しているこ
とを検出したとき、該非同期書き込み通信が終了してい
るとして、同期点到着の表示を行うことで、バリア同期
がとれることになる。 【0057】同様にして、図7は、請求項5に対応する
実施例を示している。図5に示した実施例と比較して、
書き込み→読み出しに代わっている点を除いて、同じ動
作となるので、詳細な説明は省略する。 【0058】4) 請求項6に対応する実施例:この場
合、書き込みのリプライを、リモート側のプロセッサP
(2) 2に行わせないための書き込み要求関数を用意す
る。 【0059】図8(a) が、該用意した書き込み要求関数
を示している。上記図8(a) に示した、writeRemoteNoR
eplyの関数 (サブルーチン) に対する書き込まれるプロ
セッサP(2) 2, 〜側での割り込みルーチンは、図8(b)
に示したものとなり、書き込み要求元のプロセッサP(1)
1, 〜に対して、応答をしないようにする。 【0060】そして、特定のプロセッサP(1) 1に対し
て、別の特定のプロセッサP(2) 2から複数回、非同期書
き込みを要求した場合で、その書き込みの順序が要求し
たとおりになることが保証されている並列計算機におい
ては、上記の「書き込み要求 writenoReply 」関数を用
いて、複数のデータの書き込みを行い、バリア同期をと
る直前の1回の書き込み要求に対してのみ、通常の応答
を行う「書き込み要求」関数{図6(a) 参照}を用いて
書き込むようにすることで、非同期の書き込みの通信の
回数を減らすことができる。この場合、上記要求カウン
タa,応答カウンタaでのカウント動作は、最後の
1回のみとなる。 【0061】このように、本発明のバリア同期における
通信完了保証方法は、バリア同期機能を備えた分散メモ
リ型並列計算機において、非同期書き込みを要求したプ
ロセッサは、所定のフラグを“1”にして書き込みを行
い、書き込まれたプロセッサから書き込みの終了を知ら
せる通信が戻ってきたとき、上記フラグを“0”にし、
該フラグが“0”であると、該非同期の通信の終了を認
識し、又、書き込み/読み出し要求元のプロセッサに、
カウンタを設け、書き込みの要求を行う毎に、1つカウ
ントアップし、書き込みの終了を伝える通信が戻ってき
たとき、該カウンタをカウントダウンし、“0”である
と、要求した非同期通信が全て終了したと認識し、又、
上記書き込み/読み出し要求元のプロセッサに、要求カ
ウンタと、応答カウンタとを設け、要求元のプロセッサ
で、該要求カウンタと、応答カウンタの値が一致したこ
とで、該非同期通信の終了を認識して、バリア同期の同
期点到着時点とするようにしたところに特徴がある。 【0062】 【発明の効果】以上、詳細に説明したように、本発明の
バリア同期における通信完了保証方法によれば、分散メ
モリ型の並列計算機において、無駄なデータのコピーを
必要としない非同期書き込み, 又は、読み出しによる高
速なプロセッサ間通信を行いながら、特殊なハードウェ
アを用いることなく、且つ、同期のためのオーバヘッド
を少なくして、上記非同期通信の完了したことを保証し
ているので、バリア同期における非同期通信の完了の保
証処理を高速化することができる効果がある。
【図面の簡単な説明】 【図1】本発明の一実施例を模式的に示した図(その
1) 【図2】本発明の一実施例を模式的に示した図(その
2) 【図3】本発明の一実施例を実行ルーチンで示した図
(その1) 【図4】本発明の一実施例を実行ルーチンで示した図
(その2) 【図5】本発明の一実施例を実行ルーチンで示した図
(その3) 【図6】本発明の一実施例を実行ルーチンで示した図
(その4) 【図7】本発明の一実施例を実行ルーチンで示した図
(その5) 【図8】本発明の一実施例を実行ルーチンで示した図
(その6) 【図9】バリア同期を説明する図(その1) 【図10】バリア同期を説明する図(その2) 【図11】従来の非同期通信の完了を保証する方法を説
明する図(その1) 【図12】従来の非同期通信の完了を保証する方法を説
明する図(その2) 【符号の説明】 1 プロセッサ{P(1),P(2),〜} 10 中央処理装
置(CPU) 140 同期プロセッサ選択マスク 141 同期検出回路 142 同期点到着
表示ラッチ 4 同期処理網 (バリア処理網) フラグ a,b カウンタ (書き込み, 読み出し) a,b 要求カウンタ (書き込み, 読み出し) a,b 応答カウンタ (書き込み, 読み出し)
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平4−260962(JP,A) 特開 平4−232559(JP,A) 特開 昭63−654(JP,A) 特開 平5−20284(JP,A) 進藤達也、他3名,AP1000を対象と しVPP Fortran処理系の実現 と評価,情報処理学会研究報告,日本, 社団法人情報処理学会,1993年 8月20 日,第93巻,第72号,(93−HPC− 48),P.9−16 (58)調査した分野(Int.Cl.7,DB名) G06F 15/16 - 15/177 G06F 9/46

Claims (1)

  1. (57)【特許請求の範囲】 【請求項1】バリア同期機能を備えた分散メモリ型並列
    計算機において、直接、相手先のメモリにデータを書き
    込んだり、直接、相手先のメモリからデータを読み出す
    非同期通信の、全ての非同期通信の完了を確認した時点
    で、バリア同期点への到着を指示して、バリア同期を行
    う方法であって、 特定のプロセッサに対して、別の特定のプロセッサか
    ら、複数回の非同期書き込みを要求した場合、その書き
    込みの順序が、要求した通りになることが保証されてい
    る並列計算機において、各プロセッサ毎にバリア同期を
    とる直前に行う要求に対してのみ、該書き込みの終了を
    伝える通信を発生 させることを特徴とするバリア同期に
    おける非同期通信完了保証方法。
JP27586193A 1993-11-05 1993-11-05 バリア同期における非同期通信完了保証方法 Expired - Fee Related JP3407358B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP27586193A JP3407358B2 (ja) 1993-11-05 1993-11-05 バリア同期における非同期通信完了保証方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP27586193A JP3407358B2 (ja) 1993-11-05 1993-11-05 バリア同期における非同期通信完了保証方法

Publications (2)

Publication Number Publication Date
JPH07129526A JPH07129526A (ja) 1995-05-19
JP3407358B2 true JP3407358B2 (ja) 2003-05-19

Family

ID=17561458

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27586193A Expired - Fee Related JP3407358B2 (ja) 1993-11-05 1993-11-05 バリア同期における非同期通信完了保証方法

Country Status (1)

Country Link
JP (1) JP3407358B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01320695A (ja) * 1988-06-21 1989-12-26 Nec Data Terminal Ltd 磁気カードの読取り装置
JP2781742B2 (ja) * 1995-05-30 1998-07-30 甲府日本電気株式会社 並列計算機
US9928564B2 (en) * 2014-06-26 2018-03-27 Intel Corporation Efficient hardware mechanism to ensure shared resource data coherency across draw calls
KR102442431B1 (ko) * 2017-10-31 2022-09-08 아브 이니티오 테크놀로지 엘엘시 상태 업데이트의 일관성에 기초하는 컴퓨팅 클러스터 관리

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
進藤達也、他3名,AP1000を対象としVPP Fortran処理系の実現と評価,情報処理学会研究報告,日本,社団法人情報処理学会,1993年 8月20日,第93巻,第72号,(93−HPC−48),P.9−16

Also Published As

Publication number Publication date
JPH07129526A (ja) 1995-05-19

Similar Documents

Publication Publication Date Title
CA1325286C (en) Method and apparatus for interfacing a system control unit for a multi-processor system with input/output units
US6125368A (en) Fault-tolerant timestamp generation for multi-node parallel databases
KR930000634B1 (ko) 멀티프로세서 컴퓨터 시스템의 프로세서로 시스템 자원에 대한 적절한 액세스를 보장하기 위한 방법 및 장치
US4864496A (en) Bus adapter module for interconnecting busses in a multibus computer system
US4979097A (en) Method and apparatus for interconnecting busses in a multibus computer system
JPS62500549A (ja) マルチプロセッサ・システムにおけるマルチプロセッサの動作を順序付ける方法および装置
JPH0689241A (ja) データ処理システム
JPH077379B2 (ja) 多重処理システムの割込み選択方式
JP3639319B2 (ja) 並列計算機システム,データ転送制御方法および送受信制御装置
EP0364226B1 (en) A system for performing a serializing control of a reference to a main storage
JP3407358B2 (ja) バリア同期における非同期通信完了保証方法
JP2002024195A (ja) 並列処理装置、及び、並列処理方法
US10318424B2 (en) Information processing device
US7120828B2 (en) System and method for in-order queue draining
KR0153487B1 (ko) 장치간의 통신 수행 방법 및 통신 수행 시스템
JP3402566B2 (ja) マルチプロセッサ
JP3421492B2 (ja) バスのスタック監視方式
JPS63305450A (ja) プロセツサ間通信方式
JP3331695B2 (ja) 時刻同期方法
JP2559165B2 (ja) マルチプロセッサシステム
JP2961542B2 (ja) データ処理システム
JPH09146903A (ja) 並列計算機におけるデータ転送制御方法
JPH076049A (ja) 多重プロセッサにおける割込み同期化方式
JPH03163657A (ja) マルチプロセッサシステム
JPH01106158A (ja) プロセツサ間のデータ通信制御方式

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20030212

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080314

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090314

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100314

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100314

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110314

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees