JP5139486B2 - トレース生成装置、システム、およびそのプログラム - Google Patents
トレース生成装置、システム、およびそのプログラム Download PDFInfo
- Publication number
- JP5139486B2 JP5139486B2 JP2010192735A JP2010192735A JP5139486B2 JP 5139486 B2 JP5139486 B2 JP 5139486B2 JP 2010192735 A JP2010192735 A JP 2010192735A JP 2010192735 A JP2010192735 A JP 2010192735A JP 5139486 B2 JP5139486 B2 JP 5139486B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- thread
- execution
- processing
- recording
- 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/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/314—Parallel programming languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3404—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for parallel or distributed programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3457—Performance evaluation by simulation
- G06F11/3461—Trace driven simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3624—Software debugging by performing operations on the source code, e.g. via a compiler
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Debugging And Monitoring (AREA)
Description
図1は、第1実施形態に係るシステム10を示す図である。このシステム10は、逐次プログラムコードを並列化して実行した場合の性能を評価(予測)する。このシステム10では、逐次プログラムコードを評価するに当たり、逐次プログラムコードから並列プログラムコードを作成する必要はない。このシステム10は、コード生成装置10と、トレース生成装置20と、実行情報生成装置30とを備える。
10・・・コード生成装置
20・・・トレース生成装置
30・・・実行情報生成装置
Claims (7)
- 逐次プログラムコードを実行することにより、前記逐次プログラムコードを並列化して実行した場合の並列トレース情報を生成するトレース生成装置であって、
前記逐次プログラムコードは、
第1スレッドに割り当てられる1つ以上の処理を規定する第1処理コードと、
第2スレッドに割り当てられる1つ以上の処理を規定する第2処理コードと、
それぞれの処理コードより前に挿入され、前記第1及び第2処理コードごとの実行開始を記録するための第1及び第2処理開始記録コードと、
それぞれの処理コードより後に挿入され、前記第1及び第2処理コードごとの実行終了を記録するための第1及び第2処理終了記録コードと、
前記第1処理コードより前に挿入され、前記第1スレッドの実行開始を記録するための第1スレッド開始記録コードと、
前記第1処理コードより後に挿入され、前記第1スレッドの実行終了を記録するための第1スレッド終了記録コードと、
前記第2処理コードより前に挿入され、前記第2スレッドの実行開始を記録するための第2スレッド開始記録コードと、
前記第2処理コードより後に挿入され、前記第2スレッドの実行終了を記録するための第2スレッド終了記録コードとを含み、
前記並列トレース情報は、
前記第1スレッドの実行開始から実行終了までの間に、前記第1スレッドに割り当てられた前記第1処理コードの実行開始と実行終了との前後関係を示す第1順序情報と、
前記第2スレッドの実行開始から実行終了までの間に、前記第2スレッドに割り当てられた前記第2処理コードの実行開始と実行終了との前後関係を示す第2順序情報と、
前記逐次プログラムコードの実行開始から実行終了までの間に、前記第1スレッドの実行開始と実行終了、及び前記第2スレッドの実行開始と実行終了との前後関係を示す第3順序情報とを含むことを特徴とするトレース生成装置。 - 前記逐次プログラムコードは、
前記第1処理コードより前に挿入され、前記第2処理コードの実行が終了するまで、前記第1処理コードの実行開始を待機するための同期待ちコードと、
前記第2処理コードより後に挿入され、前記第1処理コードの実行待ちを解除するための同期待ち解除コードとをさらに含み、
前記第1順序情報は、前記第1スレッドに割り当てられた前記第1処理コードの実行開始と実行終了と、前記同期待ちコードの処理タイミングとの前後関係を示し、
前記第2順序情報は、前記第2スレッドに割り当てられた前記第2処理コードの実行開始と実行終了と、前記同期待ち解除コードの処理タイミングとの前後関係を示すことを特徴とする請求項1に記載のトレース生成装置。 - 請求項1又は請求項2に記載のトレース生成装置と、
前記並列トレース情報と、前記第1及び第2処理コードごとの実行時間とを用いて、前記逐次プログラムコードを並列化して実行した場合の並列実行情報を生成する実行情報生成装置とを備えるシステムであって、
前記実行情報生成装置は、
(a)前記第3順序情報を用いて、前記第1及び第2スレッドの実行開始のタイミングを定め、
(b)前記第1順序情報と前記第1処理コードの実行時間とを用いて、前記第1スレッドの実行時間と前記第1スレッドの実行終了のタイミングとを定め、
(c)前記第2順序情報と前記第2処理コードの実行時間とを用いて、前記第2スレッドの実行時間と前記第2スレッドの実行終了のタイミングとを定め、
(d)前記第1又は第2処理コードの一方の実行終了のタイミングを用いて、他のスレッドの実行開始のタイミングを定め、
前記並列実行情報は、
前記第1スレッドの実行開始のタイミング、実行時間、及び実行終了のタイミングと、
前記第2スレッドの実行開始のタイミング、実行時間、及び実行終了のタイミングとを含むことを特徴とするシステム。 - 請求項2に記載のトレース生成装置と、
前記並列トレース情報と、前記第1及び第2処理コードごとの実行時間とを用いて、前記逐次プログラムコードを並列化して実行した場合の並列実行情報を生成する実行情報生成装置とを備えるシステムであって、
前記実行情報生成装置は、
(a)前記第3順序情報を用いて、前記第1及び第2スレッドの実行開始のタイミングを定め、
(b)前記第1順序情報と前記第2順序情報と前記第1処理コードの実行時間とを用いて、前記第1スレッドの実行時間と前記第1スレッドの実行終了のタイミングとを定め、
(c)前記第2順序情報と前記第2処理コードの実行時間とを用いて、前記第2スレッドの実行時間と前記第2スレッドの実行終了のタイミングとを定め、
(d)前記第1又は第2処理コードの一方の実行終了のタイミングを用いて、他のスレッドの実行開始のタイミングを定め、
前記同期待ちコードの処理のタイミングが、前記同期待ち解除コードの処理のタイミングよりも早い場合には、前記第1スレッドの実行時間には、前記同期待ちコードと前記同期待ち解除コードとの処理のタイミングとの差分に応じた待機時間が含まれ、
前記並列実行情報は、
前記第1スレッドの実行開始のタイミング、実行時間、及び実行終了のタイミングと、
前記第2スレッドの実行開始のタイミング、実行時間、及び実行終了のタイミングとを含むことを特徴とするシステム。 - 逐次プログラムコードを生成するプログラム生成装置と、
請求項1又は請求項2に記載のトレース生成装置とを備えるシステムであって、
前記プログラム生成装置は、
前記第1及び第2処理コードを含み、前記第1処理コードの後に前記第2処理コードが位置するプログラムコードに対して、
(a)前記第1処理コードより前に、前記第1スレッド開始記録コードを挿入し、
(b)前記第1スレッド開始記録コードより後であって前記第1処理コードの前に、前記第1処理開始記録コードを挿入し、
(c)前記第1処理コードより後であって前記第2処理コードより前に、前記第1処理終了記録コードを挿入し、
(d)前記第1処理終了記録コードより後に、前記第1スレッド終了記録コードを挿入し、
(e)前記第2処理コードより前に、前記第2スレッド開始記録コードを挿入し、
(f)前記第2スレッド開始記録コードより後であって前記第2処理コードより前に、前記第2処理開始記録コードを挿入し、
(g)前記第2処理コードより後に、前記第2処理終了記録コードを挿入し、
(h)前記第2処理終了記録コードより後に、前記第2スレッド終了記録コードを挿入することによって、前記逐次プログラムコードを生成することを特徴とするシステム。 - 前記トレース生成装置は、
(a)前記第1処理開始記録コードを実行するタイミングと、前記第1処理終了記録コードを実行するタイミングとの差分から、前記第1処理コードの実行時間を定め、
(b)前記第2処理開始記録コードを実行するタイミングと、前記第2処理終了記録コードを実行するタイミングとの差分から、前記第2処理コードの実行時間を定めることを特徴とする請求項1又は請求項2に記載のトレース生成装置。 - コンピュータに、逐次プログラムコードを実行させることにより、前記逐次プログラムコードを並列化して実行した場合の並列トレース情報を生成する機能を実現させるためのトレース生成プログラムであって、
前記逐次プログラムコードは、
第1スレッドに割り当てられる1つ以上の処理を規定する第1処理コードと、
第2スレッドに割り当てられる1つ以上の処理を規定する第2処理コードと、
それぞれの処理コードより前に挿入され、前記第1及び第2処理コードごとの実行開始を記録するための第1及び第2処理開始記録コードと、
それぞれの処理コードより後に挿入され、前記第1及び第2処理コードごとの実行終了を記録するための第1及び第2処理終了記録コードと、
前記第1処理コードより前に挿入され、前記第1スレッドの実行開始を記録するための第1スレッド開始記録コードと、
前記第1処理コードより後に挿入され、前記第1スレッドの実行終了を記録するための第1スレッド終了記録コードと、
前記第2処理コードより前に挿入され、前記第2スレッドの実行開始を記録するための第2スレッド開始記録コードと、
前記第2処理コードより後に挿入され、前記第2スレッドの実行終了を記録するための第2スレッド終了記録コードとを含み、
前記並列トレース情報は、
前記第1スレッドの実行開始から実行終了までの間に、前記第1スレッドに割り当てられた前記第1処理コードの実行開始と実行終了との前後関係を示す第1順序情報と、
前記第2スレッドの実行開始から実行終了までの間に、前記第2スレッドに割り当てられた前記第2処理コードの実行開始と実行終了との前後関係を示す第2順序情報と、
前記逐次プログラムコードの実行開始から実行終了までの間に、前記第1スレッドの実行開始と実行終了、及び前記第2スレッドの実行開始と実行終了との前後関係を示す第3順序情報とを含むことを特徴とするトレース生成プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010192735A JP5139486B2 (ja) | 2010-08-30 | 2010-08-30 | トレース生成装置、システム、およびそのプログラム |
US13/042,553 US9152389B2 (en) | 2010-08-30 | 2011-03-08 | Trace generating unit, system, and program of the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010192735A JP5139486B2 (ja) | 2010-08-30 | 2010-08-30 | トレース生成装置、システム、およびそのプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012048661A JP2012048661A (ja) | 2012-03-08 |
JP5139486B2 true JP5139486B2 (ja) | 2013-02-06 |
Family
ID=45698874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010192735A Expired - Fee Related JP5139486B2 (ja) | 2010-08-30 | 2010-08-30 | トレース生成装置、システム、およびそのプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US9152389B2 (ja) |
JP (1) | JP5139486B2 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013171459A (ja) * | 2012-02-21 | 2013-09-02 | Toshiba Corp | プログラム解析装置、プログラム解析方法および記録媒体 |
US9135139B2 (en) * | 2012-06-27 | 2015-09-15 | Intel Corporation | Methods and systems to identify and reproduce concurrency violations in multi-threaded programs using expressions |
US8954546B2 (en) * | 2013-01-25 | 2015-02-10 | Concurix Corporation | Tracing with a workload distributor |
US9250877B2 (en) * | 2013-09-20 | 2016-02-02 | Cray Inc. | Assisting parallelization of a computer program |
JP2015069220A (ja) * | 2013-09-26 | 2015-04-13 | 富士通株式会社 | 性能評価プログラム生成装置、方法、及びプログラム |
JP6152786B2 (ja) * | 2013-11-29 | 2017-06-28 | 富士通株式会社 | 通信制御装置、情報処理装置、並列計算機システム、制御プログラム、及び並列計算機システムの制御方法 |
US9996354B2 (en) * | 2015-01-09 | 2018-06-12 | International Business Machines Corporation | Instruction stream tracing of multi-threaded processors |
US10002040B2 (en) * | 2016-01-04 | 2018-06-19 | International Business Machines Corporation | Detection and automatic transfer of standalone system dumps |
US20180067729A1 (en) * | 2016-09-06 | 2018-03-08 | Jacob Harris Apkon | Techniques for modifying execution of a computer program based on user input received through a graphical user interface |
JP7095513B2 (ja) * | 2018-02-21 | 2022-07-05 | 株式会社デンソー | マルチコアマイコン、及び車載装置 |
CN110471670A (zh) * | 2019-08-20 | 2019-11-19 | 杭州和利时自动化有限公司 | 一种编译器、编译方法和追踪方法及dcs控制器 |
JP7243575B2 (ja) * | 2019-11-05 | 2023-03-22 | 株式会社デンソー | 電子制御装置およびその動作方法ならびに制御プログラム |
CN110968493A (zh) * | 2019-12-24 | 2020-04-07 | 上海英方软件股份有限公司 | 一种基于运行日志分析推演程序运行状态的方法及系统 |
CN112667511A (zh) * | 2020-12-30 | 2021-04-16 | 广州凡科互联网科技股份有限公司 | 一种通过插入代码来追踪java程序内部调用链的方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5179672A (en) * | 1990-06-19 | 1993-01-12 | International Business Machines Corporation | Apparatus and method for modeling parallel processing of instructions using sequential execution hardware |
JPH1063550A (ja) * | 1996-08-23 | 1998-03-06 | Fujitsu Ltd | 実行性能解析表示方法およびその方法を実施するプログラムを記録した媒体 |
US7137120B2 (en) * | 2001-12-17 | 2006-11-14 | International Business Machines Corporation | Dynamic diagnostic program for determining thread wait time |
JP4042604B2 (ja) * | 2003-03-31 | 2008-02-06 | 日本電気株式会社 | プログラム並列化装置,プログラム並列化方法およびプログラム並列化プログラム |
EP1569104A3 (en) | 2004-01-09 | 2006-05-03 | Interuniversitair Microelektronica Centrum Vzw | An automated method for performing parallelization of sequential code and a computerized system adapted therefore |
US7493606B2 (en) * | 2004-08-03 | 2009-02-17 | Université du Québec à Chicoutimi (UQAC) | Method for compiling and executing a parallel program |
JP2006277279A (ja) * | 2005-03-29 | 2006-10-12 | Nec Corp | プログラム性能情報の採取方法及びその装置並びにプログラムへの性能情報採取機能追加方法及びその装置 |
JP4937022B2 (ja) * | 2007-07-13 | 2012-05-23 | 株式会社東芝 | 順序関係解析装置、方法及びプログラム |
US7992045B2 (en) * | 2008-12-02 | 2011-08-02 | Computer Associates Think, Inc. | Identifying and monitoring asynchronous transactions |
-
2010
- 2010-08-30 JP JP2010192735A patent/JP5139486B2/ja not_active Expired - Fee Related
-
2011
- 2011-03-08 US US13/042,553 patent/US9152389B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2012048661A (ja) | 2012-03-08 |
US9152389B2 (en) | 2015-10-06 |
US20120054722A1 (en) | 2012-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5139486B2 (ja) | トレース生成装置、システム、およびそのプログラム | |
US9208057B2 (en) | Efficient model checking technique for finding software defects | |
US9536027B2 (en) | Executing a hardware simulation and verification solution | |
US8359578B2 (en) | Symbolic reduction of dynamic executions of concurrent programs | |
US20090313600A1 (en) | Concurrent code generation | |
US10943041B2 (en) | Electronic system level parallel simulation method with detection of conflicts of access to a shared memory | |
US20060218543A1 (en) | Method and apparatus for analyzing call history data derived from execution of a computer program | |
JP4201701B2 (ja) | 検証言語の合成 | |
EP1918812A1 (en) | A software development system | |
US9880822B2 (en) | Method and system for parallelization of sequential computer program codes | |
US20120131559A1 (en) | Automatic Program Partition For Targeted Replay | |
JP5450840B2 (ja) | プログラムの実行性能評価のためのテストデータ生成方法 | |
US9298858B1 (en) | System and method for reducing models based on a criterion | |
KR101745392B1 (ko) | 프로그램 분석 장치 및 분석용 프로그램을 기록한 컴퓨터 판독 가능한 저장매체 | |
Huybrechts et al. | COBRA-HPA: a block generating tool to perform hybrid program analysis | |
Schmidt et al. | Automatic generation of thread communication graphs from SystemC source code | |
JP3675623B2 (ja) | プログラム開発支援装置及び方法並びにプログラム開発支援用ソフトウェアを記録した記録媒体 | |
Schmitt et al. | Scalable critical path analysis for hybrid MPI-CUDA applications | |
Andersson et al. | Extracting simulation models from complex embedded real-time systems | |
JP6776914B2 (ja) | 並列化方法、並列化ツール | |
Herold et al. | Optimizing one-sided communication of parallel applications using critical path methods | |
JP4264110B2 (ja) | 模擬実行装置、方法およびプログラム | |
Langdal | Generating grain graphs using the OpenMP tools API | |
Yeh et al. | Speeding Up MPSoC virtual platform simulation by ultra synchronization checking method | |
Chen et al. | Utilizing the Parallel Simulation Infrastructure |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20111125 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20111205 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120718 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120803 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120928 |
|
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: 20121019 |
|
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: 20121115 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151122 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |