(57)【要約】      （修正有）【課題】処理遅延が生じた処理プロセスを迅速に特定する。【解決手段】複数の異なるプロセスにより構成されるプログラムに基づきその内容の実行処理を行うプロセッサ部と、プロセス相互間で行われるプロセス間通信の通信所要時間に基づき処理遅延が生じたプロセスを特定する処理遅延箇所特定部とを有し、プロセッサ部による実行処理時に、上記プロセスのうちの一の処理プロセスの通信所要時間を計測し当該通信所要時間を基準時間として設定するプロセス間通信初期化手段２と、他の処理プロセスにおける通信所要時間と基準時間とを比較して基準時間より長い通信所要時間を取得し当該通信所要時間に対応するプロセス間通信を行った処理プロセスを特定するプロセス間通信処理手段４とを備えた。【選択図】図１
2010244180.tif 000002
【特許請求の範囲】
【請求項１】
複数の異なる処理プロセスにより構成されるプログラムに基づきその内容の実行処理を行うプロセッサ部と、前記処理プロセス相互間で行われるプロセス間通信の通信所要時間に基づき処理遅延が生じた処理プロセスを特定する処理遅延箇所特定部とを備えたプロセス間通信管理システムであって、
前記プロセッサ部による実行処理時に、前記処理プロセスのうちの一の処理プロセスの通信所要時間を計測すると共に当該計測された通信所要時間を基準時間として設定する通信時間計測手段と、
前記処理プロセスのうちの他の処理プロセスにおける通信所要時間と前記基準時間とを比較して前記基準時間より長い通信所要時間を取得すると共に当該通信所要時間に対応するプロセス間通信を行った処理プロセスを特定する遅延通信特定手段とを有し、
前記遅延通信特定手段は、前記特定された処理プロセスを示すプロセス特定情報および前記取得した通信所要時間を前記処理遅延箇所特定部に通知する特定通信時間通知機能を備えたことを特徴とするプロセス間通信管理システム。
【請求項２】
前記請求項１に記載のプロセス間通信管理システムにおいて、
前記通信時間計測手段は、予め設定された前記複数の異なる処理プロセスから前記一の処理プロセスを任意に選択するプロセス任意選択機能を備えたことを特徴とするプロセス間通信管理システム。
【請求項３】
前記請求項１に記載のプロセス間通信管理システムにおいて、
前記通信時間計測手段は、前記処理プロセスの前記プロセッサ部に対する配置位置に基づき前記処理プロセスから前記一の処理プロセスを選択するプロセス位置選択機能を備えたことを特徴とするプロセス間通信管理システム。
【請求項４】
前記請求項１に記載のプロセス間通信管理システムにおいて、
前記通信時間計測手段は、前記処理プロセスから前記各処理プロセスにより行われるプロセス間通信の通信経路に基づき前記一の処理プロセスを選択するプロセス経路選択機能を備えたことを特徴とするプロセス間通信管理システム。
【請求項５】
前記請求項１乃至４に記載のプロセス間通信管理システムにおいて、
前記処理遅延特定部は、前記通知された処理プロセスに処理遅延が生じているか否かを、当該処理プロセスが配置された前記プロセッサ部の配置位置に基づき判定する処理遅延判定機能を備えたことを特徴とするプロセス間通信管理システム。
【請求項６】
複数の異なる処理プロセスにより構成されるプログラムに基づきその内容の実行処理を行うプロセッサ部と、前記処理プロセス相互間で行われるプロセス間通信の通信所要時間を取得する処理遅延特定部とを備え、当該処理遅延特定部が前記プロセッサ部におけるプログラム実行処理時に処理遅延が生じた処理プロセスを特定するプロセス間通信管理方法であって、
前記プロセッサ部によるプログラム実行処理時に、前記処理プロセスのうちの一の処理プロセスの通信所要時間を計測し、当該計測された通信所要時間を基準時間として設定し、前記基準時間と前記処理プロセスのうちの他の処理プロセスの通信所要時間とを比較して当該通信所要時間が前記基準時間より長い場合にその通信所要時間を取得し、当該通信所要時間に対応するプロセス間通信を行った処理プロセスを特定し、前記特定された処理プロセスを示すプロセス特定情報および前記取得した通信所要時間を前記処理遅延特定部に通知することを特徴としたプロセス間通信管理方法。
【請求項７】
複数の異なる処理プロセスにより構成されるプログラムに基づきその内容の実行処理を行うプロセッサ部と、前記処理プロセス相互間で行われるプロセス間通信の通信所要時間を取得する処理遅延特定部とを備え、当該処理遅延特定部が前記プロセッサ部の実行処理時に処理遅延が生じた処理プロセスを特定するためのプロセス間通信管理プログラムであって、
前記プロセッサ部による実行処理時に計測された前記処理プロセスのうちの一の処理プロセスの通信所要時間を基準時間として設定する基準時間設定機能と、前記基準時間と前記処理プロセスのうちの他の処理プロセスの通信所要時間と比較して前記基準時間より長い通信所要時間を取得し当該通信所要時間に対応するプロセス間通信を行った処理プロセスを特定する遅延プロセス特定機能とを、前記プロセッサ部の備えたコンピュータに実行させることを特徴としたプロセス間通信管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムにおけるプログラム処理実行時に行われるプロセス間通信にかかる通信情報を取得し管理するプロセス間通信情報管理システムに関する。
【背景技術】
【０００２】
スーパーコンピュータなどにおける、例えば、単段クロスバーネットワークなどを採用されたコンピュータシステムでは、当該コンピュータシステム内に設定されたノード間における通信時間がその接続位置によらず均一である場合が多い。
この場合、各ノードに設定されたプロセッサに対して処理プロセスが生成(配置)されても、処理プロセス相互間で行われるデータ転送(以下「プロセス間通信」という)にかかる所要時間(プロセス間通信時間)は均一となる。
【０００３】
この場合、各処理プロセスにおけるプロセス間通信時間の基準値(基準時間)として、予め設定された定数値を用いることができる。
これにより、プログラム実行中におけるプロセス間通信がこの基準時間を超えている場合には、処理プロセス間で処理インバランスが生じたことから、各処理プロセスにおけるプロセス間通信に遅延が生じているものと判断することができ、このため、通信時間の遅延が生じた処理プロセスの通信情報(プロセス間通信時間)を取得することにより、処理インバランスの発生箇所としての処理プロセスを特定することができる。
【０００４】
一方、コンピュータシステム内に設置されるノード数が増加されるのに伴い、例えば、多段クロスバーネットワーク、ファットツリー、二次元あるいは三次元のメッシュやトーラス等のネットワーク構成が採用されたコンピュータシステムが増えてきている。
【０００５】
これらのコンピュータシステムにおいては、ネットワークに接続されているノード間の距離が、ネットワーク上必ずしも等距離ではない。このため、ネットワーク上の距離により、ノード間通信に要する通信時間(プロセス間通信時間)が異なることになる。
【０００６】
このため、上記のように、予め設定された定数値の基準時間に基づき各プロセスにおけるプロセス間通信の通信所要時間を比較しても、通常のプロセス間通信時間よりも通信所要時間が長い処理プロセスを特定することができない。
【０００７】
更には、例えば、このコンピュータシステムで、異なる複数のプロセス(処理プロセス)から構成されるメッセージパッシング型の分散並列プログラムが実行される場合を考えると、プロセスごとの処理量が均一とならず、特にプロセス間における処理インバランス発生している場合、プログラム全体の実行性能が低下してしまう場合が生じ得る。
【０００８】
例えば、あるプロセスにおいて処理の遅延が発生している場合には、プロセス間通信を開始するタイミングにズレ(処理インバランス)が生じるため、通信開始までの間、プロセス間で待合せが必要となり、通信所要時間が増大してしまう。
【０００９】
これに対しては、分散並列プログラムの実行性能チューニングを行うことにより、プログラムの実効性能を改善することができる。このため、実行性能チューニングを行うために、処理インバランスの原因となる処理遅延の発生箇所を特定する必要がある。
【００１０】
プロセス間通信所要時間が増大している箇所の処理プロセスを特定するための手法としては、以下のような手法が考えられる。
【００１１】
例えば、まず、プログラムの実行開始から終了まで全体を通して各プロセスにおける全てのプロセス間通信処理にかかる情報（通信相手プロセス、通信データサイズ、通信所要時間、など）を採取・保存する。
次いで、プログラムの実行終了後に、専用のツールソフトウェアを利用して、例えば、縦軸をプロセス、横軸を時間として、採取したプロセス間通信情報をグラフィカルに表示させ、送信側プロセスと受信側プロセスの対応状況やプロセス間通信所要時間を目視により確認する。これにより、通信所要時間が増大している箇所を特定することができる。
【００１２】
しかしながら、例えば、採取する通信情報が膨大な量となった場合に、プロセス間通信の発生状況を示すためのグラフィカル表示を行った場合、表示内容が複雑かつ煩雑となるため、目視による確認が困難となるといった不都合が生じ得る。
【００１３】
また、この関連技術として、各プロセスにおける各種処理時間を測定し、更に、それらを他のプロセスの測定値と比較することにより、特異点を検出して、並列プログラムの実行性能を解析して表示する手法が開示されている(特許文献１)。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開平１０−０６３５５０公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
しかしながら、上記特許文献１に開示された関連技術では、特にＨＰＣ(High  Performance  Computing)分野のコンピュータシステムで実行されるプログラムなど、プロセス数が多く、また、プログラムの実行が長時間に及び、プロセス間通信の実行回数が非常に多くなる場合には、コンピュータシステムへの負荷が膨大になってしまうという不都合がある。
更に、上述のように、プロセス間通信の発生状況を示すためのグラフィカル表示を行った場合でも、表示内容が複雑かつ煩雑となるため、目視による確認が困難となり、処理手数が膨大となり、手間がかかるといった不都合がある。
【００１６】
［発明の目的］
本発明は、上記関連技術の有する不都合を改善し、プログラム処理時に生じたプロセス間通信の処理インバランスを改善するために、処理遅延が生じた処理プロセスを迅速に特定するプロセス間通信管理システム、プロセス間通信管理方法、プロセス間通信管理プログラムを提供することを、その目的とする。
【課題を解決するための手段】
【００１７】
上記目的を達成するために、本発明に係るプロセス間通信管理システムは、複数の異なる処理プロセスにより構成されるプログラムに基づきその内容の実行処理を行うプロセッサ部と、前記処理プロセス相互間で行われるプロセス間通信の通信所要時間に基づき処理遅延が生じた処理プロセスを特定する処理遅延箇所特定部とを備えたプロセス間通信管理システムであって、前記プロセッサ部による実行処理時に、前記処理プロセスのうちの一の処理プロセスの通信所要時間を計測すると共に当該計測された通信所要時間を基準時間として設定する通信時間計測手段と、前記処理プロセスのうちの他の処理プロセスにおける通信所要時間と前記基準時間とを比較して前記基準時間より長い通信所要時間を取得すると共に当該通信所要時間に対応するプロセス間通信を行った処理プロセスを特定する遅延通信特定手段とを有し、前記遅延通信特定手段は、前記特定された処理プロセスを示すプロセス特定情報および前記取得した通信所要時間を前記処理遅延箇所特定部に通知する特定通信時間通知機能を備えた構成をとっている。
【００１８】
又、本発明にかかるプロセス間通信管理方法は、複数の異なる処理プロセスにより構成されるプログラムに基づきその内容の実行処理を行うプロセッサ部と、前記処理プロセス相互間で行われるプロセス間通信の通信所要時間を取得する処理遅延特定部とを備え、当該処理遅延特定部が前記プロセッサ部におけるプログラム実行処理時に処理遅延が生じた処理プロセスを特定するプロセス間通信管理方法であって、前記プロセッサ部によるプログラム実行処理時に、前記処理プロセスのうちの一の処理プロセスの通信所要時間を計測し、当該計測された通信所要時間を基準時間として設定し、前記基準時間と前記処理プロセスのうちの他の処理プロセスの通信所要時間とを比較して当該通信所要時間が前記基準時間より長い場合にその通信所要時間を取得し、当該通信所要時間に対応するプロセス間通信を行った処理プロセスを特定し、前記特定された処理プロセスを示すプロセス特定情報および前記取得した通信所要時間を前記処理遅延特定部に通知することを特徴としている。
【００１９】
又、本発明にかかるプロセス通信管理プログラムは、複数の異なる処理プロセスにより構成されるプログラムに基づきその内容の実行処理を行うプロセッサ部と、前記処理プロセス相互間で行われるプロセス間通信の通信所要時間を取得する処理遅延特定部とを備え、当該処理遅延特定部が前記プロセッサ部の実行処理時に処理遅延が生じた処理プロセスを特定するためのプロセス間通信管理プログラムであって、前記プロセッサ部による実行処理時に計測された前記処理プロセスのうちの一の処理プロセスの通信所要時間を基準時間として設定する基準時間設定機能と、前記基準時間と前記処理プロセスのうちの他の処理プロセスの通信所要時間と比較して前記基準時間より長い通信所要時間を取得し当該通信所要時間に対応するプロセス間通信を行った処理プロセスを特定する遅延プロセス特定機能とを、前記プロセッサ部の備えたコンピュータに実行させること特徴としている。
【発明の効果】
【００２０】
本発明は、以上のように構成され機能するので、これによると、プロセッサ部によるプログラム実行処理時に、前記処理プロセスのうちの一の処理プロセスの通信所要時間を計測する手段と、他の処理プロセスにおける通信所要時間と前記基準時間とを比較して前記基準時間より長い通信所要時間を取得して、当該通信所要時間の処理プロセスを特定する手段とを備えた構成としたことにより、プログラム処理時に生じたプロセス間通信の処理インバランスの状況を有効に把握すると共に、処理遅延が生じた処理プロセスを迅速に特定するための情報を確実に取得するプロセス間通信管理システム、プロセス間通信管理方法、プロセス間通信管理プログラムを提供することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明によるプロセス間通信情報管理システムの一実施形態を示す概略ブロック図である。
【図２】図１に開示したプロセス間通信情報管理システムが実装されるコンピュータシステムの一形態を示す概略ブロック図である。
【図３】図１に開示したプロセス間通信情報管理システムにおけるプロセス間通信初期化手段の動作処理ステップを示したフローチャートである。
【図４】図１に開示したプロセス間通信情報管理システムにおけるプロセス間通信処理手段の動作処理ステップを示したフローチャートである。
【発明を実施するための形態】
【００２２】
［実施形態］
次に、本発明の実施形態について、その基本的構成内容を説明する。
【００２３】
本実施形態は、図２に示すように、複数の異なるノード＃１〜＃ｎがプロセス間通信専用ネットワークを介して接続されたコンピュータシステムであって、各ノードが予め設定されたプロセスの実行処理を行うことにより、分散並列プログラムの実行処理を行う。
尚、各ノードは、予め設定されたプログラムに基づき実行処理を行うプロセッサと、実行処理の対象となるデータ、およびプログラムを読込むメモリなどを備え、各ノード上に設定された各プロセッサは、予め設定されたプロセス制御部により割当てられた処理プロセス(以下「プロセス」という)の実行処理を行うものとする。
【００２４】
ここで、各ノード内には、分散並列プログラムの実行処理単位である異なる複数のプロセスが割当てられているものとする。
また、この各プロセスは、当該プロセスの実行処理に伴い、プロセス間通信専用ネットワークを介して他のノード上に設定されたプロセスとの間でプロセス間通信を行うものとする。
【００２５】
図２では、各ノード＃１〜＃ｎ上に予め設定されたプロセッサに対して配置されたプロセスの配置状況の一例を示している。
ここでは、本実施形態のコンピュータシステムにおける各ノード＃１〜＃ｎのプロセッサには、それぞれ４つプロセスが配置され、プロセス同士は、プロセス間通信専用ネットワークを介して相互に接続されており、ノード＃１〜＃ｎ内におけるプロセス間通信は、それぞれこのプロセス間通信専用ネットワークを介して行われるものとする。
【００２６】
また、上記各プロセスの実行処理を行う総体としての分散並列プログラム実行本体部１は、図１に示すように、予め設定された複数の異なるプロセス(処理プロセス)の実行処理を行うプロセス実行部１１、１２、・・・１１１、１１２、・・・〜１ｎからなり、各プロセス実行部で生成されたプロセス間通信情報を記憶するプロセス間通信情報記憶部５が各プロセス実行部に接続された構成となっている。
【００２７】
尚、分散並列プログラム実行本体部１は、各ノード上に設定された複数の異なるプロセッサと、このプロセッサによる処理制御によって予め設定されたプログラムが読み込まれる主要メモリ、ＨＤＤ(ハードディスクドライブ)、処理対象となるデータ、およびプログラムが通信バスなどを含み構成されるものとする。
【００２８】
ここで、上記各プロセス実行部は、図２に示す各ノード内に設定されたプロセッサの動作により実現されるものとする。例えば、プロセス実行部１１は、ノード＃１内に予め設置されたプロセッサの動作により実現され、ノード＃１内に生成された４つのプロセス(図２)の実行処理を行う。
尚、各ノード内には、異なる複数のプロセッサが設置された構成であってもよい。
【００２９】
分散並列プログラム実行本体部１内に設定された各プロセス実行部１１〜１ｎは、以下に示す構成を有するものとする。
尚、ここでは、プロセス実行部１１内の構成について説明するが、他のプロセス実行部１２〜１ｎ内の構成についても、同様の内部構成を有するものとする。
【００３０】
プロセス実行部１１は、予め設定された各プロセスにおけるプロセス間通信の通信初期化処理を行うプロセス間通信処理初期化手段２と、各プロセスに設定されたプロセス間通信の通信基準時間を記憶するプロセス間通信基準時間保持手段３と、各プロセスにおけるプロセス間通信のデータ転送を行うプロセス間通信処理手段(遅延通信特定手段)４を備えている。
【００３１】
尚、プロセス実行部１１内に設定された上記プロセス間通信処理初期化手段２、プロセス間通信基準時間保持手段３、およびプロセス間通信処理手段４についても、ノード＃１内に設置されたプロセッサ、メモリ、ＨＤＤの動作により実現されるものとする。
【００３２】
また、プロセス実行部１１は、分散並列プログラム実行本体部１が、分散並列プログラムの実行処理を開始したときに、プロセス間通信を行うための準備処理であるプロセス間通信初期化処理を行うプロセス間通信初期化手段２を備えている。このプロセス間通信初期化設定では、プロセス間通信の実施に必要な各種データの初期化、および通信先、通信経路の設定を行う。
【００３３】
プロセス間通信初期化手段２は、予め設定された複数の異なるプロセス(例えば、ノード＃１内のプロセッサに設定された４つのプロセス)から任意に１つのプロセスを、代表プロセスとして選択する代表プロセス選択機能を有する。
【００３４】
また、プロセス間通信初期化手段２は、分散並列プログラム実行本体部１による分散並列プログラムの処理実行時に、予め設定されたプロセスで実行されるプロセス間通信の通信時間(以下「プロセス間通信時間」という)を取得して、プロセス間通信基準時間の算出(計測)を行うプロセス間通信基準採取機能(通信時間計測手段)２１を備えている。
【００３５】
また、プロセス間通信基準時間採取機能２１は、図２に示すように、各ノード＃１〜＃ｎ内に複数の異なるプロセスが生成されている(配置されている)場合に、各ノード(例えばノード＃１)内に設定されたプロセスの中から、代表プロセスを選択決定する代表プロセス決定機能を備えている。
【００３６】
これにより、プロセス間通信基準採取機能２１は、分散並列プログラム実行本体部１による分散並列プログラムの処理実行時に、代表プロセス間で実行されるプロセス間通信の通信所要時間を計測し、計測された通信所要時間をプロセス間通信基準時間として取得する。
具体的には、プロセス間通信基準時間採取機能２１は、例えば、ノード＃１内に設定された４つのプロセスから任意に１つのプロセスを代表プロセスとして選択し、この代表プロセス間のプロセス間通信の通信所要時間の計測を行う。
【００３７】
尚、この代表基準時間計測機能では、プロセス間通信基準時間採取機能２１が、予め設定された複数のプロセス(例えば４つ)のうち、各プロセスのプロセス通信で利用される通信ネットワークの種類や構成、または各プロセスの配置状況に基づき、例えば、最も通信時間の長いプロセスを代表プロセスとして選択決定する設定としてもよい。
【００３８】
これにより、プロセッサ上に配置された各プロセスにおける通信基準時間を算出するために行われる通信回数を、軽減することができる。更には、通信基準時間の算出にかかるコンピュータシステム(プロセッサ)における処理負荷を軽減することができ、且つ通信基準時間をより短時間で迅速に算出することができる。
【００３９】
尚、プロセス間通信基準時間採取機能２１は、通信時間の計測を行うと共に計測された通信時間から、通信ネットワークの種類や構成、プロセス配置の状況に基づき、各プロセスにおける通信基準時間を算出する設定としてもよい。
また、この通信基準時間は、各プロセスが通常のプロセス間通信を行われた場合に計測される通信時間を示し、例えば、当該プロセスで処理インバランスが生じていた場合には、プロセス間通信所要時間は、算出された通信基準時間よりも長くなる。
【００４０】
また、プロセス間通信基準採取機能２１は、各ノード内で設定された代表プロセス以外のプロセス(非代表プロセス)に対して、上記算出された代表プロセスの基準時間を継承（コピー）して設定する処理を行う(基準時間継承設定機能)。
【００４１】
具体的には、例えば、同一ノード内のプロセッサに割当てられた２つのプロセスＰおよびＱについて、プロセスＰからプロセスＱ方向へのプロセス間通信と、反対にプロセスＱからプロセスＰ方向へのプロセス間通信とが、通信ネットワーク上同一経路を通過し、且つ通信性能が同一である場合に、一方のプロセスの通信基準時間を計測し、他方のプロセスの通信基準時間については、一方の通信基準時間を継承（コピー）する。
【００４２】
更に、プロセス間通信基準採取機能２１は、計測した通信基準時間、あるいは、他プロセスから継承したプロセス間通信基準時間をプロセス間通信基準時間保持手段３に格納する基準時間格納機能を有する。
【００４３】
プロセス間通信処理手段４は、各プロセスにおけるプロセス間通信が実行されたときに、各ノード内に予め設定されたタイマーに基づきプロセス間通信開始時間を取得する通信開始時間取得機能と、プロセス間データ転送機能４２により行われるプロセス間データ転送処理の終了時に、上記タイマーに基づきプロセス間通信完了時間を取得する通信完了時間取得機能とを有している。
【００４４】
プロセス間通信情報処理部４１は、取得したプロセス間通信開始時間および完了時間の差分値に基づき、当該プロセス間通信にかかった時間の長さを示すプロセス間通信所要時間長を算出すると共に、このプロセス間通信所要時間長と予め算出されたプロセス間通信基準時間(基準時間)とを比較する通信時間比較機能(遅延通信特定手段の一部に対応)を備えている。
【００４５】
また、プロセス間通信処理手段４は、取得したプロセス間通信所要時間が基準時間よりも長い場合に、このプロセス間通信所要時間に対応するプロセス間通信を行ったプロセスを示すプロセス特定情報を含むプロセス間通信情報を生成し、プロセス間通信情報記憶部５に格納するプロセス間通信情報格納機能(遅延通信特定手段の一部に対応)を備えている。
【００４６】
［実施形態の動作説明］
次に、本実施形態の動作について、その概略を説明する。
分散並列プログラム実行本体部(プロセッサ部)１による分散並列プログラムの実行処理時に、予め設定されたプロセスのうちの一の処理プロセス(代表プロセス)の通信所要時間を計測し、当該計測された通信所要時間を基準時間として設定する(基準時間設定工程)。
次いで、プロセス間通信処理手段４が、他のプロセスにおけるプロセス間通信の通信所要時間と設定された基準時間とを比較して、通信所要時間が基準時間より長い場合に、その通信所要時間を取得し、当該通信所要時間に対応するプロセス間通信を行った処理プロセスを特定し(遅延プロセス特定手段)、特定された処理プロセスを示すプロセス特定情報、および取得した通信所要時間をプロセス間通信情報記憶部５に格納する。
【００４７】
ここで、上記基準時間設定工程、および遅延プロセス特定工程については、その実行内容をプログラム化し、コンピュータに実行させるように構成してもよい。
【００４８】
次に、本実施形態の動作について、図３、および４のフローチャートに基づいて詳説する。
【００４９】
まず、分散並列プログラム実行本体部１が、メッセージパッシング型の分散並列プログラムの実行処理を開始する。このとき、各プロセス実行部１１〜１ｎは、プロセス間通信を行うための準備処理としてのプロセス間通信初期化設定を行う(ステップＡ１)。
【００５０】
このプロセス間通信初期化設定では、各プロセスプロセス実行部１１〜１ｎのプロセス間通信初期化手段２が、プロセス間通信の実施に必要な各種データの初期化を行う(通信データ初期化機能：ステップＡ２)。
また、プロセス間通信基準採取機能２１が、分散並列プログラム実行本体部１による分散並列プログラムの処理実行時に、代表プロセス間で実行されるプロセス間通信の通信所要時間を計測し、計測された通信所要時間をプロセス間通信基準時間として取得する(ステップＡ３)。
【００５１】
ここで、上記通信データ初期化工程、および基準時間取得工程について、詳説する。
まず、各ノード＃１〜＃ｎ内のプロセッサには、図２に示すように、複数の異なるプロセスが生成されている。ここで、プロセス間通信初期化手段２が、各ノード(例えばノード＃１)内における代表プロセスを決定する。
次いで、プロセス間通信初期化手段２は、例えばノード＃１内のプロセッサに設定された４つのプロセスから任意に１つのプロセスを、代表プロセスとして選択する(代表プロセス選択機能)。
次いで、プロセス間通信基準採取機能２１が、この代表プロセスの通信基準時間の計測を行う。
【００５２】
次いで、プロセス間通信基準採取機能２１は、各ノード内に設定された代表プロセス以外のプロセス(非代表プロセス)に対して、計測された代表プロセスの基準時間を継承（コピー）する処理を行う(基準時間継承設定工程：ステップＡ４)。
【００５３】
具体的には、例えば、同一ノード内のプロセッサに割当てられた２つのプロセスＰおよびＱについて、プロセスＰからプロセスＱ方向へのプロセス間通信と、反対にプロセスＱからプロセスＰ方向へのプロセス間通信とが、通信ネットワーク上同一経路を通過し、且つ通信性能が同一である場合に、一方のプロセスの通信基準時間を計測し、他方のプロセスの通信基準時間については、一方の通信基準時間を継承（コピー）する。
【００５４】
ここで、プロセス間通信基準採取機能２１は、計測した通信基準時間、あるいは、他プロセスから継承したプロセス間通信基準時間をプロセス間通信基準時間保持手段３に格納ものとする。
【００５５】
これにより、プロセス間通信基準時間の計測時における、プロセス間通信基準時間採取機能２１から各ノード上に設定されたプロセスに対しての通信回数を有効に軽減することができ、このため、各プロセスに対して、迅速に基準時間を設定することができる。
【００５６】
次に、プロセス間通信の実行時以降の動作について、図４のフローチャートに基づき、説明する。
【００５７】
まず、各プロセスにおけるプロセス間通信の実行時に(ステップＢ１)、プロセス間通信処理手段４が、各ノード＃１〜＃ｎ内に予め設定されたタイマーに基づきプロセス間通信開始時間を取得する(ステップＢ２)。
ここで、プロセス間データ転送機能４２が、プロセス間におけるデータ転送処理を実行する(ステップＢ３)。
【００５８】
次に、プロセス間通信処理手段４が、プロセス間データ転送処理の終了時に、プロセス間通信完了時間を採取する(ステップＢ４)。
次いで、プロセス間通信情報処理部４１が、取得されたプロセス間通信開始時間と完了時間の差分値に基づき、プロセス間通信にかかった時間の長さを示すプロセス間通信所要時間(通信所要時間長)を算出すると共に、この通信所要時間長と予め算出された基準時間とを比較する(ステップＢ５)。
【００５９】
ここで、通信所要時間長が基準時間より長い場合に、プロセス間通信処理手段４は、この基準時間と、このプロセス間通信を行ったプロセスを示すプロセス特定情報とを含むプロセス間通信情報を生成し、プロセス間通信情報記憶部５に格納する(ステップＢ６：特定通信時間通知機能に対応)。
【００６０】
これにより、処理遅延が生じたプロセスを特定するためのプロセス特定情報と当該プロセスの通信所要時間がプロセス間通信情報記憶部５に格納される。
このため、本実施形態では、コンピュータシステムの分散並列プログラム実行時に処理インバランスが発生した場合に、プロセス間通信情報記憶部５に格納された情報(プロセス特定情報およびプロセス間通信所要時間)に基づき、処理遅延が生じたプロセスを迅速に特定することができる。
このため、分散並列プログラム実行本体部(処理遅延箇所特定部に対応)１内で、例えば、分散並列プログラムの実行性能チューニングを行うソフトウェアなどを利用することによって、プログラムの実効性能を改善して、処理インバランスの改善を図ることを可能とする。
【００６１】
また、本実施形態では、代表プロセスにおけるプロセス間通信の基準時間をプログラム実行時に計測することにより、各プロセスに対して、プログラム実行時の条件に即した、より正確な基準時間を設定することができる。
このため、適正に実行処理が行われているプロセスにおけるプロセス間通信の通信所要情報を取得することなく、また、必要なプロセス間通信情報の採取漏れを軽減した、プロセス間通信情報の取得にかかる有効なフィルタリングを行うことができ、これにより、プログラム実行時におけるプロセス内で処理インバランスが発生している箇所(遅延プロセス)を迅速、且つ正確に特定することができる。
【００６２】
更に、本実施形態では、実際に分散並列プログラムが実行されている環境下における条件(通信ネットワークの種類、構成、プロセス配置の状況など)に即して、各プロセスにおける、より正確なプロセス間通信の基準時間を取得することができる。
【産業上の利用可能性】
【００６３】
本発明は、多段クロスバーネットワーク、ファットツリー、二次元や三次元のメッシュ、トーラスなどのネットワークを採用するコンピュータシステムに対して有用に適用することができる。
【符号の説明】
【００６４】
１  分散並列プログラム実行本体部(処理遅延箇所特定部)
２  プロセス間通信初期化手段(通信時間計測手段)
３  プロセス間通信基準時間保持手段
４  プロセス間通信処理手段(遅延通信特定手段)
５  プロセス間通信情報記憶部
１１、１２、１３…  プロセス実行部
２１  プロセス間通信基準時間採取機能
４１  プロセス間通信情報処理機能
４２  プロセス間データ転送機能
【図１】
2010244180.tif 000003
【図２】
2010244180.tif 000004
【図３】
2010244180.tif 000005
【図４】
2010244180.tif 000006