JP2754495B2 - ログ/サンプリングデータの解析方法 - Google Patents
ログ/サンプリングデータの解析方法Info
- Publication number
- JP2754495B2 JP2754495B2 JP2407463A JP40746390A JP2754495B2 JP 2754495 B2 JP2754495 B2 JP 2754495B2 JP 2407463 A JP2407463 A JP 2407463A JP 40746390 A JP40746390 A JP 40746390A JP 2754495 B2 JP2754495 B2 JP 2754495B2
- Authority
- JP
- Japan
- Prior art keywords
- sampling data
- processes
- local
- output
- log
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Debugging And Monitoring (AREA)
Description
【0001】
【産業上の利用分野】本発明は、複数のプロセスの並列
動作時のログ/サンプリングデータを解析して出力する
解析方法であって、並列計算機プログラムのデバッグ/
チューニングの支援を目的とする、実行時のログあるい
はサンプリングデータの解析方法に関するものである。
動作時のログ/サンプリングデータを解析して出力する
解析方法であって、並列計算機プログラムのデバッグ/
チューニングの支援を目的とする、実行時のログあるい
はサンプリングデータの解析方法に関するものである。
【0002】計算機プログラムのデバッグやチューニン
グのために、実際にそのプログラムを実行しながら、実
行状況に関するログあるいはサンプリングデータを出力
しておき、実行後にその情報を解析する実行後解析が広
く用いられている。また、プログラム・テキストだけか
ら矛盾や危険性を警告する実行前解析や、実行中に会話
的に実行の中断/再開、変数の値の出力などを行う実行
時解析が一般に行われている。
グのために、実際にそのプログラムを実行しながら、実
行状況に関するログあるいはサンプリングデータを出力
しておき、実行後にその情報を解析する実行後解析が広
く用いられている。また、プログラム・テキストだけか
ら矛盾や危険性を警告する実行前解析や、実行中に会話
的に実行の中断/再開、変数の値の出力などを行う実行
時解析が一般に行われている。
【0003】並列計算機には、逐次計算にない同期、デ
ータ転送などのタイミングに起因するバグや性能低下が
考えられるため、これらデバッグ/チューニングには、
プロセス相互の実行順序関係が追える実行後解析が非常
に有効な手段である。また、科学技術計算などの実行に
何時間もかかるプログラムは、実行前解析で検出できな
いバグや性能低下原因について、実行後解析以外に有効
な手段がない。
ータ転送などのタイミングに起因するバグや性能低下が
考えられるため、これらデバッグ/チューニングには、
プロセス相互の実行順序関係が追える実行後解析が非常
に有効な手段である。また、科学技術計算などの実行に
何時間もかかるプログラムは、実行前解析で検出できな
いバグや性能低下原因について、実行後解析以外に有効
な手段がない。
【0004】
【従来の技術】従来、実行後解析のための実行時の情報
抽出の方法は、ログ方式とサンプリング方式とが代表的
である。ログ方式は、計算実行中に特定のイベントが発
生する毎に、ログ(イベントの内容と発生時刻など)を
出力装置に出力し、実行後にデバッグ/チューニングの
ための当該ログの解析を種々の観点から行う方式であ
る。ここで、イベントは、プロセスの発生/実行開始/
消滅、データ転送、プロセス間同期などのデバッグ/チ
ューニングの観点から重要と考えられる処理である。出
力装置は、大容量の外部記憶装置やプリンタ装置を使用
している。
抽出の方法は、ログ方式とサンプリング方式とが代表的
である。ログ方式は、計算実行中に特定のイベントが発
生する毎に、ログ(イベントの内容と発生時刻など)を
出力装置に出力し、実行後にデバッグ/チューニングの
ための当該ログの解析を種々の観点から行う方式であ
る。ここで、イベントは、プロセスの発生/実行開始/
消滅、データ転送、プロセス間同期などのデバッグ/チ
ューニングの観点から重要と考えられる処理である。出
力装置は、大容量の外部記憶装置やプリンタ装置を使用
している。
【0005】サンプリング方式は、ログの代わりにサン
プリングデータを用いて解析、例えばプログラム区間毎
のサンプリング回数を計数して統計処理の解析などを行
う方式である。サンプリングデータ(サンプリング時刻
毎の実行箇所、実行環境など)は、計算実行中に適当な
時間間隔で割り込んで採取する。時間間隔は、プロセス
毎の経過時間や絶対時間である。
プリングデータを用いて解析、例えばプログラム区間毎
のサンプリング回数を計数して統計処理の解析などを行
う方式である。サンプリングデータ(サンプリング時刻
毎の実行箇所、実行環境など)は、計算実行中に適当な
時間間隔で割り込んで採取する。時間間隔は、プロセス
毎の経過時間や絶対時間である。
【0006】
【発明が解決しようとする課題】上述したように、並列
処理中の各プロセスのログあるいはサンプリングデータ
をそれぞれ採取しておき、実行後にまとめて解析を行う
実行後解析は、下記問題があった。 ログ方式は、並列化のデバッグ/チューニングのた
めの多種のログの採取が必要となると共に、計算速度の
向上によりログを出すイベントの実行頻度が増えるとい
う問題があった。
処理中の各プロセスのログあるいはサンプリングデータ
をそれぞれ採取しておき、実行後にまとめて解析を行う
実行後解析は、下記問題があった。 ログ方式は、並列化のデバッグ/チューニングのた
めの多種のログの採取が必要となると共に、計算速度の
向上によりログを出すイベントの実行頻度が増えるとい
う問題があった。
【0007】 サンプリング方式は、並列化に対応し
てサンプリングデータとして出力すべき情報が増えると
共に、計算速度の向上によりサンプリング周期を小さく
しなければ実行状況が追えなくなるという問題があっ
た。これら問題により、膨大な容量の出力装置が必要と
なってしまうと共に、ログ/サンプリングデータの解析
に多くの時間が必要となってしまう。
てサンプリングデータとして出力すべき情報が増えると
共に、計算速度の向上によりサンプリング周期を小さく
しなければ実行状況が追えなくなるという問題があっ
た。これら問題により、膨大な容量の出力装置が必要と
なってしまうと共に、ログ/サンプリングデータの解析
に多くの時間が必要となってしまう。
【0008】一方、安易に実行中に解析を行えば、解析
処理のためにプロセス間の負荷バランスが変わったり、
解析のためのプロセス間の同期やデータ転送が実行中に
頻発して本来の計算実行のタイミングがかき乱されたり
するため、本来の実行のデバッグ/チューニングが非常
に困難になる。本発明は、並列計算プログラムの本来の
実行の様子を変化させないで、デバッグ/チューニング
に必要なログやサンプリングデータの量を少なくすると
共に、出力装置の使用量や実行後解析に要する時間を低
減することを目的としている。
処理のためにプロセス間の負荷バランスが変わったり、
解析のためのプロセス間の同期やデータ転送が実行中に
頻発して本来の計算実行のタイミングがかき乱されたり
するため、本来の実行のデバッグ/チューニングが非常
に困難になる。本発明は、並列計算プログラムの本来の
実行の様子を変化させないで、デバッグ/チューニング
に必要なログやサンプリングデータの量を少なくすると
共に、出力装置の使用量や実行後解析に要する時間を低
減することを目的としている。
【0009】
【課題を解決するための手段】図1は、本発明の原理構
成図を示す。図1において、出力処理2は、プロセスの
予め指定したイベントのときに、あるいは予め指定した
時間間隔のときにローカルログを出力(採取)するもの
である。
成図を示す。図1において、出力処理2は、プロセスの
予め指定したイベントのときに、あるいは予め指定した
時間間隔のときにローカルログを出力(採取)するもの
である。
【0010】解析/出力手段4は、一斉同期時あるいは
合流時に、既に採取したローカルログあるいはローカル
サンプリングデータを解析して必要なログあるいはサン
プリングデータのみを出力するものである。
合流時に、既に採取したローカルログあるいはローカル
サンプリングデータを解析して必要なログあるいはサン
プリングデータのみを出力するものである。
【0011】
【作用】本発明は、図1に示すように、複数のプロセス
間で一斉同期しつつ並列計算実行中に、出力処理2が各
プロセスの予め指定したイベントのときにローカルログ
をそれぞれ採取しておき、あるいは各プロセスの予め指
定したサンプリング時間間隔毎にローカルサンプリング
データをそれぞれ採取しておき、一斉同期時に解析/出
力手段4がこれら採取したローカルログあるいはローカ
ルサンプリングデータを解析して必要なログあるいはサ
ンプリングデータのみを外部記憶装置などに出力するよ
うにしている。また、複数のプロセスの生成と合流を行
いつつ並列計算実行中に、出力処理2が各プロセスの予
め指定したイベントのときにローカルログをそれぞれ採
取しておき、あるいは各プロセスの予め指定したサンプ
リング時間間隔毎にローカルサンプリングデータをそれ
ぞれ採取しておき、合流時に解析/出力手段4がこれら
採取したローカルログあるいはサンプリグデータを解析
して必要なログあるいはサンプリングデータのみを外部
記憶装置などに出力するようにしている。
間で一斉同期しつつ並列計算実行中に、出力処理2が各
プロセスの予め指定したイベントのときにローカルログ
をそれぞれ採取しておき、あるいは各プロセスの予め指
定したサンプリング時間間隔毎にローカルサンプリング
データをそれぞれ採取しておき、一斉同期時に解析/出
力手段4がこれら採取したローカルログあるいはローカ
ルサンプリングデータを解析して必要なログあるいはサ
ンプリングデータのみを外部記憶装置などに出力するよ
うにしている。また、複数のプロセスの生成と合流を行
いつつ並列計算実行中に、出力処理2が各プロセスの予
め指定したイベントのときにローカルログをそれぞれ採
取しておき、あるいは各プロセスの予め指定したサンプ
リング時間間隔毎にローカルサンプリングデータをそれ
ぞれ採取しておき、合流時に解析/出力手段4がこれら
採取したローカルログあるいはサンプリグデータを解析
して必要なログあるいはサンプリングデータのみを外部
記憶装置などに出力するようにしている。
【0012】従って、並列計算プログラムの本来の実行
状態を変化させないで、デバッグ/チューニングに必要
なログやサンプリングデータのみを出力することによ
り、出力装置(外部記憶装置、プリンタ装置など)の使
用量を必要最小限に削減することが可能となると共に、
必要なデータのみを実行後解析してこの解析に要する時
間を低減することが可能となる。
状態を変化させないで、デバッグ/チューニングに必要
なログやサンプリングデータのみを出力することによ
り、出力装置(外部記憶装置、プリンタ装置など)の使
用量を必要最小限に削減することが可能となると共に、
必要なデータのみを実行後解析してこの解析に要する時
間を低減することが可能となる。
【0013】
【実施例】次に、図1から図5を用いて本発明の実施例
の構成および動作を順次詳細に説明する。図1におい
て、計算実行1は、プロセスが計算を実行するもの(フ
ェーズ)である。
の構成および動作を順次詳細に説明する。図1におい
て、計算実行1は、プロセスが計算を実行するもの(フ
ェーズ)である。
【0014】出力処理2は、プロセスが予め定めたイベ
ント(例えばデータ転送命令)のときにローカルログを
メモリに出力したり、あるいは予め定めたサンプリング
時間間隔毎にローカルサンプリングデータをメモリに出
力したりするものである。プロセス間一斉同期処理3
は、複数のプロセスが全て一斉に同期するための処理で
ある。速く処理の終了したプロセスは、最も遅いプロセ
スが処理を終了するまで同期待ちする。ここで、矢印の
先端のスキマは同期待ちを表す。プロセス間一斉同期処
理3の間で挟まれた区間を同期ブロックと呼び、この同
期ブロックの直後の解析/出力処理4で解析を行う。ま
た、解析/出力処理4を行った後のプロセス間一斉同期
処理3は、当該解析/出力処理4によって乱された計算
実行のタイミングを再び整えるためのものである。
ント(例えばデータ転送命令)のときにローカルログを
メモリに出力したり、あるいは予め定めたサンプリング
時間間隔毎にローカルサンプリングデータをメモリに出
力したりするものである。プロセス間一斉同期処理3
は、複数のプロセスが全て一斉に同期するための処理で
ある。速く処理の終了したプロセスは、最も遅いプロセ
スが処理を終了するまで同期待ちする。ここで、矢印の
先端のスキマは同期待ちを表す。プロセス間一斉同期処
理3の間で挟まれた区間を同期ブロックと呼び、この同
期ブロックの直後の解析/出力処理4で解析を行う。ま
た、解析/出力処理4を行った後のプロセス間一斉同期
処理3は、当該解析/出力処理4によって乱された計算
実行のタイミングを再び整えるためのものである。
【0015】解析/出力処理4は、同期ブロックの解析
処理を行い、出力処理2で採取されたローカルログある
いはローカルサンプリングデータから、デバッグ/チュ
ーニングなどに必要なログあるいはサンプリングデータ
を取り出したり、統計処理を施したりし、外部に出力す
るものである。解析処理は、1プロセスで実行してもよ
いし、あるいは複数のプロセスで並列実行してもよい。
この解析/出力処理4は、例えばログとして次のような
解析を行い出力する。
処理を行い、出力処理2で採取されたローカルログある
いはローカルサンプリングデータから、デバッグ/チュ
ーニングなどに必要なログあるいはサンプリングデータ
を取り出したり、統計処理を施したりし、外部に出力す
るものである。解析処理は、1プロセスで実行してもよ
いし、あるいは複数のプロセスで並列実行してもよい。
この解析/出力処理4は、例えばログとして次のような
解析を行い出力する。
【0016】・反復実行した計算実行1のデータ転送量
を合計し、1つのログとして出力する。 ・load/storeした変数名やその時刻をプロセス間で調
べ、相互矛盾や非効率性を抽出して、警告をログとして
出力する。 ・プロセス間一斉同期処理3の実行開始時刻および実行
終了時刻から、プロセス毎の同期待ち時間、同期ブロッ
クの長さなどをログとして出力する。
を合計し、1つのログとして出力する。 ・load/storeした変数名やその時刻をプロセス間で調
べ、相互矛盾や非効率性を抽出して、警告をログとして
出力する。 ・プロセス間一斉同期処理3の実行開始時刻および実行
終了時刻から、プロセス毎の同期待ち時間、同期ブロッ
クの長さなどをログとして出力する。
【0017】・反復回数nと計算実行1を通過する時刻
から、各反復に要する時間の平均値、最大値、最小値を
算出し、ログとして出力する。尚、各反復開始および反
復終了時刻をローカルログとして出力しておけば、より
正確に求められる。 ・更に、解析/出力処理4で解析の結果、重大な問題を
検出したとき、その時点で実行を中断したり、より詳し
い解析ルーチンへ分岐するなど、動的に実行を変えるよ
うにする。
から、各反復に要する時間の平均値、最大値、最小値を
算出し、ログとして出力する。尚、各反復開始および反
復終了時刻をローカルログとして出力しておけば、より
正確に求められる。 ・更に、解析/出力処理4で解析の結果、重大な問題を
検出したとき、その時点で実行を中断したり、より詳し
い解析ルーチンへ分岐するなど、動的に実行を変えるよ
うにする。
【0018】また、例えばサンプリングデータとして次
のような解析を行い出力する。・サンプリングした回数
を手続毎に集計し、サンプリングデータとして出力す
る。サンプリング時間間隔が一定であれば、そのまま各
手続の重さとなる。 ・手続毎の実行時間の平均値、最大値、最小値をサンプ
リング時間間隔の差から求めてサンプリングデータとし
て出力する。
のような解析を行い出力する。・サンプリングした回数
を手続毎に集計し、サンプリングデータとして出力す
る。サンプリング時間間隔が一定であれば、そのまま各
手続の重さとなる。 ・手続毎の実行時間の平均値、最大値、最小値をサンプ
リング時間間隔の差から求めてサンプリングデータとし
て出力する。
【0019】・各反復に要する時間、同期に要する時間
の平均値、最大値、最小値を求め、サンプリングデータ
として出力する。図1の(イ)は、プロセス間で一斉同
期を行う並列計算におけるログ出力例を示す。これは、 プロセス1、2、3が並列に計算実行1し、これら
計算実行1中で予め指定したイベント(例えばデータ転
送命令)のときに、本実施例に係る出力処理2がローカ
ルログを内部メモリにそれぞれ採取する。
の平均値、最大値、最小値を求め、サンプリングデータ
として出力する。図1の(イ)は、プロセス間で一斉同
期を行う並列計算におけるログ出力例を示す。これは、 プロセス1、2、3が並列に計算実行1し、これら
計算実行1中で予め指定したイベント(例えばデータ転
送命令)のときに、本実施例に係る出力処理2がローカ
ルログを内部メモリにそれぞれ採取する。
【0020】 プロセス間一斉同期処理3の直後に、
本実施例に係る解析/出力処理4がこれら採取したロー
カルログから、デバッグ/チューニングなどに必要なロ
グを取り出し、あるいは統計処理を施し、これら取り出
したログあるいは統計処理など施した後のログを外部記
憶装置に出力する。 の処理を行った同期の乱れをプロセス間一斉同期
処理3によって整えた後、次の計算実行1を各プロセス
が一斉に開始する。
本実施例に係る解析/出力処理4がこれら採取したロー
カルログから、デバッグ/チューニングなどに必要なロ
グを取り出し、あるいは統計処理を施し、これら取り出
したログあるいは統計処理など施した後のログを外部記
憶装置に出力する。 の処理を行った同期の乱れをプロセス間一斉同期
処理3によって整えた後、次の計算実行1を各プロセス
が一斉に開始する。
【0021】図1の(ロ)は、プロセス間で一斉同期を
行う並列計算におけるサンプリングデータ出力例を示
す。これは、 プロセス1、2、3が並列に計算実行1し、これら
計算実行1中の予め指定したサンプリング時間間隔毎
に、本実施例に係る出力処理2がローカルサンプリング
データを内部メモリにそれぞれ採取する。
行う並列計算におけるサンプリングデータ出力例を示
す。これは、 プロセス1、2、3が並列に計算実行1し、これら
計算実行1中の予め指定したサンプリング時間間隔毎
に、本実施例に係る出力処理2がローカルサンプリング
データを内部メモリにそれぞれ採取する。
【0022】 プロセス間一斉同期処理3の直後に、
本実施例に係る解析/出力処理4がこれら採取したロー
カルサンプリングデータから、デバッグ/チューニング
などに必要なサンプリングデータを取り出し、あるいは
統計処理を施し、これら取り出したサンプリングデータ
あるいは統計処理など施した後のサンプリングデータを
外部記憶装置に出力する。
本実施例に係る解析/出力処理4がこれら採取したロー
カルサンプリングデータから、デバッグ/チューニング
などに必要なサンプリングデータを取り出し、あるいは
統計処理を施し、これら取り出したサンプリングデータ
あるいは統計処理など施した後のサンプリングデータを
外部記憶装置に出力する。
【0023】 の処理を行った同期の乱れをプロセ
ス間一斉同期処理3によって整えた後、次の計算実行1
を各プロセスが一斉に開始する。図1の(ハ)は、プロ
セスの生成と合流を行う並列計算におけるログ出力例を
示す。これは、 プロセスが3つの子プロセスを生成して並列に計算
実行1を行い、これら計算実行1中で予め指定したイベ
ント(例えばデータ転送命令)のときに、本実施例に係
る出力処理2がローカルログを内部メモリにそれぞれ採
取する。
ス間一斉同期処理3によって整えた後、次の計算実行1
を各プロセスが一斉に開始する。図1の(ハ)は、プロ
セスの生成と合流を行う並列計算におけるログ出力例を
示す。これは、 プロセスが3つの子プロセスを生成して並列に計算
実行1を行い、これら計算実行1中で予め指定したイベ
ント(例えばデータ転送命令)のときに、本実施例に係
る出力処理2がローカルログを内部メモリにそれぞれ採
取する。
【0024】 3つの子プロセスが合流する際に、本
実施例に係る解析/出力処理4がこれら採取したローカ
ルログから、デバッグ/チューニングなどに必要なログ
を取り出し、あるいは統計処理を施し、これら取り出し
たログあるいは統計処理など施した後のログを外部記憶
装置に出力すると共に合流する。そして、計算実行1を
行う。
実施例に係る解析/出力処理4がこれら採取したローカ
ルログから、デバッグ/チューニングなどに必要なログ
を取り出し、あるいは統計処理を施し、これら取り出し
たログあるいは統計処理など施した後のログを外部記憶
装置に出力すると共に合流する。そして、計算実行1を
行う。
【0025】図1の(ニ)は、プロセスの生成と合流を
行う並列計算におけるサンプリングデータ出力例を示
す。これは、 プロセスが3つの子プロセスを生成して並列に計算
実行1を行い、これら計算実行1中で予め指定したサン
プリング時間間隔で、本実施例に係る出力処理2がロー
カルサンプリングデータを内部メモリにそれぞれ採取す
る。
行う並列計算におけるサンプリングデータ出力例を示
す。これは、 プロセスが3つの子プロセスを生成して並列に計算
実行1を行い、これら計算実行1中で予め指定したサン
プリング時間間隔で、本実施例に係る出力処理2がロー
カルサンプリングデータを内部メモリにそれぞれ採取す
る。
【0026】 3つの子プロセスが合流する際に、本
実施例に係る解析/出力処理4がこれら採取したローカ
ルサンプリングデータから、デバッグ/チューニングな
どに必要なサンプリングデータを取り出し、あるいは統
計処理を施し、これら取り出したサンプリングデータあ
るいは統計処理など施した後のサンプリングデータを外
部記憶装置に出力すると共に合流する。そして、計算実
行1を行う。
実施例に係る解析/出力処理4がこれら採取したローカ
ルサンプリングデータから、デバッグ/チューニングな
どに必要なサンプリングデータを取り出し、あるいは統
計処理を施し、これら取り出したサンプリングデータあ
るいは統計処理など施した後のサンプリングデータを外
部記憶装置に出力すると共に合流する。そして、計算実
行1を行う。
【0027】図2は、本発明のログ出力構成図を示す。
これは、図1の(イ)の詳細構成図の例である。図2に
おいて、プロセス1、2、3は、一斉同期しなから並列
計算するプロセスである。転送命令は、予め指定したイ
ベントであって、これのときに本来の転送処理2−2の
前にローカルログ生成ルーチン2−1を起動するための
ものである。
これは、図1の(イ)の詳細構成図の例である。図2に
おいて、プロセス1、2、3は、一斉同期しなから並列
計算するプロセスである。転送命令は、予め指定したイ
ベントであって、これのときに本来の転送処理2−2の
前にローカルログ生成ルーチン2−1を起動するための
ものである。
【0028】ローカルログ生成ルーチン2−1は、本来
の転送処理2−2の前に起動され、ローカルログを採取
してローカルログ記憶域5−1に格納するものである。
転送処理2−2は、指示された転送処理を行うものであ
る。ローカルログ解析/出力手段4−1は、一斉同期時
に起動され、採取したローカルログについて解析を行
い、デバッグ/チューニングに必要なログや統計処理を
施したログをDASD(外部記憶装置)6に出力するも
のである。
の転送処理2−2の前に起動され、ローカルログを採取
してローカルログ記憶域5−1に格納するものである。
転送処理2−2は、指示された転送処理を行うものであ
る。ローカルログ解析/出力手段4−1は、一斉同期時
に起動され、採取したローカルログについて解析を行
い、デバッグ/チューニングに必要なログや統計処理を
施したログをDASD(外部記憶装置)6に出力するも
のである。
【0029】メモリ5は、プロセス1、2、3や、ロー
カルログ記憶域5−1を設けるメモリ、例えば主記憶で
ある。ローカルログ記憶域5−1は、プロセス1、2、
3が動作するメモリ5上に設けた記憶域であって、各プ
ロセス1、2、3が予め指定した転送命令を実行すると
きにその先頭の部分でローカルログ生成ルーチン2−2
を起動してローカルログを採取して書き込む記憶域であ
る。
カルログ記憶域5−1を設けるメモリ、例えば主記憶で
ある。ローカルログ記憶域5−1は、プロセス1、2、
3が動作するメモリ5上に設けた記憶域であって、各プ
ロセス1、2、3が予め指定した転送命令を実行すると
きにその先頭の部分でローカルログ生成ルーチン2−2
を起動してローカルログを採取して書き込む記憶域であ
る。
【0030】DASD6は、ログを出力する外部記憶装
置である。次に、図3のフローチャートに示す順序に従
い、図2の構成の動作を詳細に説明する。図3におい
て、S1:他プロセスと同期する。これは、図2でプロ
セス1、2、3が図1の(イ)のプロセス間一斉同期処
理3に示すように、一斉同期して計算実行1を開始す
る。
置である。次に、図3のフローチャートに示す順序に従
い、図2の構成の動作を詳細に説明する。図3におい
て、S1:他プロセスと同期する。これは、図2でプロ
セス1、2、3が図1の(イ)のプロセス間一斉同期処
理3に示すように、一斉同期して計算実行1を開始す
る。
【0031】S2:変数k=0と初期設定する。 S3:データ転送する。これは、図2でプロセス1、
2、3のいずれかで転送命令の実行時にライブラリコー
ルを行い、これの先頭で本実施例に係るローカルログ採
取を行った後、本来の転送処理を行う。 S4:算術計算を行う。
2、3のいずれかで転送命令の実行時にライブラリコー
ルを行い、これの先頭で本実施例に係るローカルログ採
取を行った後、本来の転送処理を行う。 S4:算術計算を行う。
【0032】S5:データ転送する。これは、S3と同
様である。 S6:変数kに+1して更新する。 S7:変数kが予め定めた繰り返し回数nに等しいか否
かを判別する。YESの場合には、予め定めた繰り返し
回数nに等しいので、S8に進む。NOの場合には、S
3以降を繰り返し行う。
様である。 S6:変数kに+1して更新する。 S7:変数kが予め定めた繰り返し回数nに等しいか否
かを判別する。YESの場合には、予め定めた繰り返し
回数nに等しいので、S8に進む。NOの場合には、S
3以降を繰り返し行う。
【0033】S8:他プロセスとの同期を行う。これ
は、転送命令の実行および算術計算を行った後、プロセ
ス間一斉同期処理3を行う。 S9:ローカルログの解析・出力を行う。これは、 ・ローカルログの読取り ・処理(load/storeタイミングの矛盾検出な
ど) ・結果出力 を行う。
は、転送命令の実行および算術計算を行った後、プロセ
ス間一斉同期処理3を行う。 S9:ローカルログの解析・出力を行う。これは、 ・ローカルログの読取り ・処理(load/storeタイミングの矛盾検出な
ど) ・結果出力 を行う。
【0034】S10:他プロセスとの同期を行う。これ
は、ローカルログの解析・出力を行った後、これらの処
理により乱された計算実行のタイミングを整えるために
他のプロセスとの一斉同期を行った後、一斉に次の計算
実行を開始する。以上の処理によって、並列実行する複
数のプロセスで予め指定した転送命令のときにローカル
ログをローカルログ記憶域5−1に採取しておき、一斉
同期時にこれらローカルログを解析してデバッグ/チュ
ーニングなどに必要なログのみを取り出したり、あるい
は更に統計処理を行ったりしてDASD6に出力するこ
とにより、デバッグ/チューニングに必要なログのみを
DASD6に出力し、ログの量を必要最小限に削減する
ことが可能となると共に、これら出力した必要最小限の
ログをもとに実行後解析する負担を軽減することが可能
となる。
は、ローカルログの解析・出力を行った後、これらの処
理により乱された計算実行のタイミングを整えるために
他のプロセスとの一斉同期を行った後、一斉に次の計算
実行を開始する。以上の処理によって、並列実行する複
数のプロセスで予め指定した転送命令のときにローカル
ログをローカルログ記憶域5−1に採取しておき、一斉
同期時にこれらローカルログを解析してデバッグ/チュ
ーニングなどに必要なログのみを取り出したり、あるい
は更に統計処理を行ったりしてDASD6に出力するこ
とにより、デバッグ/チューニングに必要なログのみを
DASD6に出力し、ログの量を必要最小限に削減する
ことが可能となると共に、これら出力した必要最小限の
ログをもとに実行後解析する負担を軽減することが可能
となる。
【0035】図4は、本発明のサンプリングデータ出力
構成図を示す。これは、図1の(ロ)の詳細構成図の例
である。図4において、プロセス1、2、3は、一斉同
期しなから並列計算するプロセスである。サンプラ1、
2、3は、予め指定したサンプリング時間間隔毎にプロ
セス1、2、3が実行している処理およびその内容など
をサプリングしてローカルサンプリングデータ記憶域5
−2に格納するものである。
構成図を示す。これは、図1の(ロ)の詳細構成図の例
である。図4において、プロセス1、2、3は、一斉同
期しなから並列計算するプロセスである。サンプラ1、
2、3は、予め指定したサンプリング時間間隔毎にプロ
セス1、2、3が実行している処理およびその内容など
をサプリングしてローカルサンプリングデータ記憶域5
−2に格納するものである。
【0036】起動は、プロセス1、2、3 が一斉同期
時に、ローカルサンプリングデータ解析/出力手段4−
2を起動するものである。ローカルサンプリングデータ
解析/出力手段4−2は、プロセス1、2、3の一斉同
期時に起動され、採取したローカルサンプリングデータ
について解析を行い、デバッグ/チューニングに必要な
サンプリングデータや統計処理を施したサンプリングデ
ータをDASD(外部記憶装置)6に出力するものであ
る。
時に、ローカルサンプリングデータ解析/出力手段4−
2を起動するものである。ローカルサンプリングデータ
解析/出力手段4−2は、プロセス1、2、3の一斉同
期時に起動され、採取したローカルサンプリングデータ
について解析を行い、デバッグ/チューニングに必要な
サンプリングデータや統計処理を施したサンプリングデ
ータをDASD(外部記憶装置)6に出力するものであ
る。
【0037】メモリ5は、プロセス1、2、3や、ロー
カルサンプリングデータ記憶域5−2を設けるメモリ、
例えば主記憶である。ローカルサンプリングデータ記憶
域5−2は、プロセス1、2、3が動作するメモリ5上
に設けた記憶域であって、各プロセス1、2、3が予め
指定したサンプリング時間間隔毎にサンプラ1、2、3
が処理およびその内容などを採取して書き込む記憶域で
ある。
カルサンプリングデータ記憶域5−2を設けるメモリ、
例えば主記憶である。ローカルサンプリングデータ記憶
域5−2は、プロセス1、2、3が動作するメモリ5上
に設けた記憶域であって、各プロセス1、2、3が予め
指定したサンプリング時間間隔毎にサンプラ1、2、3
が処理およびその内容などを採取して書き込む記憶域で
ある。
【0038】次に、図5のフローチャートに示す順序に
従い、図4の構成の動作を詳細に説明する。図5におい
て、S11:他プロセスと同期する。これは、図4でプ
ロセス1、2、3が図1の(ロ)のプロセス間一斉同期
処理3に示すように、一斉同期して計算実行1を開始す
る。
従い、図4の構成の動作を詳細に説明する。図5におい
て、S11:他プロセスと同期する。これは、図4でプ
ロセス1、2、3が図1の(ロ)のプロセス間一斉同期
処理3に示すように、一斉同期して計算実行1を開始す
る。
【0039】S12:変数k=0と初期設定する。 S13:データ転送する。これは、図4でプロセス1、
2、3のいずれかで転送命令の実行時にライブラリコー
ルを行い、転送処理を行う。 S14:算術計算を行う。 S15:データ転送する。
2、3のいずれかで転送命令の実行時にライブラリコー
ルを行い、転送処理を行う。 S14:算術計算を行う。 S15:データ転送する。
【0040】S16:変数kに+1して更新する。 S17:変数kが予め定めた繰り返し回数nに等しいか
否かを判別する。YESの場合には、予め定めた繰り返
し回数nに等しいので、S18に進む。NOの場合に
は、S13以降を繰り返し行う。 以上のS11ないしS17の間、サンプラ1、2、3が
サンプリング時間間隔T毎に処理およびその内容などを
採取してローカルサンプリングデータとしてローカルサ
ンプリングデータ記憶域5−2に書き込んでおく。
否かを判別する。YESの場合には、予め定めた繰り返
し回数nに等しいので、S18に進む。NOの場合に
は、S13以降を繰り返し行う。 以上のS11ないしS17の間、サンプラ1、2、3が
サンプリング時間間隔T毎に処理およびその内容などを
採取してローカルサンプリングデータとしてローカルサ
ンプリングデータ記憶域5−2に書き込んでおく。
【0041】S18:他プロセスとの同期を行う。これ
は、転送命令の実行および算術計算を行った後、プロセ
ス間一斉同期処理3を行う。 S19:ローカルサンプリングデータの解析・出力を行
う。これは、 ・ローカルサンプリングデータの読取り ・処理(冗長な情報のふるい落としなど) ・ローカルサンプリングデータ記憶域の初期化 ・結果出力 を行う。
は、転送命令の実行および算術計算を行った後、プロセ
ス間一斉同期処理3を行う。 S19:ローカルサンプリングデータの解析・出力を行
う。これは、 ・ローカルサンプリングデータの読取り ・処理(冗長な情報のふるい落としなど) ・ローカルサンプリングデータ記憶域の初期化 ・結果出力 を行う。
【0042】S20:他プロセスとの同期を行う。これ
は、ローカルサンプリングデータの解析・出力を行った
後、これらの処理により乱された計算実行のタイミング
を整えるために他のプロセスとの一斉同期を行った後、
一斉に次の計算実行を開始する。以上の処理によって、
並列実行する複数のプロセスで予め指定したサンプリン
グ時間間隔T毎にローカルサンプリングデータをローカ
ルサンプリングデータ記憶域5−2に採取しておき、一
斉同期時にこれらローカルサンプリングデータを解析し
てデバッグ/チューニングなどに必要なサンプリングデ
ータのみを取り出したり、あるいは更に統計処理を行っ
たりしてDASD6に出力することにより、デバッグ/
チューニングに必要なサンプリングデータのみをDAS
D6に出力し、サンプリングデータの量を必要最小限に
削減することが可能となると共に、これら出力した必要
最小限のサンプリングデータをもとに実行後解析する負
担を軽減することが可能となる。
は、ローカルサンプリングデータの解析・出力を行った
後、これらの処理により乱された計算実行のタイミング
を整えるために他のプロセスとの一斉同期を行った後、
一斉に次の計算実行を開始する。以上の処理によって、
並列実行する複数のプロセスで予め指定したサンプリン
グ時間間隔T毎にローカルサンプリングデータをローカ
ルサンプリングデータ記憶域5−2に採取しておき、一
斉同期時にこれらローカルサンプリングデータを解析し
てデバッグ/チューニングなどに必要なサンプリングデ
ータのみを取り出したり、あるいは更に統計処理を行っ
たりしてDASD6に出力することにより、デバッグ/
チューニングに必要なサンプリングデータのみをDAS
D6に出力し、サンプリングデータの量を必要最小限に
削減することが可能となると共に、これら出力した必要
最小限のサンプリングデータをもとに実行後解析する負
担を軽減することが可能となる。
【0043】
【発明の効果】以上説明したように、本発明によれば、
並列計算プログラムの本来の実行状態を変化させない
で、デバッグ/チューニングに必要なログやサンプリン
グデータのみを出力する構成を採用しているため、出力
装置(外部記憶装置、プリンタ装置など)の使用量を必
要最小限に削減することができると共に、必要なデータ
のみを実行後解析してこの解析に要する時間を低減する
ことができる。また、本来の計算実行への影響が極めて
少ないため、本来の計算実行を再現しながら並列計算の
デバッグ/チューニングを行うことが可能となる。
並列計算プログラムの本来の実行状態を変化させない
で、デバッグ/チューニングに必要なログやサンプリン
グデータのみを出力する構成を採用しているため、出力
装置(外部記憶装置、プリンタ装置など)の使用量を必
要最小限に削減することができると共に、必要なデータ
のみを実行後解析してこの解析に要する時間を低減する
ことができる。また、本来の計算実行への影響が極めて
少ないため、本来の計算実行を再現しながら並列計算の
デバッグ/チューニングを行うことが可能となる。
【図1】本発明の原理構成図である。
【図2】本発明のログ出力構成図である。
【図3】本発明のログ出力フローチャートである。
【図4】本発明のサンプリングデータ出力構成図であ
る。
る。
【図5】本発明のサンプリングデータ出力フローチャー
トである。
トである。
1:計算実行 2:出力処理 2−1:ローカルログ生成ルーチン 2−2:転送処理 3:プロセス間一斉同期処理 4:解析/出力処理 4−1:ローカルログ解析/出力手段 4−2:ローカルサンプリングデータ解析/出力手段 5:メモリ 5−1:ローカルログ記憶域 5−2:ローカルサンプリングデータ記憶域 6:DASD(外部記憶装置)
Claims (4)
- 【請求項1】 複数のプロセスの並列動作時のログ/サ
ンプリングデータを解析して出力する解析方法におい
て、複数のプロセス間で一斉同期しつつ並列計算実行中
に、各プロセスの予め指定したイベントのときにローカ
ルログをそれぞれ採取しておき、一斉同期時にこれら採
取したローカルログを解析して必要なログのみを出力す
るように構成したことを特徴とするログ/サンプリング
データの解析方法。 - 【請求項2】 複数のプロセスの並列動作時のログ/サ
ンプリングデータを解析して出力する解析方法におい
て、複数のプロセス間で一斉同期しつつ並列計算実行中
に、各プロセスの予め指定したサンプリング時間間隔毎
にローカルサンプリングデータをそれぞれ採取してお
き、一斉同期時にこれら採取したローカルサンプリング
データを解析して必要なサンプリングデータのみを出力
するように構成したことを特徴とするログ/サンプリン
グデータの解析方法。 - 【請求項3】 複数のプロセスの並列動作時のログ/サ
ンプリングデータを解析して出力する解析方法におい
て、複数のプロセスの生成と合流を行いつつ並列計算実
行中に、各プロセスの予め指定したイベントのときにロ
ーカルログをそれぞれ採取しておき、合流時にこれら採
取したローカルログを解析して必要なログのみを出力す
るように構成したことを特徴とするログ/サンプリング
データの解析方法。 - 【請求項4】 複数のプロセスの並列動作時のログ/サ
ンプリングデータを解析して出力する解析方法におい
て、複数のプロセスの生成と合流を行いつつ並列計算実
行中に、各プロセスの予め指定したサンプリング時間間
隔毎にローカルサンプリングデータをそれぞれ採取して
おき、合流時にこれら採取したローカルサンプリングデ
ータを解析して必要なサンプリングデータのみを出力す
るように構成したことを特徴とするログ/サンプリング
データの解析方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2407463A JP2754495B2 (ja) | 1990-12-27 | 1990-12-27 | ログ/サンプリングデータの解析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2407463A JP2754495B2 (ja) | 1990-12-27 | 1990-12-27 | ログ/サンプリングデータの解析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04225439A JPH04225439A (ja) | 1992-08-14 |
JP2754495B2 true JP2754495B2 (ja) | 1998-05-20 |
Family
ID=18517034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2407463A Expired - Fee Related JP2754495B2 (ja) | 1990-12-27 | 1990-12-27 | ログ/サンプリングデータの解析方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2754495B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11103546A (ja) * | 1997-09-29 | 1999-04-13 | Fujitsu General Ltd | 永久磁石電動機 |
JP4983238B2 (ja) * | 2006-12-12 | 2012-07-25 | 富士通株式会社 | 模擬ソースプログラム生成プログラム及び装置、並びに情報処理方法 |
JP2009059316A (ja) * | 2007-09-04 | 2009-03-19 | Nec Corp | 測定装置、測定プログラム、および、測定方法 |
-
1990
- 1990-12-27 JP JP2407463A patent/JP2754495B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH04225439A (ja) | 1992-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3480973B2 (ja) | 並列処理システムの動作解析装置 | |
US5615357A (en) | System and method for verifying processor performance | |
US5845064A (en) | Method for testing and verification of a CPU using a reference model | |
Brito et al. | Speculative out-of-order event processing with software transaction memory | |
JPH10254739A (ja) | コンピュータ性能データを分析する方法 | |
JPH10254700A (ja) | 個々の命令の実行頻度をサンプリングするプロセッサ性能カウンタ | |
EP3577564B1 (en) | Efficient retrieval of memory values during trace replay | |
JP2754495B2 (ja) | ログ/サンプリングデータの解析方法 | |
US8078590B2 (en) | Data processing system | |
Gonzalez-Dominguez et al. | MPIGeneNet: parallel calculation of gene co-expression networks on multicore clusters | |
WO2018032897A1 (zh) | 报文转发性能评估方法、装置和计算机存储介质 | |
JP6510430B2 (ja) | トレースデータ編集装置及び方法 | |
JPH08328905A (ja) | シミュレーション方法および装置 | |
US7630875B2 (en) | Automatic time warp for electronic system simulation | |
JPH0887417A (ja) | コンパイラ装置 | |
JPS62217325A (ja) | アセンブラコ−ド最適化方式 | |
JP3032030B2 (ja) | ループ最適化方法及び装置 | |
JPH052508A (ja) | プログラム動作解析装置 | |
Eckert et al. | Parallel program trace extrapolation | |
JP2006202102A (ja) | シミュレーション装置 | |
Levrouw et al. | Minimizing the log size for execution replay of shared-memory programs | |
Zhang et al. | A loosely-coupled full-system multicore simulation framework | |
JPH10260872A (ja) | 計算機システムおよび記録媒体 | |
JP3052263B2 (ja) | 論理検証充分性評価方法およびそのためのシステム | |
Fleury et al. | Methodology and tools for system analysis of parallel pipelines |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 19980120 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080306 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090306 Year of fee payment: 11 |
|
LAPS | Cancellation because of no payment of annual fees |