(57)【要約】【課題】複数のプロセスの状態を容易に解析することができる並列デバッグシステム等を提供する。【解決手段】並列デバッグシステム１０は、複数のプロセスを実行する複数の第１処理装置１１が実行する複数のプロセスに関して、判定位置において第１条件を満たすか否かをそれぞれ判定する第１指示を行う第１指示部１６と、該第１指示に応じて処理を行う第１判定部１４と、受信した第１判定結果において満たされる第１条件が存在する場合に、複数のプロセスに対して処理を停止する停止指示と、該プロセスが停止した後、第２条件を満たすか否かを判定する第２指示とを行う第２指示部１７と、該停止指示と該第２指示とに応じて処理を行う第２判定部１５と、第１条件及び第２条件を満たすプロセスの状況を読み取る判定処理部１８とを有する。【選択図】      図１
2014164378.tif 000002
【特許請求の範囲】
【請求項１】
複数の第１処理装置が実行する複数のプロセスに関して、判定位置において処理を一時的に止めるブレイクポイントを作成する処理と、作成した該ブレイクポイントにおいて該判定位置に関連付けされた１つ以上の第１条件を満たすか否かをそれぞれ判定し、判定した結果を第１判定結果として送信する処理とを指示する第１指示を行う第１指示部と、
前記第１指示に応じて、自装置が実行する前記複数のプロセスに対して、前記ブレイクポイントを設定し、前記ブレイクポイントにおいて前記複数のプロセスを停止し、その後、前記第１条件を満たすか否かをそれぞれ判定し、判定結果を前記第１判定結果として送信する第１判定部と、
前記第１判定結果を受信し、受信した前記第１判定結果において満たされる前記第１条件が存在する場合に、前記複数の第１処理装置が実行する前記複数のプロセスに関して処理を停止する停止指示と、該プロセスが停止した後、該判定位置に関連付けされた１つ以上の第２条件を満たすか否かを判定し、判定した結果を第２判定結果として送信する処理を指示する第２指示とを行う第２指示部と、
前記停止指示に応じて、前記複数のプロセスを停止し、その後、前記第２指示に応じて、前記第２条件を満たすか否かを判定し、判定結果を前記第２判定結果として送信する第２判定部と、
前記第１判定結果において前記第１条件を満たす第１プロセスと、前記第２判定結果において前記第２条件を満たす第２プロセスとがある場合に、前記第１プロセス及び前記第２プロセスの状況を読み取る判定処理部と
を有する並列デバッグシステム。
【請求項２】
前記判定位置と、前記第１条件と、前記第２条件とを関連付けて記憶する条件記憶部を有し、
前記第１指示部は、前記条件記憶部において前記判定位置に関連付けされた前記第１条件を読み取り、
前記第２指示部は、前記条件記憶部において前記判定位置に関連付けされた前記第２条件を読み取る
請求項１に記載の並列デバッグシステム。
【請求項３】
前記判定位置と前記第１条件と前記第２条件との組に対して、それぞれの組を識別する条件識別子を付与する識別子部と、
付与した前記条件識別子を前記組に関連付けて前記条件記憶部に記憶させるとともに、第２信号として送信する条件作成部とを更に備え、
前記第１処理装置は、
前記第２信号を記憶する第１条件記憶部と、
前記第２信号を受信し、前記受信した第２信号を前記第１条件記憶部に記憶させる受信部と、
成立する前記第１条件に関連付けされた前記条件識別子を記憶する停止情報記憶部とを更に備え、
前記第１判定部は、前記第１指示に応じて、前記第１条件記憶部が記憶する前記第１条件をプロセスが満たすか否かを判定し、前記条件識別子と前記判定結果とを関連付けして前記第１判定結果とし，
前記第２指示部は、前記第１判定結果において前記第１条件を満たす前記条件識別子を、前記第２指示として送信し、
前記第２判定部は、受信した前記第２指示を停止情報記憶部に記憶させ、前記停止情報記憶部が記憶する前記条件識別子に関連付けされた前記第２条件を、前記第１条件記憶部から読み取るとともに、前記複数の第１処理装置が処理するプロセスを停止し、その後、それぞれの前記プロセスが前記第２条件を満たすか否かを判定し、判定した結果を前記第２判定結果として送信するとともに、前記停止情報記憶部から、判定を行った前記第２条件に関連付けされた前記条件識別子を消去する
請求項１または請求項２に記載の並列デバッグシステム。
【請求項４】
前記第２指示部は、前記第１条件がすべて成立しない場合、または、前記第２条件が成立しない場合に、実行を継続することに関する情報に基づいて、前記複数の第１処理装置に、停止している前記プロセスを再開する再開信号を送信する
請求項１乃至請求項３のいずれかに記載の並列デバッグシステム。
【請求項５】
前記プロセスを識別するプロセス識別子と、プロセスを実行している状態に関連付けされた第１の値、前記第１条件あるいは前記第２条件を判定するために停止している状態に関連付けされた第２の値、前記第１条件を満たして停止している状態に関連付けされた第３の値、及び、前記第２条件を満たして停止している状態に関連付けされた第４の値を表す状態値とを関連付けて記憶するプロセス状態部と、
自装置において実行する前記プロセスに関連付けされた前記プロセス識別子を読み取り、読み取った前記プロセス識別子と前記第１の値とを関連付けして前記プロセス状態部に記憶させる情報収集部と
を更に有し、
前記第１判定部は、前記複数のプロセスが停止する処理に応じて、停止した前記複数のプロセスに関連付けされた状態値を前記第２の値とするとともに、特定プロセスが前記第１条件を満たす場合に、該特定プロセスに関連付けされた状態値を前記第３の値とし、
前記第２指示部は、前記第１条件を満たすプロセスが存在する場合に、前記プロセス状態部において、前記プロセスに関連付けされた状態値を前記第３の値に設定し、
前記プロセス再開部は、すべてのプロセスが前記第１条件を満たさない場合に、前記特定プロセスを継続して実行するとともに、前記再開信号に応じて、前記プロセス状態部において、前記第２の値に関連付けされた前記プロセス識別子を有するプロセスの前記状態値を前記第１の値とし、
前記第２判定部は、さらに、前記プロセス状態部において前記状態値が前記第３の値であるプロセスが存在する場合に、自装置におけるすべてのプロセスを停止し、その後、前記第２指示に応じて、該停止したプロセスが、前記第２条件を満たすか否かを判定し、判定結果を前記第２判定結果として、前記通信ネットワークを経由して送信するとともに、前記プロセス状態部において、前記第２条件を満たすプロセスに関連付けされた前記状態値を、前記第４の値に設定する
請求項４に記載の並列デバッグシステム。
【請求項６】
複数の第１処理装置が実行する複数のプロセスに関して、判定位置において処理を一時的に止めるブレイクポイントを作成する処理と、作成した該ブレイクポイントにおいて該判定位置に関連付けされた１つ以上の第１条件を満たすか否かをそれぞれ判定し、判定した結果を第１判定結果として送信する処理とを指示する第１指示を行い、前記第１指示に応じて、自装置が実行する前記複数のプロセスに対して、前記ブレイクポイントを設定し、前記ブレイクポイントにおいて前記複数のプロセスを停止し、その後、前記第１条件を満たすか否かをそれぞれ判定し、判定結果を前記第１判定結果として送信し、前記第１判定結果を受信し、受信した前記第１判定結果において満たされる前記第１条件が存在する場合に、前記複数の第１処理装置が実行する前記複数のプロセスに関して処理を停止する停止指示と、該プロセスが停止した後、該判定位置に関連付けされた１つ以上の第２条件を満たすか否かを判定し、判定した結果を第２判定結果として送信する処理を指示する第２指示とを行い、前記停止指示に応じて、前記複数のプロセスを停止し、その後、前記第２指示に応じて、前記第２条件を満たすか否かを判定し、判定結果を前記第２判定結果として送信しと、前記第１判定結果において前記第１条件を満たす第１プロセスと、前記第２判定結果において前記第２条件を満たす第２プロセスとがある場合に、前記第１プロセス及び前記第２プロセスの状況を読み取る
並列デバッグ方法。
【請求項７】
複数の第１処理装置が実行する複数のプロセスに関して、判定位置において処理を一時的に止めるブレイクポイントを作成する処理と、作成した該ブレイクポイントにおいて該判定位置に関連付けされた１つ以上の第１条件を満たすか否かをそれぞれ判定し、判定した結果を第１判定結果として送信する処理とを指示する第１指示を行う第１指示機能と、
前記第１指示に応じて、自装置が実行する前記複数のプロセスに対して、前記ブレイクポイントを設定し、前記ブレイクポイントにおいて前記複数のプロセスを停止し、その後、前記第１条件を満たすか否かをそれぞれ判定し、判定結果を前記第１判定結果として送信する第１判定機能と、
前記第１判定結果を受信し、受信した前記第１判定結果において満たされる前記第１条件が存在する場合に、前記複数の第１処理装置が実行する前記複数のプロセスに関して処理を停止する停止指示と、該プロセスが停止した後、該判定位置に関連付けされた１つ以上の第２条件を満たすか否かを判定し、判定した結果を第２判定結果として送信する処理を指示する第２指示とを行う第２指示機能と、
前記停止指示に応じて、前記複数のプロセスを停止し、その後、前記第２指示に応じて、前記第２条件を満たすか否かを判定し、判定結果を前記第２判定結果として送信する第２判定機能と、
前記第１判定結果において前記第１条件を満たす第１プロセスと、前記第２判定結果において前記第２条件を満たす第２プロセスとがある場合に、前記第１プロセス及び前記第２プロセスの状況を読み取る判定処理機能と
をコンピュータに実現させる並列デバッグプログラム。
【請求項８】
前記判定位置と、前記第１条件と、前記第２条件とを関連付けて記憶する条件記憶機能をさらに有し、
前記第１指示機能において、前記条件記憶機能から前記判定位置に関連付けされた前記第１条件を読み取り、
前記第２指示機能において、前記条件記憶機能から前記判定位置に関連付けされた前記第２条件を読み取る
請求項７に記載の並列デバッグプログラム。
【請求項９】
前記判定位置と前記第１条件と前記第２条件との組に対して、それぞれの組を識別する条件識別子を付与する識別子機能と、
付与した前記条件識別子を前記組に関連付けて前記条件記憶機能に記憶させるとともに、第２信号として送信する条件作成機能とを更に有し、
前記第１処理装置において、
前記第２信号を記憶する第１条件記憶機能と、
前記第２信号を受信し、前記受信した第２信号を前記第１条件記憶機能に記憶させる受信機能と、
成立する前記第１条件に関連付けされた前記条件識別子を記憶する停止情報記憶機能とを更に備え、
前記第１判定機能において、前記第１指示に応じて、前記第１条件記憶機能が記憶する第１条件をプロセスが満たすか否かを判定し、前記条件識別子と前記判定結果とを関連付けして前記第１判定結果とし，
前記第２指示機能において、前記第１判定結果のうち前記第１条件を満たす前記条件識別子を、前記第２指示として送信し、
前記第２判定機能において、受信した前記第２指示を停止情報記憶機能に記憶させ、前記停止情報記憶機能が記憶する前記条件識別子に関連付けされた前記第２条件を、前記第１条件記憶機能から読み取るとともに、第１処理装置が処理するプロセスを停止し、その後、それぞれの前記プロセスが前記第２条件を満たすか否かを判定し、判定した結果を前記第２判定結果として送信するとともに、前記停止情報記憶機能から、判定を行った前記第２条件に関連付けされた前記条件識別子を消去する
請求項７または請求項８に記載の並列デバッグプログラム。
【請求項１０】
前記第２指示機能において、前記第１条件がすべて成立しない場合、または、前記第２条件が成立しない場合に、実行を継続することに関する情報に基づいて、前記複数の第１処理装置に、停止している前記プロセスを再開する再開信号を送信する
請求項７乃至請求項９のいずれかに記載の並列デバッグプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列プログラムをデバッグする際に利用する並列デバッグシステム等に関する。
【背景技術】
【０００２】
並列プログラムは、複数の計算機（情報処理装置、計算処理装置）が通信ネットワークを介してデータを参照することにより、お互いに連携（協調）しながら計算を処理するプログラムである。そのため、ある計算機が処理する特定のプロセスにおいて問題（例えば、バッファオーバーラン、及び、メモリアドレスへの不正アクセス等）が発生すると、該特定のプロセスを参照するプロセスは、通信ネットワークを経由して、該問題の影響を受ける。結果的に、並列プログラムにおいては、問題の原因が、エラーを出力するプロセスとは異なるプロセスにあることが少なくない。
【０００３】
並列計算機は、時に、ＨＰＣ（Ｈｉｇｈ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｃｏｍｐｕｔｉｎｇ）分野における分散並列プログラムを処理するために、数十万個のプロセスを起動する。プロセス数が膨大であることに加え、複数のプロセスが相互に参照するため、プログラマーは、ＨＰＣ分野における分散並列プログラムをデバッグする際に、エラーの原因であるプロセスを特定することは困難である。
【０００４】
特許文献１乃至特許文献３は、並列プログラムをデバッグする際に利用するデバッグプログラム等を開示する。
【０００５】
特許文献１が開示するデバッガは、あらかじめ設定されたブレイクポイントにおいてデバッグされるプロセス（以降、「被デバッグプロセス」と表す）を停止させ、その後、ユーザが指定する検索条件に適合する情報を収集する。例えば、検索条件としては、変数の値に関する条件、レジスタの値に関する条件、指定アドレスにおける値に関する条件、あるいは、受信シグナルに関する条件等がある。次に、該デバッガは、収集した情報の中から、検索条件に合致する被デバッグプロセスに関する情報をユーザへ通知する。
【０００６】
特許文献２は、マルチプロセッサシステムにおけるデバッガを開示する。該デバッガは、複数のプロセスごとにブレイクポイントを発生させる検索条件を設定し、設定した検索条件が全て満たされる場合に、該プロセスを中断させる。
【０００７】
特許文献３は、分散プログラムをデバッグする方法に関する技術を開示する。該デバッグ方法は、プロセス生成及び通信の履歴情報に応じて、プロセスを駆動させる要求が、自プロセスに対する要求であるか、あるいは、他プロセスに対する要求であるかを決める。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特許第４４３２９８３号公報
【特許文献２】特開２００５−３５２５９１号公報
【特許文献３】特開平０５−３３４１２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ユーザが並列分散計算機環境における並列プログラムを容易にデバッグするためには、複数の計算機において相互に連携するプロセスの状態を解析する必要がある。
【００１０】
しかしながら、特許文献１乃至特許文献３によれば、複数の計算機において相互に連携するプロセスの状態を解析することができない。
【００１１】
特許文献１が開示するデバッガにおいて、ユーザが検索条件に指定できる条件は、被デバッグプロセスのうち１つのプロセスに関してのみである。分散並列プログラムにおいては、プロセスがお互いに連携（協調）しながら計算を処理するため、該デバッガを用いて、エラーの原因であるプロセスを特定することは困難である。
【００１２】
特許文献２が開示するデバッガは、複数のプロセスにおいて、プロセスごとにブレイクポイントを発生させる検索条件が満たされる場合に、実行するプログラムを中断させる。しかしながら、該デバッガにおいて、プロセスが連携しながら計算を処理する場合、異なるプロセスで逐次的に達成される複数の検索条件を指定することはできない。
【００１３】
特許文献３が開示するデバッグ方法は、検索条件が成立する最小限の処理において、実行するプログラムを中断させることが可能である。しかしながら、特許文献２におけるデバッガと同様に、該デバッグ方法の場合、異なるプロセスで逐次的に達成される複数の検索条件を指定することはできない。
【００１４】
そこで、本発明の主たる目的は、複数の計算機において相互に連携するプロセスの状態を容易に解析できる並列デバッグ装置等を提供することである。
【課題を解決するための手段】
【００１５】
前述の目的を達成するために、本発明に係る並列デバッグシステムは、以下の構成を備えることを特徴とする。
【００１６】
即ち、本発明に係る並列デバッグシステムは、
複数の第１処理装置が実行する複数のプロセスに関して、判定位置において処理を一時的に止めるブレイクポイントを作成する処理と、作成した該ブレイクポイントにおいて該判定位置に関連付けされた１つ以上の第１条件を満たすか否かをそれぞれ判定し、判定した結果を第１判定結果として送信する処理とを指示する第１指示を行う第１指示部と、
前記第１指示に応じて、自装置が実行する前記複数のプロセスに対して、前記ブレイクポイントを設定し、前記ブレイクポイントにおいて前記複数のプロセスを停止し、その後、前記第１条件を満たすか否かをそれぞれ判定し、判定結果を前記第１判定結果として送信する第１判定部と、
前記第１判定結果を受信し、受信した前記第１判定結果において満たされる前記第１条件が存在する場合に、前記複数の第１処理装置が実行する前記複数のプロセスに関して処理を停止する停止指示と、該プロセスが停止した後、該判定位置に関連付けされた１つ以上の第２条件を満たすか否かを判定し、判定した結果を第２判定結果として送信する処理を指示する第２指示とを行う第２指示部と、
前記停止指示に応じて、前記複数のプロセスを停止し、その後、前記第２指示に応じて、前記第２条件を満たすか否かを判定し、判定結果を前記第２判定結果として送信する第２判定部と、
前記第１判定結果において前記第１条件を満たす第１プロセスと、前記第２判定結果において前記第２条件を満たす第２プロセスとがある場合に、前記第１プロセス及び前記第２プロセスの状況を読み取る判定処理部と
を備えることを特徴とする。
【００１７】
また、本発明の他の見地として、本発明に係る並列デバッグ方法は、
複数の第１処理装置が実行する複数のプロセスに関して、判定位置において処理を一時的に止めるブレイクポイントを作成する処理と、作成した該ブレイクポイントにおいて該判定位置に関連付けされた１つ以上の第１条件を満たすか否かをそれぞれ判定し、判定した結果を第１判定結果として送信する処理とを指示する第１指示を行い、前記第１指示に応じて、自装置が実行する前記複数のプロセスに対して、前記ブレイクポイントを設定し、前記ブレイクポイントにおいて前記複数のプロセスを停止し、その後、前記第１条件を満たすか否かをそれぞれ判定し、判定結果を前記第１判定結果として送信し、前記第１判定結果を受信し、受信した前記第１判定結果において満たされる前記第１条件が存在する場合に、前記複数の第１処理装置が実行する前記複数のプロセスに関して処理を停止する停止指示と、該プロセスが停止した後、該判定位置に関連付けされた１つ以上の第２条件を満たすか否かを判定し、判定した結果を第２判定結果として送信する処理を指示する第２指示とを行い、前記停止指示に応じて、前記複数のプロセスを停止し、その後、前記第２指示に応じて、前記第２条件を満たすか否かを判定し、判定結果を前記第２判定結果として送信しと、前記第１判定結果において前記第１条件を満たす第１プロセスと、前記第２判定結果において前記第２条件を満たす第２プロセスとがある場合に、前記第１プロセス及び前記第２プロセスの状況を読み取る
ことを特徴とする。
【００１８】
さらに、同目的は、係る並列デバッグプログラム、及び、そのプログラムを記録するコンピュータ読み取り可能な記録媒体によっても実現される。
【発明の効果】
【００１９】
本発明に係る並列デバッグシステム等によれば、複数のプロセスの状態を容易に解析することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の第１の実施形態に係る並列デバッグシステムが有する構成を示すブロック図である。
【図２】第１の実施形態に係る第２処理装置における処理の流れを示すフローチャートである。
【図３】第１判定部における処理の流れを示すフローチャートである。
【図４】第２判定部における処理の流れを示すフローチャートである。
【図５】第２の実施形態に係る第２処理装置が有する構成を示すブロック図である。
【図６】第２の実施形態に係る条件記憶部が記憶する検索条件に関する情報の一例を概念的に表す図である。
【図７】第３の実施形態に係る並列デバッグシステムが有する構成を示すブロック図である。
【図８】第３の実施形態に係る第２処理装置における処理の流れを示すフローチャートである。
【図９】第３の実施形態に係る第１判定部における処理の流れを示すフローチャートである。
【図１０】第３の実施形態に係る第２判定部における処理の流れを示すフローチャートである。
【図１１】第３の実施形態に係る条件記憶部が記憶する検索条件に関する情報の一例を概念的に表す図である。
【図１２】本発明の第４の実施形態に係る並列デバッグシステムが有する構成を示すブロック図である。
【図１３】本発明の第４の実施形態に係る並列デバッグシステムにおける処理の流れを示すフローチャートである。
【図１４】本発明の第５の実施形態に係る並列デバッグシステムが有する構成を示すブロック図である。
【図１５】本発明の第５の実施形態に係る第１判定部における処理の流れを示すフローチャートである。
【図１６】本発明の第５の実施形態に係る第２判定部における処理の流れを示すフローチャートである。
【図１７】本発明の第５の実施形態に係るプロセス状態部が記憶するプロセスの状態の一例を表す図である。
【図１８】本発明の第１の実施形態乃至第５の実施形態に係る計算検索装置を実現可能な計算処理装置のハードウェア構成を概略的に示す図である。
【発明を実施するための形態】
【００２１】
次に、発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００２２】
＜第１の実施形態＞
本発明の第１の実施形態に係る並列デバッグシステム１０が有する構成と、並列デバッグシステム１０が行う処理とについて、図１乃至図４を参照しながら詳細に説明する。図１は、本発明の第１の実施形態に係る並列デバッグシステム１０が有する構成を示すブロック図である。図２は、第１の実施形態に係る第２処理装置１２における処理の流れを示すフローチャートである。図３は、第１判定部１４における処理の流れを示すフローチャートである。図４は、第２判定部１５における処理の流れを示すフローチャートである。
【００２３】
本実施形態に係る並列デバッグシステム１０は、図１に示すように、１台以上の第１処理装置１１と、第２処理装置１２と、第１処理装置１１及び第２処理装置１２が有するデータをやり取りする通信ネットワーク１３とを有する。第１処理装置１１は、第１判定部１４と、第２判定部１５とを有する。また、第２処理装置１２は、第１指示部１６と、第２指示部１７と、判定処理部１８とを有する。
【００２４】
それぞれの第１処理装置１１は、デバッグする対象となる複数のプロセスを実行しているとする。
【００２５】
ユーザは、プロセスにおける判定位置、及び、該判定位置に関連付けされた１つ以上の検索条件を指示する。本実施形態に係る第１指示部１６は、ユーザが指示する判定位置に応じて、複数のプロセスに関して処理を一時的に停止させるブレイクポイントを作成する処理と、プロセスが該ブレイクポイントにおいて処理を停止するのに応じて、該判定位置に関連付けされた１つ以上の第１条件を判定する処理と、該判定結果を第２指示部１７及び判定処理部１８に送信する処理とを含む第１指示を、それぞれの第１処理装置１１に命じる（ステップＳ１）。
【００２６】
次に、それぞれの第１処理装置１１における第１判定部１４は、第１指示を受信する処理に基づいて、ブレイクポイントを設定し（ステップＳ６）、設定したブレイクポイントにおいて、複数のプロセスを停止する処理を行う（ステップＳ７）。その後、第１判定部１４は、プロセスにおいて、判定位置に関連付けされた第１条件（以降、単に「第１条件」と表す）が成立するか否かを判定し（ステップＳ８）、該判定結果を第１判定結果として第２指示部１７及び判定処理部１８に送信する（ステップＳ９）。
【００２７】
次に、本実施形態に係る第２指示部１７は、該第１判定結果を受信し、受信した第１判定結果の中に、第１指示を満たすプロセスが存在するか否かを判定する（ステップＳ２）。第２指示部１７は、第１条件を満たすプロセスが存在すると判定する場合（ステップＳ２にてＹＥＳと判定）に、第２判定部１５に対して、複数のプロセスを停止する処理を行う停止指示と、停止したプロセスにおいて、検索条件のうち、第１条件とは異なる、判定位置に関連付けされた第２条件（以降、単に、「第２条件」と表す）を満たすか否かを判定し、該判定結果を第２判定結果として、判定処理部１８に送信するように指示する第２指示とを、通信ネットワーク１３を介して行う（ステップＳ３）。
【００２８】
第２指示部１７は、第１条件を満たすプロセスが存在しない場合（ステップＳ２にてＮＯと判定）には、上述した処理を行わない。
【００２９】
それぞれの第１処理装置１１における第２判定部１５は、停止指示に応じて、自装置におけるプロセスを停止する（ステップＳ１０）。次に、第２判定部１５は、第２指示に応じて、停止したプロセスが第２条件を満たすか否かを判定し（ステップＳ１１）、該判定結果を第２判定結果として判定処理部１８に送信する（ステップＳ１２）。
【００３０】
本実施形態に係る判定処理部１８は、第１判定結果と第２判定結果とを受信する。判定処理部１８は、第１判定結果において第１条件を満たすプロセスが存在し、かつ、第２判定結果において第２条件を満たすプロセスが存在する場合（ステップＳ４にてＹＥＳと判定）に、該２つのプロセスに関するプロセスの状況（例えば、パラメタの値等）を読み取る（ステップＳ５）。判定処理部１８は、上述した条件を満たさないと判定する場合（ステップＳ４にてＮＯと判定）、上述した処理を行わない。
【００３１】
上述した説明においては、第１処理装置１１と第２処理装置１２とを異なる装置としたが、第１処理装置１１における処理、及び、第２処理装置１２における処理をともに実施する第３処理装置であっても良い。その場合、第３処理装置は、他の第１処理装置１１に対して、上述した第１指示及び第２指示を実施する。
【００３２】
また、上述した説明においては、第１判定部１４及び第２判定部１５は、それぞれの第１処理装置１１に１台存在していたが、複数存在していても良い。その場合、各第１判定部１４及び第２判定部１５は、上述した処理を分割し、分割された処理をそれぞれ実施する。同様に、第１処理装置１１は、第１指示に応じて、プロセスを停止するとしたが、オペレーティングシステムにプロセスを停止することを指示しても良い。
【００３３】
さらに、上述した説明において、第２指示部１７が停止指示を行うとしたが、必ずしも第２指示部１７である必要はない。例えば、特定の第１処理装置１１における第１条件を満たすプロセスが、他の第１処理装置１１におけるプロセスに対して、該停止指示を行っても良い。
【００３４】
上述したように、本実施形態に係る並列デバッグシステムは、上述した態様に限定されるものではない。
【００３５】
本実施形態に係る並列デバッグシステム１０は、ある第１処理装置において第１条件を満たすプロセスが存在する場合に、他の第１処理装置におけるプロセスを停止させ、停止させたプロセスにおいて第２条件を満たすか否かを判定する。それにより、プロセスが連携しながら計算を処理する場合、異なる計算機におけるプロセスが逐次的に達成する検索条件を指定することが可能になる。
【００３６】
特許文献１乃至特許文献３が開示する技術は、プロセスがあるブレイクポイントにおいて、検索条件を満たす場合に、該プロセスの状態を出力する。しかしながら、該技術によれば、複数の計算機において、複数の相互に異なる検索条件を連携させながら指定することはできない。
【００３７】
即ち、本発明における第１の実施形態に係る並列デバッグシステムによれば、複数の計算機において相互に連携するプロセスの状態を容易に解析可能とする。
【００３８】
＜第２の実施形態＞
次に、上述した第１の実施形態を基本とする第２の実施形態について説明する。
【００３９】
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第１の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００４０】
図５を参照しながら、第２の実施形態に係る第２処理装置５１が有する構成と、第２処理装置５１が行う処理とについて説明する。図５は、第２の実施形態に係る第２処理装置５１が有する構成を示すブロック図である。
【００４１】
本実施形態に係る第２処理装置５１は、第１指示部５２と、第２指示部５３と、判定処理部１８と、条件記憶部５４とを有する。図６に示すように、条件記憶部５４は、判定位置と、第１条件と、第２条件とを関連付けて記憶する。図６は、第２の実施形態に係る条件記憶部５４が記憶する検索条件に関する情報の一例を概念的に表す図である。
【００４２】
図６の２行目において、例えば、判定位置Ｃ３は、検索条件のうち、第１条件Ｃ１と第２条件Ｃ２とに関連付けされている。これは、プロセスの中で、判定位置Ｃ３において、第１条件Ｃ１が満たされるか否かを判定し、第１条件Ｃ１が満たされる場合に、第２条件Ｃ２が満たされるか否かを判定することを表す。同様に、判定位置Ｄ３は、検索条件のうち、第１条件Ｄ１と第２条件Ｄ２とに関連付けされている。
【００４３】
ユーザあるいは外部のシステムが、条件記憶部５４に上述したような情報を記憶させてもよいし、並列デバッグシステムが、ユーザあるいはシステムから情報を受け取り、受け取った情報を条件記憶部５４に記憶させても良い。
【００４４】
第１指示部５２は、条件記憶部５４において判定位置に関連付けされた第１条件を読み取り、読み取った第１条件に関する判定を第１判定部１４（不図示）に指示する。同様に、第２指示部５３は、条件記憶部５４において判定位置に関連付けされた第２条件を読み取り、読み取った第２条件に関する判定を第２判定部１５（不図示）に指示する。例えば、図６の例において、第１指示部５２は、判定位置Ｃ３において、判定位置Ｃ３に関連付けされた第１条件Ｃ１に関する判定を第１判定部１４（不図示）に指示する。同様に、第２指示部５３は、判定位置Ｃ３において、判定位置Ｃ３に関連付けされた第２条件Ｃ２に関する判定を第２判定部１５（不図示）に指示する。
【００４５】
本実施形態は、本発明の第１の実施形態と同様の構成を有するため、第１の実施形態と同様の効果を享受することができる。即ち、本発明における第２の実施形態に係る並列デバッグシステムによれば、複数の計算機において相互に連携するプロセスの状態を容易に解析可能とする。
【００４６】
さらに、本実施形態によれば、条件記憶部５４を備えることにより、処理のたびに外部を参照する回数を減らすことができる。その結果、並列デバッグシステムにおける処理効率が向上する。
【００４７】
＜第３の実施形態＞
次に、上述した第２の実施形態を基本とする第３の実施形態について説明する。
【００４８】
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第２の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００４９】
図７乃至図１０を参照しながら、本発明の第３の実施形態に係る並列デバッグシステム７０１が有する構成と、並列デバッグシステム７０１が行う処理とについて説明する。図７は、第３の実施形態に係る並列デバッグシステム７０１が有する構成を示すブロック図である。図８は、第３の実施形態に係る第２処理装置７０３における処理の流れを示すフローチャートである。図９は、第３の実施形態に係る第１判定部７１０における処理の流れを示すフローチャートである。図１０は、第３の実施形態に係る第２判定部７１１における処理の流れを示すフローチャートである。
【００５０】
並列デバッグシステム７０１は、１台以上の第１処理装置７０２と、第２処理装置７０３と、第１処理装置７０２及び第２処理装置７０３が有するデータをやり取りする通信ネットワーク１３を有する。第１処理装置７０２は、第１判定部７１０と、第２判定部７１１と、受信部７０４と、第１条件記憶部７０５と、停止情報記憶部７０６とを有する。また、第２処理装置７０３は、識別子部７０７と、条件作成部７０８と、第１指示部７１２と、第２指示部７１３と、判定処理部７１４と、条件記憶部７０９とを有する。
【００５１】
まず、識別子部７０７は、図６のように関連付けされた第１条件と、第２条件と、判定位置との組に対して、それぞれの組を識別する条件識別子を付与する（ステップＳ１３）。次に、条件作成部７０８は、条件識別子が関連付けされた組を、条件記憶部７０９に記憶させる（ステップＳ１４）。例えば、図１１において、条件作成部７０８は、「第１条件Ｃ１、第２条件Ｃ２、判定位置Ｃ３」という組に対し、条件識別子Ｃ４を付与する。同様に、条件作成部７０８は、「第１条件Ｄ１、第２条件Ｄ２、判定位置Ｄ３」という組に対し、条件識別子Ｄ４を付与する。図１１は、第３の実施形態に係る条件記憶部７０９が記憶する検索条件に関する情報の一例を概念的に表す図である。条件作成部７０８は、図１１に示すような情報を、条件記憶部７０９に記憶させる。
【００５２】
次に、条件作成部７０８は、条件記憶部７０９における情報を、第２信号として、それぞれの第１処理装置７０２に送信する（ステップＳ１５）。ステップＳ１４における処理とステップＳ１５における処理とは、相互に独立する処理であるため、条件作成部７０８は、ステップＳ１５を先に実行してもよい。
【００５３】
次に、それぞれの第１処理装置７０２における受信部７０４は、条件作成部７０８が送信した第２信号を受信し、受信した第２信号を第１条件記憶部７０５に記憶させる（ステップＳ１６）。その後、それぞれの第１処理装置７０２における第１判定部７１０は、第１指示に応じて、第１条件記憶部７０５が記憶するそれぞれの第１条件を読み取り（ステップＳ１７）、該第１条件をプロセスが満たすか否かを判定する（ステップＳ８）。次に、第１判定部７１０は、それぞれの第１条件に関連付けされた条件識別子と、該判定結果とを関連付けして第１判定結果とし、該第１判定結果を第２指示部７１３及び判定処理部７１４に送信する（ステップＳ１８）。
【００５４】
その後、第２指示部７１３は、受信した第１判定結果に基づき、満たされる第１条件に関連付けされた条件識別子を第２指示として、それぞれの第１処理装置７０２における第２判定部７１１に送信する。
【００５５】
次に、第２判定部７１１は、受信した第２指示を停止情報記憶部７０６に記憶させる（ステップＳ１９）。その後、第２判定部７１１は、停止情報記憶部７０６における各条件識別子に関連付けされた第２条件を、第１条件記憶部７０５から読み取るとともに（ステップＳ２０）、第１処理装置７０２が処理するプロセスを停止する（ステップＳ１０）。ステップＳ１０とステップＳ２０との実行順序はどちらが先であっても良い。
【００５６】
その後、第２判定部７１１は、停止したプロセスが第２条件を満たすか否かを判定し（ステップＳ１１）、該判定結果を第２判定結果として判定処理部７１４に送信する（ステップＳ１２）。さらに、第２判定部７１１は、停止情報記憶部７０６から、上述のように判定を行った第２条件に関連付けされた条件識別子を削除する（ステップＳ２１）。ステップＳ１２とステップＳ２１との実行順序はどちらが先であっても良い。
【００５７】
本発明の第３の実施形態は、第２の実施形態と同様の構成を有するため、本発明の第２の実施形態と同様の効果を享受することができる。即ち、本発明における第３の実施形態に係る並列デバッグシステムによれば、複数の計算機において相互に連携するプロセスの状態を容易に解析可能とする。
【００５８】
さらに、本発明の第３の実施形態によれば、第１処理装置７０２が第１条件記憶部７０５を有するため、第１判定部７１０及び第２判定部７１１は、第１条件及び第２条件を判定する際に、第１処理装置７０２の装置外を参照する必要がなくなる。そのため、判定処理を軽減することができる。
【００５９】
＜第４の実施形態＞
次に、上述した第１の実施形態を基本とする第４の実施形態について説明する。
【００６０】
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第１の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００６１】
図１２と図１３とを参照しながら、本発明の第４の実施形態に係る並列デバッグシステム１２１が有する構成と、並列デバッグシステム１２１が行う処理とについて説明する。図１２は、本発明の第４の実施形態に係る並列デバッグシステム１２１が有する構成を示すブロック図である。図１３は、本発明の第４の実施形態に係る並列デバッグシステム１２１における処理の流れを示すフローチャートである。
【００６２】
並列デバッグシステム１２１は、１台以上の第１処理装置１２２と、第２処理装置１２３と、第１処理装置１２２及び第２処理装置１２３が有するデータをやり取りする通信ネットワーク１３とを有する。第１処理装置１２２は、第１判定部１２５と、第２判定部１２６と、プロセス再開部１２４とを有する。また、第２処理装置１２３は、第１指示部１２７と、第２指示部１２８と、判定処理部１２９とを有する。
【００６３】
第２指示部１２８は、受信した第１判定結果において、第１条件がすべて成立しないと判定する場合、または、第２条件が成立しない場合に、システム内部もしくはシステム外部から受信する「実行を継続することに関する情報」に基づいて、停止しているプロセスを再開する再開信号を、第１処理装置１２２に送信する（ステップＳ２２）。例えば、「実行を継続することに関する情報」が「継続する」を表す場合、第２判定部１２６は、第１処理装置１２２に、再開信号を送信する。例えば、「実行を継続することに関する情報」が「継続しない」を表す場合、第２判定部１２６は、第１処理装置１２２に再開信号を送信しない。
【００６４】
次に、それぞれの第１処理装置１２２におけるプロセス再開部１２４は、再開信号を受信し、その後、停止しているプロセスを、停止している位置から、停止している状態を変更することなく、継続して実行する（ステップＳ２３）。
【００６５】
本発明の第４の実施形態は、本発明の第１の実施形態と同様の構成を有するため、第１の実施形態と同様の効果を享受することができる。即ち、本発明における第４の実施形態に係る並列デバッグシステムによれば、複数の計算機において相互に連携するプロセスの状態を容易に解析可能とする。
【００６６】
さらに、本発明の第４の実施形態によれば、プロセス再開部１２４が再開信号に応じて、停止しているプロセスを継続して実行するため、複数の判定位置に応じた判定を行うことが可能になる。
【００６７】
＜第５の実施形態＞
次に、上述した第４の実施形態を基本とする第５の実施形態について説明する。
【００６８】
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第４の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００６９】
図１４乃至図１６を参照しながら、本発明の第５の実施形態に係る並列デバッグシステム１４０１が有する構成と、並列デバッグシステム１４０１が行う処理とについて説明する。図１４は、本発明の第５の実施形態に係る並列デバッグシステム１４０１が有する構成を示すブロック図である。図１５は、本発明の第５の実施形態に係る第１判定部１４０４における処理の流れを示すフローチャートである。図１６は、本発明の第５の実施形態に係る第２判定部１４０５における処理の流れを示すフローチャートである。
【００７０】
並列デバッグシステム１４０１は、１台以上の第１処理装置１４０２と、第２処理装置１４０３と、第１処理装置１４０２及び第２処理装置１４０３が有するデータをやり取りする通信ネットワーク１３とを有する。第１処理装置１４０２は、第１判定部１４０４と、第２判定部１４０５と、プロセス再開部１４０８と、プロセス状態部１４０６と、情報収集部１４０７とを有する。また、第２処理装置１４０３は、第１指示部１４０９と、第２指示部１４１０と、判定処理部１４１１とを有する。
【００７１】
まず、情報収集部１４０７は、第１処理装置１４０２が実行しているプロセスについて、該プロセスを識別するプロセス識別子を読み取り、読み取ったプロセス識別子と、図１７に示すような第１の値とを関連付けして、プロセス状態部１４０６に記憶させる。
【００７２】
図１７は、本発明の第５の実施形態に係るプロセス状態部１４０６が記憶するプロセスの状態の一例を表す図である。図１７を参照すると、プロセス状態部１４０６において、第１の値は、プロセスを実行中である状態を表す。同様に、第２の値は、第１条件または第２条件を判定するためにプロセスを停止している状態を表す。第３の値は、プロセスが第１条件を満たしつつ停止している状態を表す。第４の値は、プロセスが第２条件を満たしつつ停止している状態を表す。
【００７３】
例えば、情報収集部１４０７が、プロセス識別子と第１の値とを関連付けする場合、該プロセス識別子に関連付けされたプロセスは、実行中である状態を表す。
【００７４】
第１判定部１４０４は、第１指示に応じて自装置内におけるプロセスを停止させる（ステップＳ７）とともに、プロセス状態部１４０６において、停止したプロセスのプロセス識別子に関連付けされた状態値を第２の値に設定する（ステップＳ３０）。ステップＳ７とステップＳ３０とにおける処理は、ステップＳ３０における処理を先に処理しても良い。
【００７５】
次に、第１判定部１４０４は、第１指示に応じて、自装置内におけるプロセスが、第１条件を満たすか否かを判定する（ステップＳ３１）。第１判定部１４０４は、特定プロセスが第１条件を満たす場合（ステップＳ３１にてＹＥＳと判定）に、該特定プロセスに関連付けされた状態値を第３の値に設定する（ステップＳ３２）とともに、第１判定結果を第２処理装置１４０３に送信する（ステップＳ３３）。ステップＳ３２とステップＳ３３との処理は、ステップＳ３３が先であっても良い。
【００７６】
自装置内におけるプロセスが、第１条件を満たさないと判定する場合に（ステップＳ３１にてＮＯと判定）、第１判定部１４０４は、第１判定結果を第２処理装置１４０３に送信する（ステップＳ３４）。次に、プロセス再開部１４０８は、上述した実行を継続する情報に基づいて、自装置におけるプロセスを再開するか否かを決める。プロセス再開部１４０８は、第２処理装置１４０３から再開信号を受信した場合にも、上述した実行を継続する情報に基づいて、プロセスを再開するか否かを決める。実行を継続する情報が継続する状態を表す場合に、プロセス再開部１４０８は、自装置におけるプロセスを再開する（ステップＳ３５）とともに、該プロセスのプロセス識別子に関連付けされた状態値を第１の値に設定する（ステップＳ３６）。
【００７７】
第２判定部１４０５は、プロセス状態部１４０６において、状態値が第３の値であるプロセスが存在するか否かを判定する（ステップＳ４０）。第２判定部１４０５は、上述したプロセスが存在する場合（ステップＳ４０にてＹＥＳと判定）、または、第２指示を受信する場合に、自処理装置におけるすべてのプロセスを停止する（ステップＳ１０）。次に、第２判定部１４０５は、該停止したプロセスについて、第２条件を満たすか否かを判定し（ステップＳ１１）、該判定した結果を第２判定結果として、第２処理装置１４０３に送信する（ステップＳ１２）。それとともに、第２判定部１４０５は、第２条件を満たすプロセスのプロセス識別子に関連付けされた状態値を第４の値に設定する（ステップＳ４１）。ステップＳ４１とステップＳ１２とにおける処理は、ステップＳ４１を先に処理しても良い。
【００７８】
本発明の第５の実施形態は、本発明の第４の実施形態と同様の構成を有するため、第４の実施形態と同様の効果を享受することができる。即ち、本発明における第５の実施形態に係る並列デバッグシステムによれば、複数の計算機において相互に連携するプロセスの状態を容易に解析可能とする。
【００７９】
さらに、本発明の第５の実施形態によれば、プロセス状態部１４０６が記憶する状態値に応じて、自装置において停止しているプロセスを継続して実行することができるため、再開信号を待つ時間を減らすことができる。
【００８０】
（ハードウェア構成例）
上述した本発明の各実施形態における並列デバッグシステムを、１つの計算処理装置（情報処理装置、コンピュータ）を用いて実現するハードウェア資源の構成例について説明する。但し、係る並列デバッグシステムは、物理的または機能的に少なくとも２つの計算処理装置を用いて実現してもよい。また、係る並列デバッグシステムは、専用の装置として実現してもよい。
【００８１】
図１８は、本発明の第１の実施形態乃至第５の実施形態に係る計算検索装置を実現可能な計算処理装置のハードウェア構成を概略的に示す図である。計算処理装置２０は、中央処理演算装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、以降「ＣＰＵ」と表す）２１、メモリ２２、ディスク２３、不揮発性記録媒体２４、入力装置２５、及び、出力装置２６を有する。
【００８２】
不揮発性記録媒体２４は、コンピュータが読み取り可能な、例えば、コンパクトディスク（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、デジタルバーサタイルディスク（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ブルーレイディスク（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、ユニバーサルシリアルバスメモリ（ＵＳＢメモリ）などを指しており、電源を供給しなくても係るプログラムを保持し、持ち運びを可能にする。不揮発性記録媒体２４は、上述した媒体に限定されない。また、不揮発性記録媒体２４の代わりに、通信ネットワークを介して係るプログラムを持ち運びしても良い。
【００８３】
即ち、ＣＰＵ２１は、ディスク２３が記憶するソフトウェア・プログラム（コンピュータ・プログラム：以下、単に「プログラム」と称する）を、実行する際にメモリ２２にコピーし、演算処理を実行する。ＣＰＵ２１は、プログラム実行に必要なデータをメモリ２２から読み込む。表示が必要な場合には、ＣＰＵ２１は、出力装置２６に出力結果を表示する。外部からプログラムを入力する場合、ＣＰＵ２１は、入力装置２５からプログラムを読み取る。ＣＰＵ２１は、上述した図１、図５、図７、図１２、あるいは、図１４に示した各部が表す機能（処理）に対応するところのメモリ２２にある並列デバッグプログラム（図２乃至図４、図８乃至図１０、図１３、図１５、あるいは、図１６）を解釈し実行する。ＣＰＵ２１は、上述した本発明の各実施形態において説明した処理を順次行う。
【００８４】
即ち、このような場合、本発明は、係る制御プログラムによっても成し得ると捉えることができる。更に、係る制御プログラムが記録されたコンピュータ読み取り可能な記録媒体によっても、本発明は成し得ると捉えることができる。
【００８５】
尚、上述した各実施形態の一部又は全部は、以下の付記のようにも記載されうる。しかしながら、上述した各実施形態により例示的に説明した本発明は、以下には限られない。即ち、
（付記１）
複数の第１処理装置が実行する複数のプロセスに関して、判定位置において処理を一時的に止めるブレイクポイントを作成する処理と、作成した該ブレイクポイントにおいて該判定位置に関連付けされた１つ以上の第１条件を満たすか否かをそれぞれ判定し、判定した結果を第１判定結果として送信する処理とを指示する第１指示を行う第１指示部と、
前記第１指示に応じて、自装置が実行する前記複数のプロセスに対して、前記ブレイクポイントを設定し、前記ブレイクポイントにおいて前記複数のプロセスを停止し、その後、前記第１条件を満たすか否かをそれぞれ判定し、判定結果を前記第１判定結果として送信する第１判定部と、
前記第１判定結果を受信し、受信した前記第１判定結果において満たされる前記第１条件が存在する場合に、前記複数の第１処理装置が実行する前記複数のプロセスに関して処理を停止する停止指示と、該プロセスが停止した後、該判定位置に関連付けされた１つ以上の第２条件を満たすか否かを判定し、判定した結果を第２判定結果として送信する処理を指示する第２指示とを行う第２指示部と、
前記停止指示に応じて、前記複数のプロセスを停止し、その後、前記第２指示に応じて、前記第２条件を満たすか否かを判定し、判定結果を前記第２判定結果として送信する第２判定部と、
前記第１判定結果において前記第１条件を満たす第１プロセスと、前記第２判定結果において前記第２条件を満たす第２プロセスとがある場合に、前記第１プロセス及び前記第２プロセスの状況を読み取る判定処理部と
を有する並列デバッグシステム。
【００８６】
（付記２）
前記判定位置と、前記第１条件と、前記第２条件とを関連付けて記憶する条件記憶部を有し、
前記第１指示部は、前記条件記憶部において前記判定位置に関連付けされた前記第１条件を読み取り、
前記第２指示部は、前記条件記憶部において前記判定位置に関連付けされた前記第２条件を読み取る
付記１に記載の並列デバッグシステム。
【００８７】
（付記３）
前記判定位置と前記第１条件と前記第２条件との組に対して、それぞれの組を識別する条件識別子を付与する識別子部と、
付与した前記条件識別子を前記組に関連付けて前記条件記憶部に記憶させるとともに、第２信号として送信する条件作成部とを更に備え、
前記第１処理装置は、
前記第２信号を記憶する第１条件記憶部と、
前記第２信号を受信し、前記受信した第２信号を前記第１条件記憶部に記憶させる受信部と、
成立する前記第１条件に関連付けされた前記条件識別子を記憶する停止情報記憶部とを更に備え、
前記第１判定部は、前記第１指示に応じて、前記第１条件記憶部が記憶する前記第１条件をプロセスが満たすか否かを判定し、前記条件識別子と前記判定結果とを関連付けして前記第１判定結果とし，
前記第２指示部は、前記第１判定結果において前記第１条件を満たす前記条件識別子を、前記第２指示として送信し、
前記第２判定部は、受信した前記第２指示を停止情報記憶部に記憶させ、前記停止情報記憶部が記憶する前記条件識別子に関連付けされた前記第２条件を、前記第１条件記憶部から読み取るとともに、前記複数の第１処理装置が処理するプロセスを停止し、その後、それぞれの前記プロセスが前記第２条件を満たすか否かを判定し、判定した結果を前記第２判定結果として送信するとともに、前記停止情報記憶部から、判定を行った前記第２条件に関連付けされた前記条件識別子を消去する
付記１または付記２に記載の並列デバッグシステム。
【００８８】
（付記４）
前記第２指示部は、前記第１条件がすべて成立しない場合、または、前記第２条件が成立しない場合に、実行を継続することに関する情報に基づいて、前記複数の第１処理装置に、停止している前記プロセスを再開する再開信号を送信する
付記１乃至付記３のいずれかに記載の並列デバッグシステム。
【００８９】
（付記５）
前記プロセスを識別するプロセス識別子と、プロセスを実行している状態に関連付けされた第１の値、前記第１条件あるいは前記第２条件を判定するために停止している状態に関連付けされた第２の値、前記第１条件を満たして停止している状態に関連付けされた第３の値、及び、前記第２条件を満たして停止している状態に関連付けされた第４の値を表す状態値とを関連付けて記憶するプロセス状態部と、
自装置において実行する前記プロセスに関連付けされた前記プロセス識別子を読み取り、読み取った前記プロセス識別子と前記第１の値とを関連付けして前記プロセス状態部に記憶させる情報収集部と
を更に有し、
前記第１判定部は、前記複数のプロセスが停止する処理に応じて、停止した前記複数のプロセスに関連付けされた状態値を前記第２の値とするとともに、特定プロセスが前記第１条件を満たす場合に、該特定プロセスに関連付けされた状態値を前記第３の値とし、
前記第２指示部は、前記第１条件を満たすプロセスが存在する場合に、前記プロセス状態部において、前記プロセスに関連付けされた状態値を前記第３の値に設定し、
前記プロセス再開部は、すべてのプロセスが前記第１条件を満たさない場合に、前記特定プロセスを継続して実行するとともに、前記再開信号に応じて、前記プロセス状態部において、前記第２の値に関連付けされた前記プロセス識別子を有するプロセスの前記状態値を前記第１の値とし、
前記第２判定部は、さらに、前記プロセス状態部において前記状態値が前記第３の値であるプロセスが存在する場合に、自装置におけるすべてのプロセスを停止し、その後、前記第２指示に応じて、該停止したプロセスが、前記第２条件を満たすか否かを判定し、判定結果を前記第２判定結果として、前記通信ネットワークを経由して送信するとともに、前記プロセス状態部において、前記第２条件を満たすプロセスに関連付けされた前記状態値を、前記第４の値に設定する
付記４に記載の並列デバッグシステム。
【００９０】
（付記６）
複数の第１処理装置が実行する複数のプロセスに関して、判定位置において処理を一時的に止めるブレイクポイントを作成する処理と、作成した該ブレイクポイントにおいて該判定位置に関連付けされた１つ以上の第１条件を満たすか否かをそれぞれ判定し、判定した結果を第１判定結果として送信する処理とを指示する第１指示を行い、前記第１指示に応じて、自装置が実行する前記複数のプロセスに対して、前記ブレイクポイントを設定し、前記ブレイクポイントにおいて前記複数のプロセスを停止し、その後、前記第１条件を満たすか否かをそれぞれ判定し、判定結果を前記第１判定結果として送信し、前記第１判定結果を受信し、受信した前記第１判定結果において満たされる前記第１条件が存在する場合に、前記複数の第１処理装置が実行する前記複数のプロセスに関して処理を停止する停止指示と、該プロセスが停止した後、該判定位置に関連付けされた１つ以上の第２条件を満たすか否かを判定し、判定した結果を第２判定結果として送信する処理を指示する第２指示とを行い、前記停止指示に応じて、前記複数のプロセスを停止し、その後、前記第２指示に応じて、前記第２条件を満たすか否かを判定し、判定結果を前記第２判定結果として送信しと、前記第１判定結果において前記第１条件を満たす第１プロセスと、前記第２判定結果において前記第２条件を満たす第２プロセスとがある場合に、前記第１プロセス及び前記第２プロセスの状況を読み取る
並列デバッグ方法。
【００９１】
（付記７）
複数の第１処理装置が実行する複数のプロセスに関して、判定位置において処理を一時的に止めるブレイクポイントを作成する処理と、作成した該ブレイクポイントにおいて該判定位置に関連付けされた１つ以上の第１条件を満たすか否かをそれぞれ判定し、判定した結果を第１判定結果として送信する処理とを指示する第１指示を行う第１指示機能と、
前記第１指示に応じて、自装置が実行する前記複数のプロセスに対して、前記ブレイクポイントを設定し、前記ブレイクポイントにおいて前記複数のプロセスを停止し、その後、前記第１条件を満たすか否かをそれぞれ判定し、判定結果を前記第１判定結果として送信する第１判定機能と、
前記第１判定結果を受信し、受信した前記第１判定結果において満たされる前記第１条件が存在する場合に、前記複数の第１処理装置が実行する前記複数のプロセスに関して処理を停止する停止指示と、該プロセスが停止した後、該判定位置に関連付けされた１つ以上の第２条件を満たすか否かを判定し、判定した結果を第２判定結果として送信する処理を指示する第２指示とを行う第２指示機能と、
前記停止指示に応じて、前記複数のプロセスを停止し、その後、前記第２指示に応じて、前記第２条件を満たすか否かを判定し、判定結果を前記第２判定結果として送信する第２判定機能と、
前記第１判定結果において前記第１条件を満たす第１プロセスと、前記第２判定結果において前記第２条件を満たす第２プロセスとがある場合に、前記第１プロセス及び前記第２プロセスの状況を読み取る判定処理機能と
をコンピュータに実現させる並列デバッグプログラム。
【００９２】
（付記８）
前記判定位置と、前記第１条件と、前記第２条件とを関連付けて記憶する条件記憶機能をさらに有し、
前記第１指示機能において、前記条件記憶機能から前記判定位置に関連付けされた前記第１条件を読み取り、
前記第２指示機能において、前記条件記憶機能から前記判定位置に関連付けされた前記第２条件を読み取る
付記７に記載の並列デバッグプログラム。
【００９３】
（付記９）
前記判定位置と前記第１条件と前記第２条件との組に対して、それぞれの組を識別する条件識別子を付与する識別子機能と、
付与した前記条件識別子を前記組に関連付けて前記条件記憶機能に記憶させるとともに、第２信号として送信する条件作成機能とを更に有し、
前記第１処理装置において、
前記第２信号を記憶する第１条件記憶機能と、
前記第２信号を受信し、前記受信した第２信号を前記第１条件記憶機能に記憶させる受信機能と、
成立する前記第１条件に関連付けされた前記条件識別子を記憶する停止情報記憶機能とを更に備え、
前記第１判定機能において、前記第１指示に応じて、前記第１条件記憶機能が記憶する第１条件をプロセスが満たすか否かを判定し、前記条件識別子と前記判定結果とを関連付けして前記第１判定結果とし，
前記第２指示機能において、前記第１判定結果のうち前記第１条件を満たす前記条件識別子を、前記第２指示として送信し、
前記第２判定機能において、受信した前記第２指示を停止情報記憶機能に記憶させ、前記停止情報記憶機能が記憶する前記条件識別子に関連付けされた前記第２条件を、前記第１条件記憶機能から読み取るとともに、第１処理装置が処理するプロセスを停止し、その後、それぞれの前記プロセスが前記第２条件を満たすか否かを判定し、判定した結果を前記第２判定結果として送信するとともに、前記停止情報記憶機能から、判定を行った前記第２条件に関連付けされた前記条件識別子を消去する
付記７または付記８に記載の並列デバッグプログラム。
【００９４】
（付記１０）
前記第２指示機能において、前記第１条件がすべて成立しない場合、または、前記第２条件が成立しない場合に、実行を継続することに関する情報に基づいて、前記複数の第１処理装置に、停止している前記プロセスを再開する再開信号を送信する
付記７乃至付記９のいずれかに記載の並列デバッグプログラム。
【００９５】
（付記１１）
前記第１処理装置において、
前記プロセスを識別するプロセス識別子と、プロセスを実行している状態に関連付けされた第１の値、前記第１条件あるいは前記第２条件を判定するために停止している状態に関連付けされた第２の値、前記第１条件を満たして停止している状態に関連付けされた第３の値、及び、前記第２条件を満たして停止している状態に関連付けされた第４の値を表す状態値とを関連付けて記憶するプロセス状態機能と、
自装置において実行する前記プロセスに関連付けされた前記プロセス識別子を読み取り、読み取った前記プロセス識別子と前記第１の値とを関連付けして前記プロセス状態機能に記憶させる情報収集機能と
を更に実現させ、
前記第１判定機能において、前記複数のプロセスが停止する処理に応じて、停止した前記複数のプロセスに関連付けされた状態値を前記第２の値とするとともに、特定プロセスが前記第１条件を満たす場合に、該特定プロセスに関連付けされた状態値を前記第３の値とし、
前記第２指示機能において、前記第１条件を満たすプロセスが存在する場合に、前記プロセス状態機能において、前記プロセスに関連付けされた状態値を前記第３の値に設定し、
前記プロセス再開機能において、すべてのプロセスが前記第１条件を満たさない場合に、前記特定プロセスを継続して実行するとともに、前記再開信号に応じて、前記プロセス状態機能において、前記第２の値に関連付けされた前記プロセス識別子を有するプロセスの前記状態値を前記第１の値とし、
前記第２判定機能において、さらに、前記プロセス状態機能において前記状態値が前記第３の値であるプロセスが存在する場合に、自装置におけるすべてのプロセスを停止し、その後、前記第２指示に応じて、該停止したプロセスが、前記第２条件を満たすか否かを判定し、判定結果を前記第２判定結果として、前記通信ネットワークを経由して送信するとともに、前記プロセス状態機能において、前記第２条件を満たすプロセスに関連付けされた前記状態値を、前記第４の値に設定する
付記１０に記載の並列デバッグプログラム。
【符号の説明】
【００９６】
１０    並列デバッグシステム
１１    第１処理装置
１２    第２処理装置
１３    通信ネットワーク
１４    第１判定部
１５    第２判定部
１６    第１指示部
１７    第２指示部
１８    判定処理部
５１    第２処理装置
５２    第１指示部
５３    第２指示部
５４    条件記憶部
７０１    並列デバッグシステム
７０２    第１処理装置
７０３    第２処理装置
７０４    受信部
７０５    第１条件記憶部
７０６    停止情報記憶部
７０７    識別子部
７０８    条件作成部
７０９    条件記憶部
７１０    第１判定部
７１１    第２判定部
７１２    第１指示部
７１３    第２指示部
７１４    判定処理部
１２１    並列デバッグシステム
１２２    第１処理装置
１２３    第２処理装置
１２４    プロセス再開部
１２５    第１判定部
１２６    第２判定部
１２７    第１指示部
１２８    第２指示部
１２９    判定処理部
１４０１    並列デバッグシステム
１４０２    第１処理装置
１４０３    第２処理装置
１４０４    第１判定部
１４０５    第２判定部
１４０６    プロセス状態部
１４０７    情報収集部
１４０８    プロセス再開部
１４０９    第１指示部
１４１０    第２指示部
１４１１    判定処理部
２０    計算処理装置
２１    ＣＰＵ
２２    メモリ
２３    ディスク
２４    不揮発性記録媒体
２５    入力装置
２６    出力装置
【図１】
2014164378.tif 000003
【図２】
2014164378.tif 000004
【図３】
2014164378.tif 000005
【図４】
2014164378.tif 000006
【図５】
2014164378.tif 000007
【図６】
2014164378.tif 000008
【図７】
2014164378.tif 000009
【図８】
2014164378.tif 000010
【図９】
2014164378.tif 000011
【図１０】
2014164378.tif 000012
【図１１】
2014164378.tif 000013
【図１２】
2014164378.tif 000014
【図１３】
2014164378.tif 000015
【図１４】
2014164378.tif 000016
【図１５】
2014164378.tif 000017
【図１６】
2014164378.tif 000018
【図１７】
2014164378.tif 000019
【図１８】
2014164378.tif 000020