JP4886838B2 - 並列化方法、システム、及びプログラム - Google Patents
並列化方法、システム、及びプログラム Download PDFInfo
- Publication number
- JP4886838B2 JP4886838B2 JP2009251044A JP2009251044A JP4886838B2 JP 4886838 B2 JP4886838 B2 JP 4886838B2 JP 2009251044 A JP2009251044 A JP 2009251044A JP 2009251044 A JP2009251044 A JP 2009251044A JP 4886838 B2 JP4886838 B2 JP 4886838B2
- Authority
- JP
- Japan
- Prior art keywords
- block
- blocks
- functional block
- internal state
- assigned
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/261—Functional testing by simulating additional hardware, e.g. fault simulation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Description
while (ts < EOS) {
// 出力
f1 = Aout(sA)
f2 = a(f1)
f3 = Bout(sB)
f4 = b(f3)
f5 = c(f4)
// 状態の更新
sA = Ain(f5)
sB = Bin(f2)
// 時間の更新
ts++
}
よって、直接・間接を問わず、他の内部状態を持つブロックを経由せずに使用されるとき、機能ブロックAは、その内部状態をもたない機能ブロックの使用ブロックと呼び、内部状態を持たない機能ブロックの使用ブロック集合の要素となる。
(1) 使用ブロック数 = 0で、定義ブロック数 = 0:
この場合は、その機能ブロックは、隣接する、使用ブロック数 = 0、定義ブロック数 = 0となるブロックと同じストランドに割り当てられる。
(2) 使用ブロック数 = 0で、定義ブロック数 = 1:
この場合は、その機能ブロックは、隣接する使用ブロック数 = 0となるブロックと同じストランドに割り当てられる。
(3) 使用ブロック数 = 0で、定義ブロック数 > 1:
この場合は、その機能ブロックは、隣接する使用ブロック数 = 0となるブロックと同じストランドに割り当てられる。
(4) 使用ブロック数 = 1で、定義ブロック数 = 0:
この場合は、その機能ブロックは、隣接する定義ブロック数 = 0となるブロックと同じストランドに割り当てられる。
(5) 使用ブロック数 = 1で、定義ブロック数 = 1:
この場合は、その機能ブロックは、定義ブロックと同じストランドに割り当てられる。ただし、
後で負荷バランスのために、割当てし直すことがある。
(6) 使用ブロック数 = 1で、定義ブロック数 > 1:
この場合は、その機能ブロックは、使用ブロックと同じストランドに割り当てられる。
(7) 使用ブロック数 > 1で、定義ブロック数 = 0:
この場合は、その機能ブロックは、隣接する定義ブロック数=0となるブロックと同じストランドに割り当てられる。
(8) 使用ブロック数 > 1で、定義ブロック数 = 1:
この場合は、その機能ブロックは、定義ブロックと同じストランドに割り当てられる。
(9) 使用ブロック数 > 1で、定義ブロック数 > 1:
この場合は、その機能ブロックは、重複して、使用ブロック集合の各使用ブロックのストランドに割り当てられる。
(1) 使用ブロック数 = 0で、定義ブロック数 = 0:
この場合は、その機能ブロックは、隣接する、使用ブロック数 = 0、定義ブロック数 = 0となるブロックと同じストランドに割り当てられる。
(2) 使用ブロック数 = 0で、定義ブロック数 = 1:
この場合は、その機能ブロックは、隣接する使用ブロック数 = 0となるブロックと同じストランドに割り当てられる。
(3) 使用ブロック数 = 0で、定義ブロック数 > 1:
この場合は、その機能ブロックは、隣接する使用ブロック数 = 0となるブロックと同じストランドに割り当てられる。
(4) 使用ブロック数 = 1で、定義ブロック数 = 0:
この場合は、その機能ブロックは、隣接する定義ブロック数 = 0となるブロックと同じストランドに割り当てられる。
(5) 使用ブロック数 = 1で、定義ブロック数 = 1:
この場合は、その機能ブロックは、定義ブロックと同じストランドに割り当てられる。ただし、
後で負荷バランスのために、割当てし直すことがある。
(6) 使用ブロック数 = 1で、定義ブロック数 > 1:
この場合は、その機能ブロックは、使用ブロックと同じストランドに割り当てられる。
(7) 使用ブロック数 > 1で、定義ブロック数 = 0:
この場合は、その機能ブロックは、隣接する定義ブロック数=0となるブロックと同じストランドに割り当てられる。
(8) 使用ブロック数 > 1で、定義ブロック数 = 1:
この場合は、その機能ブロックは、定義ブロックと同じストランドに割り当てられる。
(9) 使用ブロック数 > 1で、定義ブロック数 > 1:
この場合は、その機能ブロックは、重複して、使用ブロック集合の各使用ブロックのストランドに割り当てられる。
if ( 定義ブロック数 == 0 && 使用ブロック数 == 0 ) {
処理;
} else if ( 定義ブロック数 == 1 && 使用ブロック数 == 0 ) {
処理;
}
・・・
のようなステートメントで記述することができる。
404a、404b、・・・404n CPU
406 メイン・メモリ
408 バス
410 キーボード
412 マウス
414 ディスプレイ
416 ハードティスク・ドライブ
502 シミュレーション・モデリング・ツール
504 ソース・コード
506 解析モジュール
504 ソースコード
508 ストランド作成モジュール
510 コード生成モジュール
512 コンパイラ
514 実行環境
1202〜1210 ストランド
Claims (8)
- コンピュータの処理により、内部状態をもつ機能ブロックと、内部状態をもたない機能ブロックを連結して構成されたコードを並列化する方法であって、
前記機能ブロックをノードとし、前記機能ブロックの間の接続をリンクとするグラフ表現を作成して、前記コンピュータのメモリに格納するステップと、
前記グラフ表現上で前記ノードを順次訪問し、前記ノードが内部状態をもたない機能ブロックであることに応答して、該内部状態をもたない機能ブロックから内部状態をもつ機能ブロックへの入力を検出して該内部状態をもつ機能ブロックを使用ブロック集合として前記メモリに記憶し、内部状態をもつ機能ブロックから該内部状態をもたない機能ブロックへの入力を検出して該内部状態をもつ機能ブロックを定義ブロック集合として前記メモリに記憶するステップと、
前記機能ブロックに関連して記憶された前記使用ブロック集合の情報及び前記定義ブロック集合の情報に基づき、機能ブロックのストランドを形成するステップを有する、
コードを並列化する方法。 - 前記グラフ表現上で前記ノードを順次訪問したときに、前記ノードが内部状態をもつ機能ブロックであることに応答して、前記ノードに関連して、前記ノード自身を、使用ブロック集合且つ定義ブロック集合として前記メモリに記憶するステップをさらに有する、請求項1に記載の方法。
- 前記ストランドを形成するステップでは、下記の条件に従い前記ストランドが形成される、請求項1に記載の方法。
(1) 使用ブロック数 = 0で、定義ブロック数 = 0:
この場合は、その機能ブロックは、隣接する、使用ブロック数 = 0、定義ブロック数 = 0となるブロックと同じストランドに割り当てられる。
(2) 使用ブロック数 = 0で、定義ブロック数 = 1:
この場合は、その機能ブロックは、隣接する使用ブロック数 = 0となるブロックと同じストランドに割り当てられる。
(3) 使用ブロック数 = 0で、定義ブロック数 > 1:
この場合は、その機能ブロックは、隣接する使用ブロック数 = 0となるブロックと同じストランドに割り当てられる。
(4) 使用ブロック数 = 1で、定義ブロック数 = 0:
この場合は、その機能ブロックは、隣接する定義ブロック数 = 0となるブロックと同じストランドに割り当てられる。
(5) 使用ブロック数 = 1で、定義ブロック数 = 1:
この場合は、その機能ブロックは、定義ブロックと同じストランドに割り当てられる。
(6) 使用ブロック数 = 1で、定義ブロック数 > 1:
この場合は、その機能ブロックは、使用ブロックと同じストランドに割り当てられる。
(7) 使用ブロック数 > 1で、定義ブロック数 = 0:
この場合は、その機能ブロックは、隣接する定義ブロック数=0となるブロックと同じストランドに割り当てられる。
(8) 使用ブロック数 > 1で、定義ブロック数 = 1:
この場合は、その機能ブロックは、定義ブロックと同じストランドに割り当てられる。
(9) 使用ブロック数 > 1で、定義ブロック数 > 1:
この場合は、その機能ブロックは、重複して、使用ブロック集合の各使用ブロックのストランドに割り当てられる。 - マルチコアまたはマルチプロセッサの環境において、請求項1に記載の方法にさらに、前記ストランドを個別にコンパイルして実行可能コードを生成するステップと、前記生成された実行可能コードを、個別に前記コアまたはプロセッサに割り当てて実行させるステップを有する、並列化されたコードの実行方法。
- コンピュータの処理により、内部状態をもつ機能ブロックと、内部状態をもたない機能ブロックを連結して構成されたコードを並列化するプログラムであって、
前記コンピュータをして、
前記機能ブロックをノードとし、前記機能ブロックの間の接続をリンクとするグラフ表現を作成して、前記コンピュータのメモリに格納するステップと、
前記グラフ表現上で前記ノードを順次訪問し、前記ノードが内部状態をもたない機能ブロックであることに応答して、該内部状態をもたない機能ブロックから内部状態をもつ機能ブロックへの入力を検出して該内部状態をもつ機能ブロックを使用ブロック集合として前記メモリに記憶し、内部状態をもつ機能ブロックから該内部状態をもたない機能ブロックへの入力を検出して該内部状態をもつ機能ブロックを定義ブロック集合として前記メモリに記憶するステップと、
前記機能ブロックに関連して記憶された前記使用ブロック集合の情報及び前記定義ブロック集合の情報に基づき、機能ブロックのストランドを形成するステップを実行させる、
コードを並列化するプログラム。 - 前記グラフ表現上で前記ノードを順次訪問したときに、前記ノードが内部状態をもつ機能ブロックであることに応答して、前記ノードに関連して、前記ノード自身を、使用ブロック集合且つ定義ブロック集合として前記メモリに記憶するステップを前記コンピュータにさらに実行させるための、請求項5に記載のプログラム。
- 前記ストランドを形成するステップでは、下記の条件に従い前記ストランドが形成される、請求項5に記載のプログラム。
(1) 使用ブロック数 = 0で、定義ブロック数 = 0:
この場合は、その機能ブロックは、隣接する、使用ブロック数 = 0、定義ブロック数 = 0となるブロックと同じストランドに割り当てられる。
(2) 使用ブロック数 = 0で、定義ブロック数 = 1:
この場合は、その機能ブロックは、隣接する使用ブロック数 = 0となるブロックと同じストランドに割り当てられる。
(3) 使用ブロック数 = 0で、定義ブロック数 > 1:
この場合は、その機能ブロックは、隣接する使用ブロック数 = 0となるブロックと同じストランドに割り当てられる。
(4) 使用ブロック数 = 1で、定義ブロック数 = 0:
この場合は、その機能ブロックは、隣接する定義ブロック数 = 0となるブロックと同じストランドに割り当てられる。
(5) 使用ブロック数 = 1で、定義ブロック数 = 1:
この場合は、その機能ブロックは、定義ブロックと同じストランドに割り当てられる。
(6) 使用ブロック数 = 1で、定義ブロック数 > 1:
この場合は、その機能ブロックは、使用ブロックと同じストランドに割り当てられる。
(7) 使用ブロック数 > 1で、定義ブロック数 = 0:
この場合は、その機能ブロックは、隣接する定義ブロック数=0となるブロックと同じストランドに割り当てられる。
(8) 使用ブロック数 > 1で、定義ブロック数 = 1:
この場合は、その機能ブロックは、定義ブロックと同じストランドに割り当てられる。
(9) 使用ブロック数 > 1で、定義ブロック数 > 1:
この場合は、その機能ブロックは、重複して、使用ブロック集合の各使用ブロックのストランドに割り当てられる。 - マルチコアまたはマルチプロセッサの環境において、請求項5に記載のプログラムがさらに、前記ストランドを個別にコンパイルして実行可能コードを生成するステップと、前記生成された実行可能コードを、個別に前記コアまたはプロセッサに割り当てて実行させるステップを前記コンピュータに実行させるためのものである、プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009251044A JP4886838B2 (ja) | 2009-10-30 | 2009-10-30 | 並列化方法、システム、及びプログラム |
US12/913,822 US8677334B2 (en) | 2009-10-30 | 2010-10-28 | Parallelization method, system and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009251044A JP4886838B2 (ja) | 2009-10-30 | 2009-10-30 | 並列化方法、システム、及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011096107A JP2011096107A (ja) | 2011-05-12 |
JP4886838B2 true JP4886838B2 (ja) | 2012-02-29 |
Family
ID=43926681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009251044A Expired - Fee Related JP4886838B2 (ja) | 2009-10-30 | 2009-10-30 | 並列化方法、システム、及びプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US8677334B2 (ja) |
JP (1) | JP4886838B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8990767B2 (en) | 2012-02-09 | 2015-03-24 | International Business Machines Corporation | Parallelization method, system and program |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5775386B2 (ja) * | 2011-07-14 | 2015-09-09 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 並列化方法、システム、及びプログラム |
US9003383B2 (en) * | 2011-09-15 | 2015-04-07 | You Know Solutions, LLC | Analytic engine to parallelize serial code |
US9081925B1 (en) * | 2012-02-16 | 2015-07-14 | Xilinx, Inc. | Estimating system performance using an integrated circuit |
JP6004818B2 (ja) | 2012-08-07 | 2016-10-12 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 並列化方法、システム、及びプログラム |
US9529946B1 (en) | 2012-11-13 | 2016-12-27 | Xilinx, Inc. | Performance estimation using configurable hardware emulation |
US9268597B2 (en) * | 2014-04-01 | 2016-02-23 | Google Inc. | Incremental parallel processing of data |
US9536023B2 (en) * | 2014-05-15 | 2017-01-03 | The Mathworks, Inc. | Code generation for using an element in a first model to call a portion of a second model |
US9846587B1 (en) | 2014-05-15 | 2017-12-19 | Xilinx, Inc. | Performance analysis using configurable hardware emulation within an integrated circuit |
US9608871B1 (en) | 2014-05-16 | 2017-03-28 | Xilinx, Inc. | Intellectual property cores with traffic scenario data |
JP6489985B2 (ja) * | 2015-09-24 | 2019-03-27 | ルネサスエレクトロニクス株式会社 | プログラム開発支援装置およびプログラム開発支援ソフトウェア |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04211858A (ja) * | 1990-04-02 | 1992-08-03 | Mitsubishi Electric Corp | データフローグラフ分割装置及び分割方法 |
JPH0844577A (ja) * | 1994-07-26 | 1996-02-16 | Sumisho Electron Kk | データ分割方法及びマルチプロセッサシステム |
JP3673809B2 (ja) | 2001-09-18 | 2005-07-20 | 独立行政法人 宇宙航空研究開発機構 | 多重反復処理超並列化ソースコード自動生成プログラム、自動生成装置および自動生成方法 |
US7793276B2 (en) | 2003-11-14 | 2010-09-07 | Intel Corporation | Apparatus and method for automatically parallelizing network applications through pipelining transformation |
US7603546B2 (en) * | 2004-09-28 | 2009-10-13 | Intel Corporation | System, method and apparatus for dependency chain processing |
-
2009
- 2009-10-30 JP JP2009251044A patent/JP4886838B2/ja not_active Expired - Fee Related
-
2010
- 2010-10-28 US US12/913,822 patent/US8677334B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8990767B2 (en) | 2012-02-09 | 2015-03-24 | International Business Machines Corporation | Parallelization method, system and program |
Also Published As
Publication number | Publication date |
---|---|
JP2011096107A (ja) | 2011-05-12 |
US20110107162A1 (en) | 2011-05-05 |
US8677334B2 (en) | 2014-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4886838B2 (ja) | 並列化方法、システム、及びプログラム | |
JP4931978B2 (ja) | 並列化処理方法、システム、及びプログラム | |
JP4629768B2 (ja) | 並列化処理方法、システム、及びプログラム | |
JP5209059B2 (ja) | ソース・コード処理方法、システム、及びプログラム | |
JP6021342B2 (ja) | 並列化方法、システム、及びプログラム | |
JP5479942B2 (ja) | 並列化方法、システム、及びプログラム | |
JP4988789B2 (ja) | シミュレーション・システム、方法及びプログラム | |
US20110067017A1 (en) | Non-blocking semantics for modeling systems | |
CN117034821B (zh) | 用于芯片设计前端仿真验证的回归验证方法及介质 | |
Bakhtin et al. | DVM-approach to the automation of the development of parallel programs for clusters | |
JP6004818B2 (ja) | 並列化方法、システム、及びプログラム | |
JP2011186991A (ja) | 常微分方程式を解くための方法、プログラム及びシステム | |
Chen et al. | Slapo: A schedule language for progressive optimization of large deep learning model training | |
JP5775386B2 (ja) | 並列化方法、システム、及びプログラム | |
US10241764B2 (en) | Automatically transform pass-by-value semantics into pass-by-reference implementation | |
Ivutin et al. | Low-level Code Auto-tuning for State-of-the-art Multicore Architectures | |
JP7385536B2 (ja) | ソフトウェア開発支援装置及びソフトウェア開発支援方法 | |
JPH06231203A (ja) | シミュレーションモデルのためのコンパイルメカニズム | |
Bulavintsev et al. | Method for Adaptation of Algorithms to GPU Architecture | |
KHALILI MAYBODI | A Data-Flow Threads Co-processor for MPSoC FPGA Clusters | |
Morón et al. | From multitask to multicore: Design and implementation using an rtos | |
Dekker et al. | Emulating MIMD Behavior on SIMD Machines | |
Aouadj et al. | Automated Code Optimization in the MLIR Compiler | |
Juanpere Cañameras | Characterization of applications in new architectures | |
Sedov | Execution Analysis of ARPC Programs in the Environment of the Recursive Parallel Programming |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110926 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111004 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111102 |
|
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: 20111122 |
|
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: 20111209 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141216 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4886838 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |