JP6021342B2 - 並列化方法、システム、及びプログラム - Google Patents
並列化方法、システム、及びプログラム Download PDFInfo
- Publication number
- JP6021342B2 JP6021342B2 JP2012026145A JP2012026145A JP6021342B2 JP 6021342 B2 JP6021342 B2 JP 6021342B2 JP 2012026145 A JP2012026145 A JP 2012026145A JP 2012026145 A JP2012026145 A JP 2012026145A JP 6021342 B2 JP6021342 B2 JP 6021342B2
- Authority
- JP
- Japan
- Prior art keywords
- block
- segment
- segments
- internal state
- processors
- 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.)
- Active
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/35—Creation or generation of source code model driven
-
- 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/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/451—Code distribution
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Complex Calculations (AREA)
Description
a)内部状態を持つブロックは当該ブロックへの入力を必要とせず、自身が持つ内部状態からその出力を計算できるため、任意のタイミングで出力を計算してよい。図3におけるブロック302、ブロック304が内部状態を持つブロックであるとすると、これらのブロックから出力計算を開始することができる。
b)内部状態を持たないブロックは、自身への入力を元に出力を計算するため、入力が計算された後に当該ブロックの出力を計算する。図3におけるブロック302、ブロック304以外のブロックは、入力が計算された後、初めて出力を計算することができる。ただし、入力を持たないブロックの場合には、そのブロックから出力計算を開始することができる。
内部状態をもつブロックをブロック402、ブロック404及びブロック406とする。
Integrator : 積分計算のブロック
DiscreteFilter :無限インパルス応答(IIR)フィルタと有限インパルス応答(FIR)フィルタを実現するブロック
TransferFunction :伝達関数を表すブロック(NDFはdx/dtに該当)
S-function : ユーザが機能を自由に定義できるブロック
RateTransition : サンプルタイムが変化することを表すブロック
ここで、||s||のような記法は、sが含むブロックの出力計算に必要な計算時間を示す。この計算時間は、あらかじめ各ブロックに要する計算時間を測定するか、仕様に基づき記録しておき、これを表引きして、セグメントが含むブロック毎に足すことによって得られる。
なお、t ∪ sで示すような、Sの要素の間の和集合というとき、Sの要素自体がブロックの集合なので、ブロックを要素とみなして、集合演算を行うものと理解されたい。
x1' = f1(x(t),t)
x2' = f2(x(t),t)
...
xn' = fn(x(t),t)
104a、104b、・・・104n CPU
106 メイン・メモリ
116 ハードティスク・ドライブ
202 シミュレーション・モデリング・ツール
204 ブロック線図のコード
208 セグメント抽出ルーチン
212 マージ処理ルーチン
216 コード変換ルーチン
220 コンパイラ
224 実行環境
Claims (15)
- 複数のプロセッサをもつコンピュータの処理により、ノードがブロックであり、依存関係がリンクであるグラフ状のモデルにおける複数の連立方程式で記述される、常微分方程式を解く方法であって、
前記モデルにおける内部状態をもつブロックへの入力を計算するブロックおよび出力を持たないブロックから出発して、前記依存関係を逆に辿ることにより、前記内部状態をもつブロックへの入力を計算するブロックおよび出力を持たないブロック毎に該ブロックへの入力の計算に必要なブロックの集合からなるセグメントを、互いに重複を含むことを許しつつ、生成するステップと、
前記セグメントを、重複を減らすようにマージするステップと、
前記マージされた結果のセグメントの各々をコンパイルして実行可能コードに変換するステップと、
前記セグメント毎の実行可能コードを、前記複数のプロセッサに個別に割り当てて並列に実行させるステップを有する、
方法。 - 前記セグメントを生成するステップが、内部状態をもつブロックへの入力など、1タイムステップ内ではないものとしてよい依存関係を介した親ブロックは含まないようにして、親ブロックを辿りつつ、ブロックをセグメントに追加するステップを有する、
請求項1に記載の方法。 - 前記セグメントを、重複を減らすようにマージするステップが、
(a) 前記セグメントの集合において、最も計算時間の小さいセグメントsを抽出するステップと、
(b) 前記セグメントsとの和集合に含まれるブロックの計算時間が最小となるセグメントtを抽出するステップと、
(c) 前記セグメントの集合において、最も計算時間の大きいセグメントuを抽出するステップと、
(d) 前記セグメントの集合の個数が前記プロセッサの数よりも大きいかまたは、前記セグメントuの計算時間が前記セグメントsと前記セグメントtの和集合の計算時間よりも大きいかどうかの判断を行うステップと、
(e) 前記判断が肯定的であることに従い、前記セグメントの集合から前記セグメントsと前記セグメントtを除去して、前記セグメントsと前記セグメントtの和集合を追加し前記ステップ(a)から処理を繰り返すステップと、
(f) 前記判断が否定的であることに従い、前記セグメントの集合を出力して前記マージするステップを含む、
請求項1に記載の方法。 - 前記内部状態をもつブロックが、積分計算のブロック、またはユーザー定義のブロックである、請求項1に記載の方法。
- 前記複数のプロセッサをもつコンピュータが、マルチコアのプロセッサを含む、請求項1に記載の方法。
- 複数のプロセッサをもつコンピュータの処理により、ノードがブロックであり、依存関係がリンクであるグラフ状のモデルにおける複数の連立方程式で記述される、常微分方程式を解くプログラムであって、
前記コンピュータに、
前記モデルにおける内部状態をもつブロックへの入力を計算するブロックおよび出力を持たないブロックから出発して、前記依存関係を逆に辿ることにより、前記内部状態をもつブロックへの入力を計算するブロックおよび出力を持たないブロック毎に該ブロックへの入力の計算に必要なブロックの集合からなるセグメントを、互いに重複を含むことを許しつつ、生成するステップと、
前記セグメントを、重複を減らすようにマージするステップと、
前記マージされた結果のセグメントの各々をコンパイルして実行可能コードに変換するステップと、
前記セグメント毎の実行可能コードを、前記複数のプロセッサに個別に割り当てて並列に実行させるステップを実行させる、
プログラム。 - 前記セグメントを生成するステップが、内部状態をもつブロックへの入力など、1タイムステップ内ではないものとしてよい依存関係を介した親ブロックは含まないようにして、親ブロックを辿りつつ、ブロックをセグメントに追加するステップを有する、
請求項6に記載のプログラム。 - 前記セグメントを、重複を減らすようにマージするステップが、
(a) 前記セグメントの集合において、最も計算時間の小さいセグメントsを抽出するステップと、
(b) 前記セグメントsとの和集合に含まれるブロックの計算時間が最小となるセグメントtを抽出するステップと、
(c) 前記セグメントの集合において、最も計算時間の大きいセグメントuを抽出するステップと、
(d) 前記セグメントの集合の個数が前記プロセッサの数よりも大きいかまたは、前記セ
グメントuの計算時間が前記セグメントsと前記セグメントtの和集合の計算時間よりも大
きいかどうかの判断を行うステップと、
(e) 前記判断が肯定的であることに従い、前記セグメントの集合から前記セグメントsと前記セグメントtを除去して、前記セグメントsと前記セグメントtの和集合を追加し前記ステップ(a)から処理を繰り返すステップと、
(f) 前記判断が否定的であることに従い、前記セグメントの集合を出力して前記マージするステップを含む、
請求項6に記載のプログラム。 - 前記内部状態をもつブロックが、積分計算のブロック、またはユーザー定義のブロックである、請求項6に記載のプログラム。
- 前記複数のプロセッサをもつコンピュータが、マルチコアのプロセッサを含む、請求項6に記載のプログラム。
- 複数のプロセッサをもつコンピュータの処理により、ノードがブロックであり、依存関係がリンクであるグラフ状のモデルにおける複数の連立方程式で記述される、常微分方程式を解くシステムであって、
前記モデルにおける内部状態をもつブロックへの入力を計算するブロックおよび出力を持たないブロックから出発して、前記依存関係を逆に辿ることにより、前記内部状態をもつブロックへの入力を計算するブロックおよび出力を持たないブロック毎に該ブロックへの入力の計算に必要なブロックの集合からなるセグメントを、互いに重複を含むことを許しつつ、生成する手段と、
前記セグメントを、重複を減らすようにマージする手段と、
前記マージされた結果のセグメントの各々をコンパイルして実行可能コードに変換する手段と、
前記セグメント毎の実行可能コードを、前記複数のプロセッサに個別に割り当てて並列に実行させる手段を有する、
システム。 - 前記セグメントを生成する手段が、内部状態をもつブロックへの入力など、1タイムステップ内ではないものとしてよい依存関係を介した親ブロックは含まないようにして、親ブロックを辿りつつ、ブロックをセグメントに追加する処理を実行する、
請求項11に記載のシステム。 - 前記セグメントを、重複を減らすようにマージする手段が、
(a) 前記セグメントの集合において、最も計算時間の小さいセグメントsを抽出する処理と、
(b) 前記セグメントsとの和集合に含まれるブロックの計算時間が最小となるセグメントtを抽出する処理と、
(c) 前記セグメントの集合において、最も計算時間の大きいセグメントuを抽出する処理と、
(d) 前記セグメントの集合の個数が前記プロセッサの数よりも大きいかまたは、前記セ
グメントuの計算時間が前記セグメントsと前記セグメントtの和集合の計算時間よりも大
きいかどうかの判断を行う処理と、
(e) 前記判断が肯定的であることに従い、前記セグメントの集合から前記セグメントsと前記セグメントtを除去して、前記セグメントsと前記セグメントtの和集合を追加し前記処理(a)から処理を繰り返す処理と、
(f) 前記判断が否定的であることに従い、前記セグメントの集合を出力して前記マージする処理を実行する、
請求項11に記載のシステム。 - 前記内部状態をもつブロックが、積分計算のブロック、またはユーザー定義のブロックである、請求項11に記載のシステム。
- 前記複数のプロセッサをもつコンピュータが、マルチコアのプロセッサを含む、請求項11に記載のシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012026145A JP6021342B2 (ja) | 2012-02-09 | 2012-02-09 | 並列化方法、システム、及びプログラム |
US13/761,258 US8990767B2 (en) | 2012-02-09 | 2013-02-07 | Parallelization method, system and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012026145A JP6021342B2 (ja) | 2012-02-09 | 2012-02-09 | 並列化方法、システム、及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013164657A JP2013164657A (ja) | 2013-08-22 |
JP6021342B2 true JP6021342B2 (ja) | 2016-11-09 |
Family
ID=48946737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012026145A Active JP6021342B2 (ja) | 2012-02-09 | 2012-02-09 | 並列化方法、システム、及びプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US8990767B2 (ja) |
JP (1) | JP6021342B2 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
EP2851815A1 (de) * | 2013-09-18 | 2015-03-25 | dSPACE digital signal processing and control engineering GmbH | Testeinrichtung zum Echtzeittest eines virtuellen Steuergeräts |
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 |
SG11201701667WA (en) * | 2014-09-02 | 2017-04-27 | Ab Initio Technology Llc | Visually specifying subsets of components in graph-based programs through user interactions |
US10496619B2 (en) | 2014-09-02 | 2019-12-03 | Ab Initio Technology Llc | Compiling graph-based program specifications |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5179702A (en) * | 1989-12-29 | 1993-01-12 | Supercomputer Systems Limited Partnership | System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling |
US7952583B2 (en) * | 2000-06-19 | 2011-05-31 | Mental Images Gmbh | Quasi-monte carlo light transport simulation by efficient ray tracing |
US20110238948A1 (en) * | 2002-08-07 | 2011-09-29 | Martin Vorbach | Method and device for coupling a data processing unit and a data processing array |
US7225173B2 (en) * | 2002-09-09 | 2007-05-29 | Carmel - Haifa University Economic Corporation Ltd. | Apparatus and method for efficient adaptation of finite element meshes for numerical solutions of partial differential equations |
JP2005018626A (ja) * | 2003-06-27 | 2005-01-20 | Ip Flex Kk | 並列処理システムの生成方法 |
JP3901180B2 (ja) * | 2004-06-30 | 2007-04-04 | 日本電気株式会社 | プログラム並列化装置及びその方法並びにプログラム |
US7512592B2 (en) * | 2004-07-02 | 2009-03-31 | Tarari, Inc. | System and method of XML query processing |
US7603546B2 (en) * | 2004-09-28 | 2009-10-13 | Intel Corporation | System, method and apparatus for dependency chain processing |
US7941791B2 (en) * | 2007-04-13 | 2011-05-10 | Perry Wang | Programming environment for heterogeneous processor resource integration |
US7912003B2 (en) * | 2007-06-27 | 2011-03-22 | Microsoft Corporation | Multipath forwarding algorithms using network coding |
US20090089029A1 (en) * | 2007-09-28 | 2009-04-02 | Rockwell Automation Technologies, Inc. | Enhanced execution speed to improve simulation performance |
US8214817B2 (en) * | 2007-10-09 | 2012-07-03 | International Business Machines Corporation | Detecting change in program behavior for adaptive code optimization |
US8225074B2 (en) * | 2008-10-02 | 2012-07-17 | Nec Laboratories America, Inc. | Methods and systems for managing computations on a hybrid computing platform including a parallel accelerator |
EP2996035A1 (en) * | 2008-10-15 | 2016-03-16 | Hyperion Core, Inc. | Data processing device |
KR101522444B1 (ko) * | 2008-10-24 | 2015-05-21 | 인터내셔널 비지네스 머신즈 코포레이션 | 소스 코드 처리 방법, 시스템, 및 프로그램 |
US9715376B2 (en) * | 2008-12-29 | 2017-07-25 | Intel Corporation | Energy/performance with optimal communication in dynamic parallelization of single threaded programs |
US8321648B2 (en) * | 2009-10-26 | 2012-11-27 | Netapp, Inc | Use of similarity hash to route data for improved deduplication in a storage server cluster |
JP4886838B2 (ja) | 2009-10-30 | 2012-02-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 並列化方法、システム、及びプログラム |
US8352422B2 (en) * | 2010-03-30 | 2013-01-08 | Commvault Systems, Inc. | Data restore systems and methods in a replication environment |
US8762964B2 (en) * | 2010-12-17 | 2014-06-24 | Cisco Technology, Inc. | Optimizing symbol manipulation language-based executable applications for distributed execution |
-
2012
- 2012-02-09 JP JP2012026145A patent/JP6021342B2/ja active Active
-
2013
- 2013-02-07 US US13/761,258 patent/US8990767B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US8990767B2 (en) | 2015-03-24 |
JP2013164657A (ja) | 2013-08-22 |
US20130212554A1 (en) | 2013-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6021342B2 (ja) | 並列化方法、システム、及びプログラム | |
JP4931978B2 (ja) | 並列化処理方法、システム、及びプログラム | |
JP4886838B2 (ja) | 並列化方法、システム、及びプログラム | |
JP5209059B2 (ja) | ソース・コード処理方法、システム、及びプログラム | |
JP4629768B2 (ja) | 並列化処理方法、システム、及びプログラム | |
JP5479942B2 (ja) | 並列化方法、システム、及びプログラム | |
US20130198713A1 (en) | Code generation for control design | |
JP4988789B2 (ja) | シミュレーション・システム、方法及びプログラム | |
JP5651251B2 (ja) | シミュレーション実行方法、プログラム及びシステム | |
JP6004818B2 (ja) | 並列化方法、システム、及びプログラム | |
US9396095B2 (en) | Software verification | |
Bakhtin et al. | DVM-approach to the automation of the development of parallel programs for clusters | |
CN115130407A (zh) | 用于在处理器与fpga之间划分仿真模型的方法 | |
JP5692739B2 (ja) | 常微分方程式を解くための方法、プログラム及びシステム | |
JP5775386B2 (ja) | 並列化方法、システム、及びプログラム | |
Ivutin et al. | Low-level Code Auto-tuning for State-of-the-art Multicore Architectures | |
JP7385536B2 (ja) | ソフトウェア開発支援装置及びソフトウェア開発支援方法 | |
Suresh et al. | Vehicle Motion Control on SIMD: Traditional and AI based models on the edge | |
Camelo | Performance characterization of the alya fluid dynamics simulator | |
CN117313373A (zh) | Emt仿真方法、装置、上位机及emt仿真系统 | |
Juanpere Cañameras | Characterization of applications in new architectures | |
Nishida | Lis User Manual Version 1.3. 32 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140901 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20151016 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20151110 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160209 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160405 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160624 |
|
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: 20160913 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161004 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6021342 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |