JPH07152614A - 並列処理システムの動作解析装置 - Google Patents

並列処理システムの動作解析装置

Info

Publication number
JPH07152614A
JPH07152614A JP5300205A JP30020593A JPH07152614A JP H07152614 A JPH07152614 A JP H07152614A JP 5300205 A JP5300205 A JP 5300205A JP 30020593 A JP30020593 A JP 30020593A JP H07152614 A JPH07152614 A JP H07152614A
Authority
JP
Japan
Prior art keywords
program
parallel processing
execution
processing system
parallel
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.)
Granted
Application number
JP5300205A
Other languages
English (en)
Other versions
JP3480973B2 (ja
Inventor
Shin Hashimoto
伸 橋本
Reiji Masaki
玲司 正木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP30020593A priority Critical patent/JP3480973B2/ja
Publication of JPH07152614A publication Critical patent/JPH07152614A/ja
Priority to US09/004,505 priority patent/US6308316B1/en
Application granted granted Critical
Publication of JP3480973B2 publication Critical patent/JP3480973B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3404Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for parallel or distributed programming

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【目的】 マルチプロセッサ・システムにおける実行情
報の取得および解析を行う並列処理システムの動作解析
装置に関し、マルチプロセッサ・システムにおける並列
処理の実行情報を効率良く取得することを目的とする。 【構成】 逐次実行状態,並列冗長実行状態,および,
並列実行状態などの実行状態を有する並列処理システム
の動作解析装置であって、前記並列処理システムにおけ
るプログラム実行時の動作情報を、割り込み処理により
得るように構成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は並列処理システムの動作
解析装置に関し、特に、マルチプロセッサ・システムに
おける並列処理の実行情報の取得および解析を行うため
の並列処理システムの動作解析装置に関する。近年、複
数のプロセッサ・エレメント(PE)を備え、該複数の
PEが並列的に処理を行う並列処理システム(マルチプ
ロセッサ・システム)が提案されている。マルチプロセ
ッサ・システムにおいて、実運用のための実行プログラ
ムを実行している環境下において、並列実行の状態およ
びデータ転送の状態を取得し、それらの情報を解析する
ことのできる並列処理システムの動作解析装置の提供が
要望されている。
【0002】
【従来の技術】従来、マルチプロセッサ・システムにお
ける並列処理の実行情報を取得するために、実行プログ
ラム(高級言語:例えば、フォートラン言語やC言語)
中に実行時の情報を出力する命令を埋め込み、その出力
結果を解析することが行われていた。
【0003】ところで、実行プログラム中に実行時の情
報を出力するための命令を埋め込むと、実行性能を悪く
することになるため、この命令の埋め込みは、翻訳時の
オプションによって行うようになっている。一方、従
来、逐次処理の実行情報を取得するために、一定間隔で
プログラムに割り込みをかけ、その時の実行中アドレス
を取得する方式が提案されている。しかしながら、この
方式では、並列処理として必要な情報を取得することは
できなかった。
【0004】
【発明が解決しようとする課題】上述したように、マル
チプロセッサ・システムにおける並列処理の実行情報を
取得するために、実行時の情報を出力するための命令を
翻訳時のオプションによって実行プログラム中に埋め込
むと、実行情報取得用の実行プログラムと実運用のため
の実行プログラムが異なるため測定結果の妥当性に問題
が生じることになる。さらに、再翻訳(チューニング時
の再コンパイル)を行うには長時間(数分〜数時間)を
要するため、並列処理の実行情報を取得するためにに要
する負担が増大することになる。
【0005】本発明は、上述した従来のマルチプロセッ
サ・システムにおける動作解析技術が有する課題に鑑
み、マルチプロセッサ・システムにおける並列処理の実
行情報を効率良く取得することを目的とする。
【0006】
【課題を解決するための手段】本発明によれば、逐次実
行状態,並列冗長実行状態,および,並列実行状態など
の実行状態を有する並列処理システムの動作解析装置で
あって、前記並列処理システムにおけるプログラム実行
時の動作情報を、割り込み処理により得るようにしたこ
とを特徴とする並列処理システムの動作解析装置が提供
される。
【0007】
【作用】本発明の並列処理システムの動作解析装置によ
れば、並列処理システムにおけるプログラム実行時の動
作情報が割り込み処理により得るようになっている。す
なわち、本発明の並列処理システムの動作解析装置で
は、一定間隔でプログラムに割り込む方式を採用し、且
つ、割り込み時に制御プログラムとインタフェースを持
って並列実行の状態やデータ転送の状態を取得するよう
になっている。そして、これらの情報を解析することに
よって並列処理に必要な情報を得ることができる。この
本発明の並列処理システムの動作解析装置によれば、実
運用向けの実行プログラムに割り込み用ライブラリを入
れておき、実行時の環境によって情報取得を行うかどう
かの制御が可能であるため、マルチプロセッサ・システ
ムにおける並列処理の実行情報を効率良く取得すること
ができる。
【0008】
【実施例】以下、図面を参照して本発明に係る並列処理
システムの動作解析装置の実施例を説明する。図1は本
発明に係る並列処理システムの動作解析装置(サンプ
ラ)の一実施例を模式的に示すブロック図である。同図
において、参照符号1はソース(例えば、フォートラン
によるプログラム),2はコンパイラ,3はオブジェクト
(コンパイルされたオブジェクト・コード),4は測定ラ
イブラリ,5はリンカ,6は実行プログラム,7は情報
ファイル,8は解析プログラム,そして,9は解析出力
を示している。
【0009】図1に示されるように、リンカ5によっ
て、実行プログラム6の中に測定用の測定ライブラリ4
を組み込む。適当な実行時のオプションを指定して、実
行プログラム6を実行することによって、組み込まれた
測定ライブラリ4を起動して、情報ファイル7を生成す
る。ここで、実行時のオプションを指定しない場合に
は、初期化時の判定のオーバヘッドは殆どない。
【0010】生成された情報ファイル7は、解析プログ
ラム8によって解析される。このとき、解析プログラム
8は、例えば、実行プログラム6に含まれる情報(el
f情報)を使用する。本実施例の並列処理システムの動
作解析装置は、以下に詳述するように、タイマによる割
り込みによってプルグラムの実行状態を調べるもので、
OS(オペレーティング・システム)レベルの持つ割り
込みタイマ機能を利用して行うようになっている。ここ
で、動作解析装置(サンプラ)の割り込み回数が十分に
大きい場合、該サンプラの割り込み回数の割合はプログ
ラムの実行状態を反映することになり、得られた情報
(解析出力9)からプログラムをチューニングすること
ができる。なお、周期的な動作を行うプログラムでは、
割り込み間隔とプログラムの周期とが整数倍の関係にあ
ると、実行状態を正確に得ることができない場合がある
ため、このようなときには割り込み間隔を変えればよ
い。
【0011】図2は図1の並列処理システムの動作解析
装置における測定ライブラリの構成を示す図である。図
2に示されるように、測定ライブラリ4は、制御ルーチ
ン41および割り込み処理ルーチン(割り込みハンド
ラ)42から構成されている。制御ルーチン41は、初
期化(初期化機能),再初期化(再初期化機能),および,
終了処理(終了機能)を行うために使用される。また、
割り込みハンドラ42は、初期化時にOS(オペレーテ
ィング・システム)に登録され、タイマ割り込みが発生
する毎にOSによって呼び出されるようになっている。
【0012】図3は本発明の並列処理システムの動作解
析装置における実行プログラムの実行処理の一例を示す
フローチャートである。図3に示されるように、まず、
プログラムを実行すると、ステップS10において、フ
ォートラン(FORTRAN)の初期化を行い、続い
て、ステップS11で測定ライブラリの初期化(図4参
照)を行う。さらに、ステップS12において、ユーザ
プログラムの実行を開始し、ステップS13に進んで、
並列処理を開始する。そして、ステップS14に進ん
で、測定ライブラリの再初期化(図5参照)を行う。す
なわち、実行プログラム(例えば、FORTRANで作
成)は、FORTRANの初期化(ステップS10)の
中から、測定ライブラリの初期化(ステップS11)を
実行する。また、並列処理が開始(ステップS13)さ
れると、プログラムは、複数のプロセッサで作動を開始
するが、そのとき、親プロセッサ(最初から動いている
プロセッサ)以外のプロセッサ(子プロセッサ)では、
測定ライブラリの再初期化(ステップS14)を実行す
る。
【0013】さらに、ステップS15でユーザプログラ
ムを実行して、ステップS16に進み、並列処理を終了
する。また、ステップS17に進んで、ユーザプログラ
ムを実行し、ステップS18に進んで、測定ライブラリ
の終了処理(図6参照)を行う。そして、ステップS1
9において、FORTRANの終了処理を行った後、プ
ログラムが終了する。
【0014】図4は図3における測定ライブラリの初期
化処理(ステップS11)の一例を示すフローチャート
である。測定ライブラリの初期化処理を開始すると、ま
ず、ステップS111 において、測定が指定されているか
どうかが判別され、測定が指定されていなければそのま
ま処理を終了し、測定が指定されていればステップS11
2 に進む。ステップS112 では、割り込み処理ルーチン
を設定し、ステップS113 に進んで、割り込みタイマを
設定する。さらに、ステップS114 に進んで、情報ファ
イルのヘッダを出力する。すなわち、測定ライブラリの
初期化時には、割り込み処理ルーチンをOSに登録(ス
テップS112)し、インターバルタイマを起動(ステップ
S113)して一定間隔で割り込みが発生するようにし、さ
らに、情報ファイルの管理情報を出力(ステップS114)
する。
【0015】ここで、図4に示す測定ライブラリの初期
化処理は、複数のプロセッサ・エレメントの内、親プロ
セッサのみで行われる処理である。また、ステップS11
3 における割り込みタイマは、数msec.〜数sec.程度
(例えば、10msec.) のインターバルを持つように設
定される。図5は図3における測定ライブラリの再初期
化処理(ステップS14)の一例を示すフローチャート
である。
【0016】測定ライブラリの再初期化処理を開始する
と、まず、ステップS141 において、測定が指定されて
いるかどうかが判別され、測定が指定されていなければ
そのまま処理を終了し、測定が指定されていればステッ
プS142 に進む。ステップS142 において、バッファを
廃棄し、さらに、ステップS143 に進んで、割り込みタ
イマを設定する。すなわち、測定ライブラリの再初期化
時には、バッファリングされている出力情報を無効化
(ステップS142)し、さらに、インターバルタイマを起
動(ステップS143)する。
【0017】ここで、図5に示す測定ライブラリの再初
期化処理は、複数のプロセッサ・エレメントの内、子プ
ロセッサで行われる処理である。また、ステップS143
における割り込みタイマは、例えば、測定ライブラリの
初期化処理のステップS113と同様に、数msec.〜数se
c.程度(例えば、10msec.) のインターバルを持つよ
うに設定される。
【0018】図6は図3における測定ライブラリの終了
処理(ステップS18)の一例を示すフローチャートで
ある。測定ライブラリの終了処理を開始すると、まず、
ステップS181 において、測定が指定されているかどう
かが判別され、測定が指定されていなければそのまま処
理を終了し、測定が指定されていればステップS182 に
進む。ステップS182では、割り込みタイマを解除し、
ステップS183 に進んで、割り込み処理ルーチンを復元
する。さらに、ステップS184 に進んで、収集情報を出
力する。すなわち、測定ライブラリの終了時には、イン
ターバルタイマを停止(ステップS182)し、割り込み処
理ルーチンをもとに戻(ステップS183)し、さらに、バ
ッファリングされている出力情報を出力(ステップS18
4)する。
【0019】図7は本発明の並列処理システムの動作解
析装置における割り込み処理ルーチン(42)の一例を
示すフローチャートである。割り込み処理を開始する
と、まず、ステップS21において、実行中のアドレス
を取得し、ステップS22に進んで、アドレスが特殊処
理中かどうかが判別される。ステップS22において、
アドレスが特殊処理中であると判別されると、ステップ
S23を介してステップS24に進み、逆に、アドレス
が特殊処理中ではないと判別されると、ステップS24
に進む。ステップS23では、呼び出し関係の検索を行
い、また、ステップ24では、プロセス番号の取得を行
う。さらに、ステップS25において、並列実行状態の
取得を行い、ステップS26に進んで、収集情報を出力
する。
【0020】すなわち、割り込み処理ルーチンは、ま
ず、割り込んだアドレスを取得(ステップS21)し、
次に、そのアドレスが特殊な処理を必要とするルーチン
を実行中であるかどうかを判定(ステップS22)す
る。ここで、特殊な処理を必要とするルーチンとして
は、同期待ちを行うライブラリや非同期転送の転送待ち
を行うライブラリ等がある。これらのライブラリを実行
中であると判定した場合には、プログラムの呼び出しを
逆上り、それらのライブラリを呼び出しているソースプ
ログラムのアドレスを取得(ステップS23)する。
【0021】次に、プログラムが実行されているプロセ
ッサの番号を取得(ステップS24)し、さらに、並列
実行の状態を取得(ステップS25)する。ここで、並
列サンプラが対象としている並列処理システムでは、プ
ログラムの実行状態として、単一実行状態,リージョン
マスタ状態,リージョンスレーブ状態という3つの状態
がある。なお、単一実行状態・リージョンマスタ状態
(マスタ状態)・リージョンスレーブ状態(スレーブ状
態)は、図10〜図12を参照して後に詳述する。
【0022】そして、割り込みルーチンは、以上の情報
(収集情報)を出力(ステップS26)する。なお、効
率を向上させるために、出力はバッファに格納され、該
バッファが一杯になったときか,或いは,プログラムの
終了時に収集情報を出力するのが好ましい。図8は本発
明の並列処理システムの動作解析装置における解析ルー
チン(解析プログラム8)の一例を示すフローチャート
である。
【0023】解析処理を開始すると、まず、ステップS
31において、実行プログラムの解析を行い、ステップ
S32に進んで、割り込み情報統計表を作成する。次
に、ステップS33において、並列情報を作成し、さら
に、ステップS34に進んで、プロセッサ別情報統計表
を作成する。そして、ステップS35に進んで、上記各
情報を出力する。
【0024】すなわち、解析プログラムは、まず、実行
プログラムを解析(ステップS31)して、そこに含ま
れる各手続きの開始アドレスと終了アドレスを取得す
る。次に、各手続きに対して、単一実行状態・リージョ
ンマスタ状態・リージョンスレーブ状態のそれぞれにつ
いて、割り込みの起こった回数を数える(ステップS3
2)。さらに、それらの情報を元に、並列実行の状態を
示す指標値を各手続きおよびプログラム全体に対して計
算(ステップS33)する。なお、指標値としては、並
列化効果,並列化率,並列加速率,負荷バランス,およ
び,非同期転送待ち率等がある。そして、各プロセッサ
別に、各手続きに対して割り込みの起こった回数を数え
(ステップS34)、さらに、それらの各情報を出力
(ステップS35)する。
【0025】このように、本実施例によれば、並列処理
の実行情報を効率良く取得することができ、並列プログ
ラムの開発に役立たせることができる。図9は並列処理
システムの一例を概略的に示す図である。同図におい
て、参照符号20はプロセッサ・エレメント(PE),2
1はクロスバー・ネットワーク,22はコントロール・
プロセッサ(CP),23はRAMディスク或いは外部メ
モリと称されるシステム記憶装置(SSU),24はジェ
ネラル・システム・プロセッサ(GSP),そして, 25
はディスク装置を示している。各プロセッサ・エレメン
ト20は、データ転送装置(DTU)201, 主記憶装置20
2,スカラー演算装置(SU)203, および, ベクトル演算
装置(VU)204を備えている。また、スカラー演算装置
203 には、割り込み処理に使用するタイマ(インターバ
ルタイマ)231, および, 割り込み時の時刻を得るための
時計232 が設けられている。ここで、プログラムのコン
パイル(図1中のコンパイラ2)は、GSP24で行わ
れ、また、実際のプログラムの実行は各PE20におい
て行われる。
【0026】図10は図9に示す並列処理システムの動
作の一例を示す図であり、図11は図10に示す並列処
理システムの動作を説明するための図である。なお、図
10における符号“*”はバリア同期を示している。ま
ず、命令"PROCESSOR P(8) A" により、並列処理を実行
するプロセッサの台数を指定して、プログラムマスタ
(親プロセッサ)であるプロセッサPE0(識別番号1
のプロセッサ)にプログラム(処理)Aを実行させる。
ここで、並列プログラムは、複数(例えば、8つ)のプ
ロセッサ(プロセッサ・エレメントPE0〜PE7)を
使用して実行されるが、各プロセッサには『1』から指
定されたプロセッサ数(例えば、『8』)まで識別番号
が与えられている。また、識別番号『1』のプロセッサ
(PE0)をプログラムマスタと呼び、該プログラムマ
スタの開始が並列プログラムの開始であり、該プログラ
ムマスタの終了が並列プログラムの終了である。
【0027】次に、命令"PARALLEL REGION B"により、
プログラムBの並列処理が実行される。ここで、"PARAL
LEL REGION" の前では、プログラムマスタPE0は、単
一実行状態(逐次実行状態)でプログラムAを実行して
おり、また、"PARALLEL REGION" の後では、全てのプロ
セッサPE0〜PE7(親プロセッサPE0および子プ
ロセッサPE1〜PE7)が並列に(並列冗長実行状態
で)プログラムBを実行している。ここで、"PARALLEL
REGION" による並列処理の開始は、図3のフローチャー
トにおけるステップS13に対応している。従って、図
4に示す測定ライブラリの初期化処理は、プログラムマ
スタ(親プロセッサ)PE0だけで実行され、また、図
5に示す測定ライブラリの再初期化処理は、子プロセッ
サPE1〜PE7で実行される。
【0028】並列冗長実行処理は、同一のプログラムB
を複数のプロセッサで行うものであるが、これは1つの
プロセッサで処理した結果を他のプロセッサに転送する
よりも、冗長ではあっても複数のプロセッサで並列的に
処理し、その処理結果を各プロセッサでそのまま使用す
る方が短時間で行える場合等に利用される。なお、複数
のプロセッサが同じリージョンを実行しているとき、そ
のプロセッサの内の1台(PE0)をリージョンマスタ
プロセッサと呼び、リージョンマスタプロセッサ上で実
行されているプログラムをリージョンマスタ状態(マス
タ状態)と呼ぶ。このとき、他のプロセッサをリージョ
ンスレーブプロセッサと呼び、リージョンスレーブプロ
セッサ上で実行されているプログラムをリージョンスレ
ーブ状態(スレーブ状態)と呼ぶ。
【0029】さらに、命令"SPREAD REGION /P(1:2) C
REGION /P(3:8) D"により、プロセッサPE0および
PE1でプログラムCを実行し、同時に、プロセッサP
E2〜PE7でプログラムDを実行する。このとき、プ
ロセッサPE0で実行されているプログラムCおよびプ
ロセッサPE2で実行されているプログラムDはマスタ
状態(リージョンマスタ状態)であり、プロセッサPE
1で実行されているプログラムCおよびプロセッサPE
3〜PE7で実行されているプログラムDはスレーブ状
態(リージョンスレーブ状態)である。
【0030】そして、命令"END SPREAD E" により、全
てのプロセッサPE0〜PE7において、プログラムE
の並列処理(並列冗長処理)が実行される。さらに、命
令"SPREAD DO /(P) do 10 i = 1,n F"により、各プロ
セッサPE0〜PE7でそれぞれプログラムF1 〜F8
が実行される。このとき、プロセッサPE0〜PE7で
実行されるプログラムF1 〜F8 は、全てマスタ状態で
ある。
【0031】さらに、命令"END SPRED G"により、全て
のプロセッサPE0〜PE7で、プログラムGの並列処
理(並列冗長処理)が実行される。そして、命令"END P
ARALLEL H" により、並列処理が終了し、プログラムマ
スタPE0だけがプログラムHを実行する。ここで、"E
ND PARALLEL"は図3のフローチャートにおけるステップ
S16に対応している。従って、図6に示す測定ライブ
ラリの終了処理は、プログラムマスタ(親プロセッサ)
PE0だけで実行される。
【0032】図12は図11に示す親プロセッサおよび
子プロセッサの状態遷移を示す図であり、同図(a) は親
プロセッサPE0の状態遷移を示し、また、同図(b) は
子プロセッサPE1〜PE7の状態遷移を示している。
図12(a) および(b) において、同期待ち状態とは、例
えば、バリア同期を取ったときにプロセッサ側で発生す
る待ち状態であり、同時に実行しているリージョンの実
行時間にばらつきがある場合に多く発生する。ここで、
上記のリージョンの実行時間のばらつきを負荷バランス
と呼ぶ。また、転送待ち状態とは、例えば、複数のプロ
セッサが同一のグローバルデータにアクセスした場合等
に発生する待ち状態である。
【0033】ここで、本実施例の並列処理システムの動
作解析装置により得られる情報としては、並列処理ライ
ブラリから得られる情報(仮想プロセッサ番号, マスタ
/スレーブ状態, および,同一リージョンのプロセッサ
数)、フォートラン・オブジェクトから得られる情報
(プログラムの呼び出し関係)、ハードウェアから得ら
れる情報(ベクトル長)、OSから得られる情報(実行
中アドレス, 時刻)、割り込み時に取得する情報(同期
待ち状態, 転送状態, および,実行中ライブラリの呼び
出し元アドレス)、および、実行後の解析時に収拾する
情報(実行プログラムのアドレスと手続きの対応情報)
がある。ここで、プログラムの呼び出し関係とは、例え
ば、待ち状態のライブラリにぶつかった時、フォートラ
ンのサブルーチンから得られたオブジェクトまでを遡
り、そのアドレス(待ち状態の出発点となるアドレス)
を出力することを意味する。また、ベクトル長はベクト
ル演算装置(VU:204)から読み出し、実行中アドレス
および時刻は、スカラー演算装置(SU:203,時計:23
2)から読み出し、そして、他の情報は主記憶装置202 か
ら読み出すことになる。
【0034】図13は図9に示す並列処理システムの動
作の他の例を示す図であり、次のプログラムに従った動
作を示すものである。
【0035】
【数1】
【0036】上記のプログラムは、拡張されたフォート
ラン(FORTRAN)により記述されたものである。
なお、 "!XOCL" は、該拡張されたフォートランにおけ
る拡張命令を示し、通常のフォートランではプログラム
の実行とは関係の無い単なる注釈として処理される。図
13において、AパートおよびLパートはパラレルリー
ジョンの外にあり、また、Bパート,IパートおよびK
パートはパラレルリージョンであり、さらに、Cパート
およびEパートは同じリージョンである。また、Dパー
トは4個のリージョンから成り、Gパートは2個のリー
ジョンから成り、そして、Jパートは8個のリージョン
から成る。ここで、Aパートの待ち時間も含めた実行時
間を“A”で示し、他の英字も同様とし、また、Aパー
トの待ち時間を含めない実行時間を“a”で示し、D,
GおよびJを除く他の英字も同様とする。Di でDパー
トの分割されたそれぞれの待ち時間を含めた実行時間を
示し、di でDパートの分割されたそれぞれの待ち時間
を含めない実行時間を示し、DおよびJも同様とする。
従って、D=ΣDi となり、d=Σdi となる。
【0037】次に、本発明の並列処理システムの動作解
析装置により得られる解析結果としての並列化率,並列
加速率,負荷バランス,および,転送と演算の並列実行
について説明する。まず、並列化率を説明する。プログ
ラムの並列に実行する部分を増やすことを並列化と呼
び、プログラムがどれだけ並列化されているかを示す指
標として並列化率を次のように定義する。
【0038】P=Cp /Ca ここで、Pは並列化率, Ca はプログラムを逐次実行し
た場合の全コスト, そして, Cp は並列化できる部分コ
ストを示している。並列化とは、並列化率を上げること
であり、上式から明らかなように、並列化率を上げるた
めには、コストの大きい部分を並列化する必要がある。
並列化率Pは次の式で表される。
【0039】 P=(c+d+e+f+g+h+i)/(a+b+c+d+e+f+g+h+i+j+k+l) ところで、マルチプロセッサ・システムにおいては、冗
長実行という概念があり、並列性のない場合でも複数の
プロセッサが動作していることがある。そこで、マルチ
プロセッサ・システムにおける並列化率P’を次の式で
定義する。 P’=Cp'/Ca ここで、Cp'はパラレルリージョン内のコストを示して
いる。従って、マルチプロセッサ・システムにおける並
列化率P’は次の式で表される。
【0040】P’=(b+c+d+e+f+g+h+i+j+k)/(a+b+c+d
+e+f+g+h+i+j+k+l) なお、Bパート,IパートおよびKパートの実行時間は
少ないと考えられるため、マルチプロセッサ・システム
の並列化率P’は、並列化率Pの近似値となる。次に、
並列加速率を説明する。プログラムの並列化された部分
が何台のプロセッサで並列実行処理されるかは、性能向
上のための重要な問題であり、例えば、100台のプロ
セッサで実行する場合、並列化率がいくら高くても2台
のプロセッサしか有効に使えないのであれば、高々2倍
の性能しか得ることができない。そこで、並列度を測る
指標として並列加速率を考える。
【0041】プログラムの並列化された部分の実行時間
と同じ部分を逐次実行した時間との比率を並列加速率と
呼ぶ。並列処理のオーバーヘッドが無視でき、一定台数
のプロセッサが有効に計算を行っている場合には、その
台数が並列加速率になる。また、各時点で有効に計算を
行っているプロセッサの数が変化する場合には、プロセ
ッサ数の平均(積分)が並列加速率になる。ここで、並
列処理のオーバーヘッドが無視できる場合には、並列加
速率βは定義により次の式を満たす。
【0042】 1≦β≦N (ここで、Nはプロセッサ数を示す) マルチプロセッサ・システムでは、パラレルリージョン
内の部分について並列加速率を考え、該並列加速率β
は、次式により表される。 β=(B+C+D+E+F+G+H+I+J+K)/(B+MAX(X,Y)+I+MAX(Ji)+
K) ここで、X=C+MAX(Di)+E,Y=F+MAX
(Gi)+Hとする。
【0043】さらに、負荷バランスを説明する。並列処
理では、プロセッサにかかる負荷のバランスが実行性能
に影響する。並列処理の実行中は、データの整合性を保
つために適当なタイミングで同期を取る必要があり、コ
ンパイラは、特に指定されない限りリージョンの開始時
と終了時には同期を取るようになっている。開始時の同
期から終了時の同期まで各プロセッサの実行時間が等し
くない場合には、実行時間の短いプロセッサは他のプロ
セッサの終了を待つことになり、この待ち時間が少なけ
れば少ないほど、プログラムの実行性能は向上すること
になる。
【0044】ある同期の時点から次の同期の時点までの
時間をTとし、この間にN台のプロセッサが実行してい
る場合、負荷バランスの比率(負荷バランス率)γを次
のように定義する。 γ=ΣW/(N×T),0≦γ≦1 次に、転送と演算の並列実行を説明する。例えば、拡張
されたフォートランにおける "SPREAD MOVE"文や"OVERL
APFIX"文を転送文と呼ぶが、これらの転送文と"MOVE W
AIT"文を併用することで非同期に転送を行うことができ
る。ここで、非同期とは、転送の終了を待つことなく制
御がプログラムに戻って来ることを意味し、この機能を
利用して、転送文と"MOVE WAIT"文との間に計算を行う
ことで転送と演算を同時に行うことが可能となる。
【0045】転送量が一定であれば、転送文が実行され
てから完了するまでの時間はほぼ一定となり、従って、
転送文と"MOVE WAIT"文との間の計算時間が長くなれば
該"MOVE WAIT"文で待つ時間(転送待ち時間)は短くな
る。これを転送時間が演算により隠されたと呼ぶ。"MOV
E WAIT"文が実行された時点で転送が完了している場合
には、該"MOVE WAIT"文は直ちに終了し、プログラムの
次の部分が実行される。これを転送が演算によって完全
に隠された状態と呼ぶ。このように、転送を演算で隠す
ことは、マルチプロセッサ・システムで実行する並列プ
ログラムの性能向上に非常に有効である。
【0046】次に、並列化情報の計算方法および並列化
情報の意味付けを説明する。なお、以下の説明におい
て、Pは並列化率, βは並列加速率, γは負荷バランス
率, そして, Mは非同期転送率を示す。また、Cp はプ
ログラムの並列化できる部分のコスト, Cs は並列化で
きない部分コスト(Ca =Cp +Cs), Nはプロセッサ
数, Jはプログラムマスタ割り込み回数, Rはリージョ
ンマスタ割り込み回数,Aは全割り込み回数, Jw はプ
ログラムマスタ待ち状態割り込み回数, Rw はリージョ
ンマスタ待ち状態割り込み回数, そして, Rm はリージ
ョンマスタ転送待ち状態割り込み回数を示している。
【0047】まず、プログラムマスタ割り込み回数J
は、プログラムの実行にかかる時間を示しているので、
次の式(1) のようになる。 J=Cs +Cp /β …… (1) また、リージョンマスタ割り込み回数Rは、冗長部を除
いた実行全体にかかる時間の総和を示しているので、次
の式(2) のようになる。
【0048】R=Cs +Cp …… (2) さらに、全割り込み回数Aは、並列化された部分につい
て、プロセッサ数の時間を消費したと考えられるので、
次の式(3) のようになる。 A=Cs +(Cp /β)×N …… (3) そして、並列化率Pは、その定義から、次の式(4) のよ
うになる。
【0049】P=Cp /(Cs +Cp) …… (4) 従って、J, R, A, Nが既知である場合には、Cs,C
p,P, βに関する連立方程式であるから、解くことがで
き、上記式(1) 〜(4) により、並列化率Pおよび並列加
速率βは、 P=1−(N×J−A)/(R×(N−1)) β=((N−1)×(R−J))/(A−J)+1 となる。
【0050】また、負荷バランス率γは、リージョンマ
スタ待ち状態割り込み回数Rw とリージョンマスタ割り
込み回数Rとの比で表すと、 0 ≦ γ=Rw /R ≦ 1 となる。さらに、非同期転送率Mは、リージョンマスタ
転送待ち割り込み回数Rm とリージョンマスタ割り込み
回数Rとの比で表すと、 0 ≦ M=Rm /R ≦ 1 となる。
【0051】図14および図15は本発明の並列処理シ
ステムの動作解析装置により得られた出力の一例を示す
図である。本発明に係る並列処理システムの動作解析装
置による出力(解析出力)は、並列化情報(PARALLEL IN
FORMATION), 総合情報(SYNTHESIS INFORMATION),およ
び,プロセッサ情報(PROCESSOR INFORMATION) を含んで
いる。
【0052】図14に示されるように、並列化情報は、
並列化率(PARALLELIZATION RATIO:P),並列加速率(PARA
LLEL TO SERIAL SPEED RATIO:β),負荷バランス率(LOAD
BALANCE:γ),および,非同期転送率(ASYNCHRONOUS TRA
NSFER RATIO: M) の情報を有している。ここで、並列
化率Pは、その値が大きいほど並列化が進んでいること
を示し、並列加速率βは、その値が大きいほどプロセッ
サを有効に利用していることを示す。また、負荷バラン
ス率γは、その値が小さいほどバランスがとれているこ
とを示し、非同期転送率Mは、その値が小さいほど転送
が演算に比べて無視できることを示す。なお、図14に
おいては、プロセッサの数(NUMBER OF PROCESSOR),性能
情報(PERFORMANCE INFORMATION),および, 割り込みタイ
マの設定値(INTERVAL TIMER VALUE)等も出力されるよう
になっている。総合情報は、全プロセッサを総合した以
下の情報を関数毎にカウントとパーセントの2種類で表
示する。すなわち、総合情報は、図15に示されるよう
に、プログラムマスタでの割り込み回数(PM),プログ
ラムマスタでの待ち状態割り込み回数(PMW),プログ
ラムマスタでの転送待ち状態割り込み回数(PMMW),
リージョンマスタでの割り込み回数(RM),リージョン
マスタでの待ち状態割り込み回数(RMW),リージョン
マスタでの転送待ち状態割り込み回数(RMMW),全プ
ロセッサでの割り込み回数(ALL),全プロセッサでの
待ち状態割り込み回数(AW),および, 全プロセッサで
の転送待ち状態割り込み回数(AMW) をカウント値お
よびパーセント値で示すようになっている。ここで、プ
ロセッサ情報は、図15に示すマスタプロセッサの総合
情報に対応する情報が各プロセッサに対して出力された
ものである。
【0053】
【発明の効果】以上、詳述したように、本発明の並列処
理システムの動作解析装置によれば、マルチプロセッサ
・システムにおける並列処理の実行情報を効率良く取得
することができる。
【図面の簡単な説明】
【図1】本発明に係る並列処理システムの動作解析装置
の一実施例を模式的に示すブロック図である。
【図2】図1の並列処理システムの動作解析装置におけ
る測定ライブラリの構成を示す図である。
【図3】本発明の並列処理システムの動作解析装置にお
ける実行プログラムの実行処理の一例を示すフローチャ
ートである。
【図4】図3における測定ライブラリの初期化処理の一
例を示すフローチャートである。
【図5】図3における測定ライブラリの再初期化処理の
一例を示すフローチャートである。
【図6】図3における測定ライブラリの終了処理の一例
を示すフローチャートである。
【図7】本発明の並列処理システムの動作解析装置にお
ける割り込みルーチンの一例を示すフローチャートであ
る。
【図8】本発明の並列処理システムの動作解析装置にお
ける解析ルーチンの一例を示すフローチャートである。
【図9】並列処理システムの一例を概略的に示す図であ
る。
【図10】図9に示す並列処理システムの動作の一例を
示す図である。
【図11】図10に示す並列処理システムの動作を説明
するための図である。
【図12】図11に示す親プロセッサおよび子プロセッ
サの状態遷移を示す図である。
【図13】図9に示す並列処理システムの動作の他の例
を示す図である。
【図14】本発明の並列処理システムの動作解析装置に
より得られた出力の一例を示す図(その1)である。
【図15】本発明の並列処理システムの動作解析装置に
より得られた出力の一例を示す図(その2)である。
【符号の説明】
1…ソース 2…コンパイラ 3…オブジェクト 4…測定用ライブラリ 5…リンカ 6…実行プログラム 7…情報ファイル 8…解析プログラム 9…解析出力 20…プロセッサ・エレメント(PE) 21…クロスバー・ネットワーク 22…コントロール・プロセッサ(CP) 23…システム記憶装置(SSU:RAMディスク,外
部メモリ) 24…ジェネラル・システム・プロセッサ(GSP) 25…ディスク装置 41…制御ルーチン 42…割り込みルーチン 201…データ転送ユニット(DTU) 202…主記憶装置 203…スカラー演算ユニット(SU) 204…ベクトル演算ユニット(VU) 231…タイマ 232…時計

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 逐次実行状態,並列冗長実行状態,およ
    び,並列実行状態などの実行状態を有する並列処理シス
    テムの動作解析装置であって、 前記並列処理システムにおけるプログラム実行時の動作
    情報を、割り込み処理により得るようにしたことを特徴
    とする並列処理システムの動作解析装置。
  2. 【請求項2】 前記並列処理システムは、同期を取るた
    めの待ち合わせ機能を有していることを特徴とする請求
    項1の並列処理システムの動作解析装置。
  3. 【請求項3】 前記同期を取るための待ち合わせ機能
    は、バリア同期待ち機能を備えている請求項2の並列処
    理システムの動作解析装置。
  4. 【請求項4】 前記並列処理システムは、ハードウェア
    による非同期転送機能を有し、且つ、該非同期転送機能
    を使用できる言語仕様を有していることを特徴とする請
    求項1の並列処理システムの動作解析装置。
  5. 【請求項5】 前記非同期転送機能を使用する言語仕様
    は、高級言語で構成されている請求項4の並列処理シス
    テムの動作解析装置。
  6. 【請求項6】 前記高級言語は、拡張されたフォートラ
    ン言語である請求項5の並列処理システムの動作解析装
    置。
  7. 【請求項7】 前記並列処理システムの動作解析装置
    は、並列化率(P)をP=1−(N×J−A)/(R×
    (N−1))〔ここで、Nはプロセッサ数, Jはプログ
    ラムマスタ割り込み回数, Aは全割り込み回数, そし
    て,Rはリージョンマスタ割り込み回数を示す〕により
    算出するようにしたことを特徴とする請求項1の並列処
    理システムの動作解析装置。
  8. 【請求項8】 前記並列処理システムの動作解析装置
    は、並列加速率(β)をβ=((N−1)×(R−
    J))/(A−J)+1〔ここで、Nはプロセッサ数,
    Rはリージョンマスタ割り込み回数, Jはプログラムマ
    スタ割り込み回数,そして,Aは全割り込み回数を示
    す〕により算出するようにしたことを特徴とする請求項
    1の並列処理システムの動作解析装置。
JP30020593A 1993-11-30 1993-11-30 並列処理システムの動作解析装置 Expired - Fee Related JP3480973B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP30020593A JP3480973B2 (ja) 1993-11-30 1993-11-30 並列処理システムの動作解析装置
US09/004,505 US6308316B1 (en) 1993-11-30 1998-01-08 Apparatus for analyzing operations of parallel processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30020593A JP3480973B2 (ja) 1993-11-30 1993-11-30 並列処理システムの動作解析装置

Publications (2)

Publication Number Publication Date
JPH07152614A true JPH07152614A (ja) 1995-06-16
JP3480973B2 JP3480973B2 (ja) 2003-12-22

Family

ID=17881994

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30020593A Expired - Fee Related JP3480973B2 (ja) 1993-11-30 1993-11-30 並列処理システムの動作解析装置

Country Status (2)

Country Link
US (1) US6308316B1 (ja)
JP (1) JP3480973B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012137817A (ja) * 2010-12-24 2012-07-19 Hitachi Ltd 性能分析方法、計算機システム及び性能分析プログラム

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9825102D0 (en) * 1998-11-16 1999-01-13 Insignia Solutions Plc Computer system
US7392431B2 (en) * 1999-02-19 2008-06-24 Texas Instruments Incorporated Emulation system with peripherals recording emulation frame when stop generated
US6813760B1 (en) * 2000-11-30 2004-11-02 Nortel Networks Limited Method and a tool for estimating probability of data contention in a multi-processor shared-memory system
JP2003050721A (ja) * 2001-08-08 2003-02-21 Fujitsu Ltd 並列効率計算方法及び装置
US7007268B2 (en) * 2001-08-20 2006-02-28 Sun Microsystems, Inc. Method and apparatus for debugging in a massively parallel processing environment
US7146064B2 (en) * 2001-12-21 2006-12-05 Gsi Group Corporation System and method for producing optical circuits
US6957325B1 (en) 2002-07-01 2005-10-18 Mindspeed Technologies, Inc. System and method for detecting program hazards in processors with unprotected pipelines
JP2004054680A (ja) * 2002-07-22 2004-02-19 Fujitsu Ltd 並列効率計算方法
US7577816B2 (en) * 2003-08-18 2009-08-18 Cray Inc. Remote translation mechanism for a multinode system
US7366873B1 (en) 2003-08-18 2008-04-29 Cray, Inc. Indirectly addressed vector load-operate-store method and apparatus
US7735088B1 (en) 2003-08-18 2010-06-08 Cray Inc. Scheduling synchronization of programs running as streams on multiple processors
US7503048B1 (en) 2003-08-18 2009-03-10 Cray Incorporated Scheduling synchronization of programs running as streams on multiple processors
US7519771B1 (en) 2003-08-18 2009-04-14 Cray Inc. System and method for processing memory instructions using a forced order queue
US7421565B1 (en) * 2003-08-18 2008-09-02 Cray Inc. Method and apparatus for indirectly addressed vector load-add -store across multi-processors
US7437521B1 (en) 2003-08-18 2008-10-14 Cray Inc. Multistream processing memory-and barrier-synchronization method and apparatus
US7334110B1 (en) 2003-08-18 2008-02-19 Cray Inc. Decoupled scalar/vector computer architecture system and method
US7543133B1 (en) 2003-08-18 2009-06-02 Cray Inc. Latency tolerant distributed shared memory multiprocessor computer
US7743223B2 (en) * 2003-08-18 2010-06-22 Cray Inc. Decoupling of write address from its associated write data in a store to a shared memory in a multiprocessor system
US8307194B1 (en) 2003-08-18 2012-11-06 Cray Inc. Relaxed memory consistency model
US7478769B1 (en) 2005-03-09 2009-01-20 Cray Inc. Method and apparatus for cooling electronic components
JP4856983B2 (ja) * 2006-03-02 2012-01-18 株式会社日立製作所 ストレージシステム及びスケジューリング方法
US8108844B2 (en) * 2006-06-20 2012-01-31 Google Inc. Systems and methods for dynamically choosing a processing element for a compute kernel
JP2008077428A (ja) * 2006-09-21 2008-04-03 Fujitsu Ltd 負荷分散装置、負荷分散方法及び負荷分散プログラム
JP4940996B2 (ja) * 2007-02-23 2012-05-30 富士通セミコンダクター株式会社 プロファイリング装置およびプロファイリングプログラム
US8065681B2 (en) * 2007-10-12 2011-11-22 International Business Machines Corporation Generic shared memory barrier

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5977565A (ja) 1982-10-26 1984-05-04 Nec Corp 情報処理装置
JPS6116324A (ja) 1984-07-03 1986-01-24 Mitsubishi Electric Corp 非同期デ−タ転送方式
JPH0760169B2 (ja) 1984-11-02 1995-06-28 三洋電機株式会社 論理回路のシミュレーション方法及びシミュレータ
US4872121A (en) 1987-08-07 1989-10-03 Harris Corporation Method and apparatus for monitoring electronic apparatus activity
JPH02128243A (ja) 1988-11-09 1990-05-16 Agency Of Ind Science & Technol 並列計算機のcpuヒストリ回路
US5361352A (en) * 1989-11-27 1994-11-01 Hitachi, Ltd. Method for debugging in a parallel computer system and system for the same
JPH03184138A (ja) 1989-12-13 1991-08-12 Hitachi Ltd モニタリング方法
JP3014122B2 (ja) * 1990-06-20 2000-02-28 ミサワホーム株式会社 ユニット住宅の基礎部分の換気構造
JPH0462644A (ja) 1990-06-30 1992-02-27 Agency Of Ind Science & Technol 並列計算機における稼働率の測定方式
US5245638A (en) * 1990-10-29 1993-09-14 Iowa State University Research Foundation, Inc. Method and system for benchmarking computers
US5442772A (en) 1991-03-29 1995-08-15 International Business Machines Corporation Common breakpoint in virtual time logic simulation for parallel processors
JPH052508A (ja) 1991-06-21 1993-01-08 Fujitsu Ltd プログラム動作解析装置
JPH056344A (ja) 1991-06-28 1993-01-14 Fujitsu Ltd プログラム走行情報採取処理方式
JP2622219B2 (ja) 1991-12-26 1997-06-18 富士通株式会社 並列計算機の性能評価方法及びその装置
JP3256567B2 (ja) 1992-02-10 2002-02-12 富士通株式会社 Atm網におけるコネクションレスメッセージ課金システム
US5483468A (en) 1992-10-23 1996-01-09 International Business Machines Corporation System and method for concurrent recording and displaying of system performance data
US6185223B1 (en) 1996-12-04 2001-02-06 Conexant Systems, Inc. Apparatus and method for providing fire wall protection for systems in communication with an a synchronous transfer mode system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012137817A (ja) * 2010-12-24 2012-07-19 Hitachi Ltd 性能分析方法、計算機システム及び性能分析プログラム

Also Published As

Publication number Publication date
JP3480973B2 (ja) 2003-12-22
US6308316B1 (en) 2001-10-23

Similar Documents

Publication Publication Date Title
JP3480973B2 (ja) 並列処理システムの動作解析装置
US8683468B2 (en) Automatic kernel migration for heterogeneous cores
EP2707797B1 (en) Automatic load balancing for heterogeneous cores
JP4042604B2 (ja) プログラム並列化装置,プログラム並列化方法およびプログラム並列化プログラム
US8387034B2 (en) System and method for the distribution of a program among cooperating processing elements
US8387033B2 (en) System and method for the distribution of a program among cooperating processing elements
van der Wolf et al. An MPEG-2 decoder case study as a driver for a system level design methodology
WO2006022204A1 (ja) ソースプログラムの分析装置および方法
Bobrek et al. Stochastic contention level simulation for single-chip heterogeneous multiprocessors
MacDougall Instruction-level program and processor modeling
Cedersjö et al. Software code generation for dynamic dataflow programs
Ruggiero Throttle Mechanisms for the Manchester Dataflow Machine
Certner et al. A practical approach for reconciling high and predictable performance in non-regular parallel programs
Huynh et al. TP-PARSEC: A task parallel PARSEC benchmark suite
WO2018032897A1 (zh) 报文转发性能评估方法、装置和计算机存储介质
WO2021031545A1 (zh) 一种用于异构集群环境中的自由能微扰计算调度方法
Armstrong et al. ExM: High level dataflow programming for extreme-scale systems
JP2663893B2 (ja) アーキテクチャ・シミュレータ
Maghazeh et al. Cache-aware kernel tiling: An approach for system-level performance optimization of GPU-based applications
Skaletsky et al. Flexible binary instrumentation framework to profile code running on Intel GPUs
Rong et al. Performance study of a minimalistic simulator on XSEDE massively parallel systems
Broberg et al. Performance optimization using extended critical path analysis in multithreaded programs on multiprocessors
JP2754495B2 (ja) ログ/サンプリングデータの解析方法
JPH02176938A (ja) 機械語命令最適化方式
Littin et al. Block based execution and task level parallelism

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20010410

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071010

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081010

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees