JP4117721B2 - 並列計算機のバリア同期制御方法 - Google Patents
並列計算機のバリア同期制御方法 Download PDFInfo
- Publication number
- JP4117721B2 JP4117721B2 JP2001104255A JP2001104255A JP4117721B2 JP 4117721 B2 JP4117721 B2 JP 4117721B2 JP 2001104255 A JP2001104255 A JP 2001104255A JP 2001104255 A JP2001104255 A JP 2001104255A JP 4117721 B2 JP4117721 B2 JP 4117721B2
- Authority
- JP
- Japan
- Prior art keywords
- barrier synchronization
- axis
- node
- processor
- 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
Links
Images
Landscapes
- Multi Processors (AREA)
Description
【発明の属する技術分野】
本発明は、複数のノードがクロスバネットワーク結合方式で接続され、通信ネットワークによってバリア同期処理を実行する機能を有する並列計算機に関し、特に任意のノードの組み合わせでバリア同期の実施を可能とするバリア同期制御方法に関するものである。
【0002】
【従来の技術】
並列計算機では、複数のノードに割り振られた並列プログラムに対して、それぞれのノードが平行して演算処理を実行し、各ノードは、他のノードで実行されている演算処理がある点まで実行されたことを条件として次の演算処理に進むように、同期処理が行われる。このような同期をとる手法として、バリア同期が一般に用いられる。クロスバネットワークによるバリア同期では、並列プログラムを実行しているそれぞれのノードは、演算処理がプログラム上に定められた同期点に到達すると、バリア同期パケットによって他ノードに同期点への到達を通知する。すべてのノードが同期点への到達を通知することでバリア同期が成立する。
【0003】
従来、並列計算機ネットワーク結合方式としては、例えば特開昭63―124162号公報「並列計算機の相互結合方式」に記載されているハイパークロスバ方式がある。この方式は、多次元直交座標格子点上に配置されたプロセッサノードを、各座標軸方向に完全クロスバスイッチにより結合したものであり、任意のプロセッサノード間が効率良く通信される。
【0004】
【発明が解決しようとする課題】
複数ノードがハイパークロスバネットワーク結合方式等で接続された並列計算機において、並列プログラムが全プロセッサノード群で同一の処理を実施するのではなく、分割して処理を実施し、分割したノード群の単位でバリア同期を実施する場合がある。しかしながら、従来方式では、バリア同期機構の制約により、全プロセッサノードもしくは矩形のノード群単位でバリア同期を実施する必要があり、任意に分割したノード群の単位で同時にバリア同期処理を実施することができなかった。
【0005】
本発明の目的は、複数のプロラッサノードがクロスバネットワークで接続された並列計算機において、並列プログラムを分割したノード群において実施する場合に、ノード群の形状を矩形以外にも適用可能なバリア同期制御方法を提供することにある。
【0006】
本発明は、並列計算機を構成する各プロセッサノードが、自ノードと同一クロスバに接続されるノード内のバリア同期に参加するノード集合をX,Y軸毎に記憶する第1記憶手段と、自ノードと同一クロスバに接続されるノード内のバリア同期に参加するノード集合のバリア同期状態をX,Y軸毎に記憶する第2記憶手段と、バリア同期に参加するノード集合形状が矩形であるか否かを記憶する第3記憶手段とを備える。
バリア同期に参加する各プロセッサノードは、あらかじめ、前記第1記憶手段に自ノードと同一クロスバに接続されるノード内のバリア同期に参加するノード集合をX,Y軸毎に設定し、前記第3記憶手段にバリア同期に参加するノード集合形状が矩形である否か設定する。そして、バリア同期が起動されると、バリア同期パケットを、X(又はY)軸クロスバスイッチからX(又はY)軸方向のバリア同期に参加するノード集合に送信するとともに、該X(又はY)軸クロスバスイッチからバリア同期パケットを受信し、該受信したバリア同期パケットを前記第2記憶手段に記憶し、該第2記憶手段のX(又はY)軸の記憶値と前記第1記憶手段のX(又はY)軸の設定値とを比較して、X(又はY)軸方向のバリア同期が成立したか判定する。前記X(又はY)軸方向のバリア同期が成立したなら、次に、バリア同期パケットを、Y(又はX)軸クロスバスイッチからY(又はX)軸方向のバリア同期に参加するノード集合に送信するとともに、該Y(又はX)軸クロスバスイッチからバリア同期パケットを受信し、該受信したバリア同期パケットを前記第2記憶手段に記憶し、該第2記憶手段のY(又はX)軸の記憶値と前記第1記憶手段のY(又はX)軸の設定値とを比較して、Y(又はX)軸方向のバリア同期が成立したか判定する。Y(又はX)軸方向のバリア同期が成立したなら、前記第3記憶手段を参照し、バリア同期に参加するノード集合形状が矩形の場合には、バリア同期に参加している全プロセッサノードが同期点に到達したとする。一方、ノード集合形状が矩形でない場合には、再度、X(又はY)軸方向、Y(又はX)軸方向のバリア同期処理を実施し、Y(又はX)軸方向のバリア同期が成立した時点で、バリア同期に参加している全プロセッサノードが同期点に到達したとする。
【0007】
【発明の実施の形態】
以下、本発明の一実施例を図面を用いて具体的に説明する。
図2は、ハイパークロスバ方式で結合されたネットワークの概念図である。システム全体は、X軸クロスバスイッチ1−1〜1−3、Y軸クロスバスイッチ2−1〜2−3、プロセッサノード3の集合として構成される。図2では、各々、X軸方向に3プロセッサノード、Y軸方向に3プロセッサノードを配置し、これらのノードをX軸クロスバスイッチ1−1〜1−3とY軸クロスバスイッチ2−1〜2−3によってハイパークロスバ方式で結合したネットワークが構成されている。各ノード3には座標が割り当てられていて、図2の例では、ノード(1,1)の座標からノード(3,3)の座標までが識別されている。
【0008】
プロセッサノード(1,1)、(2,1)、(3,1)は、X軸クロスバスイッチ1−1に接続され、プロセッサノード(1,2)、(2,2)、(3,2)は、X軸クロスバスイッチ1−2に接続され、プロセッサノード(1,3)、
(2,3)、(3,3)は、X軸クロスバスイッチ1−3に接続されている。また、プロセッサノード(1,1)、(1,2)、(1,3)は、Y軸クロスバスイッチ2−1に接続され、プロセッサノード(2,1)、(2,2)、(2,3)は、Y軸クロスバスイッチ2−2に接続され、プロセッサノード(3,1)、(3,2)、(3,3)は、Y軸クロスバスイッチ2−3に接続されている。
【0009】
図1は、本発明による並列計算機の一実施例のブロック図であり、特に一つのX軸クロスバスイッチ1と一つのY軸クロスバスイッチ2に接続される一つのプロセッサノード3の構成例を示す。図1中、プロセッサノード3は、命令プロセサ110と、メモリ111と、メモリ制御ユニット112と、さらに通信ユニット113を具備している。ここで、通信ユニット113は、X軸あるいはY軸に向けて送付されるバリア同期パケットデータを生成するバリア同期パケット生成回路130と、X軸クロスバスイッチ1、Y軸クロスバスイッチ2とデータ授受を行うための入出力ポート140と、バリア同期の設定の保持及び状態の制御を行なうバリア同期管理回路150からなる。バリア同期管理回路150は、バリア同期参加形状設定記憶手段(第1記憶手段)4と、矩形分割モード設定記憶手段(第3記憶手段)5と、バリア同期状態記憶手段(第2記憶手段)6を有する。
【0010】
バリア同期参加形状設定記憶手段4には、自ノードと同一クロスバスイッチ1,2に接続されるノード内の各接続軸毎のバリア同期に参加するノードの集合が設定記憶される。矩形分割モード設定記憶手段5には、バリア同期に参加するノードの集合形状が矩形であるか否かを示すフラグ(ビット)が設定記憶される。バリア同期状態記憶手段6は、ノード3と同一クロスバスイッチ1,2に接続されるノードのバリア同期状態を各接続軸毎に記憶する。これら記憶手段4,5,6については後述する。
【0011】
本実施例の各プロセッサノード3内のプロセッサ110の動作は、メモリ111上のプログラムを読み出し実行する、従来のマイクロプロセッサの動作と同様である。なお、図1ではプロセッサ110が1台であるが、複数でも構わない。
【0012】
バリア同期は、プロセッサ110がメモリ制御ユニット112を経由してバリア同期管理回路150に命令を書き込むことにより起動される。このバリア同期を起動する前に、バリア同期に参加する全てのプロセッサノード3毎に、バリア同期参加形状設定記憶手段4および矩形分割モード設定記憶手段5に、プロセッサ110がメモリ制御ユニット112を経由して値を設定する。
【0013】
バリア同期が起動されると、バリア同期パケット生成回路130は、バリア同期管理回路150からの宛先情報等をもとにバリア同期パケットを生成する。この生成されたバリア同期パケットが、入出力ポート140を介し、まず、X軸クロスバスイッチ1に送付される。同様に他のノードでもバリア同期が起動され、X軸クロスバスイッチ1に対してバリア同期パケットが送付される。バリア同期パケットを受け取ったX軸クロスバスイッチ1は、自クロスバスイッチに接続するノードの内、バリア同期パケットの中に含まれる宛先ノードに対してのみ、そのバリア同期パケットを送付する。各プロセッサノードは、X軸クロスバスイッチ1から送付されたバリア同期パケットを入出力ポート140で受信し、バリア同期管理回路150において、バリア同期状態記憶手段6に記憶し、これをバリア同期参加形状設定記憶手段4の設定値と比較することで、自ノードを含めてX軸クロスバスイッチ1に接続されるすべてのノードの内、バリア同期参加形状設定記憶手段4に設定された、つまりバリア同期に参加している全てのノードからバリア同期パケットが送付されてくるのを監視する。それらのバリア同期パケットをすべて受信することでX軸方向の同期が成立し、バリア同期管理回路150は、X軸同期の成立を検出する。
【0014】
X軸同期が検出されると、バリア同期管理回路150はバリア同期パケット生成回路130に指示し、バリア同期パケット生成回路130は、次に入出力ポート140を介し、Y軸クロスバスイッチ2に対してバリア同期パケットを送付する。他のノードに関しても同様である。各プロセッサノードは、バリア同期管理回路150において、同様にY軸方向の同期の成立を監視する。Y軸方向の同期が成立したプロセッサノードは、矩形分割モード設定記憶手段5を参照する。ここで、矩形分割モード設定記憶手段5が、バリア同期に参照するプロセッサ群の形状が矩形で有効と設定されている場合は、既にそのプロセッサノードが接続するX軸に関して同期が成立しているため、バリア同期に参加している全ノードが同じ同期点に到達したことを検出する。
【0015】
バリア同期に参加するプロセッサ群の形状が矩形でなく、矩形分割モード設定記憶手段5が無効と設定されていた場合は、バリア同期管理回路150は、バリア同期パケット生成回路130に指示して、再度X軸方向の同期、Y軸方向の同期処理を実施し、Y軸方向の同期が成立した時点でバリア同期に参加している全ノードが同じ同期点に到達したことを検出する。バリア同期成立を検出したバリア同期管理回路150は、メモリ制御ユニット112を介してプロセッサ(CPU)110にバリア同期成立を通知する。
【0016】
次に、図1の構成において、プロセッサノード3におけるバリア同期の起動に関して、図3を用いて更に詳細に説明する。
図3中、図1と同一部分には同一の符号を付している。131はバリア同期パケットデータ、132はノード座標記憶手段、133はセレクタ、153,155はそれぞれバリア同期参加形状設定記憶手段4を構成するX軸バリア同期参加記憶手段とY軸バリア同期参加記憶手段、156は軸ID決定回路、157はセレクタである。
【0017】
矩形分割モード設定記憶手段5の値、及び、バリア同期参加形状設定記憶手段4のX軸バリア同期参加記憶手段153とY軸バリア同期参加記憶手段155の値はプログラム実行前にプロセッサ110によって予め設定される。矩形分割モード設定記憶手段5は、バリア同期に参加するノード群の形状が矩形の場合、値は0、矩形以外は1である。X軸バリア同期参加記憶手段153はnビット(nはX軸方向のノード数)で構成され、それぞれのビット位置はノードのX座標に対応し、バリア同期に参加しているプロセッサノードのビット位置を1とし、他は0に設定する。Y軸バリア同期参加記憶手段155は同様にnビット(nはY軸方向のノード数)で構成され、それぞれのビット位置はノードのY座標に対応し、バリア同期に参加しているプロセッサノードのビット位置を1とし、他は0に設定する。
【0018】
プログラムを実行しているプロセッサ110は、プログラム上に予め定められた同期点に到達したとき、バリア同期を起動するためにバリア同期管理回路150に起動を通知し、バリア同期待ち状態に入る。バリア同期管理回路150は、バリア同期の起動を軸ID決定回路156に通知する。軸ID決定回路156では、同期待ちのクロスバがX軸かY軸か及びその回数を識別するための情報を決定する。本実施例では、同期待ちのクロスバがX軸方向でかつ1回目のX軸同期であれば軸IDは00、Y軸方向でかつ1回目のY軸同期であれば軸IDは01、X軸方向でかつ2回目のX軸同期であれば軸IDは10、Y軸方向でかつ2回目のY軸同期であれば軸IDは11とする。したがってバリア同期が起動されたときは軸IDの値は00である。
【0019】
バリア同期パケット生成回路130内のノード座標記憶手段132はXフィールドとYフィールドを持ち、自ノードの座標を記憶している。ノード座標記憶手段132の値はプログラム実行前にプロセッサ110によって予め設定される。例えば、図2のノード(1、1)の場合、ノード座標記憶手段132のXフィールドの値は1、Yフィールドの値は1である。
【0020】
バリア同期パケットデータ131は軸IDフィールド、宛先フィールド、座標フィールドを持つ。軸IDフィールドには軸ID決定回路156で決定された値が格納される。座標フィールドには、ノード座標記憶手段132のXフィールドの値またはYフィールドの値が軸ID決定回路156の値によってセレクタ133で選択されて格納される。セレクタ133は、軸ID決定回路156の値が00または10の場合はXフィールドの値、01または11の場合はYフィールドの値を選択する。宛先フィールドには、X軸バリア同期参加記憶手段153の値またはY軸バリア同期参加記憶手段155の値がセレクタ157で選択されて格納される。セレクタ157は、軸ID決定回路156の値が00または10の場合は、X軸バリア同期参加記憶手段153の値、01または11の場合は、Y軸バリア同期参加記憶手段155の値を選択する。バリア同期パケットデータ131の各フィールドに値が格納されると、入出力ポート140を介して、バリア同期パケットが、X軸方向クロスバ1あるいはY軸方向クロスバス2に送付される。
【0021】
次に、図1の構成において、プロセッサノード3におけるバリア同期パケットを受信し、バリア同期成立の検出について、図4を用いて更に詳細に説明する。図4中、図1と同一部分には同一の符号を付している。151はバリア同期パケット受信データ、152および154はそれぞれバリア同期状態記憶手段6を構成するX軸バリア同期状態記憶手段とY軸バリア状態記憶手段、158および159は比較回路である。また、153および155はそれぞれ図3で示したバリア同期参加形状設定記憶手段4を構成するX軸バリア同期参加記憶手段とY軸バリア同期参加記憶手段、156は軸ID決定回路である。
【0022】
バリア同期パケット受信データ151は軸IDフィールド、宛先座標フィールドを持ち、それぞれのフィールドには、入出力ポート140を介してX軸方向クロスバ1またはY軸方向クロスバ2から受信した送信元バリア同期パケットのそれぞれ対応するフィールドのデータが格納される。図3で説明したように、軸IDフィールドは、本実施例では同期待ちのクロスバがX軸方向でかつ1回目のX軸同期であれば00、Y軸方向でかつ1回目のY軸同期であれば01、X軸方向でかつ2回目のX軸同期であれば10、Y軸方向でかつ2回目のY軸同期であれば11である。また、座標フィールドは、バリア同期パケット受信データの送信ノードのXあるいはY座標をあらわす。
【0023】
X軸バリア同期状態記憶手段152はnビット(X軸方向のノード数)で構成され、それぞれのビット位置はノードのX座標に対応する。なお、プログラム開始時には、X軸バリア同期状態記憶手段152のビット列の初期値はオール0がセットされている。バリア同期パケット受信データ151の軸IDフィールドの値が00または10の場合、バリア同期パケット受信データ151の座標フィールドの値に対応するX軸バリア同期状態記憶手段152のビット位置の値が1にセットされる。このX軸バリア同期状態記憶手段152のビット列の値とX軸バリア同期参加状態記憶手段153の値を比較回路158において比較し、一致と判定した時、X軸に関して同期が成立したことを表している。X軸バリア同期状態記憶手段152はX軸に関して同期が成立した時点でオール0に再セットされて、次の同期処理の実施にそなえる。
【0024】
Y軸バリア同期状態記憶手段154も同様にnビット(Y軸方向のノード数)で構成され、それぞれのビット位置はY座標に対応し、ビット列の初期値はオール0である。バリア同期パケット受信データ151の軸IDフィールドの値が01または11の場合、バリア同期パケット受信データ151の座標フィールドの値に対応するY軸バリア同期状態記憶手段154のビット位置の値が1にセットされる。このY軸バリア同期状態記憶手段154のビット列の値とY軸バリア同期参加状態記憶手段155の値を比較回路159において比較し、一致と判定した時、Y軸に関して同期が成立したことを表している。Y軸バリア同期状態記憶手段154も、同様にY軸に関して同期が成立した時点でオール0に再セットされて、次の同期処理の実施にそなえる。
【0025】
Y軸バリア同期状態記憶手段154のビット列の値とY軸バリア同期参加状態記憶手段155の値が比較回路159において一致と判定され、矩形分割モード設定記憶手段5が矩形有効を意味する値0であり、軸ID決定回路156の値が01である場合、バリア同期に参照したプロセッサノードが全て同期点に致達したことを意味する。矩形分割モード設定記憶手段5が矩形無効を意味する値1の場合は、再度バリア同期パケットを送受信して、X軸方向の同期、Y軸方向の同期処理を実施する。そして、Y軸バリア同期状態記憶手段154のビット列の値とバリア同期参加状態記憶手段155の値が比較回路159において一致と判定され、軸ID決定回路156の値が11になった場合、バリア同期に参加したプロセッサノードが全て同期点に到達したことを意味する。
【0026】
軸ID決定回路156は、軸IDの状態と、矩形分割モード設定記憶手段5の値と、比較回路159の出力とにより、バリア同期に参加したプロセッサノードが全て同期点に到達したことを検出すると、メモリ制御ユニット112を介してプロセッサ110にバリア同期成立を通知する。
【0027】
次に、図5から図16を使って具体的な動作例について説明する。なお、簡単のために、以下の説明では並列計算機の構成を図2に示した3×3(n=3)とし、バリア同期に参加するプロセッサノードを3−1の(1,1)、3−2(2,1)、3−3の(3,1)、3−4の(1,2)とする。また、プロセッサノード3−1、3−2、3−3、3−4の順にバリア同期を実施するものとする。なお、実際にはバリア同期は順不同で実施される。
【0028】
まず、バリア同期を起動するに先立ち、プロセッサノード3−1、3−2、3−3、3−4において、図5に示すように、X軸バリア同期参加記憶手段153、Y軸バリア同期参加記憶手段155、矩形分割モード設定記憶手段5にそれぞれ値を設定する。ここで、矩形分割モード設定記憶手段5の値が1は、バリア同期に参加するプロセッサノード3−1,3−2,3−3,3−4の集合形状が矩形でないことを示している。軸ID決定回路156の軸IDの初期値は00である。なお、X軸バリア同期状態記憶手段152とY軸バリア同期状態記憶手段154の初期値はオール0である。
【0029】
プロセッサノード3−1がバリア同期を起動すると、プロセッサノード3−1は、X軸方向クロスバ1−1へ、プロセッサノード3−1、3−2、3−3宛にバリア同期パケットを送信し、プロセッサノード3−1,3−2,3−3は、図6のバリア同期パケット受信データ151(軸ID=00、X座宛先=111、X座標=1)に示すバリア同期パケットを受信する。バリア同期パケット受信データ151の座標フィールド(X座標)の値が1であるので、図6に示すように、プロセッサノード3−1、3−2、3−3では、X軸バリア同期状態記憶手段152のビット1の値が1にセットされる。
【0030】
次に、プロセッサノード3−2がバリア同期を起動すると、プロセッサノード3−2は、X軸方向クロスバ1−1へ、プロセッサノード3−1、3−2、3−3宛にバリア同期パケットを送信し、プロセッサノード3−1,3−2,3−3は、図7のバリア同期パケット受信データ151(軸ID=00、X宛先=111、X座標=2)に示すバリア同期パケットを受信する。バリア同期パケット受信データ151の座標フィールド(X座標)の値が2であるので、図7に示すように、プロセッサノード3−1、3−2、3−3では、X軸バリア同期状態記憶手段152のビット2の値が1にセットされる。
【0031】
次にプロセッサノード3−3がバリア同期を起動すると、プロセッサノード3−3は、X軸方向クロスバ1−1へ、プロセッサノード3−1、3−2、3−3宛にバリア同期パケットを送信し、プロセッサノード3−1、3−2、3−3は図8のバリア同期パケット受信データ151(軸ID=00、X宛先=111、X座標=3)に示すバリア同期パケットを受信する。バリア同期パケット受信データ151の座標フィールド(X座標)の値が3であるので、プロセッサノード3−1、3−2、3−3ではX軸バリア同期状態記憶手段152のビット3の値が1にセットされる。
【0032】
この時、プロセッサノード3−1、3−2、3−3は、図8に示すようにX軸バリア同期状態記憶手段152のビット列の値とX軸バリア同期参加記憶手段153のビット列の値が一致となり、X軸に関して同期が成立したことを表している。
【0033】
図8の状態の後、X軸の同期成立を受けて、プロセッサノード3−1、3−2、3−3では、Y軸に向けて送付されるバリア同期パケットデータが生成される。この時、プロセッサノード3−1,3−2、3−3の軸ID決定回路156では、軸IDの値が01となり、X軸バリア同期状態記憶手段152はオール0になる。
【0034】
バリア同期パケットは、Y軸に向けてプロセッサノード3−1からプロセッサノード3−1と3−4宛に、プロセッサノード3−2から自プロセッサノード3−2宛に、プロセッサノード3−3から同じく自プロセッサノード3−3宛に送出される。
【0035】
プロセッサノード3−1がY軸方向クロスバ2−1へ、プロセッサノード3−1、3−4宛にバリア同期パケットを送出すると、プロセッサノード3−1、3−4は、図9のバリア同期パケット受信データ151(軸ID=01,Y宛先=110,Y座標=1)に示すバリア同期パケットを受信する。プロセッサノード3−2がY軸方向クロスバ2−2へ、プロセットノード3−2宛にバリア同期パケットを送出すると、プロセッサノード3−2は、図9のバリア同期パケット受信データ151(軸ID=01,Y宛先=100,Y座標=1)に示すバリア同期パケットを受信する。同様に、プロセッサノード3−3がY軸方向クロスバ2−3へ、プロセットノード3−3宛にバリア同期パケットを送出すると、プロセッサノード3−3は、図9のバリア同期パケット受信データ151(軸ID=01,Y宛先=100,Y座標=1)に示すバリア同期パケットを受信する。各バリア同期パケット受信データ151の座標フィールド(Y座標)の値が1であるので、図9に示すように、プロセッサノード3−1、3−2、3−3、3−4のY軸バリア同期状態記憶手段154のビット1の値が1にセットされる。
【0036】
この時、プロセッサノード3−2、3−3は、図9に示すように、Y軸バリア同期状態記憶手段154のビット列の値とY軸バリア同期参加記憶手段155のビット列の値が一致となり、Y軸に関して同期が成立したことを表している。ただし、矩形モード設定記憶手段5が矩形無効を示す値1であるため、プロセッサノード3−2、3−3では、再びX軸に向けて送付されるバリア同期パケットデータを生成し送信する。この時、プロセッサ3−2,3−3の軸ID決定回路156では、軸IDの値が10となり、Y軸バリア同期状態記憶手段154はオール0となる。
【0037】
バリア同期パケットは、X軸に向けてプロセッサノード3−2からプロセッサノード3−1、3−2、3−3宛に、プロセッサノード3−3から同じくプロセッサノード3−1、3−2、3−3宛に送信される。ここでは説明の便宜上、プロセッサノード3−2、3−3が送信したパケットの順で到着したとして説明を続ける。
【0038】
プロセッサノード3−2がX軸方向クロスバ1−1へ、プロセッサノード3−1、3−2、3−3宛にバリア同期パケットを送信すると、プロセッサノード3−1、3−2、3−3は、図10のバリア同期パケット受信データ151(軸ID=10、X宛先=111、X座標=2)に示すリア同期パケットを受信する。バリア同期パケット受信データ151の座標フィールド(X座標)の値が2であるので、図10に示すように、プロセッサノード3−1,3−2,3−3では、X軸バリア同期状態記憶手段152のビット2の値が1にセットされる。
【0039】
プロセッサノード3−3がX軸方向クロスバ1−1へ、プロセッサノード3−1、3−2、3−3宛にバリア同期パケットを送信すると、プロセッサノード3−1、3−2、3−3は、図11のバリア同期パケット受信データ151(軸ID=10、X宛先=111、X座標=3)に示すバリア同期パケットを受信する。バリア同期パケット受信データ151の座標フィールド(X座標)の値が3であるので、図11に示すように、プロセッサノード3−1,3−2,3−3では、X軸バリア同期状態記憶手段152のビット3の値が1にセットされる。
【0040】
一方、プロセッサノード3−4がバリア同期を起動すると、プロセッサノード3−4はX軸クロスバ1−2へ、自プロセッサノード3−4宛にバリア同期パケットを送信し、プロセッサノード3−4は、図12のバリア同期パケット受信データ151(軸ID=00、X宛先=100、X座標=1)に示すバリア同期パケットを受信する。バリア同期パケット受信データ151の座標フィールド(X座標)の値が1であるので、図12に示すように、プロセッサノード3−4では、X軸バリア同期状態記憶手段152のビット1の値が1にセットされる。
【0041】
この時、プロセッサノード3−4は、図12に示すように、X軸バリア同期状態記憶手段152のビット列の値とX軸バリア同期参加記憶手段153のビット列の値が一致となり、X軸に関して同期が成立したことを表している。
【0042】
図12の状態の後、X軸の同期成立を受けて、プロセッサノード3−4では、Y軸に向けて送付されるバリア同期パケットデータが生成される。この時、プロセッサノード3−4の軸ID決定回路156では軸IDの値が01、X軸バリア同期状態記憶手段152はオール0となる。
【0043】
バリア同期パケットは、プロセッサノード3−4からY軸方向クロスバ2−1へ、プロセッサノード3−1と3−4宛に送信され、プロセッサノード3−1、3−4は、図13のバリア同期パケット受信データ151(軸ID=01、Y宛先=110、Y座標=2)に示すバリア同期パケットを受信する。バリア同期パケット受信データ151の座標フィールド(Y座標)の値が2であるので、図13に示すように、プロセッサノード3−1,3−4のY軸バリア同期状態記憶手段154のビット2の値が1にセットされる。
【0044】
この時、プロセッサノード3−1、3−4は、図13に示すように、Y軸バリア同期状態記憶手段154のビット列の値とY軸バリア同期参加記憶手段155のビット列の値が一致となり、Y軸に関して同期が成立したことを表している。ただし、矩形モード設定記憶手段5が矩形無効を示す値1であり、軸ID決定回路156は軸IDの値が01であるため、2回目のX軸バリア同期が起動され、プロセッサノード3−1、3−4では、X軸に向けてバリア同期パケットデータが生成される。この時、プロセッサノード3−1,3−4の軸ID決定回路156では軸IDの値が10、Y軸バリア同期状態記憶手段154はオール0となる。
【0045】
バリア同期パケットは、X軸に向けてプロセッサノード3−1からプロセッサノード3−1、3−2、3−3宛に、プロセッサノード3−4からプロセッサノード3−4宛に送信される。
【0046】
プロセッサノード3−1がX軸方向クロスバ1−1へ、プロセッサノード3−1,3−2,3−3宛にバリア同期パケットを送信すると、プロセッサノード3−1,3−2,3−3は、図14のバリア同期パケット受信データ151(軸ID=10、X宛先=111、X座標=1)に示すバリア同期パケットを受信する。また、プロセッサノード3−4がX軸方向クロスバ1−2へ、プロセッサノード3−4宛にバリア同期パケットを送信すると、プロセッサノード3−4は、図14のバリア同期パケット受信データ151(軸ID=10、X宛先=100、X座標=1)に示すバリア同期パケットを受信する。各バリア同期パケット受信データ151の座標フィールドの値が1であるので、図14に示すように、プロセッサノード3−1,3−2,3−3,3−4のX軸バリア同期状態記憶手段152のビット1の値が1にセットされる。
【0047】
この時、プロセッサノード3−1,3−2,3−3は、図14に示すように、X軸バリア同期状態記憶手段152のビット列の値とX軸バリア同期参加記憶手段153のビット列の値が一致となり、X軸に関して同期が成立したことを表している。X軸の同期成立を受けて、プロセッサノード3−1,3−2,3−3ではY軸に向けて送付されるバリア同期パケットデータが生成される。この時、プロセッサノード3−1,3−2,3−3の軸ID決定回路156では軸IDの値が11となり、X軸バリア同期状態記憶手段152はオール0となる。
【0048】
上記と同時期に、プロセッサノード3−4でも、図14に示すように、X軸バリア同期状態記憶手段152のビット列の値とX軸バリア同期参加記憶手段153のビット列の値が一致となり、X軸に関して同期が成立したことを表している。X軸の同期成立を受けて、プロセッサノード3−4でも、Y軸に向けて送付されるバリア同期パケットデータが生成される。この時、プロセッサノード3−4の軸ID決定回路156では軸IDの値が11、X軸バリア同期状態記憶手段152はオール0となる。
【0049】
バリア同期パケットは、Y軸に向けてプロセッサノード3−1からプロセッサノード3−1と3−4宛に、プロセッサノード3−2から自プロセッサノード3−2宛に、プロセッサノード3−3から自プロセッサノード3−3宛に、またプロセッサノード3−4からプロセッサノード3−1と3−4宛に送信される。
【0050】
図15に示すように、プロセッサノード3−1からプロセッサノード3−1と3−4宛てのバリア同期パケットにより、プロセッサノード3−1と3−4のY軸バリア同期状態記憶手段154のビット1の値が1にセットされ、プロセッサノード3−2から自プロセッサノード3−2宛てのバリア同期パケットにより、プロセッサノード3−2のY軸バリア同期状態記憶手段154のビット1の値が1にセットされ、プロセッサノード3−3から自プロセッサノード3−3宛てのバリア同期パケットにより、プロセッサノード3−3のY軸バリア同期状態記憶手段154のビット1の値が1にセットされる。
【0051】
続いて、図16に示すように、プロセッサノード3−4からプロセッサノード3−1と3−4宛てのバリア同期パケットにより、プロセッサノード3−1と3−4のY軸バリア同期状態記憶手段154のビット2の値が1にセットされる。
【0052】
図16は、バリア同期に参加したプロセッサノード3−1,3−2,3−3,3−4に関して、Y軸バリア同期状態記憶手段154のビット列の値とY軸バリア同期参加記憶手段155のビット列の値が一致となり、Y軸に関して同期が成立したことを表している。このY軸の同期成立を受け、軸ID決定回路156は、軸IDの値が11であるため、プロセッサに対してバリア同期の成立を通知する。
【0053】
以上のようにして、バリア同期に参加したプロセッサノード3−1,3−2,3−3,3−4のすべてのノードが同一の同期点に達したことが通知される。なお、例えばバリア同期に参加するプロセッサノードを3−1,3−2,3−3とし、矩形モード設定記憶手段5を矩形有効を示す値の0とすると、図9の時点でバリア同期に参加したプロセッサノード3−1,3−2,3−3がすべて同一の同期点に達したことが通知されることになる。
【0054】
以上、本発明の実施例について説明したが、本発明はこれに限定されるものでないことは云うまでもない。例えば、実施例では、バリア同期が起動されると、バリア同期パケットを、まずX軸に向けて送付するとしたが、Y軸から送付することでもよい。また、並列計算機の構成は3×3である必要はなく、一般にM×N(M,Nは2以上の整数)の構成に適用可能である。
【0055】
【発明の効果】
以上説明したように、本発明の並列計算機によれば、バリア同期を実施する場合、全ノードをバリア同期に参加させる必要がなくなり、また、矩形に存在するノード以外の形状を選択して実施することが可能になる。
【図面の簡単な説明】
【図1】本発明が適用される並列計算機の一つのプロセッサノードの構成例を示すブロック図である。
【図2】ハイパークロスバ方式で結合したネットワークの概念図である。
【図3】図1の実施例におけるバリア同期パケット送信に関係する構成の詳細ブロック図である。
【図4】図1の実施例におけるバリア同期パケット受信に関係する構成の詳細ブロック図である。
【図5】実施例の具体的動作説明図である。
【図6】実施例の具体的動作説明図である。
【図7】実施例の具体的動作説明図である。
【図8】実施例の具体的動作説明図である。
【図9】実施例の具体的動作説明図である。
【図10】実施例の具体的動作説明図である。
【図11】実施例の具体的動作説明図である。
【図12】実施例の具体的動作説明図である。
【図13】実施例の具体的動作説明図である。
【図14】実施例の具体的動作説明図である。
【図15】実施例の具体的動作説明図である。
【図16】実施例の具体的動作説明図である。
【符号の説明】
1 X軸方向クロスバ
2 Y軸方向クロスバ
3 プロセッサノード
4 バリア同期参加形状記憶手段
5 矩形分割モード記憶手段
6 バリア同期状態記憶手段
110 プロセッサ
111 メモリ
112 メモリ制御ユニット
113 通信ユニット
130 バリアパケット生成回路
140 入出力ポート
150 バリア同期管理回路
Claims (1)
- 複数のプロセッサノードがX及びY軸のクロスバネットワークで接続された並列計算機におけるバリア同期制御方法であって、
各プロセッサノードは、自ノードと同一クロスバに接続されるノード内のバリア同期に参加するノード集合をX,Y軸毎に記憶する第1記憶手段と、自ノードと同一クロスバに接続されるノード内のバリア同期に参加するノード集合のバリア同期状態をX,Y軸毎に記憶する第2記憶手段と、バリア同期に参加するノード集合形状が矩形であるか否かを記憶する第3記憶手段とを具備し、
バリア同期に参加する各プロセッサノードは、
(1)前記第1記憶手段に自ノードと同一クロスバに接続されるノード内のバリア同期に参加するノード集合をX,Y軸毎に設定し、前記第3記憶手段にバリア同期に参加するノード集合形状が矩形である否か設定し、
バリア同期が起動されると、
(2)バリア同期パケットを、X(又はY)軸クロスバスイッチからX(又はY)軸方向のバリア同期に参加するノード集合に送信するとともに、該X(又はY)軸クロスバスイッチからバリア同期パケットを受信し、該受信したバリア同期パケットを前記第2記憶手段に記憶し、該第2記憶手段のX(又はY)軸の記憶値と前記第1記憶手段のX(又はY)軸の設定値とを比較して、X(又はY)軸方向のバリア同期が成立したか判定し、
(3)前記X(又はY)軸方向のバリア同期が成立したなら、次に、バリア同期パケットを、Y(又はX)軸クロスバスイッチからY(又はX)軸方向のバリア同期に参加するノード集合に送信するとともに、該Y(又はX)軸クロスバスイッチからバリア同期パケットを受信し、該受信したバリア同期パケットを前記第2記憶手段に記憶し、該第2記憶手段のY(又はX)軸の記憶値と前記第1記憶手段のY(又はX)軸の設定値とを比較して、Y(又はX)軸方向のバリア同期が成立したか判定し、
(4)前記Y(又はX)軸方向のバリア同期が成立したなら、前記第3記憶手段を参照し、バリア同期に参加するノード集合形状が矩形の場合には、バリア同期に参加している全プロセッサノードが同期点に到達したとし、
(5)前記ノード集合形状が矩形でない場合には、再度、前記(2)、(3)のX(又はY)軸方向、Y(又はX)軸方向のバリア同期処理を実施し、Y(又はX)軸方向のバリア同期が成立した時点で、バリア同期に参加している全プロセッサノードが同期点に到達したとする、
ことを特徴とする並列計算機のバリア同期制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001104255A JP4117721B2 (ja) | 2001-04-03 | 2001-04-03 | 並列計算機のバリア同期制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001104255A JP4117721B2 (ja) | 2001-04-03 | 2001-04-03 | 並列計算機のバリア同期制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002297560A JP2002297560A (ja) | 2002-10-11 |
JP4117721B2 true JP4117721B2 (ja) | 2008-07-16 |
Family
ID=18957142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001104255A Expired - Fee Related JP4117721B2 (ja) | 2001-04-03 | 2001-04-03 | 並列計算機のバリア同期制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4117721B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4894391B2 (ja) * | 2006-07-25 | 2012-03-14 | 横河電機株式会社 | 制御装置 |
WO2011087076A1 (ja) * | 2010-01-14 | 2011-07-21 | 日本電気株式会社 | 並列計算機システム、同期方法、及びプログラム |
-
2001
- 2001-04-03 JP JP2001104255A patent/JP4117721B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002297560A (ja) | 2002-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11929919B2 (en) | System and method for facilitating self-managing reduction engines | |
JP3532037B2 (ja) | 並列計算機 | |
US6138185A (en) | High performance crossbar switch | |
US8654798B2 (en) | Barrier synchronization apparatus, barrier synchronization system, and barrier synchronization method | |
JPH0738639B2 (ja) | 通信交換システム | |
WO2002023814A2 (en) | Reliable multicast using merged acknowledgments | |
Stunkel et al. | The SP2 communication subsystem | |
US10091288B2 (en) | Ordered execution of tasks | |
JP2003258934A (ja) | 通信制御回路 | |
JP4117721B2 (ja) | 並列計算機のバリア同期制御方法 | |
US20040030814A1 (en) | Reflective mirror for lithographic exposure and production method | |
JPH06303234A (ja) | 通信ネットワーク及び送信元装置から目標ノードへの接続経路を確立する方法 | |
JP2000224260A (ja) | 通信制御装置 | |
KR100431206B1 (ko) | 고속 라우터에서 분산 포워딩을 위한 테이블 관리 방법 | |
CN113346983A (zh) | 具有镜像冗余的epa设备和epa系统 | |
JPH04260962A (ja) | 並列計算機における同期制御方式 | |
EP1552402B1 (en) | Integrated circuit and method for sending requests | |
JP2960454B2 (ja) | 並列プロセッサのプロセッサ間データ転送装置 | |
EP1187422B1 (en) | Method and device for tunable packet arbitration | |
Sun et al. | Barrier synchronization on wormhole-routed networks | |
CN117135103B (zh) | 片上网络的路由方法、装置、计算机设备及存储介质 | |
CN114095289B (zh) | 数据多播电路、方法、电子设备及计算机可读存储介质 | |
Laqua et al. | Ethernet-based real-time control data bus | |
CN113904975B (zh) | 双归属链路的实现方法、设备及存储介质 | |
JP2019168739A (ja) | 並列計算システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050719 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070216 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070516 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070717 |
|
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: 20080416 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080416 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110502 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |