JPH0713805A - 並列計算機及びプログラム実行再現方法 - Google Patents
並列計算機及びプログラム実行再現方法Info
- Publication number
- JPH0713805A JPH0713805A JP5158371A JP15837193A JPH0713805A JP H0713805 A JPH0713805 A JP H0713805A JP 5158371 A JP5158371 A JP 5158371A JP 15837193 A JP15837193 A JP 15837193A JP H0713805 A JPH0713805 A JP H0713805A
- Authority
- JP
- Japan
- Prior art keywords
- program
- shared memory
- data
- access
- management unit
- 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
Links
Landscapes
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】
【目的】本発明は、プログラム再現に必要な情報の記録
量を減少させ、また任意のチェックポイントからのプロ
グラム再現を容易に行なうことを可能にする。 【構成】複数のプロセッシングエレメントから共有メモ
リに対してアクセスする並列計算機において、共有メモ
リ2は、データ保持部20と、データの更新回数及び読
出し回数を記録するバージョン管理部21と、アクセス
操作が行なわれたか否かを識別するためのアクセス識別
部22とが設けられ、プログラム実行の際にスナップシ
ョットを実行し、チェックポイント間でアクセス操作が
行なわれたデータ、共有メモリ2に対するアクセス履
歴、及びチェックポイント時のプロセッサ状態情報を記
録し、プログラムを再現実行する際に、アクセス履歴に
基づいてプログラム再現の同期を取った後に、記録され
た情報をもとに再現された共有メモリ2及びプロセッサ
状態情報によりプログラムを再実行することを特徴とす
る。
量を減少させ、また任意のチェックポイントからのプロ
グラム再現を容易に行なうことを可能にする。 【構成】複数のプロセッシングエレメントから共有メモ
リに対してアクセスする並列計算機において、共有メモ
リ2は、データ保持部20と、データの更新回数及び読
出し回数を記録するバージョン管理部21と、アクセス
操作が行なわれたか否かを識別するためのアクセス識別
部22とが設けられ、プログラム実行の際にスナップシ
ョットを実行し、チェックポイント間でアクセス操作が
行なわれたデータ、共有メモリ2に対するアクセス履
歴、及びチェックポイント時のプロセッサ状態情報を記
録し、プログラムを再現実行する際に、アクセス履歴に
基づいてプログラム再現の同期を取った後に、記録され
た情報をもとに再現された共有メモリ2及びプロセッサ
状態情報によりプログラムを再実行することを特徴とす
る。
Description
【0001】
【産業上の利用分野】本発明は、共有メモリを有する並
列計算機及び並列計算機におけるプログラムの実行再現
方法に関する。
列計算機及び並列計算機におけるプログラムの実行再現
方法に関する。
【0002】
【従来の技術】一般に、単一プロセッシングエレメント
の装置において、プログラムは繰り返し実行しても同じ
振舞をする。この性質を利用して、多くデバッギングツ
ールが開発されている。
の装置において、プログラムは繰り返し実行しても同じ
振舞をする。この性質を利用して、多くデバッギングツ
ールが開発されている。
【0003】ところで、より処理能力の高い計算機を実
現するために、複数のプロセッシングエレメントを設
け、これらによって並列に処理を行なう並列計算機の開
発が行なわれている。
現するために、複数のプロセッシングエレメントを設
け、これらによって並列に処理を行なう並列計算機の開
発が行なわれている。
【0004】並列計算機では、各プロセッシングエレメ
ントのタイミングのずれなどにより、プログラム実行
が、必ずしも同じ振舞をするとは限らない。また、任意
の経過時間からプログラム実行を再現するには、多くの
スナップショットと、メモリのアクセス履歴を保持する
必要がある。従って、単一プロセッシングエレメントの
装置に用いられるデバッギングツールを、単純に並列計
算機に対して適用することはできない。
ントのタイミングのずれなどにより、プログラム実行
が、必ずしも同じ振舞をするとは限らない。また、任意
の経過時間からプログラム実行を再現するには、多くの
スナップショットと、メモリのアクセス履歴を保持する
必要がある。従って、単一プロセッシングエレメントの
装置に用いられるデバッギングツールを、単純に並列計
算機に対して適用することはできない。
【0005】並列計算機でプログラムを再現する方式と
して、共有メモリを有するものでは、「Real-Time, Coc
urrent Checkpoint for Parallel Programs 」(Kai L
i,Jeffrey F. Naughton and James S. Plank, ACM SIGP
LAN Notices, Vol.25, No.3,pp. 79-88, 1990 )に説明
されているような、チェックポイント毎に、メモリの内
容を全て記録しておく方式がある。この方式は、変化部
分だけ記録するように改良するのは容易であるが、プロ
グラム実行を再現するという点においては、プロセス間
の相互干渉情報を持たないため、特定の状態から始めた
としても必ずしも前回のプログラム実行と同じ結果にな
るとは限らない。
して、共有メモリを有するものでは、「Real-Time, Coc
urrent Checkpoint for Parallel Programs 」(Kai L
i,Jeffrey F. Naughton and James S. Plank, ACM SIGP
LAN Notices, Vol.25, No.3,pp. 79-88, 1990 )に説明
されているような、チェックポイント毎に、メモリの内
容を全て記録しておく方式がある。この方式は、変化部
分だけ記録するように改良するのは容易であるが、プロ
グラム実行を再現するという点においては、プロセス間
の相互干渉情報を持たないため、特定の状態から始めた
としても必ずしも前回のプログラム実行と同じ結果にな
るとは限らない。
【0006】また、分散環境における方式として、「IG
OR:A System for Program Debugging via Reversible E
xecution」( S. Feldman and C. Brown, ACM SIGPLAN
Notices, Vol.24, No.1, pp.112-123, 1989 )に説明さ
れているような、変化する部分だけをインクリメンタル
に記録する方式がある。この方式は、プロセス間の相互
干渉情報がメッセージの送受を記録したものであり、メ
ッセージ通信が共有メモリアクセスよりも遅いという特
性により、単位時間当たりに記録されるログ量は分散環
境のほうが相対的に少ない。ただし、メッセージに追い
越しが起こる場合には、単にどこから到着しただけでな
く、メッセージ送信元で付加する独特なメッセージ番号
や内容などの情報を記録する必要が生じる。
OR:A System for Program Debugging via Reversible E
xecution」( S. Feldman and C. Brown, ACM SIGPLAN
Notices, Vol.24, No.1, pp.112-123, 1989 )に説明さ
れているような、変化する部分だけをインクリメンタル
に記録する方式がある。この方式は、プロセス間の相互
干渉情報がメッセージの送受を記録したものであり、メ
ッセージ通信が共有メモリアクセスよりも遅いという特
性により、単位時間当たりに記録されるログ量は分散環
境のほうが相対的に少ない。ただし、メッセージに追い
越しが起こる場合には、単にどこから到着しただけでな
く、メッセージ送信元で付加する独特なメッセージ番号
や内容などの情報を記録する必要が生じる。
【0007】さらに、従来では、共有メモリアクセスの
順序を再現するための履歴を記録するためには、各プロ
セッシングエレメント共通のグローバルクロックによっ
てタイムスタンプを取るか、共通の格納領域にプロセッ
シングエレメント番号とアクセス操作種別、データなど
を順序関係を保ちながら記録する必要があった。
順序を再現するための履歴を記録するためには、各プロ
セッシングエレメント共通のグローバルクロックによっ
てタイムスタンプを取るか、共通の格納領域にプロセッ
シングエレメント番号とアクセス操作種別、データなど
を順序関係を保ちながら記録する必要があった。
【0008】
【発明が解決しようとする課題】このように従来の並列
計算機では、同じ振舞いをするようにプログラムを再現
させるためには多くの情報を記録しておく必要があっ
た。また、任意のチェックポイントからのプログラムを
再現しようとする場合には、グローバルクロックや、メ
ッセージ送信元で付加する独特なメッセージ番号や内容
などの前述した各種情報を格納するための格納領域を設
ける等の必要があった。
計算機では、同じ振舞いをするようにプログラムを再現
させるためには多くの情報を記録しておく必要があっ
た。また、任意のチェックポイントからのプログラムを
再現しようとする場合には、グローバルクロックや、メ
ッセージ送信元で付加する独特なメッセージ番号や内容
などの前述した各種情報を格納するための格納領域を設
ける等の必要があった。
【0009】本発明は前記のような事情を考慮してなさ
れたもので、プログラム再現に必要な情報の記録量を減
少させると共に、任意のチェックポイントからのプログ
ラム再現を容易に行なうことが可能な並列計算機及びプ
ログラム実行再現方法を提供することを目的とする。
れたもので、プログラム再現に必要な情報の記録量を減
少させると共に、任意のチェックポイントからのプログ
ラム再現を容易に行なうことが可能な並列計算機及びプ
ログラム実行再現方法を提供することを目的とする。
【0010】
【課題を解決するための手段】本発明は、複数のプロセ
ッシングエレメントから共有メモリに対してアクセスす
る並列計算機において、データを格納するためのデータ
保持手段と、前記データ保持手段に保持されたデータに
対応して、同データに対する更新回数及び読出し回数を
示す情報を記録するバージョン管理手段と、前記データ
保持手段に保持されたデータを含むメモリブロック単位
で、アクセス操作が行なわれたか否かを識別するための
情報を記録するアクセス識別手段とが設けられた共有メ
モリと、プログラム実行時に前記プロセッシングエレメ
ントに対してスナップショットの実行を指示すると共
に、前記アクセス識別手段によって記録された情報に応
じて、チェックポイント間でアクセス操作が行なわれた
前記共有メモリ中の前記保持手段によって保持されたデ
ータ、及び前記バージョン管理手段によって記録された
情報を格納するスナップショット管理手段と、プログラ
ム再現時に前記プロセッシングエレメントに対して任意
のチェックポイントからプログラムの再現実行を指示す
ると共に、スナップショット管理手段によって格納され
た内容に基づいて前記共有メモリを復元する再現実行管
理手段とが設けられたチェックポイント管理手段と、前
記スナップショット管理手段によるスナップショットの
実行指示に応じて、前記共有メモリに対するアクセス履
歴を格納するアクセス履歴格納手段と、チェックポイン
ト時のプロセッサ状態情報を格納するプロセッサ状態格
納手段と、前記再現実行管理手段によるプログラム再現
実行の指示に応じて、前記プロセッサ状態格納手段によ
って格納されたプロセッサ状態情報を復元するプロセッ
サ状態復元手段と、前記アクセス履歴格納手段によって
格納されたアクセス履歴に基づいて、プログラム再現の
同期が取られた後に、前記再現実行管理手段によって再
現された前記共有メモリ及び前記プロセッサ状態復元手
段によって復元されたプロセッサ状態情報によりプログ
ラムを再実行するプロセッサとが設けられたプロセッシ
ングエレメントと、を具備したことを特徴する。
ッシングエレメントから共有メモリに対してアクセスす
る並列計算機において、データを格納するためのデータ
保持手段と、前記データ保持手段に保持されたデータに
対応して、同データに対する更新回数及び読出し回数を
示す情報を記録するバージョン管理手段と、前記データ
保持手段に保持されたデータを含むメモリブロック単位
で、アクセス操作が行なわれたか否かを識別するための
情報を記録するアクセス識別手段とが設けられた共有メ
モリと、プログラム実行時に前記プロセッシングエレメ
ントに対してスナップショットの実行を指示すると共
に、前記アクセス識別手段によって記録された情報に応
じて、チェックポイント間でアクセス操作が行なわれた
前記共有メモリ中の前記保持手段によって保持されたデ
ータ、及び前記バージョン管理手段によって記録された
情報を格納するスナップショット管理手段と、プログラ
ム再現時に前記プロセッシングエレメントに対して任意
のチェックポイントからプログラムの再現実行を指示す
ると共に、スナップショット管理手段によって格納され
た内容に基づいて前記共有メモリを復元する再現実行管
理手段とが設けられたチェックポイント管理手段と、前
記スナップショット管理手段によるスナップショットの
実行指示に応じて、前記共有メモリに対するアクセス履
歴を格納するアクセス履歴格納手段と、チェックポイン
ト時のプロセッサ状態情報を格納するプロセッサ状態格
納手段と、前記再現実行管理手段によるプログラム再現
実行の指示に応じて、前記プロセッサ状態格納手段によ
って格納されたプロセッサ状態情報を復元するプロセッ
サ状態復元手段と、前記アクセス履歴格納手段によって
格納されたアクセス履歴に基づいて、プログラム再現の
同期が取られた後に、前記再現実行管理手段によって再
現された前記共有メモリ及び前記プロセッサ状態復元手
段によって復元されたプロセッサ状態情報によりプログ
ラムを再実行するプロセッサとが設けられたプロセッシ
ングエレメントと、を具備したことを特徴する。
【0011】
【作用】このような構成によれば、プログラム実行時に
おいて、各プロセッシングエレメントは、書き込み時に
はバージョン番号(更新回数)と読み出し回数を、読出
し時にはバージョン番号だけを記録する。また、定期的
に共有メモリのスナップショットとして、前回との変化
部分についてだけ記録しておく。
おいて、各プロセッシングエレメントは、書き込み時に
はバージョン番号(更新回数)と読み出し回数を、読出
し時にはバージョン番号だけを記録する。また、定期的
に共有メモリのスナップショットとして、前回との変化
部分についてだけ記録しておく。
【0012】任意のチェックポイントからプログラムの
実行を再現する場合、共有メモリは、当該チェックポイ
ント及びそれ以前の中から最新の共有メモリの情報を検
索し、共有メモリ内容を復元する。各プロセッシングエ
レメントは、当該チェックポイントのプロセッサ状態情
報からプロセッサ状態を復元する。
実行を再現する場合、共有メモリは、当該チェックポイ
ント及びそれ以前の中から最新の共有メモリの情報を検
索し、共有メモリ内容を復元する。各プロセッシングエ
レメントは、当該チェックポイントのプロセッサ状態情
報からプロセッサ状態を復元する。
【0013】プログラム実行再現時に、各プロセッシン
グエレメントは、共有メモリアクセス履歴に従い、書き
込み時にはバージョン番号と読み出し回数が一致するま
で、書き込み操作を待機させ、一致した時に、書き込み
操作を行なう。読出し時にはバージョン番号が一致する
まで、その操作を待機させ、一致した時に、読み込み操
作を行なう。これによりプログラム実行の再現を行な
う。
グエレメントは、共有メモリアクセス履歴に従い、書き
込み時にはバージョン番号と読み出し回数が一致するま
で、書き込み操作を待機させ、一致した時に、書き込み
操作を行なう。読出し時にはバージョン番号が一致する
まで、その操作を待機させ、一致した時に、読み込み操
作を行なう。これによりプログラム実行の再現を行な
う。
【0014】
【実施例】以下、図面を参照して本発明の一実施例を説
明する。図1は本実施例に係わる並列計算機の主要な構
成を示すブロック図である。図1に示すように、並列計
算機は、複数のプロセッシングエレメント1−1,1−
2,…,1−n、共有メモリ2、チェックポイント管理
部3、二次記憶装置4、及びバス5によって構成されて
いる。プロセッシングエレメント1−1,1−2,…,
1−n、共有メモリ2、及びチェックポイント管理部3
は、バス5を介して接続されており、各プロセッシング
エレメント1−1,1−2,…,1−nから共有メモリ
2に対する書き込み/読出し操作がバス5を経由して行
なわれる。
明する。図1は本実施例に係わる並列計算機の主要な構
成を示すブロック図である。図1に示すように、並列計
算機は、複数のプロセッシングエレメント1−1,1−
2,…,1−n、共有メモリ2、チェックポイント管理
部3、二次記憶装置4、及びバス5によって構成されて
いる。プロセッシングエレメント1−1,1−2,…,
1−n、共有メモリ2、及びチェックポイント管理部3
は、バス5を介して接続されており、各プロセッシング
エレメント1−1,1−2,…,1−nから共有メモリ
2に対する書き込み/読出し操作がバス5を経由して行
なわれる。
【0015】各プロセッシングエレメント1−1,1−
2,…,1−nには、プロセッサ10、ローカルメモリ
11、プロセッサ状態管理部12、アクセス履歴管理部
13が設けられている。プロセッサ状態管理部12は、
プロセッサ状態情報を管理するもので、プロセッサ10
のPSW(program status word )、レジスタ、ローカ
ルメモリの内容を含むプロセッサ状態情報を格納するた
めのプロセッサ状態格納部12a、プロセッサ状態情報
を任意の時点に復元するプロセッサ状態復元部12bが
設けられている。アクセス履歴管理部13は、各プロセ
ッサの共有メモリ2に対するアクセス履歴を格納するた
めのアクセス履歴格納部13aと、共有メモリ2に対す
るアクセスの順序を復元するアクセス履歴復元部13b
が設けられている。なお、ローカルメモリ11は、必ず
しも必要ではなく、以下の説明を行なうために構成要素
としている。
2,…,1−nには、プロセッサ10、ローカルメモリ
11、プロセッサ状態管理部12、アクセス履歴管理部
13が設けられている。プロセッサ状態管理部12は、
プロセッサ状態情報を管理するもので、プロセッサ10
のPSW(program status word )、レジスタ、ローカ
ルメモリの内容を含むプロセッサ状態情報を格納するた
めのプロセッサ状態格納部12a、プロセッサ状態情報
を任意の時点に復元するプロセッサ状態復元部12bが
設けられている。アクセス履歴管理部13は、各プロセ
ッサの共有メモリ2に対するアクセス履歴を格納するた
めのアクセス履歴格納部13aと、共有メモリ2に対す
るアクセスの順序を復元するアクセス履歴復元部13b
が設けられている。なお、ローカルメモリ11は、必ず
しも必要ではなく、以下の説明を行なうために構成要素
としている。
【0016】共有メモリ2には、データ保持部20、バ
ージョン管理部21、アクセス識別部22が設けられて
いる。データ保持部20は、各プロセッシングエレメン
ト1−1,1−2,…,1−nによって操作されるデー
タを格納するためのものである。バージョン管理部21
は、データ保持部20に格納された各データに対応し
て、データに対する更新回数を示すバージョン番号とそ
のバージョン番号の値に対応する読出し回数を管理する
もので、読出し回数カウンタ21a、更新回数カウンタ
21bが設けられている。アクセス識別部22は、メモ
リブロック単位で、その領域にアクセスされたか否かを
識別するためのフラグ(アクセス情報)を記録するため
のものである。また、アクセスされたか否かを識別する
だけでなく、読出し/書き込みアクセスを区別して記録
するようにしても良い。アクセス識別部22によって読
出し/書き込みアクセスを区別して記録しない場合とす
る場合の各状況毎に、動作の説明を後述している。
ージョン管理部21、アクセス識別部22が設けられて
いる。データ保持部20は、各プロセッシングエレメン
ト1−1,1−2,…,1−nによって操作されるデー
タを格納するためのものである。バージョン管理部21
は、データ保持部20に格納された各データに対応し
て、データに対する更新回数を示すバージョン番号とそ
のバージョン番号の値に対応する読出し回数を管理する
もので、読出し回数カウンタ21a、更新回数カウンタ
21bが設けられている。アクセス識別部22は、メモ
リブロック単位で、その領域にアクセスされたか否かを
識別するためのフラグ(アクセス情報)を記録するため
のものである。また、アクセスされたか否かを識別する
だけでなく、読出し/書き込みアクセスを区別して記録
するようにしても良い。アクセス識別部22によって読
出し/書き込みアクセスを区別して記録しない場合とす
る場合の各状況毎に、動作の説明を後述している。
【0017】チェックポイント管理部3には、スナップ
ショット管理部30、及び再現実行管理部31が設けら
れている。スナップショット管理部30は、プログラム
実行時に定期的に各プロセッシングエレメント1−1,
1−2,…,1−nに対してスナップショットの実行を
指示するものである。スナップショット管理部30は、
各プロセッシングエレメント1−1,1−2,…,1−
nのプロセッサ状態管理部12に対して、プロセッサ状
態、及びローカルメモリ11の内容を保存させ、アクセ
ス履歴管理部13に対して、共有メモリ2の情報を保存
させる。再現実行管理部31は、プログラム再現時に任
意のチェックポイント状態からプログラムを再現実行す
ることを所定の各部に指示するものであり、任意のチェ
ックポイントでの状態からプログラムを再現実行させる
ため、プロセッサ状態管理部12に対して当該チェック
ポイントのプロセッサ状態、及びローカルメモリ11を
復元させ、アクセス履歴管理部13に対して共有メモリ
2の情報を復元させる。
ショット管理部30、及び再現実行管理部31が設けら
れている。スナップショット管理部30は、プログラム
実行時に定期的に各プロセッシングエレメント1−1,
1−2,…,1−nに対してスナップショットの実行を
指示するものである。スナップショット管理部30は、
各プロセッシングエレメント1−1,1−2,…,1−
nのプロセッサ状態管理部12に対して、プロセッサ状
態、及びローカルメモリ11の内容を保存させ、アクセ
ス履歴管理部13に対して、共有メモリ2の情報を保存
させる。再現実行管理部31は、プログラム再現時に任
意のチェックポイント状態からプログラムを再現実行す
ることを所定の各部に指示するものであり、任意のチェ
ックポイントでの状態からプログラムを再現実行させる
ため、プロセッサ状態管理部12に対して当該チェック
ポイントのプロセッサ状態、及びローカルメモリ11を
復元させ、アクセス履歴管理部13に対して共有メモリ
2の情報を復元させる。
【0018】二次記憶装置4は、チェックポイント管理
部3による制御のもとに、プログラム実行を再現するた
めの各種データ、例えばデータ保持部20中のデータ
や、バージョン管理部21の読出し回数カウンタ21a
及び更新回数カウンタ21bの値を記憶するためのもの
である。
部3による制御のもとに、プログラム実行を再現するた
めの各種データ、例えばデータ保持部20中のデータ
や、バージョン管理部21の読出し回数カウンタ21a
及び更新回数カウンタ21bの値を記憶するためのもの
である。
【0019】次に、本実施例の動作について、各状況毎
に説明する。ここでは、プロセッシングエレメント1−
1,1−2,…,1−n中の任意のプロセッシングエレ
メントPの動作を例にして説明する。
に説明する。ここでは、プロセッシングエレメント1−
1,1−2,…,1−n中の任意のプロセッシングエレ
メントPの動作を例にして説明する。
【0020】(1)アクセス識別部22で読出し/書き
込みを区別しない方法。 (1−A)プログラムの実行時。 ここでは、プロセッシングエレメントPが共有メモリ2
のアドレスADDR1からデータを読出してレジスタX
に格納する読出し命令を発行する例を用いて、共有メモ
リ2に対する読出し操作を説明する。なお、この命令の
処理が実行される前の、共有メモリ2の状態が図2
(a)に示すようになっているものとする。すなわち、
データ保持部20のアドレスADDR1にはデータ5が
格納され、このデータに対応してバージョン管理部21
の読出し回数カウンタ21aの値が3、更新回数カウン
タ21bの値が2であり、アクセス識別部22のアドレ
スADDR1に対応するメモリブロックのフラグが「o
ff」となっている。
込みを区別しない方法。 (1−A)プログラムの実行時。 ここでは、プロセッシングエレメントPが共有メモリ2
のアドレスADDR1からデータを読出してレジスタX
に格納する読出し命令を発行する例を用いて、共有メモ
リ2に対する読出し操作を説明する。なお、この命令の
処理が実行される前の、共有メモリ2の状態が図2
(a)に示すようになっているものとする。すなわち、
データ保持部20のアドレスADDR1にはデータ5が
格納され、このデータに対応してバージョン管理部21
の読出し回数カウンタ21aの値が3、更新回数カウン
タ21bの値が2であり、アクセス識別部22のアドレ
スADDR1に対応するメモリブロックのフラグが「o
ff」となっている。
【0021】まず、読出し命令に応じて、アクセス識別
部22の当該アドレスに対応するメモリブロックのアク
セスフラグを「on」にする。また、データ保持部20
から当該アドレスのデータ5を取り出し、プロセッシン
グエレメントPのプロセッサに渡す。
部22の当該アドレスに対応するメモリブロックのアク
セスフラグを「on」にする。また、データ保持部20
から当該アドレスのデータ5を取り出し、プロセッシン
グエレメントPのプロセッサに渡す。
【0022】バージョン管理部21は、当該アドレスの
読出し回数カウンタ21aをインクリメントし(値は
4)、更新回数カウンタ21bから当該アドレスの更新
回数の値2を取り出して、プロセッシングエレメントP
のアクセス履歴管理部13に渡す。プロセッシングエレ
メントPのアクセス履歴管理部13は、その値をアクセ
ス履歴格納部13aにログとして記録する。
読出し回数カウンタ21aをインクリメントし(値は
4)、更新回数カウンタ21bから当該アドレスの更新
回数の値2を取り出して、プロセッシングエレメントP
のアクセス履歴管理部13に渡す。プロセッシングエレ
メントPのアクセス履歴管理部13は、その値をアクセ
ス履歴格納部13aにログとして記録する。
【0023】前述した読出し操作の後、共有メモリ2の
状態は図2(b)、アクセス履歴管理部13のアクセス
履歴格納部13aに格納されたログの内容は図2
(c)、プロセッシングエレメントPのプロセッサ10
のレジスタXの内容は図2(d)に示すようにそれぞれ
変化する。
状態は図2(b)、アクセス履歴管理部13のアクセス
履歴格納部13aに格納されたログの内容は図2
(c)、プロセッシングエレメントPのプロセッサ10
のレジスタXの内容は図2(d)に示すようにそれぞれ
変化する。
【0024】次に、プロセッシングエレメントPが共有
メモリ2のアドレスADDR2にレジスタXの内容を書
き込む命令を発行する例を用いて、共有メモリ2に対す
る書き込み操作を説明する。なお、この命令の処理が実
行される前の、共有メモリ2の状態が図3(a)、プロ
セッシングエレメントPのプロセッサ10のレジスタX
の内容が図3(b)に示すようになっているものとす
る。すなわち、データ保持部20のアドレスADDR2
にはデータ5が格納され、このデータに対応してバージ
ョン管理部21の読出し回数カウンタ21aの値が4、
更新回数カウンタ21bの値が2であり、アクセス識別
部22のアドレスADDR2に対応するメモリブロック
のフラグが「on」となっている。また、レジスタXの
内容はデータ10となっている。
メモリ2のアドレスADDR2にレジスタXの内容を書
き込む命令を発行する例を用いて、共有メモリ2に対す
る書き込み操作を説明する。なお、この命令の処理が実
行される前の、共有メモリ2の状態が図3(a)、プロ
セッシングエレメントPのプロセッサ10のレジスタX
の内容が図3(b)に示すようになっているものとす
る。すなわち、データ保持部20のアドレスADDR2
にはデータ5が格納され、このデータに対応してバージ
ョン管理部21の読出し回数カウンタ21aの値が4、
更新回数カウンタ21bの値が2であり、アクセス識別
部22のアドレスADDR2に対応するメモリブロック
のフラグが「on」となっている。また、レジスタXの
内容はデータ10となっている。
【0025】まず、書き込み命令に応じて、アクセス識
別部22の当該アドレスに対応するメモリブロックのア
クセスフラグを「on」にする。また、データ保持部2
0は、プロセッシングエレメントPのプロセッサ10か
らのレジスタXのデータ10を当該アドレスに設定す
る。
別部22の当該アドレスに対応するメモリブロックのア
クセスフラグを「on」にする。また、データ保持部2
0は、プロセッシングエレメントPのプロセッサ10か
らのレジスタXのデータ10を当該アドレスに設定す
る。
【0026】バージョン管理部21は、当該アドレスの
読出し回数カウンタ21aの値4と更新回数カウンタ2
1bの値2をプロセッシングエレメントPのアクセス履
歴管理部13に渡すと共に、読出し回数カウンタ21a
をクリアし、更新回数カウンタ21bをインクリメント
する。プロセッシングエレメントPのアクセス履歴管理
部13は、その読出し回数カウンタ21aの値と更新回
数カウンタ21bの値(バージョン番号)をログとして
記録する。
読出し回数カウンタ21aの値4と更新回数カウンタ2
1bの値2をプロセッシングエレメントPのアクセス履
歴管理部13に渡すと共に、読出し回数カウンタ21a
をクリアし、更新回数カウンタ21bをインクリメント
する。プロセッシングエレメントPのアクセス履歴管理
部13は、その読出し回数カウンタ21aの値と更新回
数カウンタ21bの値(バージョン番号)をログとして
記録する。
【0027】前述した書き込み操作の後、共有メモリ2
の状態は図3(c)、アクセス履歴管理部13のアクセ
ス履歴格納部13aに格納されたログの内容は図3
(d)に示すようにそれぞれ変化する。
の状態は図3(c)、アクセス履歴管理部13のアクセ
ス履歴格納部13aに格納されたログの内容は図3
(d)に示すようにそれぞれ変化する。
【0028】スナップショット管理部30は、定期的に
チェックポイントを作るために、各プロセッシングエレ
メント1−1,1−2,…,1−nに、スナップショッ
トを取ることを指示する。この際、スナップショット管
理部30は、各プロセッシングエレメント1−1,1−
2,…,1−nへの割り込みで行なってもよく、またス
ナップショット管理部30が共有メモリ2の特定領域に
スナップショット命令を書き込み、各プロセッサがその
特定領域を定期的にポーリングすることによって行なっ
ても良い。
チェックポイントを作るために、各プロセッシングエレ
メント1−1,1−2,…,1−nに、スナップショッ
トを取ることを指示する。この際、スナップショット管
理部30は、各プロセッシングエレメント1−1,1−
2,…,1−nへの割り込みで行なってもよく、またス
ナップショット管理部30が共有メモリ2の特定領域に
スナップショット命令を書き込み、各プロセッサがその
特定領域を定期的にポーリングすることによって行なっ
ても良い。
【0029】チェックポイントを生成するために、各プ
ロセッシングエレメント1−1,1−2,…,1−nの
プロセッサ10は通常の処理を中断する。プロセッサ状
態管理部12は、プロセッサ10の状態、及びローカル
メモリ11の内容をプロセッサ状態格納部12aに保存
する。なお、ローカルメモリ内容は、プロセッサ10に
よってアクセスされるだけなので、値が変更された部分
だけを格納していけば良い。プロセッサ状態は、その時
点よりプログラムを復元するために必要な各種レジスタ
の内容、及びPSWである。
ロセッシングエレメント1−1,1−2,…,1−nの
プロセッサ10は通常の処理を中断する。プロセッサ状
態管理部12は、プロセッサ10の状態、及びローカル
メモリ11の内容をプロセッサ状態格納部12aに保存
する。なお、ローカルメモリ内容は、プロセッサ10に
よってアクセスされるだけなので、値が変更された部分
だけを格納していけば良い。プロセッサ状態は、その時
点よりプログラムを復元するために必要な各種レジスタ
の内容、及びPSWである。
【0030】スナップショット管理部30は、アクセス
識別部22のアクセス情報を参照して前回のスナップシ
ョット以降にアクセスされた部分を探す。例えば、スナ
ップショットを取る直前の共有メモリ2の一部が図4
(a)に示すようになっているものとする。
識別部22のアクセス情報を参照して前回のスナップシ
ョット以降にアクセスされた部分を探す。例えば、スナ
ップショットを取る直前の共有メモリ2の一部が図4
(a)に示すようになっているものとする。
【0031】この場合、アクセス識別部22にはメモリ
ブロックi,kのフラグが「on」となっているため、
スナップショット管理部30は、共有メモリ2に格納さ
れた、データ保持部20のメモリブロックi,kのデー
タ、バージョン管理部21の読出し回数カウンタ21a
及び更新回数カウンタ21bの値を二次記憶装置4に格
納する。図4(b)はスナップショットによって記録さ
れる情報を示している。
ブロックi,kのフラグが「on」となっているため、
スナップショット管理部30は、共有メモリ2に格納さ
れた、データ保持部20のメモリブロックi,kのデー
タ、バージョン管理部21の読出し回数カウンタ21a
及び更新回数カウンタ21bの値を二次記憶装置4に格
納する。図4(b)はスナップショットによって記録さ
れる情報を示している。
【0032】これらの処理が終了すると、スナップショ
ット管理部30は、アクセス識別部22にアクセス情報
をクリアさせ、各プロセッサにスナップショットが完了
したことを伝える。各プロセッサは、通常の処理を再開
する。図4(c)は図4(a)に対応する、スナップシ
ョット後の共有メモリ2の内容を示している。
ット管理部30は、アクセス識別部22にアクセス情報
をクリアさせ、各プロセッサにスナップショットが完了
したことを伝える。各プロセッサは、通常の処理を再開
する。図4(c)は図4(a)に対応する、スナップシ
ョット後の共有メモリ2の内容を示している。
【0033】(1−B)プログラムの再現時。 任意のチェックポイントから処理を再現するために、再
現実行管理部31は、各プロセッシングエレメント1−
1,1−2,…,1−nに再現すべきチェックポイント
位置を通知する。
現実行管理部31は、各プロセッシングエレメント1−
1,1−2,…,1−nに再現すべきチェックポイント
位置を通知する。
【0034】プロセッサ状態管理部12のプロセッサ状
態復元部12bは、再現実行管理部31によって通知さ
れたチェックポイント位置のプロセッサ状態、及びロー
カルメモリ内容を、プロセッサ状態格納部12aから検
索し、それぞれをプロセッサ10とローカルメモリ11
に設定する。
態復元部12bは、再現実行管理部31によって通知さ
れたチェックポイント位置のプロセッサ状態、及びロー
カルメモリ内容を、プロセッサ状態格納部12aから検
索し、それぞれをプロセッサ10とローカルメモリ11
に設定する。
【0035】アクセス履歴管理部13のアクセス履歴復
元部13bは、通知されたチェックポイントからの履歴
をアクセスできるように、ログを当該チェックポイント
時点の先頭から読み出す準備をする。
元部13bは、通知されたチェックポイントからの履歴
をアクセスできるように、ログを当該チェックポイント
時点の先頭から読み出す準備をする。
【0036】再現実行管理部31は、共有メモリ2の状
態を復元するため、再現すべきチェックポイント、及び
それ以前のチェックポイントのスナップショットによっ
て記録された情報を、二次記憶装置4から、それぞれの
メモリブロックの最新情報を検索し、共有メモリ2のデ
ータ保持部20、バージョン管理部21(読出し回数カ
ウンタ21a、更新回数カウンタ21b)に設定する。
態を復元するため、再現すべきチェックポイント、及び
それ以前のチェックポイントのスナップショットによっ
て記録された情報を、二次記憶装置4から、それぞれの
メモリブロックの最新情報を検索し、共有メモリ2のデ
ータ保持部20、バージョン管理部21(読出し回数カ
ウンタ21a、更新回数カウンタ21b)に設定する。
【0037】これらの処理が終了すると、再現実行管理
部31は、各プロセッシングエレメント1−1,1−
2,…,1−nの各プロセッサ10に実行再現準備が完
了したことを通知する。
部31は、各プロセッシングエレメント1−1,1−
2,…,1−nの各プロセッサ10に実行再現準備が完
了したことを通知する。
【0038】ここでは、プロセッシングエレメントPが
共有メモリ2のアドレスADDR1からデータを読出し
てレジスタXに格納する読出し命令を発行する例を用い
て、共有メモリ2に対する読出し操作を説明する。な
お、この命令の処理が実行される前の、共有メモリ2の
状態が図5(a)、プロセッシングエレメントPのアク
セス履歴格納部13aに格納されたログが図5(b)に
示すようになっているものとする。
共有メモリ2のアドレスADDR1からデータを読出し
てレジスタXに格納する読出し命令を発行する例を用い
て、共有メモリ2に対する読出し操作を説明する。な
お、この命令の処理が実行される前の、共有メモリ2の
状態が図5(a)、プロセッシングエレメントPのアク
セス履歴格納部13aに格納されたログが図5(b)に
示すようになっているものとする。
【0039】プロセッサ10は、共有メモリ2に対する
読出し操作を行なう際、アクセス履歴管理部13からの
ログ情報と、バージョン管理部21の更新回数カウンタ
21bの値が等しくなるまでウエイトされる。両者の値
が等しくなった時、バージョン管理部21は、読出し回
数カウンタ21aの値をインクリメントし、プロセッサ
10にデータ保持部20のデータを渡し、処理を継続さ
せる。アクセス履歴管理部13は、ログのポインタを進
める。この例では、ADDR1に対応する更新回数カウ
ンタ21bの値が2になるまでプロセッサ10をウエイ
トさせ、更新回数カウンタ21bの値が2になったなら
ば、読出し回数カウンタ21aをインクリメントする。
この命令の処理が行なわれた後の共有メモリ2の状態は
図5(c)に示すようになる。
読出し操作を行なう際、アクセス履歴管理部13からの
ログ情報と、バージョン管理部21の更新回数カウンタ
21bの値が等しくなるまでウエイトされる。両者の値
が等しくなった時、バージョン管理部21は、読出し回
数カウンタ21aの値をインクリメントし、プロセッサ
10にデータ保持部20のデータを渡し、処理を継続さ
せる。アクセス履歴管理部13は、ログのポインタを進
める。この例では、ADDR1に対応する更新回数カウ
ンタ21bの値が2になるまでプロセッサ10をウエイ
トさせ、更新回数カウンタ21bの値が2になったなら
ば、読出し回数カウンタ21aをインクリメントする。
この命令の処理が行なわれた後の共有メモリ2の状態は
図5(c)に示すようになる。
【0040】次に、プロセッシングエレメントPが共有
メモリ2のアドレスADDR2にレジスタXの内容を書
き込む命令を発行する例を用いて、共有メモリ2に対す
る書き込み操作を説明する。なお、この命令の処理が行
なわれる前の、共有メモリ2の状態が図6(a)、プロ
セッシングエレメントPのプロセッサ10のレジスタX
の内容が図6(b)、アクセス履歴管理部13のアクセ
ス履歴格納部13aに格納されたログが図6(c)に示
すようになっているものとする。
メモリ2のアドレスADDR2にレジスタXの内容を書
き込む命令を発行する例を用いて、共有メモリ2に対す
る書き込み操作を説明する。なお、この命令の処理が行
なわれる前の、共有メモリ2の状態が図6(a)、プロ
セッシングエレメントPのプロセッサ10のレジスタX
の内容が図6(b)、アクセス履歴管理部13のアクセ
ス履歴格納部13aに格納されたログが図6(c)に示
すようになっているものとする。
【0041】プロセッサ10は、共有メモリ2に対する
書き込み操作を行なう際、アクセス履歴管理部13から
のバージョン番号(更新回数)とバージョン管理部21
の更新回数カウンタ21bの値が等しく、かつ、アクセ
ス履歴管理部13からの読出し回数と読出し回数カウン
タ21aの値が等しくなるまでウエイトされる。それぞ
れで値が等しくなった時に、共有メモリ2は、プロセッ
サ10からのデータをデータ保持部20に格納し、バー
ジョン管理部21の更新回数カウンタ21bをインクリ
メントし、読出し回数カウンタ21aをクリアする。そ
して、プロセッサ10の処理を継続させ、アクセス履歴
管理部13のログのポインタを進める。
書き込み操作を行なう際、アクセス履歴管理部13から
のバージョン番号(更新回数)とバージョン管理部21
の更新回数カウンタ21bの値が等しく、かつ、アクセ
ス履歴管理部13からの読出し回数と読出し回数カウン
タ21aの値が等しくなるまでウエイトされる。それぞ
れで値が等しくなった時に、共有メモリ2は、プロセッ
サ10からのデータをデータ保持部20に格納し、バー
ジョン管理部21の更新回数カウンタ21bをインクリ
メントし、読出し回数カウンタ21aをクリアする。そ
して、プロセッサ10の処理を継続させ、アクセス履歴
管理部13のログのポインタを進める。
【0042】この例では、ADDR2に対応する更新回
数カウンタ21bの値が2になり、かつ、読出し回数カ
ウンタ21aの値が4になるまで、プロセッサをウエイ
トさせ、更新回数カウンタ21bの値が2で、かつ、読
出し回数カウンタ21a値が4になったならば、更新回
数カウンタ21bをインクリメントし、読出し回数カウ
ンタ21aをクリアする。この命令の処理が行なわれた
後の共有メモリ2の状態は図6(d)に示すようにな
る。
数カウンタ21bの値が2になり、かつ、読出し回数カ
ウンタ21aの値が4になるまで、プロセッサをウエイ
トさせ、更新回数カウンタ21bの値が2で、かつ、読
出し回数カウンタ21a値が4になったならば、更新回
数カウンタ21bをインクリメントし、読出し回数カウ
ンタ21aをクリアする。この命令の処理が行なわれた
後の共有メモリ2の状態は図6(d)に示すようにな
る。
【0043】(2)アクセス識別部22において読出し
/書き出しアクセスを区別する方法。 前述したように、アクセス識別部22において読出し/
書き出しアクセスを区別しない方法では、アクセス履歴
管理部13は、アクセスされたか否かだけを「on/o
ff」で記録していたが、区別する方法では、書き込み
だけの時は「R(Read)」、書き込みだけの時は
「W(Write)」、両方行なわれた時は「R/W
(Read/Write)」、アクセスされていない時
は「off」を記録するものとする。
/書き出しアクセスを区別する方法。 前述したように、アクセス識別部22において読出し/
書き出しアクセスを区別しない方法では、アクセス履歴
管理部13は、アクセスされたか否かだけを「on/o
ff」で記録していたが、区別する方法では、書き込み
だけの時は「R(Read)」、書き込みだけの時は
「W(Write)」、両方行なわれた時は「R/W
(Read/Write)」、アクセスされていない時
は「off」を記録するものとする。
【0044】(2−A)プログラムの実行時。 ここでは、プロセッシングエレメントPが共有メモリ2
のアドレスADDR1の内容をレジスタXに格納する命
令を発行する例を用いて共有メモリ2に対する読出し操
作を説明する。
のアドレスADDR1の内容をレジスタXに格納する命
令を発行する例を用いて共有メモリ2に対する読出し操
作を説明する。
【0045】まず、読出し命令に応じて、アクセス識別
部22のアドレスADDR1に対応するメモリブロック
のアクセスフラグがWであれば「R/W」にし、それ以
外の時は「R」にする。また、データ保持部20から当
該アドレスのデータを取り出し、プロセッシングエレメ
ントPのプロセッサに渡す。
部22のアドレスADDR1に対応するメモリブロック
のアクセスフラグがWであれば「R/W」にし、それ以
外の時は「R」にする。また、データ保持部20から当
該アドレスのデータを取り出し、プロセッシングエレメ
ントPのプロセッサに渡す。
【0046】バージョン管理部21は、当該アドレスの
読出し回数カウンタ21aをインクリメントし、更新回
数カウンタ21bから当該アドレスの更新回数を取り出
して、プロセッシングエレメントPのアクセス履歴管理
部13に渡す。プロセッシングエレメントPのアクセス
履歴管理部13は、その値をログとして記録する。
読出し回数カウンタ21aをインクリメントし、更新回
数カウンタ21bから当該アドレスの更新回数を取り出
して、プロセッシングエレメントPのアクセス履歴管理
部13に渡す。プロセッシングエレメントPのアクセス
履歴管理部13は、その値をログとして記録する。
【0047】次に、プロセッシングエレメントPが共有
メモリ2のアドレスADDR2にレジスタXの内容を書
き込む命令を発行する例を用いて、共有メモリ2に対す
る読出し操作を説明する。
メモリ2のアドレスADDR2にレジスタXの内容を書
き込む命令を発行する例を用いて、共有メモリ2に対す
る読出し操作を説明する。
【0048】まず、書き込み命令に応じて、アクセス識
別部22の当該アドレスに対応するメモリブロックのア
クセスフラグが「R」であれば「R/W」にし、それ以
外の時は「W」にする。また、データ保持部20は、プ
ロセッシングエレメントPのプロセッサ10からのレジ
スタXのデータを当該アドレスに設定する。
別部22の当該アドレスに対応するメモリブロックのア
クセスフラグが「R」であれば「R/W」にし、それ以
外の時は「W」にする。また、データ保持部20は、プ
ロセッシングエレメントPのプロセッサ10からのレジ
スタXのデータを当該アドレスに設定する。
【0049】バージョン管理部21は、当該アドレスの
読出し回数カウンタ21a値と更新回数カウンタ21b
の値をプロセッシングエレメントPのアクセス履歴管理
部13に渡すと共に、読出し回数カウンタ21aをクリ
アし、更新回数カウンタ21bをインクリメントする。
プロセッシングエレメントPのアクセス履歴管理部13
は、その読出し回数カウンタ21aの値と更新回数カウ
ンタ21bの値(更新バージョン9をログとして記録す
る。
読出し回数カウンタ21a値と更新回数カウンタ21b
の値をプロセッシングエレメントPのアクセス履歴管理
部13に渡すと共に、読出し回数カウンタ21aをクリ
アし、更新回数カウンタ21bをインクリメントする。
プロセッシングエレメントPのアクセス履歴管理部13
は、その読出し回数カウンタ21aの値と更新回数カウ
ンタ21bの値(更新バージョン9をログとして記録す
る。
【0050】スナップショット管理部30は、定期的に
チェックポイントを作るために、各プロセッシングエレ
メント1−1,1−2,…,1−nに、スナップショッ
トを取ることを指示する。
チェックポイントを作るために、各プロセッシングエレ
メント1−1,1−2,…,1−nに、スナップショッ
トを取ることを指示する。
【0051】チェックポイントを生成するために、各プ
ロセッシングエレメント1−1,1−2,…,1−nの
プロセッサ10は通常の処理を中断する。プロセッサ状
態管理部12は、プロセッサ10の状態、及びローカル
メモリ11の内容をプロセッサ状態格納部12aに保存
する。
ロセッシングエレメント1−1,1−2,…,1−nの
プロセッサ10は通常の処理を中断する。プロセッサ状
態管理部12は、プロセッサ10の状態、及びローカル
メモリ11の内容をプロセッサ状態格納部12aに保存
する。
【0052】スナップショット管理部30は、アクセス
識別部22のアクセス情報を参照して前回のスナップシ
ョット以降にアクセスされた部分を探す。例えば、スナ
ップショットを取る直前の共有メモリ2の一部が図7
(a)に示すようになっているものとする。
識別部22のアクセス情報を参照して前回のスナップシ
ョット以降にアクセスされた部分を探す。例えば、スナ
ップショットを取る直前の共有メモリ2の一部が図7
(a)に示すようになっているものとする。
【0053】この場合、アクセス識別部22にはメモリ
ブロックkのフラグが「W」となっているため、スナッ
プショット管理部30は、共有メモリ2に格納された、
書き込み操作が行なわれているメモリブロックkの部分
のデータ保持部20のデータ、バージョン管理部21の
読出し回数カウンタ21a及び更新回数カウンタ21b
の値を二次記憶装置4に格納する。さらに、スナップシ
ョット管理部30は、アクセス識別部22のフラグが
「R」となっている、読出し操作だけが行なわれている
メモリブロックiの部分の、読出し回数カウンタ21a
及び更新回数カウンタ21bの値を二次記憶装置4に格
納する。図7(b)はスナップショットによって記録さ
れる情報を示している。
ブロックkのフラグが「W」となっているため、スナッ
プショット管理部30は、共有メモリ2に格納された、
書き込み操作が行なわれているメモリブロックkの部分
のデータ保持部20のデータ、バージョン管理部21の
読出し回数カウンタ21a及び更新回数カウンタ21b
の値を二次記憶装置4に格納する。さらに、スナップシ
ョット管理部30は、アクセス識別部22のフラグが
「R」となっている、読出し操作だけが行なわれている
メモリブロックiの部分の、読出し回数カウンタ21a
及び更新回数カウンタ21bの値を二次記憶装置4に格
納する。図7(b)はスナップショットによって記録さ
れる情報を示している。
【0054】これらの処理が終了すると、スナップショ
ット管理部30は、アクセス識別部22にアクセス情報
をクリアさせ、各プロセッサにスナップショットが完了
したことを伝える。各プロセッサは、通常の処理を再開
する。図7(c)は図7(a)に対応する、スナップシ
ョット後の共有メモリ2の内容を示している。
ット管理部30は、アクセス識別部22にアクセス情報
をクリアさせ、各プロセッサにスナップショットが完了
したことを伝える。各プロセッサは、通常の処理を再開
する。図7(c)は図7(a)に対応する、スナップシ
ョット後の共有メモリ2の内容を示している。
【0055】(2−B)プログラムの再現時 任意のチェックポイントから処理を再現するために、再
現実行管理部31は、各プロセッシングエレメント1−
1,1−2,…,1−nに再現すべきチェックポイント
位置を通知する。
現実行管理部31は、各プロセッシングエレメント1−
1,1−2,…,1−nに再現すべきチェックポイント
位置を通知する。
【0056】プロセッサ状態管理部12は、再現実行管
理部31によって通知されたチェックポイント位置のプ
ロセッサ状態、及びローカルメモリ内容をプロセッサ状
態格納部12aから検索し、それぞれをプロセッサ10
とローカルメモリ11に設定する。
理部31によって通知されたチェックポイント位置のプ
ロセッサ状態、及びローカルメモリ内容をプロセッサ状
態格納部12aから検索し、それぞれをプロセッサ10
とローカルメモリ11に設定する。
【0057】アクセス履歴管理部13は、通知されたチ
ェックポイントからの履歴をアクセスできるように、ロ
グを当該チェックポイント時点の先頭から読み出す準備
をする。
ェックポイントからの履歴をアクセスできるように、ロ
グを当該チェックポイント時点の先頭から読み出す準備
をする。
【0058】再現実行管理部31は、共有メモリ2の状
態を復元するため、再現すべきチェックポイント、及び
それ以前のチェックポイントのスナップショットによっ
て記録された情報から、それぞれのメモリブロックの最
新情報を検索し、共有メモリ2のデータ保持部20、バ
ージョン管理部21(読出し回数カウンタ21a、更新
回数カウンタ21b)に設定する。この際、共有メモリ
2のデータ保持部20中のデータと、バージョン管理部
21中の情報は別々に検索されるものとする。
態を復元するため、再現すべきチェックポイント、及び
それ以前のチェックポイントのスナップショットによっ
て記録された情報から、それぞれのメモリブロックの最
新情報を検索し、共有メモリ2のデータ保持部20、バ
ージョン管理部21(読出し回数カウンタ21a、更新
回数カウンタ21b)に設定する。この際、共有メモリ
2のデータ保持部20中のデータと、バージョン管理部
21中の情報は別々に検索されるものとする。
【0059】これらの処理が終了すると、再現実行管理
部31は、各プロセッシングエレメント1−1,1−
2,…,1−nの各プロセッサ10に実行再現準備が完
了したことを通知する。
部31は、各プロセッシングエレメント1−1,1−
2,…,1−nの各プロセッサ10に実行再現準備が完
了したことを通知する。
【0060】プロセッサ10は、共有メモリ2に対する
読出し操作を行なう際、アクセス履歴管理部13からの
ログ情報と、バージョン管理部21の更新回数カウンタ
21bの値が等しくなるまでウエイトされる。両者の値
が等しくなった時、バージョン管理部21は、読出し回
数カウンタ21aの値をインクリメントし、プロセッサ
10にデータ保持部20のデータを渡し、処理を継続さ
せる。アクセス履歴管理部13は、ログのポインタを進
める。
読出し操作を行なう際、アクセス履歴管理部13からの
ログ情報と、バージョン管理部21の更新回数カウンタ
21bの値が等しくなるまでウエイトされる。両者の値
が等しくなった時、バージョン管理部21は、読出し回
数カウンタ21aの値をインクリメントし、プロセッサ
10にデータ保持部20のデータを渡し、処理を継続さ
せる。アクセス履歴管理部13は、ログのポインタを進
める。
【0061】また、プロセッサ10は、共有メモリ2に
対する書き込み操作を行なう際、アクセス履歴管理部1
3からのバージョン番号(更新回数)とバージョン管理
部21の更新回数カウンタ21bの値が等しく、かつ、
アクセス履歴管理部13からの読出し回数と読出し回数
カウンタ21aの値が等しくなるまでウエイトされる。
それぞれで値が等しくなった時に、共有メモリ2は、プ
ロセッサ10からのデータをデータ保持部20に格納
し、バージョン管理部21の更新回数カウンタ21bを
インクリメントし、読出し回数カウンタ21aをクリア
する。そして、プロセッサ10の処理を継続させ、アク
セス履歴管理部13のログのポインタを進める。
対する書き込み操作を行なう際、アクセス履歴管理部1
3からのバージョン番号(更新回数)とバージョン管理
部21の更新回数カウンタ21bの値が等しく、かつ、
アクセス履歴管理部13からの読出し回数と読出し回数
カウンタ21aの値が等しくなるまでウエイトされる。
それぞれで値が等しくなった時に、共有メモリ2は、プ
ロセッサ10からのデータをデータ保持部20に格納
し、バージョン管理部21の更新回数カウンタ21bを
インクリメントし、読出し回数カウンタ21aをクリア
する。そして、プロセッサ10の処理を継続させ、アク
セス履歴管理部13のログのポインタを進める。
【0062】
【発明の効果】以上のように本発明によれば、データ更
新回数とアクセス回数、及び共有メモリのデータ変化部
分だけからプログラム再現できるようにすることによ
り、プログラム再現に必要な情報の記録量を減らすこと
ができる。また、任意のチェックポイントからのプログ
ラム再現をバージョン番号によって同期をとるため、グ
ローバルクロックや共通の格納領域を必要とすることな
しに実現することができるという効果がある。
新回数とアクセス回数、及び共有メモリのデータ変化部
分だけからプログラム再現できるようにすることによ
り、プログラム再現に必要な情報の記録量を減らすこと
ができる。また、任意のチェックポイントからのプログ
ラム再現をバージョン番号によって同期をとるため、グ
ローバルクロックや共通の格納領域を必要とすることな
しに実現することができるという効果がある。
【図1】本発明の一実施例に係わる並列計算機の主要な
構成を示すブロック図。
構成を示すブロック図。
【図2】アクセス識別部22で読出し/書き込みを区別
しない方法におけるプログラム実行時の読出し操作を説
明するための図。
しない方法におけるプログラム実行時の読出し操作を説
明するための図。
【図3】アクセス識別部22で読出し/書き込みを区別
しない方法におけるプログラム実行時の書き込み操作を
説明するための図。
しない方法におけるプログラム実行時の書き込み操作を
説明するための図。
【図4】アクセス識別部22で読出し/書き込みを区別
しない方法におけるスナップショットを説明するための
図。
しない方法におけるスナップショットを説明するための
図。
【図5】アクセス識別部22で読出し/書き込みを区別
する方法におけるプログラム再現時の読出し操作を説明
するための図。
する方法におけるプログラム再現時の読出し操作を説明
するための図。
【図6】アクセス識別部22で読出し/書き込みを区別
する方法におけるプログラム再現時の書き込み操作を説
明するための図。
する方法におけるプログラム再現時の書き込み操作を説
明するための図。
【図7】アクセス識別部22で読出し/書き込みを区別
する方法におけるスナップショットを説明するための
図。
する方法におけるスナップショットを説明するための
図。
1−1,1−2,…,1−n…プロセッシングエレメン
ト、2…共有メモリ、3…チェックポイント管理部、4
…二次記憶装置、5…バス、10…プロセッサ、11…
ローカルメモリ、12…プロセッサ状態管理部、13…
アクセス履歴管理部、20…データ保持部、21…バー
ジョン管理部、21a…読出し回数カウンタ、21b…
更新回数カウンタ、22…アクセス識別部、30…スナ
ップショット管理部、31…再現実行管理部。
ト、2…共有メモリ、3…チェックポイント管理部、4
…二次記憶装置、5…バス、10…プロセッサ、11…
ローカルメモリ、12…プロセッサ状態管理部、13…
アクセス履歴管理部、20…データ保持部、21…バー
ジョン管理部、21a…読出し回数カウンタ、21b…
更新回数カウンタ、22…アクセス識別部、30…スナ
ップショット管理部、31…再現実行管理部。
Claims (2)
- 【請求項1】 複数のプロセッシングエレメントから共
有メモリに対してアクセスする並列計算機において、 データを格納するためのデータ保持手段と、 前記データ保持手段に保持されたデータに対応して、同
データに対する更新回数及び読出し回数を示す情報を記
録するバージョン管理手段と、 前記データ保持手段に保持されたデータを含むメモリブ
ロック単位で、アクセス操作が行なわれたか否かを識別
するための情報を記録するアクセス識別手段と、 が設けられた共有メモリと、 プログラム実行時に前記プロセッシングエレメントに対
してスナップショットの実行を指示すると共に、前記ア
クセス識別手段によって記録された情報に応じて、チェ
ックポイント間でアクセス操作が行なわれた前記保持手
段によって保持されたデータ、及び前記バージョン管理
手段によって記録された情報を格納するスナップショッ
ト管理手段と、 プログラム再現時に前記プロセッシングエレメントに対
して任意のチェックポイントからプログラムの再現実行
を指示すると共に、前記スナップショット管理手段によ
って格納された内容に基づいて前記共有メモリを復元す
る再現実行管理手段と、 が設けられたチェックポイント管理手段と、 前記スナップショット管理手段によるスナップショット
の実行指示に応じて、前記共有メモリに対するアクセス
履歴を格納するアクセス履歴格納手段と、 チェックポイント時のプロセッサ状態情報を格納するプ
ロセッサ状態格納手段と、 前記再現実行管理手段によるプログラム再現実行の指示
に応じて、前記プロセッサ状態格納手段によって格納さ
れたプロセッサ状態情報を復元するプロセッサ状態復元
手段と、 前記アクセス履歴格納手段によって格納されたアクセス
履歴に基づいて、プログラム再現の同期が取られた後
に、前記再現実行管理手段によって再現された前記共有
メモリ及び前記プロセッサ状態復元手段によって復元さ
れたプロセッサ状態情報によりプログラムを再実行する
プロセッサと、 が設けられたプロセッシングエレメントと、 を具備したことを特徴とする並列計算機。 - 【請求項2】 複数のプロセッシングエレメントから共
有メモリに対してアクセスする並列計算機におけるプロ
グラム実行再現方法であって、 前記共有メモリは、 データを格納するためのデータ保持手段と、 前記データ保持手段に保持されたデータに対応して、同
データに対する更新回数及び読出し回数を示す情報を記
録するバージョン管理手段と、 前記データ保持手段に保持されたデータを含むメモリブ
ロック単位で、アクセス操作が行なわれたか否かを識別
するための情報を記録するアクセス識別手段とが設けら
れ、 プログラムを実行する際に、前記プロセッシングエレメ
ントに対してスナップショットを実行し、 前記アクセス識別手段によって記録された情報に応じ
た、チェックポイント間でアクセス操作が行なわれた前
記保持手段によって保持されたデータ、及び前記バージ
ョン管理手段によって記録された情報、並びに前記共有
メモリに対するアクセス履歴及びチェックポイント時の
プロセッサ状態情報を記録し、 プログラムを再現実行する際に、 前記アクセス履歴に基づいてプログラム再現の同期が取
られた後に、前記スナップショットによって記録された
情報をもとに再現された前記共有メモリ及びプロセッサ
状態によりプログラムを再実行することを特徴とするプ
ログラム実行再現方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5158371A JPH0713805A (ja) | 1993-06-29 | 1993-06-29 | 並列計算機及びプログラム実行再現方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5158371A JPH0713805A (ja) | 1993-06-29 | 1993-06-29 | 並列計算機及びプログラム実行再現方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0713805A true JPH0713805A (ja) | 1995-01-17 |
Family
ID=15670242
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5158371A Pending JPH0713805A (ja) | 1993-06-29 | 1993-06-29 | 並列計算機及びプログラム実行再現方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0713805A (ja) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH08221302A (ja) * | 1995-02-17 | 1996-08-30 | Nec Commun Syst Ltd | 障害情報収集装置 |
| US6332200B1 (en) | 1998-10-29 | 2001-12-18 | International Business Machines Corporation | Capturing and identifying a complete and consistent set of checkpoint files |
| JP2012058842A (ja) * | 2010-09-06 | 2012-03-22 | Nec Corp | データベースの共有メモリの状態を別環境に再現するシステム及び方法 |
| JP2017194729A (ja) * | 2016-04-18 | 2017-10-26 | 株式会社日立製作所 | 計算機システムおよびシステム状態再現方法 |
| US10635443B2 (en) | 2015-07-23 | 2020-04-28 | Fujitsu Limited | Apparatus and method to emulate a sequence of instructions via parallel processors |
-
1993
- 1993-06-29 JP JP5158371A patent/JPH0713805A/ja active Pending
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH08221302A (ja) * | 1995-02-17 | 1996-08-30 | Nec Commun Syst Ltd | 障害情報収集装置 |
| US6332200B1 (en) | 1998-10-29 | 2001-12-18 | International Business Machines Corporation | Capturing and identifying a complete and consistent set of checkpoint files |
| JP2012058842A (ja) * | 2010-09-06 | 2012-03-22 | Nec Corp | データベースの共有メモリの状態を別環境に再現するシステム及び方法 |
| US10635443B2 (en) | 2015-07-23 | 2020-04-28 | Fujitsu Limited | Apparatus and method to emulate a sequence of instructions via parallel processors |
| JP2017194729A (ja) * | 2016-04-18 | 2017-10-26 | 株式会社日立製作所 | 計算機システムおよびシステム状態再現方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4868744A (en) | Method for restarting a long-running, fault-tolerant operation in a transaction-oriented data base system without burdening the system log | |
| US5581750A (en) | System and method for improving data recovery performance | |
| CN110659256B (zh) | 多机房同步方法、计算设备及计算机存储介质 | |
| US7472139B2 (en) | Database recovery method applying update journal and database log | |
| KR100238925B1 (ko) | 비휘발성 메모리를 갖는 복원 가능 디스크 제어 시스템 | |
| JPH056297A (ja) | トランザクシヨン処理方法およびシステム | |
| JPH0560617B2 (ja) | ||
| JP3290548B2 (ja) | 階層形チェックポイントを使用する論理シミュレータ | |
| JPH08504528A (ja) | データベースにおけるメモリ空間の最適化方法 | |
| CN109947742B (zh) | 面向二阶段锁的多版本数据库并发控制方法和系统 | |
| US7072912B1 (en) | Identifying a common point in time across multiple logs | |
| US6092084A (en) | One system of a multisystem environment taking over log entries owned by another system | |
| JP3135714B2 (ja) | チェックポイントリスタート方式 | |
| US5761403A (en) | Failure recovery system and failure recovery method in loosely coupled multi-computer system, and medium for storing failure recovery program | |
| JPH06149485A (ja) | データ完結性保証処理方法 | |
| US5615371A (en) | Debug processing system for user programs | |
| JPS62245348A (ja) | データベース更新方法 | |
| CN100369038C (zh) | 一种实时数据库事务操作的实现方法 | |
| JPS63132351A (ja) | メモリデ−タベ−ス処理装置 | |
| JPH0713943A (ja) | 並列計算機 | |
| CN109271277A (zh) | 数据库宕机后的访问方法、装置和系统 | |
| JPH03271841A (ja) | データベースにおけるリカバリ方式 | |
| JP3130798B2 (ja) | バス転送装置 | |
| JPH03231337A (ja) | システム実行履歴収集処理方式 | |
| JPH0823840B2 (ja) | デ−タベ−ス更新方法および装置 |