JPH03218539A - 並列計算機システムにおけるデバッグ方法 - Google Patents

並列計算機システムにおけるデバッグ方法

Info

Publication number
JPH03218539A
JPH03218539A JP2316124A JP31612490A JPH03218539A JP H03218539 A JPH03218539 A JP H03218539A JP 2316124 A JP2316124 A JP 2316124A JP 31612490 A JP31612490 A JP 31612490A JP H03218539 A JPH03218539 A JP H03218539A
Authority
JP
Japan
Prior art keywords
program
execution
processor
queue
data
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.)
Pending
Application number
JP2316124A
Other languages
English (en)
Inventor
Kyoko Iwazawa
岩澤 京子
Giichi Tanaka
義一 田中
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2316124A priority Critical patent/JPH03218539A/ja
Publication of JPH03218539A publication Critical patent/JPH03218539A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、並列計算機システムに係わり、特に各プロセ
ッサエレメント用に書かれたユーザープログラムの並列
処理に固有のバグを取り除くデバッグ処理制御方法とそ
のためのシステムに関する。
〔従来技術〕
計算機速度の向上のために、複数のプロセッサエレメン
トを同時に動かす、並列計算機システムが考案されてい
る。
従来の並列計算機システムには、全てのプロセッサ・エ
レメントが共有のメモリに接続され、そのメモリを介し
てデータを受け渡しするタイプのものと,各プロセッサ
・エレメントがローカルメモリを有し,ネットワークを
介して他のプロセッサ・エレメントに直接データを転送
するタイプのものとがある。前者では、データの受け渡
し時の共有メモリセクセス順序を制御するために同期制
御がなされ、後者では、他のプロセッサ・エレメントか
らのデータの送信をそのデータの受信の順序を制御する
ために、データ送受信の制御がなされる。
並列計算機システムに対するユーザインタフェイスとし
て、フォートラン(FORTRAN)のような従来の言
語が流用されたり、又は、専用言語が用意されている。
これらの言語を用いてプログラムをコーディングする場
合、並列処理に固有のバグがプログラムに入りこむこと
がある。並列処理に固有のバグには、共有するメモリを
アクセスする時に必要な順序付けのための同期制御の不
正(抜けも含む)による同一アドレスへの複数プロセッ
サからの定義・使用によるものや、分散メモリに対して
プログラムを書き換える時に入りこむデータ送受信の不
正(抜けも含む)やアルゴリズムの誤りがある。
特に、同期制御がさ九ずに並列処理が行なわれるときは
、各処理の実行順序は保証されず、実行するたびに実行
順序が異なり,再現性が保証されない。
このような並列計算機のデバッグ方法として確立した手
法があるわけではないが、これらのバグを取り除くため
にデバッグ方法も幾つか考えられている。製品として世
に出ているものに,SEQENT COMPUTER 
SYSEMS社の”Pdbx ParallelDeb
ugger”があり、製品パンフレット“PdbxPa
rallel Debugger for Balan
ce ComputerSysteIIIs”に解説が
記されている。この製品は並列実行時にPsst/Wa
itの同期制御についてトレースを出力することにより
並列動作状況を認識させる手段を用意している。また,
プロセッサの実行を途中で中断させる機能を持っている
。 同期制御の不正によるバグを含むプログラムに対し
て、安定した再現性のある状態でデバッグするためには
、並列に処理を行わず、逐次に実行して、その時のデー
タの状態から同期制御の不良を検出することが望ましい
デバッグ時に処理を逐次的に実行する方法はJP−1−
106234に開示されている。しかしここでは,一度
全処理を並列に実行させ,そのときのトレースデータを
利用して、逐次に実行すべき処理の順序を決めている。
〔発明が解決しようとする課題〕
この従来技術では、逐次実行する前に並列に実行する必
要がある。また、一般に,並列計算機システム用のプロ
グラムでは、データの送受信や同期制御の実行文がユー
ザープログラムに記述されているため、記述されている
ため、複数のこれらのプログラムを逐次実行させると一
つのプログラムの実行中に送られることの無いデータを
待ち続けて、計算を進めることができないというデータ
待ち状態になり,そのプログラムの実行が進行しなくな
るという問題がある。すなわち、正常なプログラムであ
るにもかかわらずプログラムの実行が進まなくなる。
本発明の目的は、上記問題点を解決し,並列に実行させ
るためにプロセッサごとに記述したプログラムを、より
簡単な方法で逐次に実行させる方法を提供することにあ
る。
本発明の他の目的は、このようなプログラムを正常なデ
ータ送受信や同期制御によりデータ待ち状態に陥ること
なく,逐次に実行させる方法を提供することにある。
また、本発明の他の目的は、通常実行用ライブラリとデ
バッグ実行用ライブラリを準備し、ユーザープログラム
のメインプログラムを修正することなく,デバッグ処理
を行なうことができるデバッグ処理制御方法とそのため
のシステムを提供することにある。
〔課題を解決するための手段〕
上記目的達成のため、本発明では、次の方法により並列
処理用プログラムを逐次に実行する。
本実施例の動作の概要をまず述べる。ホスト計算機用ユ
ーザープログラムの中で呼び出されるデバッグ処理制御
ルーチンが、以下のような処理を実行する: (1)初期化として、起動可能状態とされた全プロセッ
サエレメントが、ホスト計算機により参照される起動テ
ーブルまたはキューに登録される。
(2)起動可能なプロセッサエレメントのうち任意の1
台のプロセッサエレメントが起動され、そのプロセッサ
エレメントが、「データ待ち状態」か「処理終了状態』
になるまで対応するプログラムを実行し、その状態と再
開アドレスをホスト計算機に渡して停止する。
(3)実行可能なプロセッサエレメントが無くなるまで
、(2)の処理を繰り返す間に同時に実行されるべきプ
ロセッサエレメントを1台ずつ動かす。
(4)(2)の起動可能なプロセッサエレメントのうち
起動をかける1台を選択するのに,起動テーブルまたは
キューの初期設定を様々に変えて、本来並列に実行すべ
き処理に対してプロセッサエレメントの起動順序を変化
させる。
〔作用〕
処理(1)により、ホスト計算機のデバック処理制御ル
ーチンにより、全プロセッサエレメントが起動可能な状
態として取り扱える状態にされる。
処理(2)と(3)により、実際にプロセッサエレメン
トが1台ずつ動かすことができる。「データ待ち状態」
となったプロセッサエレメントが停止してホスト計算機
に再開アドレススとともにその状態を通知し、通知を受
け取ったホスト計算機が他のプロセッサに起動をかける
。このように、分散メモリに必要なデータの送受信や共
有メモリアクセスの順序付けに必要は同期制御を含むプ
ロセッサエレメントごとのサブプログラムが、分散メモ
リに必要なデータの送受信や共有メモリアクセスの順序
付けに必要な同期制御で指定された順序を守りながら1
台ずつのプロセッサエレメントで実行されることが可能
となる。また,「データ待ち状態」で再開アドレスを渡
したプロセッサエレメントを起動テーブルまたはキュー
に登録し、他のプロセッサエレメントを実行したことに
よりデータが到着し、当該プロセッサエレメントを実行
することが可能となった場合には,そのプロセッサエレ
メント以下起動をかけることができる。
処理(4)により、ユーザープログラムに記述されたデ
ータ送受信や同期制御に従う範囲で,本来並列に実行す
べきプロセスの順番を様々に変化させることができる。
これにより、並列実行時に起こり得る様々な実行順序を
1台のプロセッサエレメントのみが稼動している状態で
実現させることができ、従来の1台のプロセッサエレメ
ントにおけるデバッグと類似の対話的に処理を一時中断
したり、データの出力を行うといった手法を使うことも
可能となる。
これらの機能により、各々の状況のトレースデータから
、並列に実行すると結果不正となる計算や、同期制御の
誤り(Send/Recieveの抜けや,対応関係の
不一致)を検出することが可能となり、並列処理の異常
終了や結果不正の原因であるユーザープログラムのバグ
の除去を容易にすることができる。
以下、実施例の詳細を述べる。
〔実施例〕
以下、本発明の一実施例によるデバッグ処理制御システ
ムをローカル記憶を有する分散型並列計算機を対象とし
て添付図面を参照しつつ説明する。
第2図は、デバッグ処理制御システムを含む並列計算機
システムの概要を示す。
ホスト計算機10は主記憶12.I/OProcess
or 1 4、インストラクションプロセッサ16を有
する。主記憶には、実行プロセッサキュ−12−1、終
了判定キュー12−2、mainProgram 1 
3 − 1 .通常処理用とデバッグ処理の2つのライ
ブラリ13−2.13−3が格納されている。I/Oデ
バイス17はI/Oプロセッサ14に接続されている。
アレイコントローラ22は,インストラクションプロセ
ッサ16に接続されている。ホスト計算機10がアレイ
コントローラ22を通してn+1個のプロセッサエレメ
ント24−0〜24−nを制御する。各プロセッサレエ
メントはローカル記憶を有し、プロセッサ番号が割当て
られている。
各プロセッサエレメントはネットワーク28を介して互
いにデータの送受信を行なう。各プロセッサエレメント
は他のプロセッサエレメントのローカル記憶26−O〜
26−nをアクセスすることはできないが、プロセッサ
エレメント群とホスト計算機を接続するアレイコントロ
ーラ22を介してホスト計算機10にある主記憶21を
自由にアクセスすることができる。
第3図はこのような並列計算機システムに対するユーザ
プログラムのメインプログラムの一例を示す。メインプ
ログラム13−1がホスト計算機によって実行されると
き、メインプログラム13−1のなかの文31により各
プロセッサエレメントにサブプログラムを主記憶12か
らロードするためのロードルーチン33がロードモジュ
ール名称即ち“SUBI”を引数として呼び出される。
次に,文32により、プロセッサエレメント用サブプロ
グラムの入り口名“SUB 1”を引数として、プロセ
ッサエレメントに起動をかけるための通常処理制御ルー
チン34が呼び出される。
本発明では,第8図に示すように,通常処理時に全プロ
セッサエレメントを一斉に起動させるための通常処理制
御ルーチンを含むライブラリ13−3と、デバッグ処理
に各プロセッサエレメントを順番に起動させるためのデ
バッグ処理制御ルーチンを含むライブラリ13−2が用
意されている。
2つのライブラリ13−2と13−3は、両制御ルーチ
ン除いて同じである。両ルーチンには同じ入口名が与え
られており、メインソースプログラム15−1がコンパ
イルされた後、処理目的に従ってライブラリ13−2o
r 13−3がコンパイルされたメインプログラム15−2
にリンクされる。従ってデバッグ処理用にメインソース
プログラム15−1が修正された後、コンパイルされラ
イブラリ13−2をリンクされることは必要ない。また
、デバッグ処理終了後再びメインソースプログラム15
−1が元に戻され、コンパイルされ,ライブラリ13−
3とリンクされる必要もない。ユーザーは処理目的によ
ってライブラリを選択し,コンパイルメインプロダラム
とリンクすれば良い。これにより,デバッグ処理等を容
易に短時間で行なうことができる。
第1図は、デバッグ処理制御ルーチン34の処理の概要
を示す。ここで用いている実行プロセッサキュー12−
1の構成を第4図に示す。実行プロセッサキュー12−
1の各要素は実行されるべきプロセッサの番号を示すプ
ロセッサ番号41、そのプロセッサで実行されるすべき
サブプログラムの実行開始アドレス42、及び次のキュ
ー要素を示すためのポインタ43を含む。
第1図のデバッグ処理制御ルーチン34の概要を、第5
図のサブプログラムを各プロセッサエレメントが実行す
る場合を例にとって説明する。
Fig.3のメインプログラムが実行され、文31でロ
ードルーチン33が実行され各サブプログラムが主記憶
にから対応するプロセッサエレメントのローカル記憶2
6−i (i=o,n)にロードされる。
文53はデータの送信のための送信処理ルーチンの呼び
出しを表す。文53において、第1引数の“N + 1
 ”はデータの送り先プロセッサエレメントのプロセッ
サ番号を示し、第2引数の“N+1″は送信データを区
別するための識別子を表し,第3引数の゛′R″は送信
データを示す。文54はデータの受信のための受信処理
ルーチンの呼び出しを表す。文54において、第1引数
のJ’ N 77は、受信データを区別するための識別
子を表し、第2引数の“p I+は受信データを示す。
この受信ルーチンが呼び出されたときに、データ“P”
が届いていない場合は、プロセッサエレメントは何もし
ないでデータ“P ljの到着を待つデータ待ち状態と
なる。文56は,計算結果を出力するためのダンプルー
チンの呼び出しを表し、第1引数1( N ljはプロ
セッサ番号を、第2引数“A ”は出力配列を、第3引
数”N−1”と第4引数IN 3 1Fは出力配列の要
素と個数を表す。
第5図のサブルーチン50の仮引数j(A”とit N
 I+は、51の宣言によりホスト計算機の主記憶にあ
ることが分かる。6N″はプロセッサ番号を表している
。プロセッサ番号の小さい順又は大きい順に優先順位を
割当てた時、このサブプログラム50が各プロセッサエ
レメントにより実行される場合を,第6AとB図を参照
して説明する。
メインプログラム13−1中の文32が実行され,デバ
ッグ処理制御ルーチン34が呼び出される。
デバッグ処理制御ルーチン34では、まずステップ1で
、ホスト計算1!110はサブプログラム50の入り口
アドレスを実行開始アドレスとして実行プロセッサキュ
ー12−1に全プロセッサエレメントのステータスを登
録する。プロセッサ番号の昇順の時には第6A図の61
、降順の時には第6B図の65のようになる。終了判定
キュー12−2には、データ送受信時のデッドロック状
態を検出するために、適当な時期例えばスタート時にお
ける実行プロセッサキュー12−1の状態が保存される
。キュー12−2は終了状態にないプロセッサエレメン
トの各々が,データの待ちのデッドロック状態か、通常
の実行状態かを、判定するために使用される。従って,
終了判定キュー12−2も実行プロセッサキュー12−
1と同様に第4図示すような形式をしている。
ステップ2で実行プロセッサキュー12−1に登録され
ているプロセッサエレメントの中から任意の1台が選ば
れ、これに対応するキュー要素がキューから削除され、
このプロセッサエレメントに起動をかける。
昇順の時はまずプロセッサ番号Oのプロセッサエレメン
トが選択され、これに起動をかけると文54でデータ待
ちとなる。一方降順の時は、まずプロセッサ番号Nのプ
ロセッサエレメントが選択され起動される、実行プロセ
ッサキューからはプロセッサNに対するキュー要素が削
除される。
ステップ1の初期化と、ステップ2の選び方により、各
プロセッサエレメント間の実行順序を変えることができ
る。この例のように単純にプロセッサ番号の昇順や降順
に実行プロセッサキューの要素を並べても良いし、ラン
ダムに並べたり、ある固有のプロセッサを先頭にするこ
ともできる。
起動をかけられたプロセッサエレメントは、実行状況の
把握に必要な送受信データに関するデータや選択された
ローカルメモリにある変数や配列の値をトレースデータ
として出力しながら、データ待ちか終了となるまで実行
する。
プロセッサエレメントに起動をかけたら、ステップ3で
このプロセッサエレメントが「実行終了」か「データ待
ち」となった後、再実行アドレスが返されるまで待つ。
「実行終了」が返されたら、制御ステップ4を経由して
ステップ5に進む。ステップ5では実行プロセッサキュ
ー12−1が空であればデバッグ処理を終了し、まだ実
行プロセッサキュー12−1にプロセッサエレメントが
登録されていれば、ステップ9で終了判定キュー12−
2を更新した後制御はステップ2に戻る。
一方「データ待ち』が返された時は,制御ステップ4を
介してステップ6に進む。ステップ6では当該プロセッ
サエレメントのプロセッサ番号は開始アドレスとともに
実行プロセッサキュー12−1の最後に登録される6 したがって、昇順の場合にはステップ6で文54のアト
レスが実行プロセッサキューの最後に登録され,実行プ
ロセッサキューは第6A図の62のようになる。
一方、lIiJi@の時はまず、プロセッサNが処理を
実行するが、文54でデータ待ちとなり,ステップ6で
実行プロセッサキューは第6B図の66のようになる。
その後、ステップ7が実行される。
ステップ7と後続のステップ8でデバッグ処理の終了判
定が行なわれる。実行プロセスキュー12−2に登録さ
れたプロセッサエレメントが終了判定キュー12−2に
登録されたプロセッサエレメントと等しく、かつ、プロ
セッサエレメントごとに、両キューの開始アドレスが等
しければ、プロセッサエレメントが全て「データ待ち」
のため実行できるものがないという、デッドロック状態
になったことを示している。この場合にはこれらのプロ
セッサエレメントがデッドロック状態にあることを示す
データをI/Oデバイス17に出力する。また,実行プ
ロセッサキュー12−1と終了判定キュー12−2のプ
ロセッサエレメントが異なるときは、全プロセッサエレ
メントの実行可能性が否定されたわけではないので,制
御はステップ9を介してステップ2に戻り,次のプロセ
ッサエレメントを起動させる。プロセソサエレメントの
開始アドレスが異なっていたり又はステップ5で実行プ
ロセッサキューが空でない場合には、ステップ9が実行
される。ステップ9では実行プロセッサキューの内容が
終了判定キューに登録される。また、昇順の例では終了
判定キュー12−2は62の状態に更新されて、制御は
ステップ2に戻り、次にプロセッサ1を起動する。プロ
セッサ1が実行されるときには、既にプロセッサ0が文
53によりプロセッサlが受信すべきデータを送信して
いるため、文54でデータ待ちとはならずに、最後まで
処理を進め実行終了となる。従ってプロセッサ1は登録
されず、実行プロセッサキュー12−1は第6A図の6
3のようになるうこのようにしてデバッグ処理を進める
と、プロセッサOをキュー12−1に残してデバッグ処
理は終了する。
降順の場合には、プロセッサNの終了後のステップ2で
プロセッサN−1が起動される。この時も,並列実行状
況を把握するために、前述したようなトレースデータを
出力する。この場合は、文54で受信されるべきデータ
は送信されていないため、全プロセッサエレメントを一
巡し、実行プロセッサキュー12−1は第6B図の67
のようになる。二巡目において、プロセッサNを文54
から開始すると、一巡目のプロセッサN−1の文53に
より既に受信データが送信されているため、最後まで実
行し、終了する。
従って実行プロセッサキュー12−1は第6B図の68
のようになる。このように、二巡目では次々にプロセッ
サエレメントにより受信データが受信され、最後にはプ
ロセッサOのみが実行プロセッサキュー12−1に残る
プロセッサ番号の昇順に行なっても、降順に行なっても
、終了したとき実抑プロセッサキュー12−1が空でな
い状態で,プロセッサ0がデータ待ちのままであること
が分かる。これは明らかにソースプログラムにバグがあ
ることを示し、他のプロセッサエレメントがデータを送
信するか,プロセッサ0の場合はデータ受信がないよう
にするか,いずれかの方法で誤りを修正しなければなら
ないことがわかる。
また,ホスト計算機10の主記憶12にあり、各プロセ
ッサエレメントにより定義され、参照されている配列A
に関するトレースデータを文56の実行時に採取すると
、昇順の場合には第7A図の70のようになり、降順の
場合には第7B図の71のようになる。
昇順の場合には、第7A図70に示すとおり、たとえば
,プロセッサ2で参照される配列A(1)はプロセッサ
1により定義された値である。このように、直前に起動
されたプロセッサにより定義された値が用いられている
。しかし、降順に実行すると,第7B図71に示すとお
り、各プロセッサエレメントは,サブプログラム“SU
BI”が実行される直前の配列Aの値を参照している。
全てのプロセッサエレメントが配列Aの参照を終えたの
ち、各プロセッサエレメントは、配列Aの値を定義して
いる。この結果、データ送受信による順を守っても、昇
順の場合と,降順の場合とでは計算結果が異なる。各プ
ロセッサエレメントを並列に動かして毎回計算結果が異
なるのは、主記憶の配列Aの定義参照順序が不定である
ことが原因であることが分かる。従って主記憶の配列A
の定義参照順序を固定する同期制御を挿入して、ソース
プログラムを修正する必要があることを検出できる。
〔発明の効果〕
本発明によれば、以上の実施例では、ローカルメモリを
有するプロセッサ・エレメントからなる並列計算機につ
いて述べたが、共有メモリを介して接続されるプロセッ
サ・エレメントからなる並列計算機においては、上記実
施例における「データ送受信」のかわりに「同期制御」
を含む処理の不良を同様にして検出できる。
並列に動く複数のプロセッサエレメントに対して、プロ
セッサエレメントごとに提供される、デ一夕送受信や同
期制御を含むサブプログラムにバグがある場合、ソース
プログラムを再コンパイルすることなく、デバッグ処理
制御ルーチンをコンパイルソースプログラムにリンクす
るだけで、データ送受信や同期制御によって指定された
順序を守る範囲でプロセッサエレメントを1台ずつ、様
々な順序で実行させることができる。これにより,様々
な実行順序におけるトレースデータを採取して解析する
と,実行順序によって計算結果が異なるデータ送受信も
れや同期漏れなどの不良や,デッドロック状態の原因を
検出することができる3尚、上記のように、実行プロセ
スキューにプロセッサ要素を登録する順番については種
々の方法が考えられる。基本的にはユーザーの任意であ
るが、デハッグの目的やデバッグ対象プログラムに合わ
せて次のようなアルゴリズムが考えられる。
プロセス実行順序なランダムである場合には、実行開始
時間に関して乱数を発生させて、実行順序を決定する方
法がある。一方,デバッグ処理時間を短くする必要があ
るときは、データ送信を多く含むプロセスが優先して実
行されるように実行順序を決定することが望ましい。
また本実施例では終了判定キューが使用されているが,
そのキューを使用しなくとも各プロセノサエレメントに
より対応するサブプログラムが実行され終了したことが
検出されれば良い。例えば,対応するサブプログラムの
実行を終了したプロセッサエレメントのプロセッサ番号
を単に記憶するだけでも良い。この場合、上記例のよう
にプロセッサエレメントが残ったときは、再度当該プロ
セッサエレメントを起動させ,その結果が前回と同じで
あれば、終了と判定すれば良い。
更に、本実施例では、実行プロセッサキューが使用され
ているが,単なるテーブルを使用することができる事も
明らかである。この場合には、第9図に示されるように
、main memory unit 1 2内に実行
プロセッサテーブル12−5、終了判定テーブル12−
6、及びアドレス発生器12−7を用意される。テーブ
ル12−5の各要素は各プロセッサエレメントに対応し
、対応するプロセッサエレメントが実行待ちかどうかを
示すフラグと再開アドレスを格納する。アドレス発生器
12−7が、各テーブルの要素を上述のように指定し、
その実行結果に従ってフラグと再開アドレスを更新する
ように,アドレスを発生すれば良い。
【図面の簡単な説明】
第1図は本発明の一実施例のデバッグ処理制御方法を説
明するためのフローチャート、第2図は本発明が適用さ
れる並列計算機システムの構成図、第3図はホスト計算
機用ユーザプログラムを示す,第4図は実行プロセッサ
キューの構成図、第5図は各プロセッサエレメントにロ
ードされるサブプログラムを示す。第6Aと6B図は第
3図のユーザプログラムが実行された時の実行プロセッ
サキューの状態を示した図、第7Aと7B図は第3図の
ユーザプログラムが実行された時の実行順序と主記憶ア
クセスを示した図、第8図はユーザプログラムのメイン
プログラムをコンパイルしリンクするときの様子を説明
するための図。第9図はキューの代りにテーブルを使用
する場合の実施例の構成を示す図である。

Claims (1)

  1. 【特許請求の範囲】 1、並列計算機システムにおいて、該システム様の複数
    のプログラムを逐次に実行するためのプログラム実行方
    法であって、以下のステップからなるもの。 (a)複数のプロセッサの識別子を実行待ちキューに予
    め決められた順番に登録すること、 (b)前記キューに登録された識別子の順番に従って1
    台ずつプロセッサをして対応するプログラムを実行させ
    ることと、 (c)いずれかのプロセッサでいずれかのプログラムを
    実行の結果、そのプログラムが実行終了状態となったと
    きはそのプロセッサの識別子を上記待ちキューからはず
    し、そのプログラムの実行中に他のプロセッサから与え
    られるべきデータに対して、データ待ち状態となったと
    き、そのプログラムの実行を中止し、そのプロセッサの
    識別子を実行待ちキューの最後の要素とし、 (d)該ステップ(b)と(c)を繰り返す。 2、該ステップ(d)は、該実行待ちキュー内の識別子
    が変化しなくなるまで、該ステップ(b)と(c)を繰
    り返すステップからなる第1項のプログラム実行方法。 3、該実行キューに残された識別子をバグを有するプロ
    グラムを実行したプロセッサの識別子として出力するス
    テップをさらに有する第2項のプログラム実行方法。 4、請求項1において前記順番は任意に決定されている
    プログラム実行方法。 5、請求項4において前記順番は各プログラムに含まれ
    るデータ送信処理の回数に従って決定されるプログラム
    実行方法。 6、請求項4において前記順番は各プログラムの実行時
    刻に基づいて乱数を発生させて順番を決定するプログラ
    ム実行方法。 7、請求項1において前記実行待ちキューから順番に選
    んだプロセッサをして、前記データ待ち状態あるいは処
    理終了状態のいずれかの状態になるまで、対応するプロ
    グラムを実行させるプログラム実行方法。 8、請求項1において前記実行させるステップは以下の
    ステップを含むプログラム実行方法。 前記実行プロセッサが前記データ待ち状態となったとき
    、前記実行待ちキューに前記プロセッサの識別子と再開
    アドレスを前記最後の要素として登録すること、 前記プロセッサによる対応するプログラムの実行前後で
    各プロセッサに対応する前記実行待ちキューの各要素の
    内容に変化が無いとき実行可能なプロセッサがないと判
    断すること。 9、請求項1において前記バグを含むプログラムを決定
    するステップは以下のステップを含む前記プログラム中
    のバグを発生する文を決定すること。 10、並列計算機システムにおけるデバッグ方法であっ
    て以下のステップからなるもの。(a)複数のプロセッ
    サの識別子を実行待ちキューに予め決められた第1の順
    番に登録すること、 (b)前記キューに登録された識別子の順番に従って1
    台ずつプロセッサをして対応するプログラムを実行させ
    ることと、 (c)いずれかのプロセッサでいずれかのプログラムを
    実行の結果、そのプログラムが実行終了状態となったと
    きはそのプロセッサの識別子を上記実行待ちキューから
    はずし、そのプログラムの実行中に他のプロセッサから
    与えらるべきデータに対して、データ待ち状態となった
    とき、そのプログラムの実行を中止し、そのプロセッサ
    の識別子を実行待ちキューの最後の要素とし、 (d)該ステップ(b)と(c)を繰り返す。 該ステップ(d)は、該実行待ちキュー内 の識別子が変化しなくなるまで、該ステップ(b)と(
    c)を繰り返し、送受信データや同期制御のデータや、
    配列や変数の値をトレースデータとして出力させること
    と、 (e)前記実行させるステップの終了後、前記複数のプ
    ロセッサの識別子を前記実行待ちキューに予め決められ
    た第2の順番に登録することと、 (e)前記キューに登録された識別子の順番に従って1
    台ずつプロセッサをして対応するプログラムを実行させ
    ることと、 (g)いずれかのプロセッサでいずれかのプログラムを
    実行の結果、そのプログラムが実行終了状態となったと
    きはそのプロセッサの識別子を上記実行待ちキューから
    はずし、そのプログラムの実行中に他のプロセッサから
    与えられるべきデータに対して、データ待ち状態となっ
    たとき、そのプログラムの実行を中止し、そのプロセッ
    サの識別子を実行待ちキューの最後の要素とし、 (h)該ステップ(e)と(f)を繰り返す。 該ステップ(h)は、該実行待ちキュー内 の識別子が変化しなくなるまで、該ステップ(e)と(
    f)を繰り返し、送受信データや同期制御のデータや、
    配列や変数の値をトレースデータとして出力させること
    と、 11、請求項10において前記第1と第2の順番は任意
    に決定されているプログラム実行方法。 12、請求項11において前記第1と第2の順番は各プ
    ログラムに含まれるデータ送信処理の回数に従って決定
    されるプログラム実行方法。 13、請求項11において前記第1と第2の順番は各プ
    ログラムの実行時刻に基づいて乱数を発生させて順番を
    決定することを特徴とするプログラム実行方法。 14、請求項10において前記プロセッサをして、前記
    データ待ち状態あるいは処理終了状態のいずれかの状態
    になるまで、対応するプログラムを実行させるプログラ
    ム実行方法。 15、請求項10において前記実行させるステップは以
    下のステップを含むプログラム実行方法。 前記プログラムが前記データ待ち状態となったとき、前
    記実行待ちキューに前記プロセッサの識別子と再開アド
    レスを前記最後の要素として登録すること、 前記プロセッサによる対応するプログラムの実行前後で
    各プロセッサに対応する前記実行待ちキューの各要素の
    内容に変化が無いとき実行可能なプロセッサがないと判
    断すること。 16、請求項9において前記バグを含むプログラムを決
    定するステップは以下のステップを含む。 バグを発生する文を決定すること。 17、並列計算機システムにおいて、以下のステップを
    含むデバッグ処理を制御する方法。 実行待ちテーブルの各要素のフラグと実行開始アドレス
    をセットすることと、前記実行待ちテーブルの各要素は
    複数のプロセッサのうちの1つに対応し、対応するプロ
    セッサの前記フラグと、前記実行開始アドレスを格納し
    、前記フラグは対応するプロセッサが実行待ち状態にあ
    るかどうかを示し データ待ち状態となったプロセッサの前記実行開始アド
    レスを更新しながら、実行可能なプロセッサに対応する
    フラグが前記実行待ちテーブルにセットされていなくな
    るまで、予め決められた順番に従って前記実行待ちテー
    ブルの要素を参照して1台ずつプロセッサをして対応す
    るプログラムを前記実行開始アドレスから実行させるこ
    とと、 前記フラグがセットされている前記実行待ちテーブルの
    要素からバグを有するプログラムを決定すること。 18、請求項17において前記順番は任意に決定されて
    いるプログラム実行方法。 19、請求項18において各プログラムに含まれるデー
    タ送信処理の回数に従って決定されるプログラム実行方
    法。 20、請求項18において各プログラムの実行時刻に基
    づいて乱数を発生させて順番を決定するプログラム実行
    方法。 21、請求項17において前記実行させるステップは以
    下のステップを含む。前記プログラムを実行するプロセ
    ッサは、データ待ち状態あるいは処理終了状態のいずれ
    かの状態になるまでプログラムを実行するプログラム実
    行方法。 22、請求項17において前記実行させるステップは以
    下のステップを含むプログラム実行方法。 あるプロセッサによる対応するプログラムの実行前後で
    各プロセッサに対応するテーブル要素の内容に変化が無
    いとき実行可能なプロセッサがないと判断すること。 23、請求項17において前記実行させるステップは以
    下のステップからなる。 実行待ちテーブルの各要素のフラグと実行開始アドレス
    をセットすることと、 データ待ち状態となったプロセッサの前記実行開始アド
    レスを更新しながら、実行可能なプロセッサに対応する
    フラグが前記実行待ちテーブルにセットされていなくな
    るまで、予め決められた異なる順番に従って前記実行待
    ちテーブルの要素を参照して1台ずつプロセッサをして
    対応するプログラムを前記実行開始アドレスから実行さ
    せることと、 前記予め決められた順番にプログラムを実行させるステ
    ップと前記予め決められた異なる順番にプログラムを実
    行させるステップの実行中にそれぞれ第1と第2のトレ
    ースデータを出力させることと、 前記第1と第2のトレースデータからバグを有するプロ
    グラムを決定すること。 24、請求項17において前記バグを含むプログラムを
    決定するステップはバグを発生する文を決定するステッ
    プを含むもの。 23デバッグ処理の作業性を改善する方法は以下のステ
    ップを含む通常処理制御ルーチンとデバッグ処理制御ル
    ーチンをそれぞれ含む第1と第2のライブラリを提供す
    ることと、前記両方のルーチンは同じルーチン名を有し
    、前記第1と第2のライブラリは通常処理制御ルーチン
    とデバッグ処理制御ルーチンを除いて同じであり、 メインプログラムをコンパイルすることと、通常処理時
    にコンパイルされたメインプログラムに前記第1のライ
    ブラリをリンクし、デバッグ処理時に前記第2のライブ
    ラリをリンクすることと、 前記、リンクされたメインプログラムを実行すること。
JP2316124A 1989-11-27 1990-11-22 並列計算機システムにおけるデバッグ方法 Pending JPH03218539A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2316124A JPH03218539A (ja) 1989-11-27 1990-11-22 並列計算機システムにおけるデバッグ方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP30460889 1989-11-27
JP1-304608 1989-11-27
JP2316124A JPH03218539A (ja) 1989-11-27 1990-11-22 並列計算機システムにおけるデバッグ方法

Publications (1)

Publication Number Publication Date
JPH03218539A true JPH03218539A (ja) 1991-09-26

Family

ID=26563970

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2316124A Pending JPH03218539A (ja) 1989-11-27 1990-11-22 並列計算機システムにおけるデバッグ方法

Country Status (1)

Country Link
JP (1) JPH03218539A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249884A (ja) * 2006-03-20 2007-09-27 Fujitsu Ltd ソフトウェア検証プログラム、ソフトウェア検証装置、ソフトウェア検証方法
US9317287B2 (en) 2011-07-19 2016-04-19 Panasonic Intellectual Property Management Co., Ltd. Multiprocessor system
WO2021140812A1 (ja) * 2020-01-09 2021-07-15 日立Astemo株式会社 演算装置及び検査方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249884A (ja) * 2006-03-20 2007-09-27 Fujitsu Ltd ソフトウェア検証プログラム、ソフトウェア検証装置、ソフトウェア検証方法
US9317287B2 (en) 2011-07-19 2016-04-19 Panasonic Intellectual Property Management Co., Ltd. Multiprocessor system
WO2021140812A1 (ja) * 2020-01-09 2021-07-15 日立Astemo株式会社 演算装置及び検査方法
JPWO2021140812A1 (ja) * 2020-01-09 2021-07-15

Similar Documents

Publication Publication Date Title
US5361352A (en) Method for debugging in a parallel computer system and system for the same
US4811345A (en) Methods and apparatus for providing a user oriented microprocessor test interface for a complex, single chip, general purpose central processing unit
US4982402A (en) Method and apparatus for detecting and correcting errors in a pipelined computer system
US6718294B1 (en) System and method for synchronized control of system simulators with multiple processor cores
EP0141744B1 (en) Method and apparatus for self-testing of floating point accelerator processors
US7761744B2 (en) Debugging method
WO2017129242A1 (en) Deterministic concurrent test program executor for an automated test equipment
EP0111952B1 (en) Verification of a processor architecture having a partial instruction set
US7324912B2 (en) Method, system and programming language for device diagnostics and validation
US6425122B1 (en) Single stepping system and method for tightly coupled processors
JPH03218539A (ja) 並列計算機システムにおけるデバッグ方法
US20050050524A1 (en) Generating software test information
JP2001256044A (ja) データ処理装置
IE62074B1 (en) Apparatus and method for synchronization of arithmetic exceptions in parallel pipelined execution units
Miller Exploring multiple transputer arrays
JP2590154B2 (ja) 並列プロセッサのプログラムデバッグ支援装置
US7010631B2 (en) Controller based hardware device and method for setting the same
JPH0147818B2 (ja)
US9342359B2 (en) Information processing system and information processing method
JPS59195751A (ja) 情報処理装置の診断方式
JPS6358550A (ja) シミユレ−タ
JP2000222243A (ja) デバッグ装置及びデバッグ方法
Litman A concurrent debugger
JPH04324525A (ja) プログラム移植支援装置
JPH0772874B2 (ja) 割込み受取り装置