(57)【要約】  並列処理システムは、複数のノード装置を第１及び第２スイッチ装置を介して相互に接続するネットワーク網を備える。第１スイッチ装置は、システム内のバリア同期の参加数を記憶する同期参加数設定レジスタと、バリア同期要求コマンドをカウントするバリア同期カウンタと、バリア同期要求コマンドの参加数と、カウント値と、に基づいて加減算を行う加減算器と、バリア同期の成立を判定する同期成立判定部と、を有する。第２スイッチ装置は、クラスタ内のバリア同期の参加数を記憶する同期参加数設定レジスタと、バリア同期要求コマンド数をカウントするバリア同期カウンタと、バリア同期要求コマンドの参加数と、カウント値と、に基づいて加減算を行う加減算器と、バリア同期の成立を判定する同期成立判定部と、を有する。
2010109761.tif 000002
【特許請求の範囲】
【請求項１】
複数のノード装置と、該複数のノード装置を、第１及び第２スイッチ装置を介して相互に接続するネットワーク網と、を備え、
前記ノード装置群には、前記第２スイッチ装置が接続され、前記第１スイッチ装置には、前記第２スイッチ装置が接続され、前記第２スイッチ装置には、前記ノード装置群、前記第１スイッチ装置、および前記第２スイッチ装置のうち、いずれか１つ又は２つが接続されると共に、
前記第２スイッチ装置と、該第２スイッチ装置に接続された前記ノード装置群と、はクラスタを構成しており、前記第２スイッチ装置と、該第２スイッチ装置に接続された複数の前記クラスタと、は該複数のクラスタを含むより大きなクラスタを構成しており、
前記第１スイッチ装置は、
当該システム内のバリア同期に参加する前記ノード装置の参加数を記憶する同期参加数設定レジスタと、前記ノード装置から受信した、バリア同期を要求するためのバリア同期要求コマンドを処理した数をカウントするバリア同期カウンタと、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数と、前記バリア同期カウンタのカウント値と、に基づいて加減算を行う加減算器と、該加減算器による演算結果に基づいて、バリア同期が成立したか否かを判定する同期成立判定部と、を含むバリア同期制御手段を有しており、
前記第２スイッチ装置は、
前記クラスタ内のバリア同期に参加する前記ノード装置の参加数を記憶する同期参加数設定レジスタと、前記クラスタ内の前記ノード装置から受信した、前記バリア同期要求コマンドの数をカウントするバリア同期カウンタと、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数と、前記バリア同期カウンタのカウント値と、に基づいて加減算を行う加減算器と、前記加減算器による演算結果に基づいて、バリア同期が成立したか否かを判定する同期成立判定部と、を含むバリア同期制御手段を有する、ことを特徴とする並列処理システム。
【請求項２】
請求項１記載の並列処理システムであって、
前記第１スイッチ装置のバリア同期制御部が、前記バリア同期要求コマンドを受信したときに、前記加減算器は、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数を、前記バリア同期カウンタのカウント値から減算し、
前記同期成立判定部は、前記加減算器による減算結果が０となった場合に、当該システムにおけるバリア同期が成立したことを前記ノード装置へ通知するための、バリア同期成立信号を出力する、ことを特徴とする並列処理システム。
【請求項３】
請求項１又は２記載の並列処理システムであって、
前記第１スイッチ装置のバリア同期制御部が、前記バリア同期要求コマンドを受信したときに、前記加減算器は、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数を、前記バリア同期カウンタのカウント値に加算し、
前記同期成立判定部は、前記加減算器による加算結果と、前記同期参加数設定レジスタに記憶された前記ノード装置の参加数と、が等しい場合に、当該システムにおけるバリア同期が成立したことを前記ノード装置へ通知するための、バリア同期成立信号を出力する、ことを特徴とする並列処理システム。
【請求項４】
請求項１乃至３のうちいずれか１項記載の並列処理システムであって、
前記第２スイッチ装置のバリア同期制御部が、前記バリア同期要求コマンドを受信したときに、前記加減算器は、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数を、前記バリア同期カウンタのカウント値から減算し、
前記同期成立判定部は、前記加減算器による減算結果が０となった場合に、前記クラスタ内におけるノード装置のバリア同期が成立したと判定し、前記クラスタ内のバリア同期に参加する前記ノード装置の数を記憶した前記バリア同期要求コマンドを、前記クラスタ間のバリア同期制御部に対して出力する、ことを特徴とする並列処理システム。
【請求項５】
請求項１乃至４のうちいずれか１項記載の並列処理システムであって、
前記第２スイッチ装置のバリア同期制御部は、前記バリア同期要求コマンドを受信したときに、前記加減算器は、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数を、前記バリア同期カウンタのカウント値に加算し、
前記同期成立判定部は、前記加減算器による加算結果と、前記同期参加数設定レジスタに記憶された前記ノード装置の参加数とが等しい場合に、前記クラスタ内におけるノード装置のバリア同期が成立したと判定し、前記クラスタ内のバリア同期に参加する前記ノード装置の数を記憶した前記バリア同期要求コマンドを、前記クラスタ間のバリア同期制御部に対して出力する、ことを特徴とする並列処理システム。
【請求項６】
請求項４又は５記載の並列処理システムであって、
前記バリア同期制御部が前記バリア同期成立信号を受信したとき、前記同期参加数設定レジスタに、前記バリア同期カウンタからの前記カウント値が書き込まれる、ことを特徴とする並列処理システム。
【請求項７】
請求項６記載の並列処理システムであって、
前記バリア同期制御部は、少なくとも１つの前記バリア同期成立信号を受信していることを示す設定完了フラグを有し、
該設定完了フラグがオンに設定されているときは、前記クラスタ内のバリア同期が成立するまで、前記クラスタ間のバリア同期要求コマンドを出力せず、
前記設定完了フラグがオフに設定されているときは、前記クラスタ内におけるバリア同期の成立を確認することなく、前記クラスタ間のバリア同期要求コマンドを出力する、ことを特徴とする並列処理システム。
【請求項８】
複数のノード装置と、該複数のノード装置を、第１及び第２スイッチ装置を介して相互に接続するネットワーク網と、を備え、
前記ノード装置群には、前記第２スイッチ装置が接続され、前記第１スイッチ装置には、前記第２スイッチ装置が接続され、前記第２スイッチ装置には、前記ノード装置群、前記第１スイッチ装置、および前記第２スイッチ装置のうち、いずれか１つ又は２つが接続されると共に、
前記第２スイッチ装置と、該第２スイッチ装置に接続された前記ノード装置群と、はクラスタを構成しており、前記第２スイッチ装置と、該第２スイッチ装置に接続された複数の前記クラスタと、は該複数のクラスタを含むより大きなクラスタを構成しており、
当該システム内のバリア同期に参加する前記ノード装置の参加数を記憶し、前記ノード装置から受信した、バリア同期を要求するためのバリア同期要求コマンドを処理した数をカウントし、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数と、前記バリア同期カウンタのカウント値と、に基づいて加減算を行い、前記加減算器による演算結果に基づいて、バリア同期が成立したか否かを判定し、
前記クラスタ内のバリア同期に参加する前記ノード装置の参加数を記憶し、前記クラスタ内の前記ノード装置から送信された、前記バリア同期要求コマンドの数をカウントし、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数と、前記バリア同期カウンタのカウント値と、に基づいて加減算を行い、前記加減算器による演算結果に基づいて、バリア同期が成立したか否かを判定する、ことを特徴とする並列処理システムの並列処理方法。
【請求項９】
請求項８記載の並列処理システムの並列処理方法であって、
前記バリア同期要求コマンドを受信したときに、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数を、前記バリア同期カウンタのカウント値から減算し、該減算結果が０となった場合に、当該システムにおけるバリア同期が成立したことを前記ノード装置へ通知するための、バリア同期成立信号を出力する、ことを特徴とする並列処理システムの並列処理方法。
【請求項１０】
請求項８又は９記載の並列処理システムの並列処理方法であって、
前記バリア同期要求コマンドを受信したときに、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数を、前記バリア同期カウンタのカウント値に加算し、該加算結果と、前記記憶された前記ノード装置の参加数と、が等しい場合に、当該システムにおけるバリア同期が成立したことを前記ノード装置へ通知するための、バリア同期成立信号を出力する、ことを特徴とする並列処理システムの並列処理方法。
【請求項１１】
請求項８乃至１０のうちいずれか１項記載の並列処理システムの並列処理方法であって、
前記バリア同期要求コマンドを受信したときに、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数を、前記バリア同期カウンタのカウント値から減算し、該減算結果が０となった場合に、前記クラスタ内におけるノード装置のバリア同期が成立したと判定し、前記クラスタ内のバリア同期に参加する前記ノード装置の数を記憶した前記バリア同期要求コマンドを、前記クラスタ間のノード装置に対して出力する、ことを特徴とする並列処理システムの並列処理方法。
【請求項１２】
請求項８乃至１１のうちいずれか１項記載の並列処理システムの並列処理方法であって、
前記バリア同期要求コマンドを受信したときに、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数を、前記バリア同期カウンタのカウント値に加算し、該加算結果と、前記記憶された前記ノード装置の参加数とが等しい場合に、前記クラスタ内におけるノード装置のバリア同期が成立したと判定し、前記クラスタ内のバリア同期に参加する前記ノード装置の数を記憶した前記バリア同期要求コマンドを、前記クラスタ間のノード装置に対して出力する、ことを特徴とする並列処理システムの並列処理方法。
【請求項１３】
並列処理を行う複数のノード装置を相互に接続するネットワーク網内に設けられ、前記ノード装置のバリア同期を制御するバリア同期制御部を有しており、
前記バリア同期制御部は、
システム内のバリア同期に参加する前記ノード装置の参加数を記憶する同期参加数設定レジスタと、前記ノード装置から受信した、バリア同期を要求するためのバリア同期要求コマンドを処理した数をカウントするバリア同期カウンタと、
前記バリア同期要求コマンドに記憶された前記ノード装置の参加数と、前記バリア同期カウンタのカウント値と、に基づいて加減算を行う加減算器と、
前記加減算器による演算結果に基づいて、バリア同期が成立したか否かを判定する同期成立判定部と、を有する、ことを特徴とするネットワークスイッチ装置。
【請求項１４】
請求項１３記載のネットワークスイッチ装置であって、
前記バリア同期制御部が、前記バリア同期要求コマンドを受信したときに、前記加減算器は、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数を、前記バリア同期カウンタのカウント値から減算し、
前記同期成立判定部は、前記加減算器による減算結果が０となった場合に、システムにおけるバリア同期が成立したことを前記ノード装置へ通知するための、バリア同期成立信号を出力する、ことを特徴とするネットワークスイッチ装置。
【請求項１５】
請求項１３又は１４記載のネットワークスイッチ装置であって、
前記バリア同期制御部が、前記バリア同期要求コマンドを受信したときに、前記加減算器は、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数を、前記バリア同期カウンタのカウント値に加算し、
前記同期成立判定部は、前記加減算器による加算結果と、前記同期参加数設定レジスタに記憶された前記ノード装置の参加数と、が等しい場合に、システムにおけるバリア同期が成立したことを前記ノード装置へ通知するための、バリア同期成立信号を出力する、ことを特徴とするネットワークスイッチ装置。
【請求項１６】
並列処理を行う複数のノード装置を相互に接続するネットワーク網内に設けられ、前記ノード装置のバリア同期を制御するバリア同期制御部を有し、接続される前記ノード装置群と共にクラスタを構成しており、
前記バリア同期制御部は、
前記クラスタ内のバリア同期に参加する前記ノード装置の参加数を記憶する同期参加数設定レジスタと、
前記クラスタ内の前記ノード装置から受信した、前記バリア同期要求コマンドの数をカウントするバリア同期カウンタと、
前記バリア同期要求コマンドに記憶された前記ノード装置の参加数と、前記バリア同期カウンタのカウント値と、に基づいて加減算を行う加減算器と、
前記加減算器による演算結果に基づいて、バリア同期が成立したか否かを判定する同期成立判定部と、を有する、ことを特徴とするネットワークスイッチ装置。
【請求項１７】
請求項１６記載のネットワークスイッチ装置であって、
前記バリア同期制御部が、前記バリア同期要求コマンドを受信したときに、前記加減算器は、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数を、前記バリア同期カウンタのカウント値から減算し、
前記同期成立判定部は、前記加減算器による減算結果が０となった場合に、前記クラスタ内におけるノード装置のバリア同期が成立したと判定し、前記クラスタ内のバリア同期に参加する前記ノード装置の数を記憶した前記バリア同期要求コマンドを、前記クラスタ間のバリア同期制御部に対して出力する、ことを特徴とするネットワークスイッチ装置。
【請求項１８】
請求項１６又は１７記載のネットワークスイッチ装置であって、
前記バリア同期制御部は、前記バリア同期要求コマンドを受信したときに、前記加減算器は、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数を、前記バリア同期カウンタのカウント値に加算し、
前記同期成立判定部は、前記加減算器による加算結果と、前記同期参加数設定レジスタに記憶された前記ノード装置の参加数とが等しい場合に、前記クラスタ内におけるノード装置のバリア同期が成立したと判定し、前記クラスタ内のバリア同期に参加する前記ノード装置の数を記憶した前記バリア同期要求コマンドを、前記クラスタ間のバリア同期制御部に対して出力する、ことを特徴とするネットワークスイッチ装置。
【請求項１９】
複数のノード装置と、該複数のノード装置を、第１及び第２スイッチ装置を介して相互に接続するネットワーク網と、を備え、
前記ノード装置群には、前記第２スイッチ装置が接続され、前記第１スイッチ装置には、前記第２スイッチ装置が接続され、前記第２スイッチ装置には、前記ノード装置群、前記第１スイッチ装置、および前記第２スイッチ装置のうち、いずれか１つ又は２つが接続されると共に、
前記第２スイッチ装置と、該第２スイッチ装置に接続された前記ノード装置群と、はクラスタを構成しており、前記第２スイッチ装置と、該第２スイッチ装置に接続された複数の前記クラスタと、は該複数のクラスタを含むより大きなクラスタを構成しており、
システム内のバリア同期に参加する前記ノード装置の参加数を記憶し、前記ノード装置から受信した、バリア同期を要求するためのバリア同期要求コマンドを処理した数をカウントし、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数と、前記バリア同期カウンタのカウント値と、に基づいて加減算を行い、前記加減算器による演算結果に基づいて、バリア同期が成立したか否かを判定する処理と、
前記クラスタ内のバリア同期に参加する前記ノード装置の参加数を記憶し、前記クラスタ内の前記ノード装置から送信された、前記バリア同期要求コマンドの数をカウントし、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数と、前記バリア同期カウンタのカウント値と、に基づいて加減算を行い、前記加減算器による演算結果に基づいて、バリア同期が成立したか否かを判定する処理と、
をコンピュータに実行させる並列処理プログラムが格納された記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定の計算処理を行う複数のノード装置と、複数のノード装置を相互に接続するネットワーク網と、を備える並列処理システム、並列処理方法、ネットワークスイッチ装置、及び、並列処理プログラムに関し、特に、効率的なバリア同期処理を行う並列処理システム、並列処理方法、ネットワークスイッチ装置、及び並列処理プログラム、に関するものである。
【背景技術】
【０００２】
一般に、並列処理システムにおいて、複数のノード装置に割り当てられた並列プログラムに対し、夫々のノード装置が並行して演算処理を実行することで高速な処理を実行できる。この並列処理では、各ノード装置同士が、一定の処理を完了したことを互いに確認し合いながら協調して処理を進めていくため、その同期方法が不可欠となる。このような同期方法として、一般に、バリア同期が用いられている。このバリア同期においては、同期をとるべき全てのノード装置が、並列プログラム上での一定段階（バリア）に到達したことを相互に通知する。そして、このバリア同期に参加する全てのノード装置が、バリア段階に到達したことを確認した後に、並列プログラムの次の段階に進むようになる。【０００３】
一方で、複数のＣＰＵと、バリア同期機構と、を備えるノード装置が知られている（例えば、特許文献１参照）。バリア同期機構は、自ノード装置内のバリア同期成立を検出し、全ノード装置に通知しつつ、他ノード装置の並列処理が完了したことを検出する。【０００４】
また、複数のＣＰＵ６０４を有する複数のノード６０１と、バリア同期装置６０３とがノード間ネットワーク６０２を介して接続された並列計算機システムが知られている（例えば、特許文献２参照、図６）。ＣＰＵ６０４は、バリア同期点に到達すると、バリア同期装置６０３に対してバリア同期要求を通知する。バリア同期装置６０３は、バリア同期要求を受け取るとカウンタ６１０の値をデクリメントする。同期成立判定部６１３は、デクリメントの結果が０になるとバリア同期が成立したことを認識し、バリア同期通知を各ノード６０１に対して通知する。ノード６０１は、同期通知を受け取ると状態レジスタ６０６を更新し、状態レジスタ６０６を参照することでＣＰＵ６０４はバリア同期の成立を確認することができる。【０００５】
さらに、複数のＣＰＵ７０６、クラスタ内バリア同期制御装置７０４、主記憶装置７０８、及び、これらを相互に接続するクラスタ内ネットワーク７０５を有する複数のクラスタ７０１と、クラスタ間バリア同期制御装置７０２と、複数のクラスタ７０１及びクラスタ間バリア同期制御装置７０２を相互に接続するクラスタ間ネットワーク７０３と、を備える並列計算機システムが知られている（例えば、特許文献３参照、図７）。【０００６】
各ＣＰＵ７０６はバリア同期点に到達すると、まずクラスタ内バリア同期制御装置７０４に対してバリア同期要求を通知する。なお、このバリア同期に参加するクラスタ７０１内におけるＣＰＵ７０６の数は、予めクラスタ内バリア同期制御装置７０４に記憶されている。そして、クラスタ内バリア同期制御装置７０４は、バリア同期要求を受ける毎にデクリメントを実行し、その演算結果が０になったとき、バリア同期の成立を認識できる。クラスタ内バリア同期制御装置７０４は、バリア同期の成立を認識すると、クラスタ間バリア同期制御装置７０２に対してバリア同期要求を通知する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００１−５１９６６号公報
【特許文献２】特許第３４８２８９７号公報
【特許文献３】特開２００１−１７５６１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記特許文献１においては、各ノード装置が夫々バリア同期機構を有するため、例えば、多数のノード装置で構成される並列処理システムでは、そのデータ通信量、処理量等が増加する虞がある。【０００９】
また、上記特許文献２においては、バリア同期装置６０３において、バリア同期要求に対するカウンタ６１０の値の更新処理が逐次化されている。このため、並列計算機システム内の計算ノード数が増加するに従って、その更新処理にかかる時間が増加し、高速なバリア同期処理の実現が困難となる。例えば、１００００台のノード６０１がバリア同期に参加している場合、一つのカウンタ６１０のデクリメント処理に１ナノ秒の時間を要すれば、デクリメント処理だけで１０マイクロ秒の時間がかかることになる。また、バリア同期要求が一つのバリア同期装置６０３に集中するため、通信時間が増加し、バリア同期処理にかかる時間がさらに増加する虞がある。【００１０】
さらに、上記特許文献３においては、階層構造などを意識して、各クラスタ７０１内でバリア同期に参加するＣＰＵ７０６の参加数を予め初期値として設定する必要が生じ得る。しかしながら、例えば、大規模な並列計算機システムの実行環境においては、事前にどのＣＰＵ７０６に対してプログラムが割当てられるかが不明となる場合も多く、したがって、クラスタ７０１毎のＣＰＵ７０６の参加数を予め確定させることは運用上の大きな制限となり、効率的なバリア同期処理の妨げとなる虞がある。【００１１】
本発明は、このような問題点を解決するためになされたものであり、効率的なバリア同期処理が可能な並列処理システム、並列処理方法、ネットワークスイッチ装置、及び並列処理プログラムを提供することを主たる目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するための本発明の一態様は、複数のノード装置と、該複数のノード装置を、第１及び第２スイッチ装置を介して相互に接続するネットワーク網と、を備え、前記ノード装置群には、前記第２スイッチ装置が接続され、前記第１スイッチ装置には、前記第２スイッチ装置が接続され、前記第２スイッチ装置には、前記ノード装置群、前記第１スイッチ装置、および前記第２スイッチ装置のうち、いずれか１つ又は２つが接続されると共に、前記第２スイッチ装置と、該第２スイッチ装置に接続された前記ノード装置群と、はクラスタを構成しており、前記第２スイッチ装置と、該第２スイッチ装置に接続された複数の前記クラスタと、は該複数のクラスタを含むより大きなクラスタを構成しており、前記第１スイッチ装置は、当該システム内のバリア同期に参加する前記ノード装置の参加数を記憶する同期参加数設定レジスタと、前記ノード装置から受信した、バリア同期を要求するためのバリア同期要求コマンドを処理した数をカウントするバリア同期カウンタと、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数と、前記バリア同期カウンタのカウント値と、に基づいて加減算を行う加減算器と、該加減算器による演算結果に基づいて、バリア同期が成立したか否かを判定する同期成立判定部と、を含むバリア同期制御部を有しており、前記第２スイッチ装置は、前記クラスタ内のバリア同期に参加する前記ノード装置の参加数を記憶する同期参加数設定レジスタと、前記クラスタ内の前記ノード装置から受信した、前記バリア同期要求コマンドの数をカウントするバリア同期カウンタと、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数と、前記バリア同期カウンタのカウント値と、に基づいて加減算を行う加減算器と、前記加減算器による演算結果に基づいて、バリア同期が成立したか否かを判定する同期成立判定部と、を含むバリア同期制御部を有する、ことを特徴とする並列処理システムである。【００１３】
また、上記目的を達成するための本発明の一態様は、複数のノード装置と、該複数のノード装置を、第１及び第２スイッチ装置を介して相互に接続するネットワーク網と、を備え、前記ノード装置群には、前記第２スイッチ装置が接続され、前記第１スイッチ装置には、前記第２スイッチ装置が接続され、前記第２スイッチ装置には、前記ノード装置群、前記第１スイッチ装置、および前記第２スイッチ装置のうち、いずれか１つ又は２つが接続されると共に、前記第２スイッチ装置と、該第２スイッチ装置に接続された前記ノード装置群と、はクラスタを構成しており、前記第２スイッチ装置と、該第２スイッチ装置に接続された複数の前記クラスタと、は該複数のクラスタを含むより大きなクラスタを構成しており、当該システム内のバリア同期に参加する前記ノード装置の参加数を記憶し、前記ノード装置から受信した、バリア同期を要求するためのバリア同期要求コマンドを処理した数をカウントし、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数と、前記バリア同期カウンタのカウント値と、に基づいて加減算を行い、前記加減算器による演算結果に基づいて、バリア同期が成立したか否かを判定し、前記クラスタ内のバリア同期に参加する前記ノード装置の参加数を記憶し、前記クラスタ内の前記ノード装置から送信された、前記バリア同期要求コマンドの数をカウントし、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数と、前記バリア同期カウンタのカウント値と、に基づいて加減算を行い、前記加減算器による演算結果に基づいて、バリア同期が成立したか否かを判定する、ことを特徴とする並列処理システムの並列処理方法であってもよい。【００１４】
さらに、上記目的を達成するための本発明の一態様は、並列処理を行う複数のノード装置を相互に接続するネットワーク網内に設けられ、前記ノード装置のバリア同期を制御しており、前記バリア同期制御部は、システム内のバリア同期に参加する前記ノード装置の参加数を記憶する同期参加数設定レジスタと、前記ノード装置から受信した、バリア同期を要求するためのバリア同期要求コマンドを処理した数をカウントするバリア同期カウンタと、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数と、前記バリア同期カウンタのカウント値と、に基づいて加減算を行う加減算器と、前記加減算器による演算結果に基づいて、バリア同期が成立したか否かを判定する同期成立判定部と、を有する、ことを特徴とするネットワークスイッチ装置であってもよい。【００１５】
さらにまた、上記目的を達成するための本発明の一態様は、並列処理を行う複数のノード装置を相互に接続するネットワーク網内に設けられ、前記ノード装置のバリア同期を制御するバリア同期制御部を有し、接続される前記ノード装置群と共にクラスタを構成しており、前記バリア同期制御部は、前記クラスタ内のバリア同期に参加する前記ノード装置の参加数を記憶する同期参加数設定レジスタと、前記クラスタ内の前記ノード装置から受信した、前記バリア同期要求コマンドの数をカウントするバリア同期カウンタと、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数と、前記バリア同期カウンタのカウント値と、に基づいて加減算を行う加減算器と、前記加減算器による演算結果に基づいて、バリア同期が成立したか否かを判定する同期成立判定部と、を有する、ことを特徴とするネットワークスイッチ装置であってもよい。【００１６】
さらにまた、上記目的を達成するための本発明の一態様は、複数のノード装置と、該複数のノード装置を、第１及び第２スイッチ装置を介して相互に接続するネットワーク網と、を備え、前記ノード装置群には、前記第２スイッチ装置が接続され、前記第１スイッチ装置には、前記第２スイッチ装置が接続され、前記第２スイッチ装置には、前記ノード装置群、前記第１スイッチ装置、および前記第２スイッチ装置のうち、いずれか１つ又は２つが接続されると共に、前記第２スイッチ装置と、該第２スイッチ装置に接続された前記ノード装置群と、はクラスタを構成しており、前記第２スイッチ装置と、該第２スイッチ装置に接続された複数の前記クラスタと、は該複数のクラスタを含むより大きなクラスタを構成しており、システム内のバリア同期に参加する前記ノード装置の参加数を記憶し、前記ノード装置から受信した、バリア同期を要求するためのバリア同期要求コマンドを処理した数をカウントし、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数と、前記バリア同期カウンタのカウント値と、に基づいて加減算を行い、前記加減算器による演算結果に基づいて、バリア同期が成立したか否かを判定する処理と、前記クラスタ内のバリア同期に参加する前記ノード装置の参加数を記憶し、前記クラスタ内の前記ノード装置から送信された、前記バリア同期要求コマンドの数をカウントし、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数と、前記バリア同期カウンタのカウント値と、に基づいて加減算を行い、前記加減算器による演算結果に基づいて、バリア同期が成立したか否かを判定する処理と、をコンピュータに実行させる並列処理プログラムが格納された記録媒体であってもよい。
【発明の効果】
【００１７】
本発明によれば、効率的なバリア同期処理が可能な並列処理システム、並列処理方法、ネットワークスイッチ装置、及び並列処理プログラムを提供することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施形態に係る並列処理システムの概略的な構成を示すブロック図である。
【図２】本発明の一実施形態に係るネットワーク網のネットワークスイッチ装置の概略的なシステム構成を示すブロック図である。
【図３】本発明の一実施形態に係るネットワークスイッチ装置のバリア同期制御部の概略的なシステム構成を示すブロック図である。
【図４】本発明の一実施形態に係る並列処理システムによるバリア同期処理の動作シーケンスを示す図である。
【図５】中間段スイッチ装置が２段以上で構成されたネットワーク網の一例を示す図である。
【図６】従来の並列計算機システムの概略的な一構成を示すブロック図である。
【図７】従来の並列計算機システムの概略的な一構成を示すブロック図である。
【発明を実施するための形態】
【００１９】
以下、図面を参照して本発明の実施形態について説明する。図１は、本発明の一実施形態に係る並列処理システムの概略的な構成を示すブロック図である。本実施形態に係る並列処理システム１００は、所定の計算処理を行う複数のノード装置１０４で構成されるノード装置群１０１と、ノード装置群１０１を複数のネットワークスイッチ装置２０１（１０５、１０６）を介して相互に接続するネットワーク網１０２と、を備えている。
【００２０】
各ノード装置１０４は、例えば、制御処理、演算処理等と行うＣＰＵ（Central Processing Unit）、ＣＰＵによって実行される制御プログラム、演算プログラム、処理データ等を一時的に記憶するＲＡＭ（Random Access Memory）等からなる計算機として構成されている。また、ノード装置１０４は、必要に応じてネットワーク網１０２を介して、他のノード装置１０４にデータ転送を行い、所定の計算処理を実行することができる。
【００２１】
ネットワーク網１０２は、例えば、通信経路を相互に接続する複数のネットワークスイッチ装置２０１を有する、ツリー型の相互結合網として構成されているが、これに限らず、任意の構成が適用可能である。また、複数のネットワークスイッチ装置２０１は、複数の中間段スイッチ装置（第２スイッチ装置）１０５と、最上段スイッチ装置（第１スイッチ装置）１０６と、から構成されている。各中間段スイッチ装置１０５には、複数のノード装置１０４及び最上段スイッチ装置１０６が接続されている。また、最上段スイッチ装置１０６には、複数の中間段スイッチ装置１０５が接続されている。
【００２２】
ここで、例えば、１つの中間段スイッチ装置１０５と、その中間段スイッチ装置１０５に接続された複数のノード装置１０４と、からなる一群をクラスタ１０３と定義する。同一クラスタ１０３内のノード装置１０４同士は、中間段スイッチ装置１０５を介して、データ通信を行うことができる。一方、別クラスタ１０３間のノード装置１０４同士は、中間段スイッチ装置１０５および最上段スイッチ装置１０６を介して、データ通信を行うことができる。なお、本実施形態においては、説明の簡略化のために、１段目の中間段スイッチ装置１０５と、２段目の最上段スイッチ装置１０６とからなる２段ツリー型ネットワークとして構成されているが、これに限らず、例えば、中間段スイッチ装置１０５が２段以上で構成されていてもよく（図５）、任意の段数のネットワークとして構成されてもよい。（例えば、ノード装置群１０１―中間段スイッチ装置１０５・・・・中間段スイッチ装置１０５―最上段スイッチ装置１０６）なお、中間段スイッチ装置１０５が２段以上で構成された場合、定義された中間段スイッチ装置１０５と、その中間段スイッチ装置１０５の下流方向にある全ての中間段スイッチ装置１０５及びノード装置１０４でクラスタ１０３が構成される。
【００２３】
図２は、本実施形態に係るネットワーク網のネットワークスイッチ装置の概略的なシステム構成を示すブロック図である。図２に示すように、本実施形態に係るネットワークスイッチ装置２０１（１０５、１０６）は、ｎ個の入力ポート２０４と、ｎ個の出力ポート２０５と、（ｎ＋１）個の入出力部を有するクロスバスイッチ２０２と、ノード装置１０４のバリア同期を制御するバリア同期制御部２０３と、を有している。
【００２４】
ここで、バリア同期とは、例えば、並列処理システム１００内の複数のノード装置１０４が並行的に並列プログラムを実行する際に、各ノード装置１０４が一定の処理を完了したことを相互に確認するために行われる同期である。このバリア同期においては、同期をとるべき全ノード装置１０４は、並列プログラム上のバリアと呼ばれる一定段階に到達したことを相互に通知し、バリア同期に参加する全てのノード装置１０４がバリア段階に到達したことを確認した後、並列プログラムの次の段階に進むこととなる。
【００２５】
各入力ポート２０４及び各出力ポート２０５は、夫々、クロスバスイッチ２０２に接続されている。そして、各処理データは、各入力ポート２０４を介してクロスバスイッチ２０２に入力され、各出力ポート２０５を介して出力される。また、クロスバスイッチ２０２は、バリア同期制御部２０３に接続されている。そして、クロスバスイッチ２０２からの出力信号がバリア同期制御部２０３に入力され、バリア同期制御部２０３からの出力信号がクロスバスイッチ２０２に入力される。このように、各入力ポート２０４及び各出力ポート２０５は、クロスバスイッチ２０２を介してバリア同期制御部２０３に接続されている。
【００２６】
図３は、本実施形態に係るネットワークスイッチ装置のバリア同期制御部の概略的なシステム構成を示すブロック図である。図３に示すように、本実施形態に係るバリア同期制御部２０３は、入力判定部３０１と、同期参加数設定レジスタ３０２と、バリア同期カウンタ３０３と、加減算器３０４と、同期成立判定部３０５と、コマンド生成部３０６と、を有している。
【００２７】
入力判定部３０１は、クロスバスイッチ２０２に接続されており、クロスバスイッチ２０２からの入力信号に基づいて、要求された処理内容に応じた通信先へ切替を行う機能を有している。また、入力判定部３０１は、複数のバリア同期処理を同時に処理するための識別子（ノード番号等）を判定する機能を有している。入力判定部３０１には、同期参加数設定レジスタ３０２、バリア同期カウンタ３０３、及び加減算器３０４が接続されている。
【００２８】
同期参加数設定レジスタ３０２は、クラスタ１０３内または並列処理システム１００内において、バリア同期に参加するノード装置１０４の数（参加数）ｋ１を記憶するためのレジスタである。同期参加数設定レジスタ３０２には、バリア同期カウンタ３０３及び同期成立判定部３０５が接続されている。
【００２９】
同期参加数設定レジスタ３０２は、入力判定部３０１からの指示に従って、バリア同期処理カウンタ３０３にカウント値ｋ２を書き込み、また同期成立判定部３０５に出力値を出力することができる。
【００３０】
バリア同期カウンタ３０３は、バリア同期制御部２０３に対して、バリア同期を要求するためのバリア同期要求コマンドを送信したノード装置１０４の数ｋ３をカウントするためのカウンタである。バリア同期カウンタ３０３は、加減算器３０４に接続されている。バリア同期カウンタ３０３は、カウント値ｋ２を加減算器３０４に出力し、また、同期参加数設定レジスタ３０２の参加数ｋ１の書き込みを行うことができる。設定完了フラグ３０７は、同期参加数設定レジスタ３０２の参加数ｋ１が有効か否かを判定するためのフラグである。
【００３１】
同期参加数設定レジスタ３０２およびバリア同期カウンタ３０３は、複数のバリア同期処理を同時に処理するために、複数のレジスタ及びカウンタが並列して構成されている。同様に、設定完了フラグ３０７は、複数のバリア同期処理を同時に処理するために、複数のフラグで構成されている。
【００３２】
なお、同期参加数設定レジスタ３０２、バリア同期カウンタ３０３、および設定完了フラグ３０７の数は同数であり、夫々が１対１に対応している。例えば、識別子がｎ番の場合は、ｎ番目の同期参加数設定レジスタ３０２と、ｎ番目のバリア同期カウンタ３０３と、ｎ番目の設定完了フラグ３０７と、を利用して、バリア同期処理が行われる。
【００３３】
加減算器３０４は、バリア同期カウンタ３０３のカウント値ｋ２に対して加減算を行い、更新を行うための整数演算器であり、同期成立判定部３０５に接続されている。同期成立判定部３０５は、クラスタ１０３内または並列処理システム１００内においてバリア同期が成立しているか否かを判定するための判定部であり、比較器等によって構成されている。同期成立判定部３０５はコマンド生成部３０６に接続され、判定結果をコマンド生成部３０６に対して出力する。
【００３４】
コマンド生成部３０６は、同期成立判定部３０５の判定結果に応じて出力コマンドを生成する機能を有している。コマンド生成部３０６は、クロスバスイッチ２０２に接続され、生成した出力コマンドをクロスバスイッチ２０２に出力する。
【００３５】
次に、本実施形態に係る並列処理システム１００によるバリア同期処理の動作シーケンスについて、詳細に説明する。図４は、本実施形態に係る並列処理システムによるバリア同期処理の動作シーケンスを示す図である。
【００３６】
なお、図４において、（ステップＳ１）、（ステップＳ５）、（ステップＳ６）、（ステップＳ７）、および（ステップＳ１１）は、ノード装置１０４における処理である。また、（ステップＳ２）、（ステップＳ４）、（ステップＳ８）、および（ステップＳ１０）は、中間段スイッチ装置１０５における処理であり、（ステップＳ３）、および（ステップＳ９）は、最上段スイッチ装置１０６における処理である。さらに、（ステップＳ６）乃至（ステップＳ１１）は、繰り返し実行されるが、各（ステップＳ６）は同一演算処理を繰返し実行するわけではなく、プログラム実行の過程でバリア同期処理が何度も繰り返されることを示している。このとき、繰返し実行されるバリア同期処理には、同一ノード装置群１０１が参加している。
【００３７】
まず、並列処理システム１００において、バリア同期処理に参加するノード装置１０４の数が設定される（ステップＳ１）。そして、ノード装置群１０１上の代表プロセスは、設定要求コマンドを生成して、この設定要求コマンドを中間段スイッチ装置１０５に対して送信する。
【００３８】
次に、中間段スイッチ装置１０５は、代表プロセスからの設定要求コマンドを、最上段スイッチ装置１０６に対して転送する（ステップＳ２）。
【００３９】
その後、最上段スイッチ装置１０６は、中間段スイッチ装置１０５から転送された設定要求コマンドの処理を行う（ステップＳ３）。ここで、最上段スイッチ装置１０６におけるバリア同期制御部２０３の同期参加数設定レジスタ３０２は、設定要求コマンドで指定された値（参加数ｋ１）を記憶する。そして、コマンド生成部３０６は、その設定完了を各ノード装置側へ通知するための、設定完了コマンドを生成し、中間段スイッチ装置１０５に対して出力する。なお、コマンド生成部３０６は、生成した設定完了コマンドを、全ての中間段スイッチ装置１０５に対して出力する。
【００４０】
さらに、各中間段スイッチ装置１０５は、最上段スイッチ装置１０６からの設定完了コマンドを、各ノード装置１０４に転送する（ステップＳ４）。このとき、各中間段スイッチ装置１０５のバリア同期制御部２０３は、設定完了フラグ３０７をオフに、同期参加数設定レジスタ３０２の参加数ｋ１を０に、バリア同期カウンタ３０３のカウント値ｋ２を０に初期化する。
【００４１】
各ノード装置１０４は、各中間段スイッチ装置１０５から転送された設定完了コマンドの受信を確認する（ステップＳ５）。そして、各ノード装置１０４は、設定完了コマンドの受信を確認すると、次の演算およびデータ転送処理を開始し、並列プログラムを実行する（ステップＳ６）。
【００４２】
次に、各ノード装置１０４は、並列プログラムに設定された同期点（バリア）に到達すると、バリア同期要求コマンドを各中間段スイッチ装置１０５に対して送信する（ステップＳ７）。そして、各ノード装置１０４は、後述のバリア同期処理の完了まで待機する。なお、このバリア同期要求コマンドは、その通信情報の一部に、バリア同期要求コマンドを送信したノード装置１０４の数ｋ３を含んでいる。例えば、このノード装置１０４がバリア同期要求コマンドを送信した時点では、このノード装置１０４のみがバリア同期要求コマンドを送信しているので、ノード装置１０４の数ｋ３には１が記憶されている。
【００４３】
その後、中間段スイッチ装置１０５は、各ノード装置１０４からバリア同期要求コマンドを受信すると、このバリア同期要求コマンドを最上段スイッチ装置１０６に対して転送する（ステップＳ８）。なお、この（ステップＳ８）の処理は、設定完了フラグ３０７の値によって変化する。
【００４４】
例えば、（ステップＳ８）が１回目に実行される場合、（ステップＳ４）において設定完了フラグ３０７は初期化されオフになっているため、この（ステップＳ８）の処理は、次のような動作となる。すなわち、中間段スイッチ装置１０５のバリア同期制御部２０３の入力判定部３０１が、バリア同期要求コマンドを各ノード装置１０４から受信すると、加減算器３０４は、バリア同期カウンタ３０３のカウント値ｋ２に、バリア同期要求コマンドに記憶されたバリア同期を要求するノード装置１０４の数ｋ３を加算する。このとき、バリア同期要求コマンドのノード装置１０４の数ｋ３には、１が設定されているので、バリア同期カウンタ３０３のカウント値ｋ２がインクリメントされることになる。この演算結果は、バリア同期カウンタ３０３に再度格納される。そして、コマンド生成部３０６は、このバリア同期要求コマンドを、最上段スイッチ装置１０６に対して出力する。
【００４５】
次に、最上段スイッチ装置１０６は、中間段スイッチ装置１０５のコマンド生成部３０６からのバリア同期要求コマンドに応じて、バリア同期要求処理を行う（ステップＳ９）。
【００４６】
ここで、最上段スイッチ装置１０６は、受信したバリア同期要求コマンドからノード装置１０４の数ｋ３を読み出す。そして、バリア同期制御部２０３の加減算器３０４は、バリア同期カウンタ３０３のカウント値ｋ２からバリア同期要求コマンドのノード装置１０４の数ｋ３を減算する。加減算器３０４は、この減算結果を同期成立判定部３０５に出力し、同期成立判定部３０５は、この減算結果と０とを比較する。同期成立判定部３０５は、この減算結果と０とが一致し、バリア同期が成立したと判断したとき、バリア同期成立信号をコマンド生成部３０６に対して出力する。さらに、コマンド生成部３０６は、このバリア同期成立信号を中間段スイッチ１０５に対して出力する。また、同時に、同期参加数設定レジスタ３０２は、参加数ｋ１をバリア同期カウンタ３０３に出力し、バリア同期カウンタ３０３は、同期参加数設定レジスタ３０２からの参加数ｋ１を書き込み、記憶する。
【００４７】
その後、各中間段スイッチ装置１０５は、最上段スイッチ装置１０６からのバリア同期成立信号を各ノード装置１０４に対して転送する（ステップＳ１０）。なお、（ステップＳ１０）の処理は、設定完了フラグ３０７の値によって変化する。
【００４８】
例えば、（ステップＳ１０）が１回目に実行される場合、（ステップＳ４）において設定完了フラグ３０７が初期化されてオフになっているため、この（ステップＳ１０）の処理は、次のような動作となる。すなわち、中間段スイッチ装置１０５のバリア同期制御部２０３の入力判定部３０１は、最上段スイッチ装置１０６からバリア同期成立信号を受信すると、バリア同期カウンタ３０３に指示信号を出力する。バリア同期カウンタ３０３は、記憶しているカウント値ｋ２を同期参加数設定レジスタ３０２に出力し、カウント値ｋ２を０に初期化する。また、同期参加数設定レジスタ３０２は、バリア同期カウンタ３０３からのカウント値ｋ２を書き込み、記憶する。さらに、バリア同期制御部２０３は、設定完了フラグ３０７を、オンにセットする。そして、コマンド生成部３０６は、バリア同期成立信号を各ノード装置１０４に対して出力する。
【００４９】
さらに、各ノード装置１０４は、各中間段スイッチ装置１０５からのバリア同期成立信号の受信を確認し、バリア同期成立を確認する（ステップＳ１１）。各ノード装置１０４は、バリア同期成立信号の受信を確認すると、次の演算およびデータ転送処理を開始することができる。
【００５０】
次に、各ノード装置１０４は、（ステップＳ６）の処理に戻り、（ステップＳ６）乃至（ステップＳ１１）の処理が繰り返し実行される。ここで、２回目以降の各（ステップＳ６）乃至（ステップＳ１１）の実行において、各ノード装置１０４で実行される（ステップＳ６）、（ステップＳ７）および（ステップＳ１１）の処理と、最上段スイッチ装置１０６で実行される（ステップＳ３）および（ステップＳ９）の処理については、上述した１回目の各（ステップＳ６）乃至（ステップＳ１１）の処理と略同一である。一方、中間段スイッチ装置１０５で実行される（ステップＳ８）および（ステップＳ１０）の処理については、２回目以降の各ステップ実行時には設定完了フラグ３０７がオンにセットされているため、上述の１回目の各ステップとは異なる処理が実行される。
【００５１】
まず、（ステップＳ８）が２回目以降に実行される場合の動作について、詳細に説明する。この場合、１回目の（ステップＳ１０）の実行時に設定完了フラグ３０７がオンにセットされているため、（ステップＳ８）の処理は次のような動作となる。
【００５２】
すなわち、中間段スイッチ装置１０５のバリア同期制御部２０３の入力判定部３０１が、バリア同期要求コマンドを受信すると、加減算器３０４は、バリア同期カウンタ３０３のカウント値ｋ２に、バリア同期要求コマンドに記憶されたバリア同期を要求するノード装置１０４の数ｋ３を加算する。このとき、バリア同期要求コマンドが、ノード装置１０４から中間段スイッチ装置１０５へ直接入力されていれば、バリア同期要求コマンドのバリア同期を要求するノード装置１０４の数ｋ３には１が設定されている。加減算器３０４は、演算結果を同期成立判定部３０５に対して出力する。同期成立判定部３０５は、加減算器３０４の演算結果と、同期参加数設定レジスタ３０２の参加数ｋ１とを比較する。
【００５３】
なお、加減算器３０４の演算結果と同期参加数設定レジスタ３０２の参加数ｋ１とが等しい場合、このクラスタ１０３の中間段スイッチ装置１０５に直接接続されたノード装置１０４のうち、バリア同期処理に参加する全てのノード装置１０４から、バリア同期要求コマンドが到達していることを意味する。すなわち、クラスタ１０３内におけるバリア同期が成立していることになる。この場合、コマンド生成部３０６は、集約したバリア同期要求コマンドを生成し、このバリア同期要求コマンドを最上段スイッチ１０６に対して出力する。同時に、バリア同期カウンタ３０３は、カウント値を０に再初期化する。
【００５４】
一方、加減算器３０４の演算結果と、同期参加数設定レジスタ３０２の参加数ｋ１とが不一致の場合は、クラスタ１０３内におけるバリア同期が成立していない。このため、バリア同期カウンタ３０３は、加減算器３０４の演算結果を、カウント値ｋ２として、書き込み、次のバリア同期要求コマンドが到着するまで待機する。
【００５５】
次に、（ステップＳ１０）が２回目以降に実行される場合の動作について、詳細に説明する。この場合、１回目の（ステップＳ１０）の実行時に、設定完了フラグ３０７がオンにセットされているため、（ステップＳ１０）の処理は、次のような動作となる。
【００５６】
すなわち、中間段スイッチ装置１０５のバリア同期制御部２０３の入力判定部３０１が、バリア同期成立信号を受信すると、バリア同期カウンタ３０３はカウント値ｋ２を０に初期化する。なお、２回目以降の（ステップＳ１０）の実行時には、１回目の実行時と異なり、設定完了フラグ３０７及び同期参加数設定レジスタ３０２に対する変更は行われない。その後、コマンド生成部３０６は、バリア同期成立信号を、各ノード装置１０４に対して出力する。
【００５７】
このように、本実施形態に係る並列処理システム１００において、２回目以降の（ステップＳ８）の実行時に、中間段スイッチ装置１０５は、バリア同期要求コマンドに記憶されたバリア同期を要求するノード装置１０４の数ｋ３を、バリア同期カウンタ３０３のカウント値ｋ２に対して累算し、同期参加数設定レジスタ３０２の参加数ｋ１と比較する。そして、中間段スイッチ装置１０５は、クラスタ１０３内におけるバリア同期の成立が確認されたときだけ、最上段スイッチ装置１０６に対して、バリア同期要求コマンドを送信する。これにより、各ノード装置１０４からのバリア同期要求コマンドは、中間段スイッチ装置１０５によって集約されることとなる。したがって、バリア同期要求コマンドは、最上段スイッチ装置１０６内のバリア同期制御部２０３に対して、最大でも中間段スイッチ１０５の数だけしか到達しない。このため、最上段スイッチ装置１０６内のバリア同期制御部２０３に対するアクセス負荷が軽減される。また、同時に、各ノード装置１０４からの同期要求コマンドが中間段スイッチ装置１０５で集約されているため、ネットワークスイッチ装置２０１間の通信負荷も軽減される。さらに、これらの負荷軽減効果により、バリア同期処理にかかる時間を効果的に削減することが可能となる。
【００５８】
以上、本実施形態に係る並列処理システム１００において、複数のノード装置１０４が参加するバリア同期処理のネットワーク負荷を軽減すると共に、バリア同期制御部２０３に対する処理要求の集中を緩和し、バリア同期処理の高速化を実現できる。特に、多数のノード装置１０４から構成される大規模な並列処理システム１００においては、大きな効果が期待できる。また、上記高速なバリア同期処理の実現によって、並列処理システム１００全体の並列演算処理性能を向上させることができる。さらに、上記高速なバリア同期処理の実現に際して、並列プログラム自体は、ノード装置１０４の階層構造を意識せずに記述できるため、並列処理システム１００の柔軟かつ効率的な運用が可能となる。
【００５９】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上記一実施形態において、中間段スイッチ装置１０５は、２回目以降のバリア同期要求コマンドを処理する際に、カウント値ｋ２に、バリア同期を要求するノード装置１０４の数ｋ３を加算しているが、これに限らず、所定の設定値を初期値として、この初期値から減算を行い、減算結果が０になった時点で集約されたバリア同期要求コマンドを生成してもよい。この場合、カウンタ値ｋ２が０になった後で、同期参加数設定レジスタ３０２の値を再度カウンタ値ｋ２にリロードすればよい。
【００６０】
また、上記実施の形態において、任意の処理を、ＣＰＵ１ａにコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、記録媒体に記録して提供することも可能であり、また、インターネットその他の通信媒体を介して伝送することにより提供することも可能である。さらに、記憶媒体には、例えば、フレキシブルディスク、ハードディスク、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ、ＲＯＭカートリッジ、バッテリバックアップ付きＲＡＭメモリカートリッジ、フラッシュメモリカートリッジ、不揮発性ＲＡＭカートリッジ等が含まれる。さらにまた、通信媒体には、電話回線等の有線通信媒体、マイクロ波回線等の無線通信媒体等が含まれる。
【００６１】
この出願は、２００９年３月２５日に出願された日本出願特願２００９−０７４５６２を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【００６２】
１００    並列処理システム
１０１    ノード装置群
１０２    ネットワーク網
１０３    クラスタ
１０４    ノード装置
１０５    中間段スイッチ装置
１０６    最上段スイッチ装置
２０１    ネットワークスイッチ装置
２０２    クロスバスイッチ
２０３    バリア同期制御部
３０１    入力判定部
３０２    同期参加数設定レジスタ
３０３    バリア同期カウンタ
３０４    加減算器
３０５    同期成立判定部
３０６    コマンド生成部
【図１】
2010109761.tif 000003
【図２】
2010109761.tif 000004
【図３】
2010109761.tif 000005
【図４】
2010109761.tif 000006
【図５】
2010109761.tif 000007
【図６】
2010109761.tif 000008
【図７】
2010109761.tif 000009
【手続補正書】
【提出日】平成23年8月15日(2011.8.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のノード装置と、該複数のノード装置を、第１及び第２スイッチ装置を介して相互に接続するネットワーク網と、を備え、
前記ノード装置群には、前記第２スイッチ装置が接続され、前記第１スイッチ装置には、前記第２スイッチ装置が接続され、前記第２スイッチ装置には、前記ノード装置群、前記第１スイッチ装置、および前記第２スイッチ装置のうち、いずれか１つ又は２つが接続されると共に、
前記第２スイッチ装置と、該第２スイッチ装置に接続された前記ノード装置群と、はクラスタを構成しており、前記第２スイッチ装置と、該第２スイッチ装置に接続された複数の前記クラスタと、は該複数のクラスタを含むより大きなクラスタを構成しており、
前記第１スイッチ装置は、
当該システム内のバリア同期に参加する前記ノード装置の参加数を記憶する同期参加数設定レジスタと、前記ノード装置から受信した、バリア同期を要求するためのバリア同期要求コマンドを処理した数をカウントするバリア同期カウンタと、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数と、前記バリア同期カウンタのカウント値と、に基づいて加減算を行う加減算器と、該加減算器による演算結果に基づいて、バリア同期が成立したか否かを判定する同期成立判定部と、を含むバリア同期制御手段を有しており、
前記第２スイッチ装置は、
前記クラスタ内のバリア同期に参加する前記ノード装置の参加数を記憶する同期参加数設定レジスタと、前記クラスタ内の前記ノード装置から受信した、前記バリア同期要求コマンドの数をカウントするバリア同期カウンタと、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数と、前記バリア同期カウンタのカウント値と、に基づいて加減算を行う加減算器と、前記加減算器による演算結果に基づいて、バリア同期が成立したか否かを判定する同期成立判定部と、を含むバリア同期制御手段を有する、ことを特徴とする並列処理システム。
【請求項２】
請求項１記載の並列処理システムであって、
前記第１スイッチ装置のバリア同期制御部が、前記バリア同期要求コマンドを受信したときに、前記加減算器は、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数を、前記バリア同期カウンタのカウント値から減算し、
前記同期成立判定部は、前記加減算器による減算結果が０となった場合に、当該システムにおけるバリア同期が成立したことを前記ノード装置へ通知するための、バリア同期成立信号を出力する、ことを特徴とする並列処理システム。
【請求項３】
請求項１又は２記載の並列処理システムであって、
前記第１スイッチ装置のバリア同期制御部が、前記バリア同期要求コマンドを受信したときに、前記加減算器は、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数を、前記バリア同期カウンタのカウント値に加算し、
前記同期成立判定部は、前記加減算器による加算結果と、前記同期参加数設定レジスタに記憶された前記ノード装置の参加数と、が等しい場合に、当該システムにおけるバリア同期が成立したことを前記ノード装置へ通知するための、バリア同期成立信号を出力する、ことを特徴とする並列処理システム。
【請求項４】
請求項１乃至３のうちいずれか１項記載の並列処理システムであって、
前記第２スイッチ装置のバリア同期制御部が、前記バリア同期要求コマンドを受信したときに、前記加減算器は、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数を、前記バリア同期カウンタのカウント値から減算し、
前記同期成立判定部は、前記加減算器による減算結果が０となった場合に、前記クラスタ内におけるノード装置のバリア同期が成立したと判定し、前記クラスタ内のバリア同期に参加する前記ノード装置の数を記憶した前記バリア同期要求コマンドを、前記クラスタ間のバリア同期制御部に対して出力する、ことを特徴とする並列処理システム。
【請求項５】
請求項１乃至４のうちいずれか１項記載の並列処理システムであって、
前記第２スイッチ装置のバリア同期制御部は、前記バリア同期要求コマンドを受信したときに、前記加減算器は、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数を、前記バリア同期カウンタのカウント値に加算し、
前記同期成立判定部は、前記加減算器による加算結果と、前記同期参加数設定レジスタに記憶された前記ノード装置の参加数とが等しい場合に、前記クラスタ内におけるノード装置のバリア同期が成立したと判定し、前記クラスタ内のバリア同期に参加する前記ノード装置の数を記憶した前記バリア同期要求コマンドを、前記クラスタ間のバリア同期制御部に対して出力する、ことを特徴とする並列処理システム。
【請求項６】
請求項４又は５記載の並列処理システムであって、
前記バリア同期制御部が前記バリア同期成立信号を受信したとき、前記同期参加数設定レジスタに、前記バリア同期カウンタからの前記カウント値が書き込まれる、ことを特徴とする並列処理システム。
【請求項７】
請求項６記載の並列処理システムであって、
前記バリア同期制御部は、少なくとも１つの前記バリア同期成立信号を受信していることを示す設定完了フラグを有し、
該設定完了フラグがオンに設定されているときは、前記クラスタ内のバリア同期が成立するまで、前記クラスタ間のバリア同期要求コマンドを出力せず、
前記設定完了フラグがオフに設定されているときは、前記クラスタ内におけるバリア同期の成立を確認することなく、前記クラスタ間のバリア同期要求コマンドを出力する、ことを特徴とする並列処理システム。
【請求項８】
複数のノード装置と、該複数のノード装置を、第１及び第２スイッチ装置を介して相互に接続するネットワーク網と、を備え、
前記ノード装置群には、前記第２スイッチ装置が接続され、前記第１スイッチ装置には、前記第２スイッチ装置が接続され、前記第２スイッチ装置には、前記ノード装置群、前記第１スイッチ装置、および前記第２スイッチ装置のうち、いずれか１つ又は２つが接続されると共に、
前記第２スイッチ装置と、該第２スイッチ装置に接続された前記ノード装置群と、はクラスタを構成しており、前記第２スイッチ装置と、該第２スイッチ装置に接続された複数の前記クラスタと、は該複数のクラスタを含むより大きなクラスタを構成しており、
当該システム内のバリア同期に参加する前記ノード装置の参加数を記憶し、前記ノード装置から受信した、バリア同期を要求するためのバリア同期要求コマンドを処理した数をカウントし、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数と、前記バリア同期カウンタのカウント値と、に基づいて加減算を行い、前記加減算器による演算結果に基づいて、バリア同期が成立したか否かを判定し、
前記クラスタ内のバリア同期に参加する前記ノード装置の参加数を記憶し、前記クラスタ内の前記ノード装置から送信された、前記バリア同期要求コマンドの数をカウントし、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数と、前記バリア同期カウンタのカウント値と、に基づいて加減算を行い、前記加減算器による演算結果に基づいて、バリア同期が成立したか否かを判定する、ことを特徴とする並列処理システムの並列処理方法。
【請求項９】
請求項８記載の並列処理システムの並列処理方法であって、
前記バリア同期要求コマンドを受信したときに、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数を、前記バリア同期カウンタのカウント値から減算し、該減算結果が０となった場合に、当該システムにおけるバリア同期が成立したことを前記ノード装置へ通知するための、バリア同期成立信号を出力する、ことを特徴とする並列処理システムの並列処理方法。
【請求項１０】
請求項８又は９記載の並列処理システムの並列処理方法であって、
前記バリア同期要求コマンドを受信したときに、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数を、前記バリア同期カウンタのカウント値に加算し、該加算結果と、前記記憶された前記ノード装置の参加数と、が等しい場合に、当該システムにおけるバリア同期が成立したことを前記ノード装置へ通知するための、バリア同期成立信号を出力する、ことを特徴とする並列処理システムの並列処理方法。
【請求項１１】
請求項８乃至１０のうちいずれか１項記載の並列処理システムの並列処理方法であって、
前記バリア同期要求コマンドを受信したときに、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数を、前記バリア同期カウンタのカウント値から減算し、該減算結果が０となった場合に、前記クラスタ内におけるノード装置のバリア同期が成立したと判定し、前記クラスタ内のバリア同期に参加する前記ノード装置の数を記憶した前記バリア同期要求コマンドを、前記クラスタ間のノード装置に対して出力する、ことを特徴とする並列処理システムの並列処理方法。
【請求項１２】
請求項８乃至１１のうちいずれか１項記載の並列処理システムの並列処理方法であって、
前記バリア同期要求コマンドを受信したときに、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数を、前記バリア同期カウンタのカウント値に加算し、該加算結果と、前記記憶された前記ノード装置の参加数とが等しい場合に、前記クラスタ内におけるノード装置のバリア同期が成立したと判定し、前記クラスタ内のバリア同期に参加する前記ノード装置の数を記憶した前記バリア同期要求コマンドを、前記クラスタ間のノード装置に対して出力する、ことを特徴とする並列処理システムの並列処理方法。
【請求項１３】
並列処理を行う複数のノード装置を相互に接続するネットワーク網内に設けられ、前記ノード装置のバリア同期を制御するバリア同期制御部を有しており、
前記バリア同期制御部は、
システム内のバリア同期に参加する前記ノード装置の参加数を記憶する同期参加数設定レジスタと、前記ノード装置から受信した、バリア同期を要求するためのバリア同期要求コマンドを処理した数をカウントするバリア同期カウンタと、
前記バリア同期要求コマンドに記憶された前記ノード装置の参加数と、前記バリア同期カウンタのカウント値と、に基づいて加減算を行う加減算器と、
前記加減算器による演算結果に基づいて、バリア同期が成立したか否かを判定する同期成立判定部と、を有する、ことを特徴とするネットワークスイッチ装置。
【請求項１４】
請求項１３記載のネットワークスイッチ装置であって、
前記バリア同期制御部が、前記バリア同期要求コマンドを受信したときに、前記加減算器は、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数を、前記バリア同期カウンタのカウント値から減算し、
前記同期成立判定部は、前記加減算器による減算結果が０となった場合に、システムにおけるバリア同期が成立したことを前記ノード装置へ通知するための、バリア同期成立信号を出力する、ことを特徴とするネットワークスイッチ装置。
【請求項１５】
請求項１３又は１４記載のネットワークスイッチ装置であって、
前記バリア同期制御部が、前記バリア同期要求コマンドを受信したときに、前記加減算器は、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数を、前記バリア同期カウンタのカウント値に加算し、
前記同期成立判定部は、前記加減算器による加算結果と、前記同期参加数設定レジスタに記憶された前記ノード装置の参加数と、が等しい場合に、システムにおけるバリア同期が成立したことを前記ノード装置へ通知するための、バリア同期成立信号を出力する、ことを特徴とするネットワークスイッチ装置。
【請求項１６】
並列処理を行う複数のノード装置を相互に接続するネットワーク網内に設けられ、前記ノード装置のバリア同期を制御するバリア同期制御部を有し、接続される前記ノード装置群と共にクラスタを構成しており、
前記バリア同期制御部は、
前記クラスタ内のバリア同期に参加する前記ノード装置の参加数を記憶する同期参加数設定レジスタと、
前記クラスタ内の前記ノード装置から受信した、前記バリア同期要求コマンドの数をカウントするバリア同期カウンタと、
前記バリア同期要求コマンドに記憶された前記ノード装置の参加数と、前記バリア同期カウンタのカウント値と、に基づいて加減算を行う加減算器と、
前記加減算器による演算結果に基づいて、バリア同期が成立したか否かを判定する同期成立判定部と、を有する、ことを特徴とするネットワークスイッチ装置。
【請求項１７】
請求項１６記載のネットワークスイッチ装置であって、
前記バリア同期制御部が、前記バリア同期要求コマンドを受信したときに、前記加減算器は、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数を、前記バリア同期カウンタのカウント値から減算し、
前記同期成立判定部は、前記加減算器による減算結果が０となった場合に、前記クラスタ内におけるノード装置のバリア同期が成立したと判定し、前記クラスタ内のバリア同期に参加する前記ノード装置の数を記憶した前記バリア同期要求コマンドを、前記クラスタ間のバリア同期制御部に対して出力する、ことを特徴とするネットワークスイッチ装置。
【請求項１８】
請求項１６又は１７記載のネットワークスイッチ装置であって、
前記バリア同期制御部は、前記バリア同期要求コマンドを受信したときに、前記加減算器は、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数を、前記バリア同期カウンタのカウント値に加算し、
前記同期成立判定部は、前記加減算器による加算結果と、前記同期参加数設定レジスタに記憶された前記ノード装置の参加数とが等しい場合に、前記クラスタ内におけるノード装置のバリア同期が成立したと判定し、前記クラスタ内のバリア同期に参加する前記ノード装置の数を記憶した前記バリア同期要求コマンドを、前記クラスタ間のバリア同期制御部に対して出力する、ことを特徴とするネットワークスイッチ装置。
【請求項１９】
複数のノード装置と、該複数のノード装置を、第１及び第２スイッチ装置を介して相互に接続するネットワーク網と、を備え、
前記ノード装置群には、前記第２スイッチ装置が接続され、前記第１スイッチ装置には、前記第２スイッチ装置が接続され、前記第２スイッチ装置には、前記ノード装置群、前記第１スイッチ装置、および前記第２スイッチ装置のうち、いずれか１つ又は２つが接続されると共に、
前記第２スイッチ装置と、該第２スイッチ装置に接続された前記ノード装置群と、はクラスタを構成しており、前記第２スイッチ装置と、該第２スイッチ装置に接続された複数の前記クラスタと、は該複数のクラスタを含むより大きなクラスタを構成しており、
システム内のバリア同期に参加する前記ノード装置の参加数を記憶し、前記ノード装置から受信した、バリア同期を要求するためのバリア同期要求コマンドを処理した数をカウントし、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数と、前記バリア同期カウンタのカウント値と、に基づいて加減算を行い、前記加減算器による演算結果に基づいて、バリア同期が成立したか否かを判定する処理と、
前記クラスタ内のバリア同期に参加する前記ノード装置の参加数を記憶し、前記クラスタ内の前記ノード装置から送信された、前記バリア同期要求コマンドの数をカウントし、前記バリア同期要求コマンドに記憶された前記ノード装置の参加数と、前記バリア同期カウンタのカウント値と、に基づいて加減算を行い、前記加減算器による演算結果に基づいて、バリア同期が成立したか否かを判定する処理と、
をコンピュータに実行させる並列処理プログラム。
【国際調査報告】
2010109761.tif 000010
2010109761.tif 000011