JP4952317B2 - 退避データ判別方法、退避データ判別プログラムおよび退避データ判別装置 - Google Patents
退避データ判別方法、退避データ判別プログラムおよび退避データ判別装置 Download PDFInfo
- Publication number
- JP4952317B2 JP4952317B2 JP2007069508A JP2007069508A JP4952317B2 JP 4952317 B2 JP4952317 B2 JP 4952317B2 JP 2007069508 A JP2007069508 A JP 2007069508A JP 2007069508 A JP2007069508 A JP 2007069508A JP 4952317 B2 JP4952317 B2 JP 4952317B2
- Authority
- JP
- Japan
- Prior art keywords
- loop
- sub
- data
- program
- saved
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1405—Saving, restoring, recovering or retrying at machine instruction level
- G06F11/1407—Checkpointing the instruction stream
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Executing Machine-Instructions (AREA)
- Devices For Executing Special Programs (AREA)
- Retry When Errors Occur (AREA)
Description
まず最初に、図1を用いて、実施例1における退避データ判別装置の主たる特徴を具体的に説明する。図1は、実施例1における退避データ判別装置の概要および特徴を説明するための図である。
次に、図2〜9を用いて、実施例1における退避データ判別装置を説明する。図2は、実施例1における退避データ判別装置の構成を示すブロック図であり、図3および4は、実施例1におけるループ構造検出部を説明するための図であり、図5は、実施例1におけるチェックポイント決定部を説明するための図であり、図6〜9は、実施例1における参照先行要素判別部を説明するための図である。
次に、図10を用いて、実施例1における退避データ判別装置10による処理を説明する。図10は、実施例1における退避データ判別装置の処理の手順を説明するための図である。
上記したように、実施例1によれば、プログラムのソースコードから当該プログラムのループ構造を解析して、当該プログラムにおいて繰り返される演算処理のメインループと当該メインループに含まれるサブループとを検出し、検出されたメインループに突入する地点を、演算結果のデータを退避する地点であるチェックポイントとして決定し、検出されたメインループ内に記述される演算処理の内容を解析して、参照のみされる要素および参照された後に定義される要素である参照先行要素を、決定されたチェックポイントにおいて退避するデータとして判別するので、すべての演算結果ではなく、プログラム実行再開に際して必要最低限なデータである参照先行要素のみを退避することにより退避データ量を削減することができ、効率的なデータ退避が可能になる。
また、上記の実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動でおこなうこともでき(例えば、表示指示部34が決定されたチェックポイントと判別された参照先行要素とを、自動的に表示する指示を行なうのではなく、ユーザからの表示要求に従って、決定されたチェックポイントと判別された参照先行要素と表示するなど)、あるいは、手動的におこなうものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文章中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、例えば、図10に示すステップS1002とS1003とを同時に行なうなど、特記する場合を除いて任意に変更することができる。
ところで上記の実施例1では、ハードウェアロジックによって各種の処理を実現する場合を説明したが、本発明はこれに限定されるものではなく、あらかじめ用意されたプログラムをコンピュータで実行するようにしてもよい。そこで以下では、図11を用いて、上記の実施例1に示した退避データ判別装置10と同様の機能を有する退避データ判別プログラムを実行するコンピュータの一例を説明する。図11は、実施例1における退避データ判別プログラムを実行するコンピュータを示す図である。
前記プログラムのソースコードから当該プログラムのループ構造を解析して、当該プログラムにおいて繰り返される演算処理のメインループと当該メインループに含まれるサブループとを検出するループ構造検出工程と、
前記ループ構造検出工程によって検出された前記メインループに突入する地点を、前記演算結果のデータを退避する地点であるチェックポイントとして決定するチェックポイント決定工程と、
前記ループ構造検出工程によって検出された前記メインループ内に記述される演算処理の内容を解析して、参照のみされる要素および参照された後に定義される要素である参照先行要素を、前記チェックポイント決定工程によって決定された前記チェックポイントにおいて退避するデータとして判別する参照先行要素判別工程と、
を含んだことを特徴とする退避データ判別方法。
前記プログラムのソースコードから当該プログラムのループ構造を解析して、当該プログラムにおいて繰り返される演算処理のメインループと当該メインループに含まれるサブループとを検出するループ構造検出手順と、
前記ループ構造検出手順によって検出された前記メインループに突入する地点を、前記演算結果のデータを退避する地点であるチェックポイントとして決定するチェックポイント決定手順と、
前記ループ構造検出手順によって検出された前記メインループ内に記述される演算処理の内容を解析して、参照のみされる要素および参照された後に定義される要素である参照先行要素を、前記チェックポイント決定手順によって決定された前記チェックポイントにおいて退避するデータとして判別する参照先行要素判別手順と、
をコンピュータに実行させることを特徴とする退避データ判別プログラム。
前記プログラムのソースコードから当該プログラムのループ構造を解析して、当該プログラムにおいて繰り返される演算処理のメインループと当該メインループに含まれるサブループとを検出するループ構造検出手段と、
前記ループ構造検出手段によって検出された前記メインループに突入する地点を、前記演算結果のデータを退避する地点であるチェックポイントとして決定するチェックポイント決定手段と、
前記ループ構造検出手段によって検出された前記メインループ内に記述される演算処理の内容を解析して、参照のみされる要素および参照された後に定義される要素である参照先行要素を、前記チェックポイント決定手段によって決定された前記チェックポイントにおいて退避するデータとして判別する参照先行要素判別手段と、
を備えたことを特徴とする退避データ判別装置。
ループ構造検出部が、前記プログラムのソースコードに記述される命令文を解析し、当該プログラムにおいて繰り返される演算処理のメインループの開始行と終了行、及び当該メインループに含まれるサブループの開始行と終了行とを検出するループ構造検出工程と、
チェックポイント決定部が、前記ループ構造検出工程によって検出された前記メインループの開始行の直後を、前記演算結果のデータを退避する地点であるチェックポイントとして決定するチェックポイント決定工程と、
参照先行要素判別部が、前記ループ構造検出工程によって検出された前記メインループに含まれるサブループ全てに対して、各サブループ内に記述される演算処理の内容を解析し、それぞれの演算処理において使用される配列が左辺のみに現れる配列を定義のみ、右辺のみに現れる配列を参照のみ、右辺にも左辺にも現れる配列を定義および参照共にある配列と分類し、前記メインループ内で参照のみされる配列および前記メインループ内で参照された後に定義される要素である参照先行配列を、前記チェックポイント決定工程によって決定された前記チェックポイントにおいて退避するデータとして判別する参照先行要素判別工程と、
を含んだことを特徴とする退避データ判別方法。
11 入力部
12 出力部
13 入出力制御I/F部
20 記憶部
21 ループ構造記憶部
22 チェックポイント記憶部
23 参照先行要素記憶部
30 処理部
31 ループ構造検出部
32 チェックポイント決定部
33 参照先行要素判別部
34 表示指示部
Claims (7)
- コンピュータが同じ演算処理が繰り返されるプログラムを実行する際に、定期的に退避する要素からなる演算結果のデータを判別する退避データ判別方法であって、
前記プログラムのソースコードから当該プログラムのループ構造を解析して、当該プログラムにおいて繰り返される演算処理のメインループと当該メインループに含まれるサブループとを検出するループ構造検出工程と、
前記ループ構造検出工程によって検出された前記メインループに突入する地点を、前記演算結果のデータを退避する地点であるチェックポイントとして決定するチェックポイント決定工程と、
前記ループ構造検出工程によって検出された前記メインループ内に記述される演算処理の内容を解析して、参照のみされる要素および参照された後に定義される要素である参照先行要素を、前記チェックポイント決定工程によって決定された前記チェックポイントにおいて退避するデータとして判別する参照先行要素判別工程と、
を含んだことを特徴とする退避データ判別方法。 - 前記参照先行要素判別工程は、前記ループ構造検出工程によって検出された前記メインループに含まれる複数のサブループごとの演算処理の内容を解析して、要素を定義する演算処理のサブループである定義サブループが一回もしくは複数回出現した後に、要素を参照する演算処理のサブループである参照サブループが一回もしくは複数回出現する場合は、前記定義サブループすべてによって定義される要素の和集合の補集合と、前記参照サブループすべてによって参照される要素の和集合との積集合を前記参照先行要素として判別することを特徴とする請求項1に記載の退避データ判別方法。
- 前記参照先行要素判別工程は、前記ループ構造検出工程によって検出された前記メインループに含まれる複数のサブループごとの演算処理の内容を解析して、すべての要素を定義する演算処理のサブループが最初に出現する場合は、前記参照先行要素に該当する要素はないと判別することを特徴とする請求項1に記載の退避データ判別方法。
- 前記参照先行要素判別工程は、前記ループ構造検出工程によって検出された前記メインループに含まれる複数のサブループごとの演算処理の内容を解析して、前記定義サブループが一回もしくは複数回出現した後に、前記参照サブループが一回もしくは複数回出現し、さらに要素を定義する演算処理のサブループである後続定義サブループが一回もしくは複数回出現した場合、当該後続定義サブループによって定義されるすべての要素が、当該定義サブループによって定義されるすべての要素に含まれるならば、前記定義サブループすべてによって定義される要素の和集合の補集合と、前記参照サブループすべてによって参照される要素の和集合との積集合を前記参照先行要素として判別することを特徴とする請求項1に記載の退避データ判別方法。
- 前記チェックポイント決定工程によって決定された前記チェックポイントと、前記参照先行要素判別工程によって判別された前記参照先行要素とを所定の出力部に表示するように指示をする表示指示工程をさらに含んだことを特徴とする請求項1に記載の退避データ判別方法。
- コンピュータが同じ演算処理が繰り返されるプログラムを実行する際に、定期的に退避する要素からなる演算結果のデータを判別する退避データ判別方法をコンピュータに実行させる退避データ判別プログラムであって、
前記プログラムのソースコードから当該プログラムのループ構造を解析して、当該プログラムにおいて繰り返される演算処理のメインループと当該メインループに含まれるサブループとを検出するループ構造検出手順と、
前記ループ構造検出手順によって検出された前記メインループに突入する地点を、前記演算結果のデータを退避する地点であるチェックポイントとして決定するチェックポイント決定手順と、
前記ループ構造検出手順によって検出された前記メインループ内に記述される演算処理の内容を解析して、参照のみされる要素および参照された後に定義される要素である参照先行要素を、前記チェックポイント決定手順によって決定された前記チェックポイントにおいて退避するデータとして判別する参照先行要素判別手順と、
をコンピュータに実行させることを特徴とする退避データ判別プログラム。 - コンピュータが同じ演算処理が繰り返されるプログラムを実行する際に、定期的に退避する要素からなる演算結果のデータを判別する退避データ判別装置であって、
前記プログラムのソースコードから当該プログラムのループ構造を解析して、当該プログラムにおいて繰り返される演算処理のメインループと当該メインループに含まれるサブループとを検出するループ構造検出手段と、
前記ループ構造検出手段によって検出された前記メインループに突入する地点を、前記演算結果のデータを退避する地点であるチェックポイントとして決定するチェックポイント決定手段と、
前記ループ構造検出手段によって検出された前記メインループ内に記述される演算処理の内容を解析して、参照のみされる要素および参照された後に定義される要素である参照先行要素を、前記チェックポイント決定手段によって決定された前記チェックポイントにおいて退避するデータとして判別する参照先行要素判別手段と、
を備えたことを特徴とする退避データ判別装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007069508A JP4952317B2 (ja) | 2007-03-16 | 2007-03-16 | 退避データ判別方法、退避データ判別プログラムおよび退避データ判別装置 |
US12/075,418 US8271954B2 (en) | 2007-03-16 | 2008-03-10 | Method and apparatus for saving checkpoint data while detecting and analyzing a loop structure |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007069508A JP4952317B2 (ja) | 2007-03-16 | 2007-03-16 | 退避データ判別方法、退避データ判別プログラムおよび退避データ判別装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008234058A JP2008234058A (ja) | 2008-10-02 |
JP4952317B2 true JP4952317B2 (ja) | 2012-06-13 |
Family
ID=39763830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007069508A Expired - Fee Related JP4952317B2 (ja) | 2007-03-16 | 2007-03-16 | 退避データ判別方法、退避データ判別プログラムおよび退避データ判別装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8271954B2 (ja) |
JP (1) | JP4952317B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017216858A1 (ja) * | 2016-06-14 | 2017-12-21 | 株式会社日立製作所 | 記録媒体、計算機、およびコード生成方法 |
CN112069927B (zh) * | 2020-08-19 | 2023-10-24 | 南京埃斯顿机器人工程有限公司 | 一种应用于模块化视觉软件的元素集合处理方法及装置 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2749039B2 (ja) * | 1987-11-06 | 1998-05-13 | 株式会社日立製作所 | オブジェクト生成方法 |
JP2738692B2 (ja) * | 1988-01-29 | 1998-04-08 | 株式会社日立製作所 | 並列化コンパイル方法 |
JPH02178847A (ja) * | 1988-12-29 | 1990-07-11 | Nec Corp | プログラムの再実行用データテーブル生成方式 |
JPH04211830A (ja) * | 1990-02-05 | 1992-08-03 | Matsushita Electric Ind Co Ltd | 並列化コンパイル方式 |
JPH0635701A (ja) * | 1992-07-14 | 1994-02-10 | Kobe Nippon Denki Software Kk | プログラム実行環境保存方法 |
US6721941B1 (en) * | 1996-08-27 | 2004-04-13 | Compuware Corporation | Collection of timing and coverage data through a debugging interface |
US5870607A (en) * | 1996-09-11 | 1999-02-09 | Brown University Research Foundation | Method and apparatus for selective replay of computer programs |
US6088511A (en) * | 1998-05-13 | 2000-07-11 | Microsoft Corporation | Nested parallel 2D Delaunay triangulation method |
US7275246B1 (en) * | 1999-01-28 | 2007-09-25 | Ati International Srl | Executing programs for a first computer architecture on a computer of a second architecture |
US6954923B1 (en) * | 1999-01-28 | 2005-10-11 | Ati International Srl | Recording classification of instructions executed by a computer |
US6536037B1 (en) * | 1999-05-27 | 2003-03-18 | Accenture Llp | Identification of redundancies and omissions among components of a web based architecture |
US6550057B1 (en) * | 1999-08-31 | 2003-04-15 | Accenture Llp | Piecemeal retrieval in an information services patterns environment |
GB2370134A (en) * | 2000-12-15 | 2002-06-19 | Sharp Kk | Method of co-simulating a digital circuit |
US7917895B2 (en) * | 2001-07-27 | 2011-03-29 | Smartesoft, Inc. | Automated software testing and validation system |
US7093238B2 (en) * | 2001-07-27 | 2006-08-15 | Accordsqa, Inc. | Automated software testing and validation system |
JP4128439B2 (ja) * | 2002-12-26 | 2008-07-30 | 富士通株式会社 | 配列圧縮方法 |
US7587709B2 (en) * | 2003-10-24 | 2009-09-08 | Microsoft Corporation | Adaptive instrumentation runtime monitoring and analysis |
US7676795B2 (en) * | 2005-01-13 | 2010-03-09 | International Business Machines Corporation | Error detection in a data processing system |
US7644396B2 (en) * | 2005-11-29 | 2010-01-05 | Microsoft Corporation | Optimal program execution replay and breakpoints |
US7865885B2 (en) * | 2006-09-27 | 2011-01-04 | Intel Corporation | Using transactional memory for precise exception handling in aggressive dynamic binary optimizations |
US8181168B1 (en) * | 2007-02-07 | 2012-05-15 | Tilera Corporation | Memory access assignment for parallel processing architectures |
US8146071B2 (en) * | 2007-09-18 | 2012-03-27 | International Business Machines Corporation | Pipelined parallelization of multi-dimensional loops with multiple data dependencies |
-
2007
- 2007-03-16 JP JP2007069508A patent/JP4952317B2/ja not_active Expired - Fee Related
-
2008
- 2008-03-10 US US12/075,418 patent/US8271954B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20080229018A1 (en) | 2008-09-18 |
US8271954B2 (en) | 2012-09-18 |
JP2008234058A (ja) | 2008-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6308323B1 (en) | Apparatus and method for compiling a plurality of instruction sets for a processor and a media for recording the compiling method | |
US5317743A (en) | System for compiling iterated loops based on the possibility of parallel execution | |
US8336038B2 (en) | System and method for parallel execution of a program | |
JP2006024006A (ja) | テストケース生成装置、テストケース生成プログラム、モデルベース開発プログラム、ソースコード生成妥当性診断装置、ソースコード生成妥当性診断プログラム、およびモデルベース開発方法。 | |
US6732297B2 (en) | Pipeline testing method, pipeline testing system, pipeline test instruction generation method and storage method | |
JP2010140434A (ja) | プログラムの解析を支援するための方法、並びにそのコンピュータ・プログラム及びコンピュータ・システム | |
WO2008038389A1 (fr) | Appareil d'analyse de performance de programme | |
JP2007531164A (ja) | データスペキュレーションの明示的ソフトウェア制御のための方法及び構造 | |
US20150067644A1 (en) | Method and apparatus for minimum cost cycle removal from a directed graph | |
CN108572892B (zh) | 一种基于PowerPC多核处理器的离线测试方法和装置 | |
JP4952317B2 (ja) | 退避データ判別方法、退避データ判別プログラムおよび退避データ判別装置 | |
JP6723483B2 (ja) | テストケース生成装置、テストケース生成方法およびテストケース生成プログラム | |
JP6567212B2 (ja) | 等価性検証装置および等価性検証プログラム | |
JP6903249B2 (ja) | テストケース生成装置、テストケース生成方法、およびテストケース生成プログラム | |
US7080204B2 (en) | Cache controller computer system and method for program recompilation | |
JP2007310829A (ja) | データ処理装置、データ処理方法およびデータ処理プログラム | |
JP2016173756A (ja) | テストケース生成プログラム、テストケース生成方法およびテストケース生成装置 | |
US20050108605A1 (en) | Pseudo random test pattern generation using Markov chains | |
JPH07253909A (ja) | マイクロプログラム検証方法 | |
JP4334278B2 (ja) | シーケンシャルシステムを分析する方法及びプログラム | |
JP2007018332A (ja) | ソフトウェアの異常検出システム | |
JPH1040177A (ja) | プログラムチェック方式 | |
JP6828823B2 (ja) | 知識生成装置、知識生成方法、及びプログラム | |
US20080216075A1 (en) | Program creation support apparatus, creation support program and creation support method for the same | |
JP2002222099A (ja) | プログラム開発支援装置、記録媒体、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20091208 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120113 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120214 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120227 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150323 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |