(57)【要約】  複数装置間の同期に参加する装置は、同期点に到達したことを他の全ての装置に通知する同期点到達通知を発行する。同期点到達通知は、該同期点到達通知を発行した発行元装置情報を含む。同期に参加する装置は、同期点到達通知を受信したときに装置ごとの受信同期点到達通知数カウンタを１インクリメントし、発行元装置情報に基づいて待機時間を求め、該同期に参加する装置ごとのタイマの値と前記待機時間の大きい方を用いて前記タイマを更新する。各装置は、前記タイマを０になるまで１クロックに１ずつデクリメントする。各装置は、自身が前記同期点到達通知を発行しており、前記受信同期点到達通知数が前記同期に参加する全装置数より１小さい値であり、前記タイマが０になったときに同期処理を完了する。
2011087076.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続された複数の計算機を有する並列計算機システムにおける第１の計算機であって、
前記第１の計算機に関する情報である発行元計算機情報を含み、同期点に到達したことを通知する同期点到達通知を他の計算機へ送信する同期点到達通知部と、
単位時間ごとに値をデクリメントするタイマと、
前記他の計算機から同期点到達通知を受信したときにカウンタをインクリメントするカウンタ更新部と、
前記他の計算機から同期点到達通知を受信したときに、前記他の計算機から受信した同期点到達通知に含まれる発行元計算機情報に基づいて待機時間を求め、前記タイマの値と前記待機時間の大きい方を用いて前記タイマを更新するタイマ更新部と、
前記タイマと前記カウンタの値に基づいて同期処理が完了したか否かを判定する同期処理完了判定部と、を有する計算機。
【請求項２】
請求項１に記載の第１の計算機を含む複数の計算機を有する並列計算機システム。
【請求項３】
前記タイマは０になるまでデクリメントを繰り返し、
前記同期処理完了判定部は、該第１の計算機が前記同期点到達通知の送信を完了しており、前記カウンタの値が前記同期に参加する全計算機数より１小さい値であり、かつ、前記タイマが０であるときに、同期処理が完了したと判断する請求項２に記載の並列計算機システム。
【請求項４】
前記待機時間は、前記同期に参加する計算機のうち最後の計算機が該同期点到達通知を受信する時刻までの時間である、請求項２に記載の並列計算機システム。
【請求項５】
前記複数の計算機が、Ｎ次元トーラス型ネットワーク又はＮ次元メッシュ型ネットワークである場合（Ｎは２以上の整数）、
前記第１の計算機は、
１からＮのＮステップの同期処理を行うために、Ｎ個のカウンタと、Ｎ個のタイマを有し、
前記同期点到達通知部は、第ｉステップの同期処理では、第ｉ−１ステップの同期処理が完了すると同時に、前記同期点到達通知を発行し（ｉは２〜Ｎの整数）、
前記同期点到達通知部は、第１ステップの同期処理では、該装置が同期点に到達したときに、前記同期点到達通知を発行し、
前記同期処理完了判定部は、第Ｎステップの同期処理完了を並列計算機システム全体での同期処理完了とする、請求項２に記載の並列計算機システム。
【請求項６】
ネットワークで接続された、第１の装置を含む複数の装置の間で同期をとる同期方法であって、
前記第１の装置が同期点に到達したときに、前記第１の装置に関する情報である発行元装置情報を含む同期点到達通知を、前記第１の装置から他の装置へ送信するステップと、
前記他の装置から前記第１の装置が同期点到達通知を受信したときにカウンタを１インクリメントし、前記他の装置から受信した前記同期点到達通知の発行元装置情報に基づいて待機時間を求め、タイマの値と前記待機時間の大きい方を用いて前記タイマを更新するステップと、
０になるまで前記タイマを単位時間に１ずつデクリメントするステップと、
前記第１の装置が前記同期点到達通知の送信を完了しており、前記カウンタが全装置数より１小さい値であり、かつ、前記タイマが０になったときに同期処理の完了を決定するステップと、
を具備する同期方法。
【請求項７】
前記待機時間は、前記同期に参加する装置のうち最後の装置が該同期点到達通知を受信するまでの時間とする請求項６に記載の同期方法。
【請求項８】
Ｎ次元トーラス網又はＮ次元メッシュ網のネットワークで接続された、第１の装置を含む複数の装置間で同期をとる同期方法であって（Ｎは２以上の自然数）、
前記第１の装置は、１からＮのＮステップの同期処理を行い、
第ｉステップの同期処理では、第ｉ次元方向に接続するＡｉ個の装置間で、請求項５の同期処理を行い（ｉは２〜Ｎの整数、Ａｉは１以上の整数）、
第ｉステップの同期処理では、第ｉ−１ステップの同期処理が完了すると前記同期点到達通知を発行し、
第１ステップの同期処理では、該装置が同期点に到達したときに、前記同期点到達通知を送信し、
第Ｎステップの同期処理完了を全装置間での同期処理完了とする同期方法。
【請求項９】
ネットワークで接続された、第１の装置を含む複数の装置間で同期をとるための、前記第１の装置のコンピュータ読み出し可能な非一時的記録媒体に格納されたコンピュータプログラムであって、
前記第１の装置に、前記第１の装置に関する情報である発行元装置情報を含み、前記第１の装置が同期点に到達したことを他の装置に通知する同期点到達通知を、前記他の装置へ送信する命令と、
前記第１の装置が前記他の装置から同期点到達通知を受信したときに、カウンタを１インクリメントさせ、前記他の装置から受信した同期点到達通知の発行元装置情報に基づいて待機時間を求め、タイマの値と前記待機時間の大きい方を用いて前記タイマを更新する命令と、
前記タイマを０になるまで単位時間ごとにデクリメントする命令と、
前記第１の装置が前記同期点到達通知の送信を完了しており、前記カウンタが前記複数の全装置数より１小さい値であり、前記タイマが０である場合に、同期処理の完了を判断する命令と、を具備するコンピュータプログラム。
【請求項１０】
前記待機時間は、前記同期に参加する装置のうち最後の装置が該同期点到達通知を受信する時刻までの時間である請求項９に記載のプログラム。
【請求項１１】
Ｎ次元トーラス網又はＮ次元メッシュ網のネットワークで接続された、第１の装置を含む複数の装置間で同期をとるための、前記第１の装置のコンピュータ読み出し可能な非一時的記録媒体に格納されたコンピュータプログラムであって（Ｎは２以上の整数）、
前記第１の装置に、１からＮのＮステップの同期処理を行わせる命令と、
第ｉステップの同期処理では、第ｉ次元方向に接続するＡｉ個の装置間で、請求項８に記載のプログラムを実行して同期処理を行う命令と（ｉは２〜Ｎの整数、Ａｉは１以上の整数）、
前記第ｉステップの同期処理では、第ｉ−１ステップの同期処理が完了すると同時に、前記同期点到達通知を発行する命令と、
第１ステップの同期処理では、該装置が同期点に到達したときに、前記同期点到達通知を発行する命令と、
第Ｎステップの同期処理完了判定を以て全装置間での同期処理の完了を判定する命令と、を具備するコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列計算機システム、同期方法、及びプログラムに関する。特に本発明は、複数の計算機に処理を分散して割り当て同期処理を行う並列計算機システム、ネットワークで接続された複数の装置間で同期をとる同期方法、Ｎ次元トーラス網又はＮ次元メッシュ網のネットワークで接続された複数の装置間で同期をとる同期方法、ネットワークで接続された複数の装置間で同期をとるためのプログラム、及びＮ次元トーラス網又はＮ次元メッシュ網のネットワークで接続された複数の装置間で同期をとるためのプログラムに関する。
本願は、２０１０年１月１４日に、日本に出願された特願２０１０−００６０５９号に基づき優先権を主張し、その内容をここに援用する。
【背景技術】
【０００２】
並列計算機システムでは、複数の計算機に処理を分散して割り当て、同時に計算や処理を行う。そのため、各計算機には、他の計算機と同期を計るための機能が必要となる。各計算機は、同期機能を備えることによって、他の計算機が一定の処理を終えたことを確認しながら処理を進めることができるようになる。【０００３】
例えば、全ての計算機が特定の処理が完了したことを確認してから、全ての計算機が次の処理を開始するようなバリア同期と呼ばれる手法が知られている（例えば、特許文献１参照。）。また、全計算機間で体系的にデータ通信を行うような広い意味での集団通信のアルゴリズムでは、全計算機が一斉に通信を開始することで所望の通信性能を得ることができる。このため、通信の開始時刻について計算機間で差があると、通信衝突が発生し、通信性能を向上させにくいことがあり得る。そのため、従来技術では、処理が終わったことを確認するだけでなく、次処理の開始タイミングをそろえるための同期処理も必要とされる。【０００４】
図１５は、特許文献１に記載の同期方法を示す。特許文献１に記載の並列計算機システムは、ノード間ネットワークに、同期を制御する１つのマスタノードを有しており、該マスタノードは、同期に参加するノード数を保持している。各スレーブノードは、同期点に達すると、マスタノードに対して同期成立通知を送信する。同期成立通知を受信したマスタノードは、同期成立通知を受信するたびに１ずつ値をインクリメントする。同期成立通知を受信し、受信同期成立通知数が同期に参加するノード数と一致した場合、マスタノードは全ノードが同期点に到達したと判断する。そして、マスタノードは各スレーブノードに同期成立通知を送信する。各スレーブノードは同期成立通知を受信することで、同期成立を認識する。【０００５】
このように、従来の並列計算機システムでは、１台のマスタノードに同期処理を管理させる同期方法が一般的である。その場合、マスタノードは全ノードの同期成立を確認すると、全ノードに対して同期が成立したことを通知し、各ノードはマスタノードからの同期成立の通知の受信することで同期成立を確認していた。【０００６】
このような同期方式により、マスタノードから各スレーブノードに対する同期成立通知の通信時間が異なる場合、各計算機は、全計算機が同期点に到達したことを確認することはできる。しかしながら、各計算機が同期成立を確認する時刻は異なってしまう。そのため、各計算機間の処理タイミングを合わせる同期をとることができない。【０００７】
また、並列計算機システムの別の同期方法としては、マスタノードから各スレーブノードに対する通知の通信時間の差に起因する同期時刻のずれを発生させない方法が知られている（例えば、特許文献２参照。）。特許文献２には、ノード間ネットワークに接続された複数の計算機ノードからなる並列計算機システムにおいて、複数の計算機ノードで処理タイミングを合わせるための同期をとる方法が記載されている。【０００８】
図１６は、特許文献２に記載の同期方法を示す。特許文献２に記載の同期方法では、マスタノードからスレーブノードに対して同期通知を転送することで同期をとる。マスタノードは、各スレーブノードに対して、同期通知を送信する。このとき、マスタノードは１つのスレーブノードに同期通知が到達するまでの時間だけ待機し、次のスレーブノードに対して同期通知を送信する。そしてマスタノードは最後のスレーブノードに同期通知を送信し、最後のスレーブノードが同期通知を受信するまで待機することで同期を完了して、次処理に移行する。一方、各スレーブノードは、マスタノードからの同期通知を受信後、まだ同期通知を受信していないスレーブノードがマスタノードから同期通知を受信するまでの時間だけ待機する。これにより、各ノードが同期処理を同時に完了し、次処理を同時に開始することができる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特許第３４８２８９７号公報
【特許文献２】特許第４０８０３９７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
特許文献２に記載の並列計算機によると、ネットワークを構成する計算機間で真に正確な同期をとることができる。但し、特許文献２で開示された同期方法を用いるには、特許文献１で開示された同期方法のように、１つのマスタノードに同期を管理させる必要がある。【００１１】
しかしながら、マスタノードが同期を管理する方法の場合、各計算機ノードは、互いにやり取りして同期をとらず、マスタノードを経由して同期をとる。そのため、実際に全計算機ノードが同期点に到達してから、全計算機ノードが同期成立を認識するまでの時間が、マスタノードを経由する分だけ長くなってしまう。
【課題を解決するための手段】
【００１２】
上記の従来技術に関し、本発明は、例えば、以下の側面を有する。
第１の側面は複数の計算機に処理を分散して割り当て同期処理を行う並列計算機システムであって、ネットワークを構成する複数の計算機を備え、計算機は、同期点に到達したことを同期に参加する他の全ての計算機に通知する同期点到達通知であって、当該同期点到達通知を発行した発行元計算機情報を含む同期点到達通知を発行する同期点到達通知部と、０になるまで１クロックに１ずつ値をデクリメントするタイマと、同期点到達通知を受信したときに該計算機が有する受信同期点到達通知数カウンタを１インクリメントするカウンタ更新部と、同期点到達通知を受信したときに、発行元計算機情報に基づいて待機時間を求め、タイマの値と待機時間の大きい方をタイマに更新するタイマ更新部と、１クロックに１度同期が完了したかどうかを判定する同期処理完了判定部とを有する。【００１３】
第２の側面はネットワークで接続された複数の装置間で同期をとる同期方法であって、同期に参加する装置は、同期点に到達したことを同期に参加する他の全ての装置に通知する同期点到達通知を発行し、同期点到達通知は、該同期点到達通知を発行した発行元装置情報を含んでおり、同期に参加する装置は、同期点到達通知を受信したときに該同期に参加する装置ごとの受信同期点到達通知数カウンタを１インクリメントし、発行元装置情報に基づいて待機時間を求め、該同期に参加する装置ごとのタイマの値と待機時間の大きい方をタイマに更新し、タイマは０になるまで１クロックに１ずつデクリメントし、同期に参加する装置は、該装置が同期点到達通知を発行しており、受信同期点到達通知数が同期に参加する全装置数より１小さい値であり、タイマが０になったときに同期処理を完了する。【００１４】
第３の側面はＮ次元トーラス網又はＮ次元メッシュ網のネットワークで接続された複数の装置間で同期をとる同期方法であって、同期に参加する装置は、１からＮのＮステップの同期処理を行い、第ｉステップの同期処理では、第ｉ次元方向に接続するＡｉ個の装置間で同期処理を行い、第ｉステップの同期処理では、第ｉ−１ステップの同期処理が完了すると同時に、同期点到達通知を発行し、ただし、第１ステップの同期処理では、該装置が同期点に到達したときに、同期点到達通知を発行し、第Ｎステップの同期処理完了を全装置間での同期処理完了とする。【００１５】
第４の側面はネットワークで接続された複数の装置間で同期をとるためのプログラムであって、同期に参加する装置に、該装置が同期点に到達したことを同期に参加する他の全ての装置に通知する同期点到達通知を発行させ、同期点到達通知は、該同期点到達通知を発行した発行元装置情報を含んでおり、同期に参加する装置に、該装置が同期点到達通知を受信したときに該同期に参加する装置ごとの受信同期点到達通知数カウンタを１インクリメントさせ、発行元装置情報に基づいて待機時間を求め、該同期に参加する装置ごとのタイマの値と待機時間の大きい方をタイマに更新させ、タイマには０になるまで１クロックに１ずつデクリメントさせ、同期に参加する装置に、該装置が同期点到達通知を発行しており、受信同期点到達通知数が同期に参加する全装置数より１小さい値であり、タイマが０である場合に同期処理完了可能であると判定させ、同期処理を完了する。【００１６】
第５の側面はＮ次元トーラス網又はＮ次元メッシュ網のネットワークで接続された複数の装置間で同期をとるためのプログラムであって、同期に参加する装置は、１からＮのＮステップの同期処理を行い、第ｉステップの同期処理では、第ｉ次元方向に接続するＡｉ個の装置間で同期処理を行い、第ｉステップの同期処理では、第ｉ−１ステップの同期処理が完了すると同時に、同期点到達通知を発行し、ただし、第１ステップの同期処理では、該装置が同期点に到達したときに、同期点到達通知を発行し、第Ｎステップの同期処理完了判定を以て全装置間での同期処理完了とする。【００１７】
なお、上記の側面は本発明の範囲を限定するものではない。
【発明の効果】
【００１８】
上記の側面によれば、複数の計算機に処理を分散して割り当て同期処理を行うにあたり、例えば、全ての計算機が同期を完了する時刻を統一することができる。また、マスタ装置を設けることがないため、例えば、高速に同期処理を完了することができる。
【図面の簡単な説明】
【００１９】
【図１】一実施形態に係る並列計算機システムの利用環境の一例を示す図である。
【図２】計算機ノードａの構成を示す図である。
【図３】並列計算機システムで扱う同期点到達通知パケットの構成を示す図である。
【図４】同期制御装置の機能構成を示すブロック図である。
【図５】計算機ノードが同期点到達通知パケットを発行した場合の、処理の流れを示すタイムチャートである。
【図６】計算機ノードが保持している最低待機時間情報を示す図である。
【図７】動作例における同期点到達通知パケットの送受信時間を示したタイムチャートである。
【図８】動作例における各計算機ノードのカウンタ値とタイマ値の変遷を示した図である。
【図９】別の実施形態に係る並列計算機システムの利用環境の一例を示す図である。
【図１０】計算機ノードの構成を示す図である。
【図１１】並列計算機システムで扱う同期点到達通知パケットの構成を示す図である。
【図１２】同期制御装置の機能構成を示すブロック図である。
【図１３】動作例における、各計算機ノードの同期点到達時刻、Ｘ次元同期完了時刻、同期処理完了時刻を示した表である。
【図１４】計算機ノード及び計算機ノードのハードウェア構成の一例を示す図である。
【図１５】特許文献１に記載の同期方法を示す図である。
【図１６】特許文献２に記載の同期方法を示す図である。
【発明を実施するための形態】
【００２０】
以下、実施の形態を説明する。以下の実施形態は発明の範囲を限定するものではない。また、実施形態の中で説明されている特徴及び組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００２１】
図１は、一実施形態に係る並列計算機システム１００の利用環境の一例を示す。並列計算機システム１００は、複数の計算機ノード１１０ａ〜ｄ（以下、計算機ノード１１０と総称する。）を備える。
【００２２】
計算機ノード１１０ａは、通信ケーブルを介して計算機ノード１１０ｂと電気的に接続されている。また、計算機ノード１１０ｂは、通信ケーブルを介して計算機ノード１１０ｃと電気的に接続されている。また、計算機ノード１１０ｃは、通信ケーブルを介して計算機ノード１１０ｄと電気的に接続されている。また、計算機ノード１１０ｄは、通信ケーブルを介して計算機ノード１１０ａと電気的に接続されている。このようにして、計算機ノード１１０ａ〜ｄは、リング型ネットワークを構成している。
【００２３】
並列計算機システム１００では、各計算機ノード１１０が同期点に達したことを他の計算機ノード１１０に通知するための、同期点通知パケットをやりとりすることで同期処理を行う。これにより、並列計算機システム１００では、同期の完了時刻を全計算機ノード１１０で統一することができる。
【００２４】
次に、計算機ノード１１０ａ〜ｄの構成を説明するが、計算機ノード１１０ａ〜ｄは同一の構成であるため、計算機ノード１１０ａを例に構成を説明する。図２は、計算機ノード１１０ａの構成を示した図である。計算機ノード１１０ａは、計算をつかさどる「計算ユニット」と、通信をつかさどる「通信ユニット」から構成される。さらに通信ユニットは、計算機ノード１１０間、及び計算機ノード１１０内の計算ユニット間の同期機能を有する「同期制御装置１０」、計算ユニットや他の計算機ノード１１０との通信パケットの入出力の機能を有する「入出力装置１１」からなる。同期制御装置１０は、入出力装置１１を介して、他の計算機ノード１１０と同期点到達通知パケットの送受信が可能である。また、同期制御装置１０は、計算ユニットが同期点に達したことを同期制御装置１０に通知する「同期点到達信号」や、並列計算機システム１００の同期処理が完了したことを計算ユニットに通知する「同期成立信号」を計算ユニットと直接通信することができる。
【００２５】
次に、並列計算機システム１００で扱う同期点到達通知パケットについて説明する。図３で示すように、同期点到達通知パケットは、パケットが同期点到達通知パケットであることを示すパケット情報、発行元計算機ノード１１０を示す発行元ノード情報、パケットの宛先ノードを示す終点ノード情報を情報として持つ。同期点到達通知パケットは、発行元ノード１１０から、図１が示すリング網にそって反時計回りに他の全ての計算機ノード１１０に転送される。例えば、計算機ノード１１０ａが発行した同期点到達通知パケットは、計算機ノード１１０ａから送信され、順に計算機ノード１１０ｂ、計算機ノード１１０ｃ、計算機ノード１１０ｄに転送される。したがって、計算機ノード１１０ａが発行する同期点到達通知パケットの発行元計算機ノード情報は計算機ノード１１０ａであり、終点ノード情報は計算機ノード１１０ｄとなる。
【００２６】
また、並列計算機システム１００では同期点到達通知パケットのみがやり取りされるわけではなく、他の制御パケットやデータパケットが送受信されてもよい。しかし、同期点到達通知パケットが他のパケットと競合し、同期点到達通知パケットの送受信に遅延がおきることはないものとする。そのため、本実施例では、計算機ノード１１０間のケーブルは複数チャネルから構成され、同期点到達通知パケットはそのなかの１チャネルを占有するものとする。ただし、上記の複数チャネル構成にするというものは、本発明の範囲を限定するものではない。
【００２７】
入出力装置１１では、他の計算機ノード１１０から同期点到達通知パケットを受信すると同期制御装置に対して出力する。また、同期点到達通知パケット以外のパケットを他の計算機ノード１１０から受信した場合は計算ユニットに対して出力する。一方で、計算ユニットから入力されたパケットは、パケットが情報として持つ宛先に届くように、あらかじめ決められたルーティングにしたがって計算機ノード１１０外に出力される。同期制御装置から同期点到達通知パケットが入力された場合は、先に記したとおり図１が示すリング網にそって反時計回りに宛先ノードに届くように計算機ノード１１０外に出力される。
【００２８】
次に、同期制御装置１０が有する機能について、図４に示すブロック図を参照して説明する。同期制御装置１０は、他の計算機ノード１１０からの同期点到達通知パケットを受信する「同期点到達通知パケット受信部１０１」、自計算機ノード１１０及び他の計算機ノード１１０が発行した同期点到達通知パケットを他の計算機ノード１１０に対して出力する「同期点到達通知パケット送信部１０２」、直接接続する計算ユニットが同期点に到達したことを管理する「同期点到達通知部１０３」、受信した同期点到達通知パケットをもとに同期点に到達した計算機ノード１１０の数をカウントする「同期点到達ノード数カウンタ更新部１０４」及び「カウンタ１０５」、受信した同期点到達通知パケットの通知元を判定する「通知元判定部１０６」、同期処理の完了時刻までの最低待機時間を管理する「タイマ１０８」、及びタイマ１０８を更新する「同期処理完了タイマ更新部１０７」、同期処理が完了したことを判定する「同期処理完了判定部１０９」を機能として有する。以下、各機能の詳細を説明する。
【００２９】
同期点到達通知パケット受信部１０１は、入出力装置より他計算機ノード１１０が発行した同期点到達通知パケットを受信する。同期点到達通知パケットを受信すると、同期点到達ノード数カウンタ更新部１０４に対して「カウンタ更新通知」を送り、通知元判定部１０６に対して同期点到達通知パケットの発行元ノード情報を通知する。また、同期点到達通知パケットの終点ノード情報を参照し、自計算機ノード１１０が終点ノードである場合は、受信した同期点到達通知パケットを破棄する。一方、自計算機ノード１１０が終点ノードでない場合は、受信した同期点到達通知を他の計算機ノード１１０に転送するために、同期点到達通知パケット送信部１０２に出力する。
【００３０】
同期点到達通知部１０３では、計算ユニットが同期点に到達したときに計算ユニットが発行する「同期点到達命令」を受けることで「同期点到達通知処理」が実行される。同期点到達通知処理では、同期点到達ノード数カウンタ更新部１０４に対してカウンタ更新通知を送り、通知元判定部１０６に対して、自計算機ノード情報を通知する。また、発行元ノード情報を自計算機ノード情報、終点ノード情報を対応する終点ノード情報とする同期点到達通知パケットを生成し、同期点到達通知パケット送信部１０２に対して出力する。
【００３１】
同期点到達通知パケット送信部１０２は、同期点到達通知パケット受信部１０１や同期点到達通知部１０３から同期点到達通知パケットを入出力装置１１に出力する。
【００３２】
同期点到達ノード数カウンタ更新部１０４は、同期点到達通知パケット受信部１０１や同期点到達通知部１０３からカウンタ更新通知を受けると、カウンタ１０５の値を１インクリメントする。なお、同期処理開始前のカウンタ値は０に初期化されている。
【００３３】
通知元判定部１０６は、同期点到達通知パケット受信部１０１や同期点到達通知部１０３から受けとった発行元ノード情報を元に、同期処理が完了するまでに最低待機する必要のある時間を導出する機能を有する。導出した最低待機時間は、同期処理完了タイマ更新部１０７に受け渡し、同期処理完了タイマ更新部１０７は、「同期処理完了タイマ更新処理」によりタイマ１０８を更新する。通知元判定部１０６が導出する最低待機時間は、受信、もしくは自計算機ノード１１０で発行した同期点到達通知パケットが、宛先ノードに到達したことにより、宛先ノードのカウンタ１０５の値がインクリメントされるまでの時間である。例として図５に、計算機ノード１１０ａが同期点到達通知パケットを発行した場合のタイムタイムチャートを記す。計算機ノード１１０ａが発行した同期点到達通知パケットは、順に計算機ノード１１０ｂ、計算機ノード１１０ｃ、計算機ノード１１０ｄに転送される。したがって、各計算機ノード１１０は、計算機ノード１１０ｄのカウンタ更新処理が完了するまでの時間を最低待機時間とする。本実施例では、各計算機ノード１１０が、発行元計算機ノード１１０を元に最低待機時間を参照するテーブルを保持することで、最低待機時間の導出を行う。図６に、テーブルの例を記す。
【００３４】
同期処理完了タイマ更新部１０７は、通知元判定部１０６より最低待機時間が入力されると、タイマ１０８の値より入力された最低待機時間の方が大きければ、タイマ１０８の値を入力された最低待機時間で更新する。
【００３５】
タイマ１０８は、同期処理を完了させるまでに最低待機するべき時間をカウントしておくためのものである。タイマ１０８は、同期処理完了タイマ更新部１０７によって更新され、値が正である間は１クロックに１ずつ値をデクリメントする。なお、同期処理開始前のタイマ値は０に初期化されている。
【００３６】
同期処理完了判定部１０９は、同期処理を完了するかどうかを判定する機能を有する。
同期処理完了判定部１０９は、同期処理を実施している間は常に、１クロック毎に「同期処理完了判定」を行う。同期処理完了判定で、同期処理完了可能と判定されれば、計算ユニットに対して同期成立信号を送り、同期処理を完了する。同期処理完了判定部では、カウンタ１０５のカウンタ値とタイマ１０８の最低待機時間を参照し、カウンタ値が全計算機ノード数の４に一致し、なおかつ、タイマの最低待機時間が０である場合に、同期処理完了可能と判定する。それ以外の場合、カウンタ値が全計算機ノード数の４に満たない場合や、タイマの最低待機時間が正数である場合は同期処理完了可能ではないと判定する。
また、同期処理を完了する際には、カウンタ１０５のカウンタ値を０に初期化する。
【００３７】
次に、並列計算機システム１００で同期処理を行った場合の動作例を記す。本動作例は、計算機ノード１１０ａ〜ｄがそれぞれ順に、時刻  ８０、１２０、２０、２００に同期点に到達して同期点到達通知パケットを発行した場合を例にとる。図７に同期点到達通知パケットの送受信時刻を図示したタイムチャートを示す。図８には、計算機ノード１１０ａ〜ｄが同期点到達通知パケットを送受信したときの、カウンタ１０５とタイマ１０８の様子を示すタイムチャートを記す。
【００３８】
計算機ノード１１０ａは、時刻８０に同期点に到達し、同期点到達通知処理１０３により、同期点到達通知パケット（通知１）を発行する。このとき、同期点到達ノード数カウンタ更新部１０４によりカウンタ１０５は０から１に更新される。また、同期処理完了タイマ更新部１０７により、通知１が計算機ノード１１０ｄに到達するまでの時間３００をタイマ１０８に設定する。時刻２２０に、計算機ノード１１０ａは、計算機ノード１１０ｃが発行した同期点到達通知パケット（通知３）を受信する。これにより、ノード数カウンタ更新部１０４はカウンタ１０５の値を１から２に更新する。また、このときカウンタ値は時刻８０から１４０クロック経過しているため１６０（＝３００−１４０）になっている。同期処理完了タイマ更新部１０７は、通知３が計算機ノード１１０ｂに到達するまでの時間１００よりタイマ値の方が大きいためタイマ値の更新はしない。時刻３００では、計算機ノード１１０ａは、計算機ノード１１０ｄが発行した同期点到達通知パケット（通知４）を受信する。これにより、ノード数カウンタ更新部１０４はカウンタ１０５の値を２から３に更新する。また、このときカウンタ値は、時刻２２０から８０クロック経過しているために８０（＝１６０−８０）になっている。同期処理完了タイマ更新部１０７は、通知４が計算機ノード１１０ｃに到達するまでの時間２００の方が、タイマ値より大きいためタイマ値を２００に更新する。時刻４２０では、計算機ノード１１０ａは、計算機ノード１１０ｂが発行した同期点到達通知パケット（通知２）を受信する。これにより、ノード数カウンタ更新部１０４はカウンタ１０５の値を３から４に更新する。また、このときのカウンタ値は、時刻３００から１２０クロック経過しているために８０（＝２００−１２０）になっている。同期処理完了タイマ更新部１０７では、計算機ノード１１０ａが通知２の宛先ノードであるため、タイマの値は更新しない。時刻４２０から８０クロック経過した時刻５００に、カウンタ値が４かつタイマ値が０になるので、同期処理完了判定部１０９により同期処理完了可能と判定し、同期処理は完了する。
【００３９】
図８でわかるように、計算機ノード１１０ｂ、計算機ノード１１０ｃ、計算機ノード１１０ｄも同様に時刻５００に、カウンタ値が４、タイマ値が０になり同期処理は完了する。このように、並列計算機システム１００は、全計算機ノード１１０で同期処理の完了時刻を同じにすることができる。
【００４０】
図９は、別の実施形態に係る並列計算機システム２００の利用環境の一例を示す。並列計算機システム２００は、複数の計算機ノード２１０ａ〜ｐ（以下、計算機ノード２１０と総称する。）。
【００４１】
並列計算機システム２００は、計算と通信の機能を備えた１６個の計算機ノード２１０ａ〜ｐが２次元トーラス型のネットワークで接続された構成になっている。１６台の計算機ノード２１０がＸ次元方向に４ノードずつ、Ｙ次元方向に４ノードずつ接続されている。
【００４２】
Ｘ次元方向の接続は、計算機ノード２１０ａ、ｂ、ｃ、ｄの４台が、ａ−ｂ−ｃ−ｄ−ａというリング接続になっており、同様に計算機ノード２１０ｅ、ｆ、ｇ、ｈの４台、計算機ノード２１０ｉ、ｊ、ｋ、ｌの４台、計算機ノード２１０ｍ、ｎ、ｏ、ｐの４台がリング接続になっている。また、Ｙ次元方向には、計算機ノード２１０ａ、ｅ、ｉ、ｍの４台、計算機ノード２１０ｂ、ｆ、ｊ、ｎの４台、計算機ノード２１０ｃ、ｇ、ｋ、ｏの４台、計算機ノード２１０ｄ、ｈ、ｌ、ｐの４台がリングで接続した構成になっている。Ｘ次元方向、Ｙ次元方向ともに、隣接する計算機ノード２１０間の通信レイテンシは、どの計算機ノード２１０間も同じである。
【００４３】
並列計算機システム２００の同期処理は、各計算機ノード２１０がＸ次元方向の同期、Ｙ次元方向ノードの同期という２段階の同期を行うものである。並列計算機システム２００の同期処理も、並列計算機システム１００と同様に、同期点到達通知パケットを計算機ノード２１０間でやり取りすることで同期処理を行うものであり、同期処理の完了時刻を全計算機ノード２１０で同じにできるという特徴がある。
【００４４】
計算機ノード２１０ａ〜計算機ノード２１０ｐは、同一の構成である。以下に、計算機ノード２１０ａを例に構成を説明する。図１０は、計算機ノード２１０ａの構成を示した図である。計算機ノード２１０ａは、計算をつかさどる「計算ユニット」と、通信をつかさどる「通信ユニット」から構成される。さらに、通信ユニットは、計算機ノード２１０間、及び計算機ノード２１０内の計算ユニット間の同期機能を有する「同期制御装置２０」、計算ユニットや他の計算機ノード２１０との通信パケットの入出力の機能を有する「入出力装置２１」からなる。同期制御装置２０は、入出力装置２１を介して、他の計算機ノード２１０と同期点到達通知パケットの送受信が可能である。また、同期制御装置２０は、計算ユニットが同期点に達したことを同期制御装置２０に通知する同期点到達信号や、並列計算機システム２００の同期処理が完了したことを計算ユニットに通知する同期成立信号を計算ユニットと直接通信することができる。
【００４５】
次に、並列計算機システム２００で扱う同期点到達通知パケットについて説明する。図１１で示すように、同期点到達通知パケットは、パケットが同期点到達通知パケットであることを示すパケット情報、Ｘ次元とＹ次元のどちらの段階の同期であるかを示す同期次元情報、パケットの発行元計算機ノードを示す発行元ノード情報、パケットの宛先ノードを示す終点ノード情報を情報として持つ。同期点到達通知パケットは、Ｘ次元では図９の図面上で右側の計算機ノード２１０に転送される。また、Ｙ次元では、図９の図面上で下側の計算機ノード２１０に転送される。例えば、計算機ノード２１０ｆがＸ次元方向の同期のために発行した同期点到達通知パケットは、計算機ノード２１０ｆから計算機ノード２１０ｇ、ｈ、ｅへと順に転送され、計算機ノード２１０ｆがＹ次元方向の同期のために発行した同期点到達通知パケットは、計算機ノード２１０ｆから計算機ノード２１０ｊ、ｎ、ｂへと順に転送される。
【００４６】
次に、同期制御装置２０が有する機能について、図１２に示すブロック図を参照して説明する。同期制御装置２０は、図４で示す並列計算機システム１００の同期制御装置１０とほぼ同一の構成となっている。したがって、同期制御装置１０との差異について説明する。計算機システム２００では、Ｘ次元方向の同期とＹ次元方向の同期という２段階の同期を行うことで、システム全体の同期を行う。したがって、同期制御装置２０においては、Ｘ次元とＹ次元の２つの同期ができるようになっている。具体的には、カウンタ２０５やタイマ２０８は、Ｘ次元用とＹ次元用の２つのカウンタ・タイマを有している。
【００４７】
同期点到達通知部２０３は、計算ユニットからの同期点到達命令や、同期処理完了判定部２０９からＸ次元方向の同期完了信号を受け取った場合に、同期点到達通知パケットを発行する。計算ユニットからの同期点到達命令を受けた場合は、Ｘ次元方向の同期処理を開始するため、発行する同期点到達パケットの同期次元情報をＸ次元として発行する。一方、同期処理完了判定部２０９からＸ次元方向の同期完了信号を受け取った場合は、Ｙ次元方向の同期処理を開始するため、発行する同期点到達パケットの同期次元情報をＹ次元として発行する。また、同期点到達ノード数カウンタ更新部２０４へのカウンタ更新通知や、通知元判定部２０６への計算機ノード情報を通知するときに、同期次元情報も付与して通知する。
【００４８】
また、同期点到達通知パケット受信部２０１から、同期点到達ノード数カウンタ更新部２０４へカウンタ更新通知を通知する場合や、通知元判定部１０６に対して、同期点到達通知パケットの発行元ノード情報を通知する場合にも、同期次元情報を付与して通知する。
【００４９】
同期点到達ノード数カウンタ更新部２０４は、同期点到達通知パケット受信部２０１や同期点到達通知部２０３からカウンタ更新通知と同期次元情報を受けると、カウンタ２０５の同期次元情報が指定する次元側のカウンタ値を１インクリメントする。
【００５０】
通知元判定部２０６は、同期点到達通知パケット受信部２０１や同期点到達通知パケット２０３から発行元ノード情報と同期次元情報を受けると、タイマ更新部２０７に通知するタイマの更新値を導出する。導出するタイマ更新値は、対応する同期点到達通知パケットが終点ノードに到達するまでの時間である。タイマの更新値を導出すると、タイマ更新部２０７に対して、更新値及び同期次元情報を通知する。タイマ更新部２０７は、受け取ったタイマ値が同期次元情報の指定する次元のタイマ２０８の値より大きければ、通知元判定部２０６から受けたタイマ更新値で更新する。
【００５１】
タイマ２０８は、１クロックに１度、Ｘ次元とＹ次元の２つのタイマ値それぞれを、正数である間１ずつデクリメントする。
【００５２】
同期処理完了判定部２０９は、同期処理を実施している間は、１クロック毎に「同期処理完了判定」を行う。同期処理完了判定で、Ｘ次元同期処理完了可能と判定されれば、同期点到達通知処理２０３に対して、Ｘ次元同期処理完了通知を通知し、カウンタ２０５のＸ次元のカウンタ値を０に初期化する。また、同期処理完了判定で、Ｙ次元同期処理完了可能と判定されれば、計算ユニットに対して、同期成立信号を送り、カウンタ２０５のＹ次元のカウンタ値を０に初期化し、同期処理を完了する。同期処理完了判定では、カウンタ２０５のカウンタ値とタイマ２０８のタイマ値を参照する。カウンタ２０５のＸ次元のカウンタ値がＸ次元方向に接続された計算機ノード数の４であり、タイマ２０８のＸ次元のタイマ値が０であれば、Ｘ次元同期処理完了可能と判定する。カウンタ２０５のＹ次元のカウンタ値がＹ次元方向に接続された計算機ノード数の４であり、タイマ２０８のＹ次元のタイマ値が０であれば、Ｙ次元同期処理完了可能と判定する。
【００５３】
次に、並列計算機システム２００で同期処理を行った場合の動作例を記す。並列計算機システム２００は、隣接する各計算機ノード２１０間での同期点到達通知パケットのレイテンシは一定である。このレイテンシが１００クロックであるとする。Ｘ次元方向もしくはＹ次元方向に接続された４つの計算機ノード２１０間で同期をとると、４つの計算機ノード２１０のうち最も遅く同期点到達通知パケットを発行した時刻から３００クロック後に、４つの計算機ノード２１０が同時に同期処理を完了することができる。図１３には、本動作例の同期処理において、各計算機ノード２１０の計算ユニットが同期点に達して同期処理通知部２０３が同期点到達通知パケットを発行する時刻（同期点到達時刻）、同期処理完了判定部２０９がＸ次元方向の同期処理完了を判定する時刻（Ｘ次元同期完了時刻）、同期処理完了判定部２０９がＹ次元方向の同期処理完了を判定する時刻、つまり並列計算機システム２００全体の同期処理の完了を判定する時刻（同期処理完了時刻）の３つの時刻を示した表を示す。各計算機ノード２１０は、同期点に到達すると、Ｘ次元方向の計算機ノード２１０との同期処理を開始する。このＸ次元方向の同期処理は、Ｘ次元方向に接続された４つの計算機ノード２１０のうち最も遅く同期点に到達した時刻の３００クロック後に、４つの計算機ノード２１０が同時に同期処理を完了する。Ｘ次元方向の同期処理が完了すると、即座にＹ次元方向の同期処理のために同期点到達通知パケットを発行する。したがって、Ｘ次元方向に接続された計算機ノード２１０は同時にＸ次元方向の同期処理を完了するので、同時にＹ次元方向の同期処理のための同期点到達通知パケットを発行できる。Ｘ次元方向に接続された４つの計算機ノード２１０が同時にＹ次元方向の同期処理を開始するため、４個のＹ次元方向の同期処理は、同じタイムチャートを描くことになる。例えば、計算機ノード２１０ａ、ｂ、ｃ、ｄがそれぞれ時刻４５０に同期点到達通知パケットをＹ次元方向に送信すると、計算機ノード２１０ｅ、ｆ、ｇ、ｈがそれぞれ時刻５５０に同期点到達通知パケットを受信する。このように、４個のＹ次元方向の同期処理が同タイミングで処理されるため、４個のＹ次元方向の同期処理は完了時刻が同じになる。また、それぞれの同期処理は、参加する４つの計算機ノード２１０ともに同時に同期処理を完了できるので、並列計算機システム２００の１６台の計算機ノード２１０全てが同時に同期処理を完了することができる。
【００５４】
以上のように、上記の同期方法を用いれば、全計算機ノード２１０間で同期処理を同時に完了することができる。
【００５５】
また、上記の同期方法を用いれば、従来技術の同期処理より高速に同期をとることができる。例えば、第１の実施形態の並列計算機システム１００における同期処理の動作例１を考えてみる。前提として、従来技術の同期通知と本実施例の同期点到達通知は同じ通信レイテンシであるとする。もし、従来技術の同期方式で同期をとる場合、ノード１１０ａがマスタノードであったとすると、全スレーブノードから同期通知が到達するのは、時刻４２０である。マスタノードであるノード１１０ａは、時刻４２０に同期成立通知をスレーブノードに対して送信するが、最も遠くにあるノード１１０ｄに到達するには３００クロックかかるため、同期処理が完了するのは時刻７２０となってしまう。このように上記の同期方法を用いた方が早く同期処理を完了できる。
【００５６】
また、従来技術のようにマスタ‐スレーブ型の同期処理では、マスタノードに全計算機ノードからの同期点到達通知が集中していたが、上記の同期方法では、各計算機が協調して同期処理を行うため負荷が分散されている。例えば、第２の実施例の並列計算機システム２００の同期処理では、各計算機ノード２１０は、高々６個の同期点到達通知パケットを受信しない。一方で、並列計算機システム２００と同様に１６台の計算機ノード２１０が従来技術の同期方法で同期処理を行おうとすると、マスタノードに１５個の同期通知が集中する。たとえば、さらに規模を大きくして、３次元トーラス網で接続された４０９６（＝１６×１６×１６）台の計算機ノード２１０で同期をとる場合、上記の同期方式では、各計算機ノード２１０それぞれが４５（＝（１６−１）×３）個の同期点到達通知パケットを受信すればよいが、従来技術の同期方式では４０９５個もの同期通知を処理しなければならない。
【００５７】
図１４は、計算機ノード１１０及び計算機ノード２１０をコンピュータ等の電子情報処理装置でそれぞれ構成した場合のハードウェア構成の一例を示す。計算機ノード２１０及び計算機ノード２１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）周辺部と、入出力部と、レガシー入出力部とを備える。ＣＰＵ周辺部は、ホスト・コントローラ９０１により相互に接続されるＣＰＵ９０２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９０３、グラフィック・コントローラ９０４、及び表示装置９０５を有する。入出力部は、入出力コントローラ９０６によりホスト・コントローラ９０１に接続される通信インターフェイス９０７、ハードディスクドライブ９０８、及びＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ドライブ９０９を有する。レガシー入出力部は、入出力コントローラ９０６に接続されるＲＯＭ（Ｒｅａｄ
Ｏｎｌｙ  Ｍｅｍｏｒｙ）９１０、フレキシブルディスク・ドライブ９１１、及び入出力チップ９１２を有する。
【００５８】
ホスト・コントローラ９０１は、ＲＡＭ９０３と、高い転送レートでＲＡＭ９０３をアクセスするＣＰＵ９０２、及びグラフィック・コントローラ９０４とを接続する。ＣＰＵ９０２は、ＲＯＭ９１０、及びＲＡＭ９０３に格納されたプログラムに基づいて動作して、各部の制御をする。グラフィック・コントローラ９０４は、ＣＰＵ９０２等がＲＡＭ９０３内に設けたフレーム・バッファ上に生成する画像データを取得して、表示装置９０５上に表示させる。これに代えて、グラフィック・コントローラ９０４は、ＣＰＵ９０２等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【００５９】
入出力コントローラ９０６は、ホスト・コントローラ９０１と、比較的高速な入出力装置であるハードディスクドライブ９０８、通信インターフェイス９０７、ＣＤ−ＲＯＭドライブ９０９を接続する。ハードディスクドライブ９０８は、ＣＰＵ９０２が使用するプログラム、及びデータを格納する。通信インターフェイス９０７は、ネットワーク通信装置９９１に接続してプログラム又はデータを送受信する。ＣＤ−ＲＯＭドライブ９０９は、ＣＤ−ＲＯＭ９９２からプログラム又はデータを読み取り、ＲＡＭ９０３を介してハードディスクドライブ９０８、及び通信インターフェイス９０７に提供する。
【００６０】
入出力コントローラ９０６には、ＲＯＭ９１０と、フレキシブルディスク・ドライブ９１１、及び入出力チップ９１２の比較的低速な入出力装置とが接続される。ＲＯＭ９１０は、計算機ノード１１０及び計算機ノード２１０が起動時に実行するブート・プログラム、あるいは計算機ノード１１０及び計算機ノード２１０のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ９１１は、フレキシブルディスク９９３からプログラム又はデータを読み取り、ＲＡＭ９０３を介してハードディスクドライブ９０８、及び通信インターフェイス９０７に提供する。入出力チップ９１２は、フレキシブルディスク・ドライブ９１１、あるいはパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を接続する。
【００６１】
ＣＰＵ９０２が実行するプログラムは、フレキシブルディスク９９３、ＣＤ−ＲＯＭ９９２、又はＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）カード等の記録媒体に格納されて利用者によって提供される。記録媒体に格納されたプログラムは圧縮されていても非圧縮であってもよい。プログラムは、記録媒体からハードディスクドライブ９０８にインストールされ、ＲＡＭ９０３に読み出されてＣＰＵ９０２により実行される。ＣＰＵ９０２により実行されるプログラムは、計算機ノード１１０を、図１から図８に関連して説明した通信ユニット及び計算ユニットとして機能させる。同様に、ＣＰＵ９０２により実行されるプログラムは、計算機ノード２１０を、図９から図１３に関連して説明した通信ユニット及び計算ユニットとして機能させる。
【００６２】
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク９９３、ＣＤ−ＲＯＭ９９２の他に、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）又はＰＤ（Ｐｈａｓｅ  Ｄｉｓｋ）等の光学記録媒体、ＭＤ（ＭｉｎｉＤｉｓｋ）等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークあるいはインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶媒体を記録媒体として使用して、ネットワークを介したプログラムとして計算機システム１００を提供してもよい。
【００６３】
以上、各実施の形態を説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能である。その様な変更又は改良を加えた形態も本発明の技術的範囲に含まれ得る。
【産業上の利用可能性】
【００６４】
本発明は、例えば、複数の計算機を並列して使用するコンピュータシステムに適用できる。
【符号の説明】
【００６５】
１００…計算機システム
１１０…計算機ノード
１０…同期制御装置
１１…入出力装置
１０１…同期点到達通知パケット受信部
１０２…同期点到達通知パケット送信部
１０３…同期点到達通知部
１０４…同期点到達ノード数カウンタ更新部
１０５…カウンタ
１０６…通知元判定部
１０７…同期処理完了タイマ更新部
１０８…タイマ
１０９…同期処理完了判定部
２００…並列計算機システム
２１０…計算機ノード
２０…同期制御装置
２１…入出力装置
２０１…同期点到達通知パケット受信部
２０２…同期点到達通知パケット送信部
２０３…同期点到達通知部
２０４…同期点到達ノード数カウンタ更新部
２０５…カウンタ
２０６…通知元判定部
２０７…同期処理完了タイマ更新部
２０８…タイマ
２０９…同期処理完了判定部
９０１…ホスト・コントローラ
９０２…ＣＰＵ
９０３…ＲＡＭ
９０４…グラフィック・コントローラ
９０５…表示装置
９０６…入出力コントローラ
９０７…通信インターフェイス
９０８…ハードディスクドライブ
９０９…ＣＤ−ＲＯＭドライブ
９１０…ＲＯＭ
９１１…フレキシブルディスク・ドライブ
９１２…入出力チップ
９９１…ネットワーク通信装置
９９２…ＣＤ−ＲＯＭ
９９３…フレキシブルディスク
【図１】
2011087076.tif 000003
【図２】
2011087076.tif 000004
【図３】
2011087076.tif 000005
【図４】
2011087076.tif 000006
【図５】
2011087076.tif 000007
【図６】
2011087076.tif 000008
【図７】
2011087076.tif 000009
【図８】
2011087076.tif 000010
【図９】
2011087076.tif 000011
【図１０】
2011087076.tif 000012
【図１１】
2011087076.tif 000013
【図１２】
2011087076.tif 000014
【図１３】
2011087076.tif 000015
【図１４】
2011087076.tif 000016
【図１５】
2011087076.tif 000017
【図１６】
2011087076.tif 000018
【手続補正書】
【提出日】平成24年7月12日(2012.7.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ネットワークに接続された複数の計算機を有する並列計算機システムにおける第１の計算機であって、
前記第１の計算機に関する情報である発行元計算機情報を含み、同期点に到達したことを通知する同期点到達通知を他の計算機へ送信する同期点到達通知部と、
単位時間ごとに値をデクリメントするタイマと、
前記他の計算機から同期点到達通知を受信したときにカウンタをインクリメントするカウンタ更新部と、
前記他の計算機から同期点到達通知を受信したときに、前記他の計算機から受信した同期点到達通知に含まれる発行元計算機情報に基づいて待機時間を求め、前記タイマの値と前記待機時間の大きい方を用いて前記タイマを更新するタイマ更新部と、
前記タイマと前記カウンタの値に基づいて同期処理が完了したか否かを判定する同期処理完了判定部と
を備えることを特徴とする計算機。
【請求項２】
請求項１に記載の第１の計算機を含む複数の計算機を有する
ことを特徴とする並列計算機システム。
【請求項３】
前記タイマは０になるまでデクリメントを繰り返し、
前記同期処理完了判定部は、該第１の計算機が前記同期点到達通知の送信を完了しており、前記カウンタの値が前記同期に参加する全計算機数より１小さい値であり、かつ、前記タイマが０であるときに、同期処理が完了したと判断する
ことを特徴とする請求項２に記載の並列計算機システム。
【請求項４】
前記待機時間は、前記同期に参加する計算機のうち最後の計算機が該同期点到達通知を受信する時刻までの時間である
ことを特徴とする請求項２に記載の並列計算機システム。
【請求項５】
前記複数の計算機が、Ｎ次元トーラス型ネットワーク又はＮ次元メッシュ型ネットワークである場合（Ｎは２以上の整数）、
前記第１の計算機は、
１からＮのＮステップの同期処理を行うために、Ｎ個のカウンタと、Ｎ個のタイマを有し、
前記同期点到達通知部は、第ｉステップの同期処理では、第ｉ−１ステップの同期処理が完了すると同時に、前記同期点到達通知を発行し（ｉは２〜Ｎの整数）、
前記同期点到達通知部は、第１ステップの同期処理では、該装置が同期点に到達したときに、前記同期点到達通知を発行し、
前記同期処理完了判定部は、第Ｎステップの同期処理完了を並列計算機システム全体での同期処理完了とする
ことを特徴とする請求項２に記載の並列計算機システム。
【請求項６】
ネットワークで接続された、第１の装置を含む複数の装置の間で同期をとる同期方法であって、
前記第１の装置が同期点に到達したときに、前記第１の装置に関する情報である発行元装置情報を含む同期点到達通知を、前記第１の装置から他の装置へ送信するステップと、
前記他の装置から前記第１の装置が同期点到達通知を受信したときにカウンタを１インクリメントし、前記他の装置から受信した前記同期点到達通知の発行元装置情報に基づいて待機時間を求め、タイマの値と前記待機時間の大きい方を用いて前記タイマを更新するステップと、
０になるまで前記タイマを単位時間に１ずつデクリメントするステップと、
前記第１の装置が前記同期点到達通知の送信を完了しており、前記カウンタが全装置数より１小さい値であり、かつ、前記タイマが０になったときに同期処理の完了を決定するステップと
を備えることを特徴とする同期方法。
【請求項７】
前記待機時間は、前記同期に参加する装置のうち最後の装置が該同期点到達通知を受信するまでの時間とする
ことを特徴とする請求項６に記載の同期方法。
【請求項８】
Ｎ次元トーラス網又はＮ次元メッシュ網のネットワークで接続された、第１の装置を含む複数の装置間で同期をとる同期方法であって（Ｎは２以上の自然数）、
前記第１の装置は、１からＮのＮステップの同期処理を行い、
第ｉステップの同期処理では、第ｉ次元方向に接続するＡｉ個の装置間で、請求項５の同期処理を行い（ｉは２〜Ｎの整数、Ａｉは１以上の整数）、
第ｉステップの同期処理では、第ｉ−１ステップの同期処理が完了すると前記同期点到達通知を発行し、
第１ステップの同期処理では、該装置が同期点に到達したときに、前記同期点到達通知を送信し、
第Ｎステップの同期処理完了を全装置間での同期処理完了とする
ことを特徴とする同期方法。
【請求項９】
ネットワークで接続された、第１の装置を含む複数の装置間で同期をとるための、前記第１の装置のコンピュータ読み出し可能な非一時的記録媒体に格納されたコンピュータプログラムであって、
前記第１の装置に、前記第１の装置に関する情報である発行元装置情報を含み、前記第１の装置が同期点に到達したことを他の装置に通知する同期点到達通知を、前記他の装置へ送信する命令と、
前記第１の装置が前記他の装置から同期点到達通知を受信したときに、カウンタを１インクリメントさせ、前記他の装置から受信した同期点到達通知の発行元装置情報に基づいて待機時間を求め、タイマの値と前記待機時間の大きい方を用いて前記タイマを更新する命令と、
前記タイマを０になるまで単位時間ごとにデクリメントする命令と、
前記第１の装置が前記同期点到達通知の送信を完了しており、前記カウンタが前記複数の全装置数より１小さい値であり、前記タイマが０である場合に、同期処理の完了を判断する命令と
を備えることを特徴とするコンピュータプログラム。
【請求項１０】
前記待機時間は、前記同期に参加する装置のうち最後の装置が該同期点到達通知を受信する時刻までの時間である
ことを特徴とする請求項９に記載のコンピュータプログラム。
【国際調査報告】
2011087076.tif 000019
2011087076.tif 000020
2011087076.tif 000021
2011087076.tif 000022