(57)【要約】【課題】並列プログラムの実行時に発生する遅延に基づいて、並列プログラムを改善する指針、および並列プログラムの実行環境の改善の指針を与えること。【解決手段】並列プログラムの実行環境の性能が記述されたターゲット性能パラメータ、並列プログラムのプロファイルデータ、および並列プログラムに記述されているタスク間のデータを介した依存関係を表す第１タスク依存グラフに基づいて、各タスクに対して第１データ遅延情報および第１タスク遅延情報を計算する遅延情報計算モジュールと、並列プログラムから選択されたタスクに対して、第１タスク遅延情報および第１データ遅延情報に基づいて、当該選択されたタスク、当該選択されたタスクに依存するタスク、第１タスク遅延情報、および第１データ遅延情報を表す映像を表示画面上に表示する遅延情報表示モジュールと、を具備する。【選択図】    図１
2011138219.tif 000002
【特許請求の範囲】
【請求項１】
並列プログラムの実行環境の性能が記述されたターゲット性能パラメータ、前記並列プログラムのプロファイルデータ、および前記並列プログラムに記述されているタスク間のデータを介した依存関係を表す第１タスク依存グラフに基づいて、各タスクに対してタスクの実行に必要な変数を待ち始めてから当該変数が揃うまでの時間に対応する第１データ遅延情報および当該変数が揃ってからタスクが実行されるまでの時間を表す第１タスク遅延情報を計算する遅延情報計算手段と、
前記並列プログラムから選択されたタスクに対して、前記第１タスク遅延情報および前記第１データ遅延情報に基づいて、当該選択されたタスク、当該選択されたタスクが依存するタスク、当該選択されたタスクに係わる前記第１タスク遅延情報、および該選択されたタスクに係わる前記第１データ遅延情報を表す映像を表示画面上に表示する遅延情報表示手段と、
を具備することを特徴とする並列プログラム解析結果表示装置。
【請求項２】
前記ターゲット性能パラメータに記述されている性能を変更した比較用性能パラメータを生成する生成手段と、
前記第１タスク依存グラフを変更した前記第２タスク依存グラフを生成するグラフ生成手段と、
前記生成された第２タスク依存グラフおよび比較用性能パラメータの少なくとも一方が入力された場合に、前記プロファイルデータ、前記第１タスク依存グラフまたは前記入力された第２タスク依存グラフ、および前記性能パラメータまたは前記入力された比較用性能パラメータに基づいて比較用プロファイルデータを予測する予測手段と
前記予測手段によって予測された比較用プロファイルデータに基づいて第２タスク遅延情報および第２データ遅延情報を計算する第２遅延情報計算手段とを更に具備し、
前記遅延情報表示手段は、前記並列プログラムから選択されたに対して、前記第２タスク遅延情報および前記第２データ遅延情報に基づいて、当該選択されたタスク、当該選択されたタスクが依存するタスク、当該選択されたタスクに係わる前記第２タスク遅延情報、および当該選択されたタスクに係わる前記第２データ遅延情報を表す映像を前記表示画面上に表示することを特徴とする請求項１に記載の並列プログラム解析結果表示装置。
【請求項３】
前記第２遅延情報計算手段は、前記第１タスク遅延情報、前記第１データ遅延情報、前記第１タスク依存グラフおよび前記入力された第２タスク依存グラフ、および前記性能パラメータまたは前記入力された比較用性能パラメータに基づいて前記第２タスク遅延情報および前記第２データ遅延情報を計算することを特徴とする請求項２に記載の並列プログラム解析結果表示装置。
【請求項４】
前記グラフ変更手段は、オペレータの入力操作に応じて前記第２タスク依存グラフを生成することを特徴とする請求項２に記載の並列プログラム解析結果表示装置。
【請求項５】
前記ターゲット性能パラメータ、前記プロファイルデータ、および前記タスク依存グラフに基づいて前記プロセッサの実効的な性能を示す性能データを計算する性能データ計算手段を更に具備することを特徴とする請求項１に記載の並列プログラム解析結果表示装置。
【請求項６】
並列プログラムの実行環境の性能が記述されたターゲット性能パラメータ、前記並列プログラムのプロファイルデータ、および前記並列プログラムに記述されているタスク間のデータを介した依存関係を表すタスク依存グラフに基づいて、各タスクに対してタスクの実行に必要な変数を待ち始めてから当該変数が揃うまでの時間に対応するデータ遅延情報および当該変数が揃ってからタスクが実行されるまでの時間を表すタスク遅延情報を計算し、
前記並列プログラムから選択されたタスクに対して、前記タスク遅延情報および前記データ遅延情報に基づいて、当該選択されたタスク、当該選択されたタスクに依存するタスク、当該選択されたタスクに係わる前記タスク遅延情報、および当該選択されたタスクに係わる前記データ遅延情報を表す映像を表示画面上に表示する、
を具備することを特徴とする並列プログラム解析結果表示方法。
【請求項７】
並列プログラムを解析し、解析結果を表示するためのプログラムを記憶するコンピュータ読み取り可能な記憶媒体であって、
前記プログラムは、
並列プログラムの実行環境の性能が記述されたターゲット性能パラメータ、前記並列プログラムのプロファイルデータ、および前記並列プログラムに記述されているタスク間のデータを介した依存関係を表すタスク依存グラフに基づいて、各タスクに対してタスクの実行に必要な変数を待ち始めてから当該変数が揃うまでの時間に対応するデータ遅延情報および当該変数が揃ってからタスクが実行されるまでの時間を表すタスク遅延情報を計算させる手順と、
前記並列プログラムから選択されたタスクに対して、前記タスク遅延情報および前記データ遅延情報に基づいて、当該選択されたタスク、当該選択されたタスクに依存するタスク、当該選択されたタスクに係わる前記タスク遅延情報、および当該選択されたタスクに係わる前記データ遅延情報を表す映像を表示画面上に表示する手順と、
をコンピュータに実行させる
ことを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列プログラムを改善する指針をプログラマに与える並列プログラム解析結果表示装置および並列プログラム解析結果表示方法に関する。
【背景技術】
【０００２】
複数の処理回路を有するプロセッサによって実行される並列プログラムは、プロセッサの計算資源を効率よく使用するために最適化が行われる。
【０００３】
特許文献１は、トレース情報と、トレース情報に対応する性能情報とをメモリから取得し、トレース情報に基づくタスク遷移状態と性能情報とを遷移図上に重畳させて表示することを開示している。また、特許文献１は、トレース情報に基づいて複数のプロセッサの動作状態に対応する並列度を求め、その並列度をタスク遷移図と時間的に同期させて表示することを開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−００４０５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述した技術は、タスク遷移図と並列度を同期させた表示を行って、並列度を改善する指針をプログラマに与えている。しかし、プロセッサの計算資源を効率よく使用するためには、並列度を改善するだけでなく、別のタスクの演算結果待ちや処理回路の空き待ち等で発生する遅延を抑制することも重要である。遅延には、並列プログラムの実行環境によって生じるものもあり、実行環境を変更することで遅延が改善される場合もある。
【０００６】
本発明の目的は、並列プログラムの実行時に発生する遅延に基づいて、並列プログラムを改善する指針、および並列プログラムの実行環境の変更の指針を与えることが可能な並列プログラム解析結果表示装置および並列プログラム解析結果表示方法を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の一例に係わる並列プログラム解析結果表示装置は、並列プログラムの実行環境の性能が記述されたターゲット性能パラメータ、前記並列プログラムのプロファイルデータ、および前記並列プログラムに記述されているタスク間のデータを介した依存関係を表す第１タスク依存グラフに基づいて、各タスクに対してタスクの実行に必要な変数を待ち始めてから当該変数が揃うまでの時間に対応する第１データ遅延情報および当該変数が揃ってからタスクが実行されるまでの時間を表す第１タスク遅延情報を計算する遅延情報計算手段と、前記並列プログラムから選択されたタスクに対して、前記第１タスク遅延情報および前記第１データ遅延情報に基づいて、当該選択されたタスク、当該選択されたタスクが依存するタスク、当該選択されたタスクに係わる前記第１タスク遅延情報、および該選択されたタスクに係わる前記第１データ遅延情報を表す映像を表示画面上に表示する遅延情報表示手段と、を具備することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、並列プログラムの実行時に発生する遅延に基づいて、並列プログラムを改善する指針、および並列プログラムの実行環境の変更の指針を与えることが可能になる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態に係わる並列プログラム解析結果表示装置の構成を示すブロック図。
【図２】タスクのライフサイクルを示す図。
【図３】タスク依存グラフの内容を視覚的に表した図。
【図４】プロファイルデータの記述内容を視覚的に表した図。
【図５】タスク依存グラフを変更した第２タスク依存グラフの内容を視覚的に表した図。
【図６】図５に示すタスク依存グラフを４個の処理回路を有するマルチコアプロセッサで実行した場合のプロファイルデータの記述内容を視覚的に表す図。
【図７】タスク依存グラフ、遅延情報（データ遅延情報δ、タスク遅延情報ε）１１４に基づいた並列プログラムの解析結果の表示例を示す図。
【図８】プログラム解析結果表示装置によって行われる処理の手順を示すフローチャート。
【発明を実施するための形態】
【００１０】
本発明の実施の形態を以下に図面を参照して説明する。
【００１１】
図１は、本発明の一実施形態に係わる並列プログラム解析結果表示装置の構成を示すブロック図である。このプログラム解析結果表示装置によって実行される処理は、コンピュータプログラムによって実現される。  
プログラム解析結果表示装置１００は、遅延情報計算モジュール１０１、性能データ計算モジュール１０２、フロー変換モジュール１０３、比較用性能設定モジュール１０４、性能予測モジュール１０５、プロファイル予測モジュール１０６、遅延情報計算モジュール１０７、および遅延情報表示モジュール１０８等を備えている。
【００１２】
並列プログラム解析結果表示装置１００の各モジュールについて説明する前に、並列プログラムに登録されているタスクのライフサイクルについて説明する。図２は、タスクのライフサイクルを示す図である。ここで、タスクとは並列プログラムにおける実行単位のことでである。
【００１３】
並列プログラム２０１からタスクが取り出され評価されると、タスクは変数待ちプール２０２に入れられる。ここで、変数待ちプール２０２に入れられたタスクは、タスクの実行に必要な変数が変数プール２０３に登録されるまで待機する。変数待ちプール２０２に入れられたタスクは、タスクの実行に必要な変数が揃うとスケジュール待ちプール２０４に入れられ、スケジューラ２０５によって処理回路（PE:Processor Element）２０６に割り当てられるのを待つ。このとき、タスクが変数待ちプール２０２からスケジュール待ちプール２０４に遷移する間の時間をデータ遅延(δ)と呼び、タスクがスケジュール待ちプール２０４に入れられてから処理回路２０６によって実行されるまでの時間をタスク遅延(ε)と呼ぶ。
【００１４】
つまり、
データ遅延δ＝(スケジュール待ちプールに入った時間)−(変数待ちプールに入った時間)
であり、
タスク遅延ε＝(ＰＥでの実行開始)−(スケジュール待ちプールに入った時間)
である。
【００１５】
これらの遅延情報(δ，ε)はプロファイルデータ（例えば、タスクの評価時刻、タスクの開始時刻、タスクの処理時間）１１２を入力データとして用いて計算される。
【００１６】
次に、並列プログラム解析結果表示装置１００に入力されるデータについて説明する。並列プログラム解析結果表示装置１００には、ターゲット性能パラメータ１１１、プロファイルデータ１１２、タスク依存グラフ（MTG：Multi-Task-Graph）１１３が入力される。
【００１７】
ターゲット性能パラメータ１１１には、プログラミングが実行される複数の処理回路を有するマルチコアプロセッサの処理回路数、動作周波数、演算速度等のプロセッサに関する情報、マルチコアプロセッサ間の転送速度等の並列プログラムが実行される実行環境の情報が記述されている。
【００１８】
プロファイルデータ１１２は、並列プログラム１２３を対象とするマルチコアプロセッサによって実行させたときに、プロファイラ１２１によって求められ、並列プログラムを対象とするマルチコアプロセッサによって実行させたときに並列プログラムの各タスクの実行にかかる時間やその挙動が記述される。
【００１９】
タスク依存グラフ１１３は、並列プログラム１２２のコンパイル時等にコンパイラ１２２によって生成され、並列プログラム１２２に登録されているタスクとタスクの演算結果であるデータとの関係が記述されている。タスク依存グラフ１１３の内容を視覚的に表したものを図３に示す。
【００２０】
プロファイルデータ１１２の記述内容を視覚的に表した図を図４に示す。なお、図４に示すプロファイルデータは、２個の処理回路を有するマルチコアプロセッサによって、図３に示すタスク依存グラフによって示されるタスクを実行した場合に作成されたプロファイルデータに基づいている。
【００２１】
図３、４に示すように、並列プログラム１２３にはタスクＡ、タスクＢ、タスクＣ、およびタスクＤが登録されている。タスクＡおよびタスクＢがデータ１を演算する。タスクＣがデータ２を演算する。タスクＤがデータ２を用いてデータ３を演算する。
【００２２】
タスクＡのデータ遅延がデータ遅延δ（１）である。タスクＤのデータ遅延がデータ遅延δ（２）である。なお、データ遅延δ（２）およびδ(３)は、実行完了を表示はされない空のタスク(ダミータスク、潜在的なタスク)として捉えた場合に存在する遅延である。
【００２３】
タスクＣのタスク遅延がタスク遅延δ（Ｃ）である。タスクＤのタスク遅延がタスク遅延δ（Ｄ）である。なお、タスクＡ，Ｂはプログラムが実行されてから直ぐに実行されるので、タスク遅延がない。
【００２４】
性能データ計算モジュール１０２は、稼働率・使用率・占有率、個々のタスクに対する演算量等のプロセッサの実効的な性能を示す性能データを計算する。性能データ計算モジュール１０２は、ターゲット性能パラメータ１１１に基づいて理論値であるＦＬＯＰＳ（Floating point number Operations Per Second）を計算する。ＦＬＯＰＳは、(クロック)×(処理回路数)×(処理回路あたりクロックあたりの浮動小数点演算回数)によって求められる。また、性能データ計算モジュール１０２は、後述するプロファイルデータ１１２およびタスク依存グラフ１１３に基づいて個々のタスクの実効値、や各処理回路の稼動率（＝処理回路稼動時間の総和／システム運転時間)を演算する。
【００２５】
なお、プロファイルデータにタスクの依存関係が記述されていれば、タスク依存グラフ１１３を参照せずに、プロファイルデータ１１２から個々のタスクの実効値、や各処理回路の稼動率（＝処理回路稼動時間の総和／システム運転時間)を演算することも可能である。
【００２６】
遅延情報計算モジュール１０１は、プロファイルデータ１１２およびタスク依存グラフ１１３に基づいて、並列プログラム１２３に登録されている各タスクに係わるデータ遅延情報δ、タスク遅延情報ε１１４を計算する。なお、プロファイルデータにタスクの依存関係が記述されていれば、タスク依存グラフ１１３を参照せずに、プロファイルデータ１１２からデータ遅延情報δ、タスク遅延情報ε１１４を演算することも可能である。
【００２７】
比較用性能設定モジュール１０４は、オペレータの入力操作に応じてターゲット性能パラメータ１１１の内容と異なる比較用性能パラメータを設定する。例えば、比較用性能設定モジュール１０４によって処理回路の数がターゲット性能パラメータ１１１と異なる比較用性能パラメータ１１７が設定される。
【００２８】
性能予測モジュール１０５は、比較用性能パラメータ１１７が設定された場合に、元のターゲット性能パラメータ１１１の値と変更された比較用性能パラメータ１１７の値とが比例関係にあるという仮定の下に実効値を予測し、予測性能データ１１８を出力する。
【００２９】
フロー変換モジュール１０３は、タスク依存グラフ１１３をオペレータの操作に応じて変更し、変更結果を第２タスク依存グラフ（ＭＴＧ２）１１６として出力する。図４に示すタスク依存グラフを変更した例を図５に示す。図５に示すように、タスクＣとデータ２とを変更して、タスクＣ’およびタスクＤによってデータ２’およびデータ３が生成されている。
【００３０】
プロファイル予測モジュール１０６は、第２タスク依存グラフ１１６および／または比較用性能パラメータ１１７が入力された場合、プロファイルデータ１１２から遅延情報（データ遅延情報δ’，タスク遅延情報ε’）１１４を予測する。
【００３１】
プロファイル予測モジュール１０６は、第２タスク依存グラフ１１６のみが入力された場合、プロファイルデータ１１２、第２タスク依存グラフ１１６、ターゲット性能パラメータ１１１を用いて比較用プロファイルデータ１２０を計算する。また、プロファイル予測モジュール１０６は、比較用性能パラメータ１１７のみが入力された場合、プロファイルデータ１１２、タスク依存グラフ１１３、および比較用性能パラメータ１１７を用いて比較用プロファイルデータ１２０を計算する。また、プロファイル予測モジュール１０６は、第２タスク依存グラフ１１６および比較用性能パラメータ１１７が入力された場合、プロファイルデータ１１２、第２タスク依存グラフ１１６、および比較用性能パラメータ１１７を用いて比較用プロファイルデータ１２０を計算する。
【００３２】
プロファイル予測モジュール１０６は、プロファイルデータ１１２、比較用性能パラメータ１１７（またはターゲット性能パラメータ１１１）、および第２タスク依存グラフ１１６（またはタスク依存グラフ１１３）から、新たな条件下における比較用プロファイルデータ１２０を予測するための計算を行う。なお、元の遅延情報（データ遅延情報δ，タスク遅延情報ε）１１４と第２タスク依存グラフ１１６および／または比較用性能パラメータ１１７を用いて比較用プロファイルデータ１２０を計算することも可能である。
【００３３】
例えば、遅延情報計算モジュール１０７は、新たな条件下におけるタスク遅延の重なり部分を考慮（仮想的にタスクを処理回路上に再配置した状態を仮定）してプロファイルデータ１１２に記述されているタスクを再配置することによって、比較用プロファイルデータ１２０を生成する。
【００３４】
また、４個の処理回路を有するマルチコアプロセッサによって、図５に示す第２タスク依存グラフによって示されるタスクを実行した場合に作成された比較用プロファイルデータの記述内容を視覚的に表した図を図６に示す。つまり、ターゲット性能パラメータ１１１内に処理回路数が２個と記述されていたのが、比較用性能設定モジュール１０４によって処理回路数が変更されて、比較用性能パラメータ１１７内では処理回路数が４個と記述された場合である。
【００３５】
図６に示すように、タスクＡ、タスクＢ、タスクＣ’およびタスクＤが同時に実行され、タスクＤの演算結果としてデータ２’およびデータ３が出力される。
【００３６】
比較用遅延情報計算モジュール１０７は、比較用プロファイルデータ１２０に基づいて遅延情報計算モジュールと同様にデータ遅延情報δ’、タスク遅延情報ε’１１９を計算する。
【００３７】
遅延情報表示モジュール１０８は、データ遅延情報δ、タスク遅延情報ε１１４に基づいて並列プログラムの解析結果を表示する。また、オペレータの入力操作に応じて、遅延情報表示モジュール１０８は、データ遅延情報δ’、タスク遅延情報ε’１１９に基づいて並列プログラムの解析結果を表示する。
【００３８】
図７にタスク依存グラフ１１３、遅延情報（データ遅延情報δ、タスク遅延情報ε）１１４に基づいた並列プログラムの解析結果の表示例を示す。オペレータがあるタスクを選択すると、選択されたタスクを強調表示する。なお、図７では、タスクＤが選択された場合を示している。また、選択されたタスクと依存関係にあるタスクのみを表示し、依存関係がないタスクを表示しない。そして、選択されたタスクと依存関係にあるタスクとを線３０１で結ぶことによって依存関係があることを図示している。また、遅延情報（データ遅延情報δ、タスク遅延情報ε）１１４に基づいて、待ち時間を矢印の長さによって表すと共に、データ遅延情報δおよびタスク遅延情報εを表す矢印の色を区別して表示する。以上のように表示することで、ユーザは待ち時間の大きさによって、どのような修正を行うのが効果的かの判断がしやすくなる。
【００３９】
また、遅延情報表示モジュール１０８は、図７に示すように表示されているタスクＤに対してポインタが重ねられた場合に、性能データ１１５からタスクＤに関する情報をツールチップによって表示しても良い。また、遅延情報表示モジュール１０８は、別のウィンドウに性能データ１１５を表示するようにしても良い。
【００４０】
解析結果に基づき、遅延を入力データのデータ遅延とスケジューラ起因のタスク遅延に分離して、遅延情報表示手段モジュールによってボトルネックとして、設計者に通知される。ここで、データ遅延が発生している場合は、依存関係の構造に問題があると考えられ、修正の指針としてタスク依存グラフ１１３のフローの変更があげられる。一方、タスク遅延の場合は、ターゲットマシンの性能パラメータの変更（例えば処理回路を増やす）があげられる。その結果、並列プログラムの実行時に発生する遅延に基づいて、並列プログラムを改善する指針、および並列プログラムの実行環境（性能パラメータ）の改善の指針を与えることが可能になる。
【００４１】
遅延情報計算モジュール１０１によって、各タスクに係わるデータ遅延情報とタスク遅延情報とをそれぞれ計算することで、容易に設計者に並列化の指針を与えることが可能になる。また、入力されたパラメータを変更した場合の解析結果を表示することで、その変更を確かめることができる。このように、設計者に対して性能パラメータの設定や、タスク依存関係の修正を支援することができる。
【００４２】
次に、プログラム解析結果表示装置１００によって行われる処理の手順を説明する。
【００４３】
先ず、ターゲット性能パラメータ１１１、プロファイルデータ１１２、およびタスク依存グラフ（ＭＴＧ）１１３がプログラム解析結果表示装置１００に入力されると、遅延情報計算モジュール１０１は、並列プログラム１２３に登録されている各タスクについてデータ遅延情報δおよびタスク遅延情報εを演算する（ステップＳ１１）。また、性能データ計算モジュール１０２は、性能データを計算する（ステップＳ１２）。
【００４４】
また、オペレータ（プログラマ）の入力操作によってタスクが選択され場合、遅延情報表示モジュール１０８は、選択されたタスクと選択されたタスクが依存するタスクの依存関係、データ遅延情報δおよびタスク遅延情報εを表示画面上に表示する（ステップＳ１３）。
【００４５】
次に、表示画面上に表示されている内容から得られた指針等に基づいて、オペレータ（プログラマ）がフロー変換モジュール１０３および比較用性能設定モジュール１０４によって生成された第２タスク依存グラフ（ＭＴＧ２）１１６と比較用性能パラメータ１１７が入力された場合、プロファイル予想モジュール１０６は、新たな条件下で比較用プロファイルデータ１２０を計算する（ステップＳ１４）。遅延情報計算モジュール１０７は、各タスクについてデータ遅延情報δ’およびタスク遅延情報ε’を計算する（ステップＳ１５）。また、性能予測モジュール１０５は、予測性能データ１１８を計算する（ステップＳ１６）。
【００４６】
また、オペレータ（プログラマ）の入力操作によってタスクが選択され場合、遅延情報表示モジュール１０８は、選択されたタスクと選択されたタスクが依存するタスクの依存関係、データ遅延情報δ’およびタスク遅延情報ε’を表示画面上に表示する（ステップＳ１７）。
【００４７】
以上の示した並列プログラム解析結果表示処理の手順によって、並列プログラム１２３を改善する指針、並列プログラム１２３の実行環境の変更の指針をオペレータ（プログラマ）に与えることが可能になる
なお、本実施形態の並列プログラムを解析し、解析結果を表示するための処理はコンピュータプログラムによって実現されているので、このコンピュータプログラムをコンピュータ読み取り可能な記憶媒体を通じて通常のコンピュータにインストールするだけで、本実施形態と同様の効果を容易に実現することができる。また、このコンピュータプログラムは、パーソナルコンピュータのみならず、プロセッサを内蔵した電子機器上で実行することができる。
【００４８】
なお、上記各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フレキシブルディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、光磁気ディスク（ＭＯ）、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【００４９】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【００５０】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーティングシステム）や、データベース管理ソフト、ネットワークソフト等のＭＷ（ミドルウェア）等が本実施形態を実現するための各処理の一部を実行しても良い。
【００５１】
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、ＬＡＮやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【００５２】
また、記憶媒体は１つに限らず、複数の媒体から本実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【００５３】
尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するものであって、パソコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【００５４】
上記実施形態で説明された各モジュールの機能を実現するためには、プロセッサによって実行されるソフトウェアアプリケーションによって実現しても良いし、ハードウェアによる処理回路によって実現しても良いし、ハードウェアによって実現しても良いし、ソフトウェアアプリケーション、ハードウェア、およびソフトウェアモジュールを組み合わせて実現しても良い。
【００５５】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【００５６】
１００…プログラム解析結果表示装置、１０１…遅延情報計算モジュール、１０２…性能データ計算モジュール、１０３…フロー変換モジュール、１０４…比較用性能設定モジュール、１０５…性能予測モジュール、１０６…プロファイル予測モジュール、１０７…比較用遅延情報計算モジュール、１０８…遅延情報表示モジュール、１１１…ターゲット性能パラメータ、１１２…プロファイルデータ、１１３…タスク依存グラフ、１１４…データ遅延情報δ，タスク遅延情報ε、１１６…タスク依存グラフ、１１７…比較用性能パラメータ、１１８…予測性能データ、１１９…データ遅延情報δ’，タスク遅延情報ε’、１２０…比較用プロファイルデータ、１２１…プロファイラ、１２２…コンパイラ、１２３…並列プログラム。
【図１】
2011138219.tif 000003
【図２】
2011138219.tif 000004
【図３】
2011138219.tif 000005
【図４】
2011138219.tif 000006
【図５】
2011138219.tif 000007
【図６】
2011138219.tif 000008
【図７】
2011138219.tif 000009
【図８】
2011138219.tif 000010
【手続補正書】
【提出日】平成23年5月9日(2011.5.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
並列プログラムをマルチコアプロセッサによって実行させた場合の前記並列プログラムの各タスクの実行にかかる時間および各タスクの挙動が記述されているプロファイルデータ、および前記並列プログラムに記述されているタスク間のデータを介した依存関係を表す第１タスク依存グラフに基づいて、各タスクに対してタスクが変数待ちプールに入れられてから当該タスクの実行に必要な変数が当該変数待ちプールに登録されてスケジュール待ちプールに入れられるまでの時間に対応する第１データ遅延情報および当該タスクが前記スケジュール待ちプールに入れられてから当該タスクの実行が開始されるまでの時間を表す第１タスク遅延情報を計算する遅延情報計算手段と、
前記並列プログラムから選択されたタスクに対して、前記第１タスク遅延情報および前記第１データ遅延情報に基づいて、当該選択されたタスク、当該選択されたタスクが依存するタスク、当該選択されたタスクに係わる前記第１タスク遅延情報、および該選択されたタスクに係わる前記第１データ遅延情報を表す映像を表示画面上に表示する遅延情報表示手段と、
を具備することを特徴とする並列プログラム解析結果表示装置。
【請求項２】
前記並列プログラムの実行環境の性能が記述されたターゲット性能パラメータに記述されている性能を変更した比較用性能パラメータを生成する生成手段と、
オペレータの操作に応じて前記第１タスク依存グラフを変更した第２タスク依存グラフを生成するグラフ生成手段と、
前記生成された第２タスク依存グラフおよび比較用性能パラメータの少なくとも一方が入力された場合に、前記プロファイルデータ、前記第１タスク依存グラフまたは前記入力された第２タスク依存グラフ、および前記ターゲット性能パラメータまたは前記入力された比較用性能パラメータに基づいて比較用プロファイルデータを予測する予測手段と
前記予測手段によって予測された比較用プロファイルデータに基づいて第２タスク遅延情報および第２データ遅延情報を計算する第２遅延情報計算手段とを更に具備し、
前記遅延情報表示手段は、前記並列プログラムから選択されたタスクに対して、前記第２タスク遅延情報および前記第２データ遅延情報に基づいて、当該選択されたタスク、当該選択されたタスクが依存するタスク、当該選択されたタスクに係わる前記第２タスク遅延情報、および当該選択されたタスクに係わる前記第２データ遅延情報を表す映像を前記表示画面上に表示することを特徴とする請求項１に記載の並列プログラム解析結果表示装置。
【請求項３】
前記第２遅延情報計算手段は、前記第１タスク遅延情報、前記第１データ遅延情報、前記第１タスク依存グラフおよび前記入力された第２タスク依存グラフ、および前記ターゲット性能パラメータまたは前記入力された比較用性能パラメータに基づいて前記第２タスク遅延情報および前記第２データ遅延情報を計算することを特徴とする請求項２に記載の並列プログラム解析結果表示装置。
【請求項４】
前記ターゲット性能パラメータ、前記プロファイルデータ、および前記第１タスク依存グラフに基づいて前記マルチコアプロセッサの実効的な性能を示す性能データを計算する性能データ計算手段を更に具備することを特徴とする請求項１に記載の並列プログラム解析結果表示装置。
【請求項５】
並列プログラムをマルチコアプロセッサによって実行させた場合の前記並列プログラムの各タスクの実行にかかる時間および各タスクの挙動が記述されているプロファイルデータ、および前記並列プログラムに記述されているタスク間のデータを介した依存関係を表すタスク依存グラフに基づいて、各タスクに対してタスクが変数待ちプールに入れられてから当該タスクの実行に必要な変数が当該変数待ちプールに登録されてスケジュール待ちプールに入れられるまでの時間に対応するデータ遅延情報および当該タスクが前記スケジュール待ちプールに入れられてから当該タスクの実行が開始されるまでの時間を表すタスク遅延情報を計算し、
前記並列プログラムから選択されたタスクに対して、前記タスク遅延情報および前記データ遅延情報に基づいて、当該選択されたタスク、当該選択されたタスクに依存するタスク、当該選択されたタスクに係わる前記タスク遅延情報、および当該選択されたタスクに係わる前記データ遅延情報を表す映像を表示画面上に表示する、
を具備することを特徴とする並列プログラム解析結果表示方法。
【請求項６】
並列プログラムを解析し、解析結果を表示するためのプログラムを記憶するコンピュータ読み取り可能な記憶媒体であって、
前記プログラムは、
前記並列プログラムをマルチコアプロセッサによって実行させた場合の前記並列プログラムの各タスクの実行にかかる時間および各タスクの挙動が記述されているプロファイルデータ、および前記並列プログラムに記述されているタスク間のデータを介した依存関係を表すタスク依存グラフに基づいて、各タスクに対してタスクが変数待ちプールに入れられてから当該タスクの実行に必要な変数が当該変数待ちプールに登録されてスケジュール待ちプールに入れられるまでの時間に対応する第１データ遅延情報および当該タスクが前記スケジュール待ちプールに入れられてから当該タスクの実行が開始されるまでの時間を表すタスク遅延情報を計算させる手順と、
前記並列プログラムから選択されたタスクに対して、前記タスク遅延情報および前記データ遅延情報に基づいて、当該選択されたタスク、当該選択されたタスクに依存するタスク、当該選択されたタスクに係わる前記タスク遅延情報、および当該選択されたタスクに係わる前記データ遅延情報を表す映像を表示画面上に表示する手順と、
をコンピュータに実行させる
ことを特徴とする記憶媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
本発明の一例に係わる並列プログラム解析結果表示装置は、並列プログラムをマルチコアプロセッサによって実行させた場合の前記並列プログラムの各タスクの実行にかかる時間および各タスクの挙動が記述されているプロファイルデータ、および前記並列プログラムに記述されているタスク間のデータを介した依存関係を表す第１タスク依存グラフに基づいて、各タスクに対してタスクが変数待ちプールに入れられてから当該タスクの実行に必要な変数が当該変数待ちプールに登録されてスケジュール待ちプールに入れられるまでの時間に対応する第１データ遅延情報および当該タスクが前記スケジュール待ちプールに入れられてから当該タスクの実行が開始されるまでの時間を表す第１タスク遅延情報を計算する遅延情報計算手段と、前記並列プログラムから選択されたタスクに対して、前記第１タスク遅延情報および前記第１データ遅延情報に基づいて、当該選択されたタスク、当該選択されたタスクが依存するタスク、当該選択されたタスクに係わる前記第１タスク遅延情報、および該選択されたタスクに係わる前記第１データ遅延情報を表す映像を表示画面上に表示する遅延情報表示手段と、を具備することを特徴とする。