JPH0713805A - Parallel computer and program execution reproducing method - Google Patents
Parallel computer and program execution reproducing methodInfo
- 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
- access
- shared memory
- data
- 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
Description
【0001】[0001]
【産業上の利用分野】本発明は、共有メモリを有する並
列計算機及び並列計算機におけるプログラムの実行再現
方法に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a parallel computer having a shared memory and a program execution reproducing method in the parallel computer.
【0002】[0002]
【従来の技術】一般に、単一プロセッシングエレメント
の装置において、プログラムは繰り返し実行しても同じ
振舞をする。この性質を利用して、多くデバッギングツ
ールが開発されている。2. Description of the Related Art Generally, in a device having a single processing element, a program behaves the same even if it is repeatedly executed. Many debugging tools have been developed using this property.
【0003】ところで、より処理能力の高い計算機を実
現するために、複数のプロセッシングエレメントを設
け、これらによって並列に処理を行なう並列計算機の開
発が行なわれている。Meanwhile, in order to realize a computer having a higher processing capacity, a parallel computer has been developed in which a plurality of processing elements are provided and processing is performed in parallel by these elements.
【0004】並列計算機では、各プロセッシングエレメ
ントのタイミングのずれなどにより、プログラム実行
が、必ずしも同じ振舞をするとは限らない。また、任意
の経過時間からプログラム実行を再現するには、多くの
スナップショットと、メモリのアクセス履歴を保持する
必要がある。従って、単一プロセッシングエレメントの
装置に用いられるデバッギングツールを、単純に並列計
算機に対して適用することはできない。In a parallel computer, the program execution does not always have the same behavior due to the timing shift of each processing element. In order to reproduce the program execution from an arbitrary elapsed time, it is necessary to retain many snapshots and memory access history. Therefore, the debugging tool used in a single processing element device cannot simply be applied to a parallel computer.
【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 )に説明
されているような、チェックポイント毎に、メモリの内
容を全て記録しておく方式がある。この方式は、変化部
分だけ記録するように改良するのは容易であるが、プロ
グラム実行を再現するという点においては、プロセス間
の相互干渉情報を持たないため、特定の状態から始めた
としても必ずしも前回のプログラム実行と同じ結果にな
るとは限らない。As a method for reproducing a program on a parallel computer, a method having a shared memory is known as "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), there is a method of recording all the memory contents at each checkpoint. This method is easy to improve so that only the changed portion is recorded, but in terms of reproducing the program execution, since it does not have mutual interference information between processes, even if it starts from a specific state, it is not always necessary. The result may not be the same as the previous program execution.
【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 )に説明さ
れているような、変化する部分だけをインクリメンタル
に記録する方式がある。この方式は、プロセス間の相互
干渉情報がメッセージの送受を記録したものであり、メ
ッセージ通信が共有メモリアクセスよりも遅いという特
性により、単位時間当たりに記録されるログ量は分散環
境のほうが相対的に少ない。ただし、メッセージに追い
越しが起こる場合には、単にどこから到着しただけでな
く、メッセージ送信元で付加する独特なメッセージ番号
や内容などの情報を記録する必要が生じる。As a method in a distributed environment, "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), there is a method to incrementally record only the changing part. In this method, the mutual interference information between processes records the sending and receiving of messages, and due to the characteristic that message communication is slower than shared memory access, the log amount recorded per unit time is relative in a distributed environment. Very few. However, when a message is overtaken, it is necessary to record information such as a unique message number or content added by the message sender, not only from where it arrived.
【0007】さらに、従来では、共有メモリアクセスの
順序を再現するための履歴を記録するためには、各プロ
セッシングエレメント共通のグローバルクロックによっ
てタイムスタンプを取るか、共通の格納領域にプロセッ
シングエレメント番号とアクセス操作種別、データなど
を順序関係を保ちながら記録する必要があった。Further, conventionally, in order to record a history for reproducing the order of shared memory access, a time stamp is taken by a global clock common to each processing element, or a processing element number and an access are made to a common storage area. It was necessary to record the operation type, data, etc. while maintaining the order relation.
【0008】[0008]
【発明が解決しようとする課題】このように従来の並列
計算機では、同じ振舞いをするようにプログラムを再現
させるためには多くの情報を記録しておく必要があっ
た。また、任意のチェックポイントからのプログラムを
再現しようとする場合には、グローバルクロックや、メ
ッセージ送信元で付加する独特なメッセージ番号や内容
などの前述した各種情報を格納するための格納領域を設
ける等の必要があった。As described above, in the conventional parallel computer, it was necessary to record a lot of information in order to reproduce the program so as to have the same behavior. Also, when trying to reproduce a program from an arbitrary checkpoint, a storage area is provided to store the above-mentioned various information such as the global clock and the unique message number and contents added by the message sender. I needed to.
【0009】本発明は前記のような事情を考慮してなさ
れたもので、プログラム再現に必要な情報の記録量を減
少させると共に、任意のチェックポイントからのプログ
ラム再現を容易に行なうことが可能な並列計算機及びプ
ログラム実行再現方法を提供することを目的とする。The present invention has been made in consideration of the above circumstances, and it is possible to reduce the recording amount of information required for program reproduction and easily reproduce the program from an arbitrary checkpoint. An object is to provide a parallel computer and a program execution reproduction method.
【0010】[0010]
【課題を解決するための手段】本発明は、複数のプロセ
ッシングエレメントから共有メモリに対してアクセスす
る並列計算機において、データを格納するためのデータ
保持手段と、前記データ保持手段に保持されたデータに
対応して、同データに対する更新回数及び読出し回数を
示す情報を記録するバージョン管理手段と、前記データ
保持手段に保持されたデータを含むメモリブロック単位
で、アクセス操作が行なわれたか否かを識別するための
情報を記録するアクセス識別手段とが設けられた共有メ
モリと、プログラム実行時に前記プロセッシングエレメ
ントに対してスナップショットの実行を指示すると共
に、前記アクセス識別手段によって記録された情報に応
じて、チェックポイント間でアクセス操作が行なわれた
前記共有メモリ中の前記保持手段によって保持されたデ
ータ、及び前記バージョン管理手段によって記録された
情報を格納するスナップショット管理手段と、プログラ
ム再現時に前記プロセッシングエレメントに対して任意
のチェックポイントからプログラムの再現実行を指示す
ると共に、スナップショット管理手段によって格納され
た内容に基づいて前記共有メモリを復元する再現実行管
理手段とが設けられたチェックポイント管理手段と、前
記スナップショット管理手段によるスナップショットの
実行指示に応じて、前記共有メモリに対するアクセス履
歴を格納するアクセス履歴格納手段と、チェックポイン
ト時のプロセッサ状態情報を格納するプロセッサ状態格
納手段と、前記再現実行管理手段によるプログラム再現
実行の指示に応じて、前記プロセッサ状態格納手段によ
って格納されたプロセッサ状態情報を復元するプロセッ
サ状態復元手段と、前記アクセス履歴格納手段によって
格納されたアクセス履歴に基づいて、プログラム再現の
同期が取られた後に、前記再現実行管理手段によって再
現された前記共有メモリ及び前記プロセッサ状態復元手
段によって復元されたプロセッサ状態情報によりプログ
ラムを再実行するプロセッサとが設けられたプロセッシ
ングエレメントと、を具備したことを特徴する。According to the present invention, in a parallel computer which accesses a shared memory from a plurality of processing elements, data holding means for storing data and data held in the data holding means are provided. Correspondingly, a version management unit that records information indicating the number of times of updating and the number of times of reading of the same data, and whether or not an access operation is performed are identified for each memory block including the data held in the data holding unit. And a shared memory provided with access identification means for recording information for instructing the processing element to instruct execution of a snapshot at the time of program execution, and a check is performed according to the information recorded by the access identification means. In the shared memory where the access operation was performed between points A snapshot management means for storing the data held by the storage means and the information recorded by the version management means, and an instruction to reproduce and execute the program from an arbitrary checkpoint to the processing element when reproducing the program. A checkpoint management unit provided with a reproduction execution management unit that restores the shared memory based on the contents stored by the snapshot management unit; and, in accordance with a snapshot execution instruction from the snapshot management unit, An access history storage unit for storing an access history to the shared memory, a processor state storage unit for storing processor state information at the time of checkpoint, and the processor according to an instruction of program reproduction execution by the reproduction execution management unit. Processor state restoration means for restoring the processor state information stored by the state storage means, and the reproduction execution management means after the program reproduction is synchronized based on the access history stored by the access history storage means. And a processing element provided with a processor that re-executes a program according to the reproduced shared memory and the processor state information restored by the processor state restoring means.
【0011】[0011]
【作用】このような構成によれば、プログラム実行時に
おいて、各プロセッシングエレメントは、書き込み時に
はバージョン番号(更新回数)と読み出し回数を、読出
し時にはバージョン番号だけを記録する。また、定期的
に共有メモリのスナップショットとして、前回との変化
部分についてだけ記録しておく。According to such a configuration, during program execution, each processing element records the version number (update count) and the read count at the time of writing, and only the version number at the time of reading. Also, as a snapshot of the shared memory, only the changed portion from the previous time is recorded.
【0012】任意のチェックポイントからプログラムの
実行を再現する場合、共有メモリは、当該チェックポイ
ント及びそれ以前の中から最新の共有メモリの情報を検
索し、共有メモリ内容を復元する。各プロセッシングエ
レメントは、当該チェックポイントのプロセッサ状態情
報からプロセッサ状態を復元する。When the execution of the program is reproduced from an arbitrary checkpoint, the shared memory retrieves the latest information of the shared memory from the checkpoint and the previous points, and restores the contents of the shared memory. Each processing element restores the processor state from the processor state information of the checkpoint.
【0013】プログラム実行再現時に、各プロセッシン
グエレメントは、共有メモリアクセス履歴に従い、書き
込み時にはバージョン番号と読み出し回数が一致するま
で、書き込み操作を待機させ、一致した時に、書き込み
操作を行なう。読出し時にはバージョン番号が一致する
まで、その操作を待機させ、一致した時に、読み込み操
作を行なう。これによりプログラム実行の再現を行な
う。At the time of program execution reproduction, each processing element waits for a write operation until the version number and the number of times of reading match at the time of writing, according to the shared memory access history, and at the time of matching, the write operation is performed. At the time of reading, the operation is put on standby until the version numbers match, and when they match, the reading operation is performed. As a result, the execution of the program is reproduced.
【0014】[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を経由して行
なわれる。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of the present invention will be described below with reference to the drawings. FIG. 1 is a block diagram showing the main configuration of a parallel computer according to this embodiment. As shown in FIG. 1, the parallel computer has a plurality of processing elements 1-1, 1-
2, ..., 1-n, shared memory 2, checkpoint management unit 3, secondary storage device 4, and bus 5. Processing elements 1-1, 1-2, ...
1-n, shared memory 2, and checkpoint management unit 3
Are connected via a bus 5, and write / read operations from the respective processing elements 1-1, 1-2, ..., 1-n to the shared memory 2 are performed via the bus 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は、必ず
しも必要ではなく、以下の説明を行なうために構成要素
としている。Each processing element 1-1, 1-
2, ..., 1-n are provided with a processor 10, a local memory 11, a processor state management unit 12, and an access history management unit 13. The processor state management unit 12
The processor 10 manages processor state information.
PSW (program status word), a register, a processor state storage unit 12a for storing processor state information including the contents of local memory, and a processor state restoring unit 12b for restoring the processor state information at any time. . The access history management unit 13 includes an access history storage unit 13a for storing an access history of the shared memory 2 of each processor, and an access history restoration unit 13b for restoring the order of access to the shared memory 2.
Is provided. The local memory 11 is not always necessary and is used as a component for the following description.
【0016】共有メモリ2には、データ保持部20、バ
ージョン管理部21、アクセス識別部22が設けられて
いる。データ保持部20は、各プロセッシングエレメン
ト1−1,1−2,…,1−nによって操作されるデー
タを格納するためのものである。バージョン管理部21
は、データ保持部20に格納された各データに対応し
て、データに対する更新回数を示すバージョン番号とそ
のバージョン番号の値に対応する読出し回数を管理する
もので、読出し回数カウンタ21a、更新回数カウンタ
21bが設けられている。アクセス識別部22は、メモ
リブロック単位で、その領域にアクセスされたか否かを
識別するためのフラグ(アクセス情報)を記録するため
のものである。また、アクセスされたか否かを識別する
だけでなく、読出し/書き込みアクセスを区別して記録
するようにしても良い。アクセス識別部22によって読
出し/書き込みアクセスを区別して記録しない場合とす
る場合の各状況毎に、動作の説明を後述している。The shared memory 2 is provided with a data holding unit 20, a version management unit 21, and an access identification unit 22. The data holding unit 20 is for storing data operated by each processing element 1-1, 1-2, ..., 1-n. Version management unit 21
Manages the version number indicating the number of updates to the data and the number of times of reading corresponding to the value of the version number corresponding to each data stored in the data holding unit 20. The number of readings counter 21a and the number of updates counters 21b is provided. The access identification unit 22 is for recording a flag (access information) for identifying whether or not the area is accessed in units of memory blocks. Further, not only is it discriminated whether or not it is accessed, but read / write access may be discriminated and recorded. A description will be given later of the operation for each situation where the read / write access is not recorded separately by the access identification unit 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の情報を復元させる。The checkpoint management unit 3 is provided with a snapshot management unit 30 and a reproduction execution management unit 31. The snapshot management unit 30 periodically executes each processing element 1-1, when the program is executed.
It is for instructing 1-2, ..., 1-n to execute a snapshot. The snapshot management unit 30
Each processing element 1-1, 1-2, ..., 1-
The processor state management unit 12 of n stores the processor state and the contents of the local memory 11, and the access history management unit 13 stores the information of the shared memory 2. The reproduction execution management unit 31 instructs each predetermined unit to reproduce and execute the program from an arbitrary checkpoint state at the time of reproducing the program. Since the program is reproduced and executed from the state at the arbitrary checkpoint, the processor state The management unit 12 restores the processor state of the checkpoint and the local memory 11, and the access history management unit 13 restores the information in the shared memory 2.
【0018】二次記憶装置4は、チェックポイント管理
部3による制御のもとに、プログラム実行を再現するた
めの各種データ、例えばデータ保持部20中のデータ
や、バージョン管理部21の読出し回数カウンタ21a
及び更新回数カウンタ21bの値を記憶するためのもの
である。Under the control of the checkpoint management unit 3, the secondary storage device 4 has various data for reproducing the program execution, for example, the data in the data holding unit 20 and the read number counter of the version management unit 21. 21a
And the value of the update counter 21b.
【0019】次に、本実施例の動作について、各状況毎
に説明する。ここでは、プロセッシングエレメント1−
1,1−2,…,1−n中の任意のプロセッシングエレ
メントPの動作を例にして説明する。Next, the operation of this embodiment will be described for each situation. Here, processing element 1-
An operation of an arbitrary processing element P in 1, 1-2, ..., 1-n will be described as an example.
【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 method in which the access identification unit 22 does not distinguish between reading and writing. (1-A) During program execution. Here, the processing element P is the shared memory 2
Data from the address ADDR1 of the register X
The read operation to the shared memory 2 will be described by using an example of issuing a read command to be stored in the memory. The state of the shared memory 2 before the processing of this instruction is executed is shown in FIG.
It is assumed to be as shown in (a). That is,
Data 5 is stored in the address ADDR1 of the data holding unit 20, and the version management unit 21 corresponds to this data.
Of the memory block corresponding to the address ADDR1 of the access identification unit 22 has a value of “o”.
ff ”.
【0021】まず、読出し命令に応じて、アクセス識別
部22の当該アドレスに対応するメモリブロックのアク
セスフラグを「on」にする。また、データ保持部20
から当該アドレスのデータ5を取り出し、プロセッシン
グエレメントPのプロセッサに渡す。First, in response to a read command, the access flag of the memory block corresponding to the address of the access identification unit 22 is turned "on". In addition, the data holding unit 20
The data 5 of the address is fetched from and is passed to the processor of the processing element P.
【0022】バージョン管理部21は、当該アドレスの
読出し回数カウンタ21aをインクリメントし(値は
4)、更新回数カウンタ21bから当該アドレスの更新
回数の値2を取り出して、プロセッシングエレメントP
のアクセス履歴管理部13に渡す。プロセッシングエレ
メントPのアクセス履歴管理部13は、その値をアクセ
ス履歴格納部13aにログとして記録する。The version management unit 21 increments the read count counter 21a of the address (value is 4), extracts the value 2 of the update count of the address from the update count counter 21b, and processes the processing element P.
To the access history management unit 13. The access history management unit 13 of the processing element P records the value in the access history storage unit 13a as a log.
【0023】前述した読出し操作の後、共有メモリ2の
状態は図2(b)、アクセス履歴管理部13のアクセス
履歴格納部13aに格納されたログの内容は図2
(c)、プロセッシングエレメントPのプロセッサ10
のレジスタXの内容は図2(d)に示すようにそれぞれ
変化する。After the above-mentioned read operation, the state of the shared memory 2 is shown in FIG. 2B, and the contents of the log stored in the access history storage unit 13a of the access history management unit 13 are shown in FIG.
(C), Processor 10 of Processing Element P
The contents of the register X are changed as shown in FIG.
【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となっている。Next, a write operation to the shared memory 2 will be described using an example in which the processing element P issues an instruction to write the contents of the register X to the address ADDR2 of the shared memory 2. It should be noted that the state of the shared memory 2 before the processing of this instruction is executed is shown in FIG. 3A, the register X of the processor 10 of the processing element P.
It is assumed that the contents of the above are as shown in FIG. That is, the address ADDR2 of the data holding unit 20
Stores data 5 and the value of the read number counter 21a of the version management unit 21 is 4 in correspondence with this data.
The value of the update counter 21b is 2, and the flag of the memory block corresponding to the address ADDR2 of the access identification unit 22 is "on". The content of the register X is data 10.
【0025】まず、書き込み命令に応じて、アクセス識
別部22の当該アドレスに対応するメモリブロックのア
クセスフラグを「on」にする。また、データ保持部2
0は、プロセッシングエレメントPのプロセッサ10か
らのレジスタXのデータ10を当該アドレスに設定す
る。First, in response to a write command, the access flag of the memory block corresponding to the address of the access identification unit 22 is turned "on". In addition, the data holding unit 2
0 sets the data 10 of the register X from the processor 10 of the processing element P to the address.
【0026】バージョン管理部21は、当該アドレスの
読出し回数カウンタ21aの値4と更新回数カウンタ2
1bの値2をプロセッシングエレメントPのアクセス履
歴管理部13に渡すと共に、読出し回数カウンタ21a
をクリアし、更新回数カウンタ21bをインクリメント
する。プロセッシングエレメントPのアクセス履歴管理
部13は、その読出し回数カウンタ21aの値と更新回
数カウンタ21bの値(バージョン番号)をログとして
記録する。The version management unit 21 uses the value 4 of the read number counter 21a of the address and the update number counter 2 of the address.
The value 2 of 1b is passed to the access history management unit 13 of the processing element P, and the read number counter 21a
Is cleared and the update number counter 21b is incremented. The access history management unit 13 of the processing element P records the value of the read count counter 21a and the value of the update count counter 21b (version number) as a log.
【0027】前述した書き込み操作の後、共有メモリ2
の状態は図3(c)、アクセス履歴管理部13のアクセ
ス履歴格納部13aに格納されたログの内容は図3
(d)に示すようにそれぞれ変化する。After the above write operation, the shared memory 2
3C, the contents of the log stored in the access history storage unit 13a of the access history management unit 13 are shown in FIG.
It changes as shown in (d).
【0028】スナップショット管理部30は、定期的に
チェックポイントを作るために、各プロセッシングエレ
メント1−1,1−2,…,1−nに、スナップショッ
トを取ることを指示する。この際、スナップショット管
理部30は、各プロセッシングエレメント1−1,1−
2,…,1−nへの割り込みで行なってもよく、またス
ナップショット管理部30が共有メモリ2の特定領域に
スナップショット命令を書き込み、各プロセッサがその
特定領域を定期的にポーリングすることによって行なっ
ても良い。The snapshot management unit 30 instructs each of the processing elements 1-1, 1-2, ..., 1-n to take a snapshot in order to periodically make a checkpoint. At this time, the snapshot management unit 30 causes the processing elements 1-1, 1-
2, ..., 1-n may be interrupted, or the snapshot management unit 30 writes a snapshot instruction to a specific area of the shared memory 2, and each processor periodically polls the specific area. You can do it.
【0029】チェックポイントを生成するために、各プ
ロセッシングエレメント1−1,1−2,…,1−nの
プロセッサ10は通常の処理を中断する。プロセッサ状
態管理部12は、プロセッサ10の状態、及びローカル
メモリ11の内容をプロセッサ状態格納部12aに保存
する。なお、ローカルメモリ内容は、プロセッサ10に
よってアクセスされるだけなので、値が変更された部分
だけを格納していけば良い。プロセッサ状態は、その時
点よりプログラムを復元するために必要な各種レジスタ
の内容、及びPSWである。To generate a checkpoint, the processor 10 of each processing element 1-1, 1-2, ..., 1-n interrupts normal processing. The processor state management unit 12 saves the state of the processor 10 and the contents of the local memory 11 in the processor state storage unit 12a. Since the contents of the local memory are only accessed by the processor 10, it is sufficient to store only the portion where the value is changed. The processor state is the contents of various registers and PSW necessary for restoring the program from that point.
【0030】スナップショット管理部30は、アクセス
識別部22のアクセス情報を参照して前回のスナップシ
ョット以降にアクセスされた部分を探す。例えば、スナ
ップショットを取る直前の共有メモリ2の一部が図4
(a)に示すようになっているものとする。The snapshot management unit 30 refers to the access information of the access identification unit 22 to search for a portion accessed since the previous snapshot. For example, a part of the shared memory 2 immediately before taking the snapshot is shown in FIG.
It is assumed to be as shown in (a).
【0031】この場合、アクセス識別部22にはメモリ
ブロックi,kのフラグが「on」となっているため、
スナップショット管理部30は、共有メモリ2に格納さ
れた、データ保持部20のメモリブロックi,kのデー
タ、バージョン管理部21の読出し回数カウンタ21a
及び更新回数カウンタ21bの値を二次記憶装置4に格
納する。図4(b)はスナップショットによって記録さ
れる情報を示している。In this case, since the flags of the memory blocks i and k are "on" in the access identification unit 22,
The snapshot management unit 30 stores the data of the memory blocks i and k of the data holding unit 20 stored in the shared memory 2 and the read number counter 21 a of the version management unit 21.
And the value of the update counter 21b is stored in the secondary storage device 4. FIG. 4B shows information recorded by the snapshot.
【0032】これらの処理が終了すると、スナップショ
ット管理部30は、アクセス識別部22にアクセス情報
をクリアさせ、各プロセッサにスナップショットが完了
したことを伝える。各プロセッサは、通常の処理を再開
する。図4(c)は図4(a)に対応する、スナップシ
ョット後の共有メモリ2の内容を示している。Upon completion of these processes, the snapshot management unit 30 causes the access identification unit 22 to clear the access information and informs each processor that the snapshot is completed. Each processor resumes normal processing. FIG. 4C shows the contents of the shared memory 2 after the snapshot, which corresponds to FIG.
【0033】(1−B)プログラムの再現時。 任意のチェックポイントから処理を再現するために、再
現実行管理部31は、各プロセッシングエレメント1−
1,1−2,…,1−nに再現すべきチェックポイント
位置を通知する。(1-B) At the time of reproducing the program. In order to reproduce the processing from an arbitrary checkpoint, the reproduction execution management unit 31 uses each processing element 1-
1, 1-2, ..., 1-n are notified of checkpoint positions to be reproduced.
【0034】プロセッサ状態管理部12のプロセッサ状
態復元部12bは、再現実行管理部31によって通知さ
れたチェックポイント位置のプロセッサ状態、及びロー
カルメモリ内容を、プロセッサ状態格納部12aから検
索し、それぞれをプロセッサ10とローカルメモリ11
に設定する。The processor state restoring unit 12b of the processor state managing unit 12 searches the processor state storing unit 12a for the processor state at the checkpoint position notified by the reproduction execution managing unit 31 and the contents of the local memory. 10 and local memory 11
Set to.
【0035】アクセス履歴管理部13のアクセス履歴復
元部13bは、通知されたチェックポイントからの履歴
をアクセスできるように、ログを当該チェックポイント
時点の先頭から読み出す準備をする。The access history restoration unit 13b of the access history management unit 13 prepares to read the log from the beginning at the checkpoint so that the history from the notified checkpoint can be accessed.
【0036】再現実行管理部31は、共有メモリ2の状
態を復元するため、再現すべきチェックポイント、及び
それ以前のチェックポイントのスナップショットによっ
て記録された情報を、二次記憶装置4から、それぞれの
メモリブロックの最新情報を検索し、共有メモリ2のデ
ータ保持部20、バージョン管理部21(読出し回数カ
ウンタ21a、更新回数カウンタ21b)に設定する。The reproduction execution management unit 31 restores the state of the shared memory 2 from the secondary storage device 4 by using the information recorded by the snapshots of the checkpoints to be reproduced and the checkpoints before that from the secondary storage device 4, respectively. The latest information of the memory block is searched and set in the data holding unit 20 and the version management unit 21 (reading counter 21a, updating counter 21b) of the shared memory 2.
【0037】これらの処理が終了すると、再現実行管理
部31は、各プロセッシングエレメント1−1,1−
2,…,1−nの各プロセッサ10に実行再現準備が完
了したことを通知する。When these processes are completed, the reproduction execution management section 31 determines the processing elements 1-1, 1-
2, ..., 1-n is notified that the preparation for execution reproduction is completed.
【0038】ここでは、プロセッシングエレメントPが
共有メモリ2のアドレスADDR1からデータを読出し
てレジスタXに格納する読出し命令を発行する例を用い
て、共有メモリ2に対する読出し操作を説明する。な
お、この命令の処理が実行される前の、共有メモリ2の
状態が図5(a)、プロセッシングエレメントPのアク
セス履歴格納部13aに格納されたログが図5(b)に
示すようになっているものとする。Here, the read operation for the shared memory 2 will be described using an example in which the processing element P issues a read command for reading data from the address ADDR1 of the shared memory 2 and storing it in the register X. The state of the shared memory 2 before the processing of this instruction is executed is shown in FIG. 5A, and the log stored in the access history storage unit 13a of the processing element P is shown in FIG. 5B. It is assumed that
【0039】プロセッサ10は、共有メモリ2に対する
読出し操作を行なう際、アクセス履歴管理部13からの
ログ情報と、バージョン管理部21の更新回数カウンタ
21bの値が等しくなるまでウエイトされる。両者の値
が等しくなった時、バージョン管理部21は、読出し回
数カウンタ21aの値をインクリメントし、プロセッサ
10にデータ保持部20のデータを渡し、処理を継続さ
せる。アクセス履歴管理部13は、ログのポインタを進
める。この例では、ADDR1に対応する更新回数カウ
ンタ21bの値が2になるまでプロセッサ10をウエイ
トさせ、更新回数カウンタ21bの値が2になったなら
ば、読出し回数カウンタ21aをインクリメントする。
この命令の処理が行なわれた後の共有メモリ2の状態は
図5(c)に示すようになる。When a read operation is performed on the shared memory 2, the processor 10 waits until the log information from the access history management unit 13 and the update count counter 21b of the version management unit 21 become equal. When the two values become equal, the version management unit 21 increments the value of the read number counter 21a, passes the data of the data holding unit 20 to the processor 10, and continues the processing. The access history management unit 13 advances the pointer of the log. In this example, the processor 10 is waited until the value of the update counter 21b corresponding to ADDR1 becomes 2, and when the value of the update counter 21b becomes 2, the read counter 21a is incremented.
The state of the shared memory 2 after the processing of this instruction is as shown in FIG.
【0040】次に、プロセッシングエレメントPが共有
メモリ2のアドレスADDR2にレジスタXの内容を書
き込む命令を発行する例を用いて、共有メモリ2に対す
る書き込み操作を説明する。なお、この命令の処理が行
なわれる前の、共有メモリ2の状態が図6(a)、プロ
セッシングエレメントPのプロセッサ10のレジスタX
の内容が図6(b)、アクセス履歴管理部13のアクセ
ス履歴格納部13aに格納されたログが図6(c)に示
すようになっているものとする。Next, the write operation to the shared memory 2 will be described using an example in which the processing element P issues an instruction to write the contents of the register X to the address ADDR2 of the shared memory 2. The state of the shared memory 2 before the processing of this instruction is shown in FIG. 6A, the register X of the processor 10 of the processing element P is shown.
6B, and the log stored in the access history storage unit 13a of the access history management unit 13 is as shown in FIG. 6C.
【0041】プロセッサ10は、共有メモリ2に対する
書き込み操作を行なう際、アクセス履歴管理部13から
のバージョン番号(更新回数)とバージョン管理部21
の更新回数カウンタ21bの値が等しく、かつ、アクセ
ス履歴管理部13からの読出し回数と読出し回数カウン
タ21aの値が等しくなるまでウエイトされる。それぞ
れで値が等しくなった時に、共有メモリ2は、プロセッ
サ10からのデータをデータ保持部20に格納し、バー
ジョン管理部21の更新回数カウンタ21bをインクリ
メントし、読出し回数カウンタ21aをクリアする。そ
して、プロセッサ10の処理を継続させ、アクセス履歴
管理部13のログのポインタを進める。When the processor 10 performs a write operation on the shared memory 2, the version number (update count) from the access history management unit 13 and the version management unit 21.
The update count counter 21b has the same value, and the read count from the access history management unit 13 is equal to the read count counter 21a. When the values become equal, the shared memory 2 stores the data from the processor 10 in the data holding unit 20, increments the update count counter 21b of the version management unit 21, and clears the read count counter 21a. Then, the processing of the processor 10 is continued, and the pointer of the log of the access history management unit 13 is advanced.
【0042】この例では、ADDR2に対応する更新回
数カウンタ21bの値が2になり、かつ、読出し回数カ
ウンタ21aの値が4になるまで、プロセッサをウエイ
トさせ、更新回数カウンタ21bの値が2で、かつ、読
出し回数カウンタ21a値が4になったならば、更新回
数カウンタ21bをインクリメントし、読出し回数カウ
ンタ21aをクリアする。この命令の処理が行なわれた
後の共有メモリ2の状態は図6(d)に示すようにな
る。In this example, the processor is waited until the value of the update counter 21b corresponding to ADDR2 becomes 2 and the value of the read counter 21a becomes 4, and the value of the update counter 21b becomes 2. When the value of the read number counter 21a becomes 4, the update number counter 21b is incremented and the read number counter 21a is cleared. The state of the shared memory 2 after the processing of this instruction is as shown in FIG. 6 (d).
【0043】(2)アクセス識別部22において読出し
/書き出しアクセスを区別する方法。 前述したように、アクセス識別部22において読出し/
書き出しアクセスを区別しない方法では、アクセス履歴
管理部13は、アクセスされたか否かだけを「on/o
ff」で記録していたが、区別する方法では、書き込み
だけの時は「R(Read)」、書き込みだけの時は
「W(Write)」、両方行なわれた時は「R/W
(Read/Write)」、アクセスされていない時
は「off」を記録するものとする。(2) A method of distinguishing read / write access in the access identification unit 22. As described above, the access identification unit 22 reads / reads.
In the method of not distinguishing the write access, the access history management unit 13 only determines whether or not the access is made by the “on / o”.
Although it was recorded as “ff”, the distinction method is “R (Read)” when only writing, “W (Write)” when only writing, and “R / W” when both are performed.
(Read / Write) "and" off "when not accessed.
【0044】(2−A)プログラムの実行時。 ここでは、プロセッシングエレメントPが共有メモリ2
のアドレスADDR1の内容をレジスタXに格納する命
令を発行する例を用いて共有メモリ2に対する読出し操
作を説明する。(2-A) During program execution. Here, the processing element P is the shared memory 2
The read operation to the shared memory 2 will be described using an example of issuing an instruction to store the contents of the address ADDR1 in the register X.
【0045】まず、読出し命令に応じて、アクセス識別
部22のアドレスADDR1に対応するメモリブロック
のアクセスフラグがWであれば「R/W」にし、それ以
外の時は「R」にする。また、データ保持部20から当
該アドレスのデータを取り出し、プロセッシングエレメ
ントPのプロセッサに渡す。First, in response to the read command, if the access flag of the memory block corresponding to the address ADDR1 of the access identification unit 22 is W, it is set to "R / W", otherwise it is set to "R". Further, the data of the address is taken out from the data holding unit 20 and passed to the processor of the processing element P.
【0046】バージョン管理部21は、当該アドレスの
読出し回数カウンタ21aをインクリメントし、更新回
数カウンタ21bから当該アドレスの更新回数を取り出
して、プロセッシングエレメントPのアクセス履歴管理
部13に渡す。プロセッシングエレメントPのアクセス
履歴管理部13は、その値をログとして記録する。The version management unit 21 increments the read count counter 21a of the address, extracts the update count of the address from the update count counter 21b, and passes it to the access history management unit 13 of the processing element P. The access history management unit 13 of the processing element P records the value as a log.
【0047】次に、プロセッシングエレメントPが共有
メモリ2のアドレスADDR2にレジスタXの内容を書
き込む命令を発行する例を用いて、共有メモリ2に対す
る読出し操作を説明する。Next, a read operation to the shared memory 2 will be described using an example in which the processing element P issues an instruction to write the contents of the register X to the address ADDR2 of the shared memory 2.
【0048】まず、書き込み命令に応じて、アクセス識
別部22の当該アドレスに対応するメモリブロックのア
クセスフラグが「R」であれば「R/W」にし、それ以
外の時は「W」にする。また、データ保持部20は、プ
ロセッシングエレメントPのプロセッサ10からのレジ
スタXのデータを当該アドレスに設定する。First, in response to a write command, if the access flag of the memory block corresponding to the address of the access identification unit 22 is "R", it is set to "R / W", and otherwise it is set to "W". . Further, the data holding unit 20 sets the data of the register X from the processor 10 of the processing element P to the address.
【0049】バージョン管理部21は、当該アドレスの
読出し回数カウンタ21a値と更新回数カウンタ21b
の値をプロセッシングエレメントPのアクセス履歴管理
部13に渡すと共に、読出し回数カウンタ21aをクリ
アし、更新回数カウンタ21bをインクリメントする。
プロセッシングエレメントPのアクセス履歴管理部13
は、その読出し回数カウンタ21aの値と更新回数カウ
ンタ21bの値(更新バージョン9をログとして記録す
る。The version management unit 21 reads the value of the read counter 21a of the address and the update counter 21b.
Is passed to the access history management unit 13 of the processing element P, the read number counter 21a is cleared, and the update number counter 21b is incremented.
Access history management unit 13 of processing element P
Reads the value of the read number counter 21a and the value of the update number counter 21b (update version 9 is recorded as a log.
【0050】スナップショット管理部30は、定期的に
チェックポイントを作るために、各プロセッシングエレ
メント1−1,1−2,…,1−nに、スナップショッ
トを取ることを指示する。The snapshot management section 30 instructs each of the processing elements 1-1, 1-2, ..., 1-n to take a snapshot in order to periodically make a checkpoint.
【0051】チェックポイントを生成するために、各プ
ロセッシングエレメント1−1,1−2,…,1−nの
プロセッサ10は通常の処理を中断する。プロセッサ状
態管理部12は、プロセッサ10の状態、及びローカル
メモリ11の内容をプロセッサ状態格納部12aに保存
する。In order to generate a checkpoint, the processor 10 of each processing element 1-1, 1-2, ..., 1-n interrupts normal processing. The processor state management unit 12 saves the state of the processor 10 and the contents of the local memory 11 in the processor state storage unit 12a.
【0052】スナップショット管理部30は、アクセス
識別部22のアクセス情報を参照して前回のスナップシ
ョット以降にアクセスされた部分を探す。例えば、スナ
ップショットを取る直前の共有メモリ2の一部が図7
(a)に示すようになっているものとする。The snapshot management unit 30 refers to the access information of the access identification unit 22 and searches for a portion accessed since the previous snapshot. For example, a part of the shared memory 2 immediately before taking the snapshot is shown in FIG.
It is assumed to be as shown in (a).
【0053】この場合、アクセス識別部22にはメモリ
ブロックkのフラグが「W」となっているため、スナッ
プショット管理部30は、共有メモリ2に格納された、
書き込み操作が行なわれているメモリブロックkの部分
のデータ保持部20のデータ、バージョン管理部21の
読出し回数カウンタ21a及び更新回数カウンタ21b
の値を二次記憶装置4に格納する。さらに、スナップシ
ョット管理部30は、アクセス識別部22のフラグが
「R」となっている、読出し操作だけが行なわれている
メモリブロックiの部分の、読出し回数カウンタ21a
及び更新回数カウンタ21bの値を二次記憶装置4に格
納する。図7(b)はスナップショットによって記録さ
れる情報を示している。In this case, since the flag of the memory block k is "W" in the access identification unit 22, the snapshot management unit 30 is stored in the shared memory 2.
The data in the data holding unit 20 in the portion of the memory block k where the write operation is performed, the read number counter 21a and the update number counter 21b of the version management unit 21
The value of is stored in the secondary storage device 4. Further, the snapshot management unit 30 reads the number-of-reads counter 21a for the portion of the memory block i in which the flag of the access identification unit 22 is “R” and only the read operation is performed.
And the value of the update counter 21b is stored in the secondary storage device 4. FIG. 7B shows information recorded by the snapshot.
【0054】これらの処理が終了すると、スナップショ
ット管理部30は、アクセス識別部22にアクセス情報
をクリアさせ、各プロセッサにスナップショットが完了
したことを伝える。各プロセッサは、通常の処理を再開
する。図7(c)は図7(a)に対応する、スナップシ
ョット後の共有メモリ2の内容を示している。Upon completion of these processes, the snapshot management unit 30 causes the access identification unit 22 to clear the access information and informs each processor that the snapshot has been completed. Each processor resumes normal processing. FIG. 7C shows the contents of the shared memory 2 after the snapshot corresponding to FIG. 7A.
【0055】(2−B)プログラムの再現時 任意のチェックポイントから処理を再現するために、再
現実行管理部31は、各プロセッシングエレメント1−
1,1−2,…,1−nに再現すべきチェックポイント
位置を通知する。(2-B) At the time of reproducing the program In order to reproduce the process from an arbitrary checkpoint, the reproduction execution management section 31 makes each processing element 1-
1, 1-2, ..., 1-n are notified of checkpoint positions to be reproduced.
【0056】プロセッサ状態管理部12は、再現実行管
理部31によって通知されたチェックポイント位置のプ
ロセッサ状態、及びローカルメモリ内容をプロセッサ状
態格納部12aから検索し、それぞれをプロセッサ10
とローカルメモリ11に設定する。The processor state management unit 12 retrieves the processor state at the checkpoint position notified by the reproduction execution management unit 31 and the local memory contents from the processor state storage unit 12a, and retrieves each of them.
And in the local memory 11.
【0057】アクセス履歴管理部13は、通知されたチ
ェックポイントからの履歴をアクセスできるように、ロ
グを当該チェックポイント時点の先頭から読み出す準備
をする。The access history management unit 13 prepares to read the log from the beginning at the checkpoint so that the history from the notified checkpoint can be accessed.
【0058】再現実行管理部31は、共有メモリ2の状
態を復元するため、再現すべきチェックポイント、及び
それ以前のチェックポイントのスナップショットによっ
て記録された情報から、それぞれのメモリブロックの最
新情報を検索し、共有メモリ2のデータ保持部20、バ
ージョン管理部21(読出し回数カウンタ21a、更新
回数カウンタ21b)に設定する。この際、共有メモリ
2のデータ保持部20中のデータと、バージョン管理部
21中の情報は別々に検索されるものとする。In order to restore the state of the shared memory 2, the reproduction execution management unit 31 obtains the latest information of each memory block from the information recorded by the snapshots of the checkpoints to be reproduced and the checkpoints before that. The data is retrieved and set in the data holding unit 20 and the version management unit 21 (read count counter 21a, update count counter 21b) of the shared memory 2. At this time, it is assumed that the data in the data holding unit 20 of the shared memory 2 and the information in the version management unit 21 are searched separately.
【0059】これらの処理が終了すると、再現実行管理
部31は、各プロセッシングエレメント1−1,1−
2,…,1−nの各プロセッサ10に実行再現準備が完
了したことを通知する。When these processes are completed, the reproduction execution management section 31 determines the processing elements 1-1, 1-
2, ..., 1-n is notified that the preparation for execution reproduction is completed.
【0060】プロセッサ10は、共有メモリ2に対する
読出し操作を行なう際、アクセス履歴管理部13からの
ログ情報と、バージョン管理部21の更新回数カウンタ
21bの値が等しくなるまでウエイトされる。両者の値
が等しくなった時、バージョン管理部21は、読出し回
数カウンタ21aの値をインクリメントし、プロセッサ
10にデータ保持部20のデータを渡し、処理を継続さ
せる。アクセス履歴管理部13は、ログのポインタを進
める。When the read operation is performed on the shared memory 2, the processor 10 waits until the log information from the access history management unit 13 and the value of the update count counter 21b of the version management unit 21 become equal. When the two values become equal, the version management unit 21 increments the value of the read number counter 21a, passes the data of the data holding unit 20 to the processor 10, and continues the processing. The access history management unit 13 advances the pointer of the log.
【0061】また、プロセッサ10は、共有メモリ2に
対する書き込み操作を行なう際、アクセス履歴管理部1
3からのバージョン番号(更新回数)とバージョン管理
部21の更新回数カウンタ21bの値が等しく、かつ、
アクセス履歴管理部13からの読出し回数と読出し回数
カウンタ21aの値が等しくなるまでウエイトされる。
それぞれで値が等しくなった時に、共有メモリ2は、プ
ロセッサ10からのデータをデータ保持部20に格納
し、バージョン管理部21の更新回数カウンタ21bを
インクリメントし、読出し回数カウンタ21aをクリア
する。そして、プロセッサ10の処理を継続させ、アク
セス履歴管理部13のログのポインタを進める。When the processor 10 performs a write operation on the shared memory 2, the access history management unit 1
The version number (update count) from 3 is equal to the value of the update count counter 21b of the version management unit 21, and
Waiting is performed until the number of times of reading from the access history management unit 13 and the value of the number of times of reading counter 21a become equal.
When the values become equal, the shared memory 2 stores the data from the processor 10 in the data holding unit 20, increments the update count counter 21b of the version management unit 21, and clears the read count counter 21a. Then, the processing of the processor 10 is continued, and the pointer of the log of the access history management unit 13 is advanced.
【0062】[0062]
【発明の効果】以上のように本発明によれば、データ更
新回数とアクセス回数、及び共有メモリのデータ変化部
分だけからプログラム再現できるようにすることによ
り、プログラム再現に必要な情報の記録量を減らすこと
ができる。また、任意のチェックポイントからのプログ
ラム再現をバージョン番号によって同期をとるため、グ
ローバルクロックや共通の格納領域を必要とすることな
しに実現することができるという効果がある。As described above, according to the present invention, since the program can be reproduced only from the number of data updates and accesses and the data change portion of the shared memory, the recording amount of information necessary for the program reproduction can be reduced. Can be reduced. Further, since the program reproduction from an arbitrary checkpoint is synchronized by the version number, there is an effect that it can be realized without requiring a global clock or a common storage area.
【図1】本発明の一実施例に係わる並列計算機の主要な
構成を示すブロック図。FIG. 1 is a block diagram showing the main configuration of a parallel computer according to an embodiment of the present invention.
【図2】アクセス識別部22で読出し/書き込みを区別
しない方法におけるプログラム実行時の読出し操作を説
明するための図。FIG. 2 is a diagram for explaining a read operation at the time of executing a program in a method in which the access identification unit 22 does not distinguish read / write.
【図3】アクセス識別部22で読出し/書き込みを区別
しない方法におけるプログラム実行時の書き込み操作を
説明するための図。FIG. 3 is a diagram for explaining a write operation at the time of program execution in a method in which the access identification unit 22 does not distinguish read / write.
【図4】アクセス識別部22で読出し/書き込みを区別
しない方法におけるスナップショットを説明するための
図。FIG. 4 is a diagram for explaining a snapshot in a method in which the access identification unit 22 does not distinguish between reading and writing.
【図5】アクセス識別部22で読出し/書き込みを区別
する方法におけるプログラム再現時の読出し操作を説明
するための図。FIG. 5 is a diagram for explaining a read operation at the time of reproducing a program in the method of distinguishing read / write by the access identification unit 22.
【図6】アクセス識別部22で読出し/書き込みを区別
する方法におけるプログラム再現時の書き込み操作を説
明するための図。FIG. 6 is a diagram for explaining a write operation at the time of reproducing a program in the method of distinguishing read / write by the access identification unit 22.
【図7】アクセス識別部22で読出し/書き込みを区別
する方法におけるスナップショットを説明するための
図。FIG. 7 is a diagram for explaining a snapshot in a method of distinguishing read / write by the access identification unit 22.
1−1,1−2,…,1−n…プロセッシングエレメン
ト、2…共有メモリ、3…チェックポイント管理部、4
…二次記憶装置、5…バス、10…プロセッサ、11…
ローカルメモリ、12…プロセッサ状態管理部、13…
アクセス履歴管理部、20…データ保持部、21…バー
ジョン管理部、21a…読出し回数カウンタ、21b…
更新回数カウンタ、22…アクセス識別部、30…スナ
ップショット管理部、31…再現実行管理部。1-1, 1-2, ..., 1-n ... Processing element, 2 ... Shared memory, 3 ... Checkpoint management unit, 4
... secondary storage device, 5 ... bus, 10 ... processor, 11 ...
Local memory, 12 ... Processor state management unit, 13 ...
Access history management unit, 20 ... Data holding unit, 21 ... Version management unit, 21a ... Read number counter, 21b ...
Update counter, 22 ... Access identification unit, 30 ... Snapshot management unit, 31 ... Reproduction execution management unit.
Claims (2)
有メモリに対してアクセスする並列計算機において、 データを格納するためのデータ保持手段と、 前記データ保持手段に保持されたデータに対応して、同
データに対する更新回数及び読出し回数を示す情報を記
録するバージョン管理手段と、 前記データ保持手段に保持されたデータを含むメモリブ
ロック単位で、アクセス操作が行なわれたか否かを識別
するための情報を記録するアクセス識別手段と、 が設けられた共有メモリと、 プログラム実行時に前記プロセッシングエレメントに対
してスナップショットの実行を指示すると共に、前記ア
クセス識別手段によって記録された情報に応じて、チェ
ックポイント間でアクセス操作が行なわれた前記保持手
段によって保持されたデータ、及び前記バージョン管理
手段によって記録された情報を格納するスナップショッ
ト管理手段と、 プログラム再現時に前記プロセッシングエレメントに対
して任意のチェックポイントからプログラムの再現実行
を指示すると共に、前記スナップショット管理手段によ
って格納された内容に基づいて前記共有メモリを復元す
る再現実行管理手段と、 が設けられたチェックポイント管理手段と、 前記スナップショット管理手段によるスナップショット
の実行指示に応じて、前記共有メモリに対するアクセス
履歴を格納するアクセス履歴格納手段と、 チェックポイント時のプロセッサ状態情報を格納するプ
ロセッサ状態格納手段と、 前記再現実行管理手段によるプログラム再現実行の指示
に応じて、前記プロセッサ状態格納手段によって格納さ
れたプロセッサ状態情報を復元するプロセッサ状態復元
手段と、 前記アクセス履歴格納手段によって格納されたアクセス
履歴に基づいて、プログラム再現の同期が取られた後
に、前記再現実行管理手段によって再現された前記共有
メモリ及び前記プロセッサ状態復元手段によって復元さ
れたプロセッサ状態情報によりプログラムを再実行する
プロセッサと、 が設けられたプロセッシングエレメントと、 を具備したことを特徴とする並列計算機。1. In a parallel computer for accessing a shared memory from a plurality of processing elements, data holding means for storing data, and updating of the data corresponding to the data held in the data holding means Version management means for recording information indicating the number of times and the number of times of reading, and an access identification for recording information for identifying whether or not an access operation is performed in a memory block unit including the data held in the data holding means And a shared memory provided with means for instructing the processing element to execute a snapshot during program execution, and performing an access operation between checkpoints according to the information recorded by the access identification means. Data held by the holding means, And snapshot management means for storing the information recorded by the version management means, and for instructing the processing element to reproduce and execute the program from an arbitrary checkpoint when reproducing the program, and storing the information by the snapshot management means. A reproduction execution management unit for restoring the shared memory based on the contents, a checkpoint management unit provided with, and an access history for the shared memory stored in response to a snapshot execution instruction from the snapshot management unit. Access history storage means, processor state storage means for storing processor state information at the time of checkpoint, and storage by the processor state storage means in response to a program reproduction execution instruction from the reproduction execution management means. Processor state restoration means for restoring processor state information, the shared memory reproduced by the reproduction execution management means after synchronization of program reproduction based on the access history stored by the access history storage means, and A parallel computer comprising: a processor that re-executes a program based on the processor state information restored by the processor state restoring means; and a processing element provided with:
有メモリに対してアクセスする並列計算機におけるプロ
グラム実行再現方法であって、 前記共有メモリは、 データを格納するためのデータ保持手段と、 前記データ保持手段に保持されたデータに対応して、同
データに対する更新回数及び読出し回数を示す情報を記
録するバージョン管理手段と、 前記データ保持手段に保持されたデータを含むメモリブ
ロック単位で、アクセス操作が行なわれたか否かを識別
するための情報を記録するアクセス識別手段とが設けら
れ、 プログラムを実行する際に、前記プロセッシングエレメ
ントに対してスナップショットを実行し、 前記アクセス識別手段によって記録された情報に応じ
た、チェックポイント間でアクセス操作が行なわれた前
記保持手段によって保持されたデータ、及び前記バージ
ョン管理手段によって記録された情報、並びに前記共有
メモリに対するアクセス履歴及びチェックポイント時の
プロセッサ状態情報を記録し、 プログラムを再現実行する際に、 前記アクセス履歴に基づいてプログラム再現の同期が取
られた後に、前記スナップショットによって記録された
情報をもとに再現された前記共有メモリ及びプロセッサ
状態によりプログラムを再実行することを特徴とするプ
ログラム実行再現方法。2. A program execution reproducing method in a parallel computer for accessing a shared memory from a plurality of processing elements, wherein the shared memory holds a data holding unit for storing data, and the data holding unit holds the data holding unit. The version management means for recording the information indicating the number of times of updating and the number of times of reading the corresponding data, and whether or not the access operation is performed in a memory block unit including the data held in the data holding means. Access identification means for recording information for identifying whether or not is provided, when executing the program, to execute a snapshot to the processing element, according to the information recorded by the access identification means, The holding means in which an access operation is performed between checkpoints The data held by the device, the information recorded by the version management unit, the access history to the shared memory and the processor state information at the checkpoint are recorded, and when the program is reproduced and executed, based on the access history, A method for reproducing a program execution, characterized in that after the program reproduction is synchronized, the program is re-executed according to the shared memory and the processor state reproduced based on the information recorded by the snapshot.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5158371A JPH0713805A (en) | 1993-06-29 | 1993-06-29 | Parallel computer and program execution reproducing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5158371A JPH0713805A (en) | 1993-06-29 | 1993-06-29 | Parallel computer and program execution reproducing method |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0713805A true JPH0713805A (en) | 1995-01-17 |
Family
ID=15670242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5158371A Pending JPH0713805A (en) | 1993-06-29 | 1993-06-29 | Parallel computer and program execution reproducing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0713805A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08221302A (en) * | 1995-02-17 | 1996-08-30 | Nec Commun Syst Ltd | Fault information collection device |
US6332200B1 (en) | 1998-10-29 | 2001-12-18 | International Business Machines Corporation | Capturing and identifying a complete and consistent set of checkpoint files |
JP2012058842A (en) * | 2010-09-06 | 2012-03-22 | Nec Corp | System and method for reproducing state of shared memory of database in different environment |
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/en active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08221302A (en) * | 1995-02-17 | 1996-08-30 | Nec Commun Syst Ltd | Fault information collection device |
US6332200B1 (en) | 1998-10-29 | 2001-12-18 | International Business Machines Corporation | Capturing and identifying a complete and consistent set of checkpoint files |
JP2012058842A (en) * | 2010-09-06 | 2012-03-22 | Nec Corp | System and method for reproducing state of shared memory of database in different environment |
US10635443B2 (en) | 2015-07-23 | 2020-04-28 | Fujitsu Limited | Apparatus and method to emulate a sequence of instructions via parallel processors |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100280221B1 (en) | Optimization of Memory Space in Databases | |
CN110659256B (en) | Multi-computer room synchronization method, computing device and computer storage medium | |
JP2002041368A (en) | Method and device for processing data to access independently of duplicated data | |
JP3290548B2 (en) | Logic simulator using hierarchical checkpoints | |
US7072912B1 (en) | Identifying a common point in time across multiple logs | |
JPH02148235A (en) | Data drawback system | |
JPH0713805A (en) | Parallel computer and program execution reproducing method | |
JPH06139087A (en) | Check point restart system | |
US5615371A (en) | Debug processing system for user programs | |
JPS63132351A (en) | Memory data base processor | |
JP3491379B2 (en) | Information processing apparatus and trace information storage method | |
CN109271277A (en) | Access method, device and system after database delay machine | |
JPH0713943A (en) | Parallel computer | |
JP3130798B2 (en) | Bus transfer device | |
JPH0235537A (en) | Multiple volume update control system | |
KR20000043478A (en) | Method for implementing file protection function in communication exchange system cable of multi-task | |
JPH07182186A (en) | Effective using method for semaphore | |
JPH0756633B2 (en) | Task switching method | |
JPH03231337A (en) | Collection processing system for system execution history | |
JP2000047830A (en) | Device and method for mirror disk access | |
JPH02161514A (en) | Control processing system for idle storage block | |
JPH04236639A (en) | File space management system | |
JPS61843A (en) | Resource status holding system | |
JPH0823840B2 (en) | Method and apparatus for updating database | |
JPH07146799A (en) | Task switching method in multitask system |