JP5775386B2 - 並列化方法、システム、及びプログラム - Google Patents
並列化方法、システム、及びプログラム Download PDFInfo
- Publication number
- JP5775386B2 JP5775386B2 JP2011155616A JP2011155616A JP5775386B2 JP 5775386 B2 JP5775386 B2 JP 5775386B2 JP 2011155616 A JP2011155616 A JP 2011155616A JP 2011155616 A JP2011155616 A JP 2011155616A JP 5775386 B2 JP5775386 B2 JP 5775386B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- node
- coded
- spt
- block
- 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
Landscapes
- Devices For Executing Special Programs (AREA)
Description
この発明の他の目的は、その際に、実行速度を損なわないように、コード化対象外ブロックを分割の境界に配置するための技法を提供することにある。
限定されず、オープンソースのScilab/Scicosなど、タイム・ステップに基づくタスク・グラフで表現される任意のシミュレーション・モデリング・ツールを使用することが可能である。
xノード : コード化対象外ノード
非xノード :コード化対象ノード
SPT上のノードに関する用語
ノードの順序 : 木の(Tree)左優先の深さ優先探索(Depth first search)で辿られる順番で決定する。SPT中のある二つのノードに対して、辿られる順番が他方より早いものを前、他方より遅い方を後ろとする。
根ノード : 一般的な定義に順ずる。
葉ノード : 子ノードを持たないノード。DAG上のノードに対応する。(一般的な定義と同じ)
内部ノード : 葉ノードでないノード (一般的な定義と同じ)
親ノード : 一般的な定義に順ずる
子ノード : 一般的な定義に順ずる
兄ノード : 親ノードが同じノードのうち、対象ノードより前にあるノード
弟ノード : 親ノードが同じノードのうち、対象ノードより後ろにあるノード
兄弟ノード : 兄ノードおよび弟ノード
祖父ノード : 親ノードの親ノード
曽祖父ノード : 祖父ノードの親ノード
Sノード : 子ノードの直列実行を表す内部ノード
Pノード : 子ノードの並列実行を表す内部ノード
ここで、SPT上の葉ノードはSPGのノードに対応する。また、非端末(非葉)ノードはSPG上には存在しないが、間接的にノード間の接続順序を表す。
SPG上のLに属するすべてのノードを一つのノードSに置き換える(このとき、Lの外部のノードとの接続関係は維持される)。
同時に、SをSPT上の一つのノードとし、L中のノードに該当するSPT上のノードをL中での順序順にSPT上のSの子ノードとして加える。ここで、SPG上に構成されていくノードは、対応するノードがSPT上にも構築されていくため、つねに互いに対応関係が取れる。
SPG上のCに属するすべてのノードを一つのノードPに置き換える(このとき、Pの外部のノードとの接続関係は維持される)。
同時に、PをSPT上の一つのノードとし、C中のノードに該当するSPT上のノードを、SPT上のPの子ノードとして加える。ここでも、SPG上に構成されていくノードは、対応するノードがSPT上にも構築されていくため、つねに互いに対応関係が取れることに留意されたい。
また、emax := 0,Umax := φ,pmax := nullとする。
また、以下の変数を用意する。
m := 配分された集合ごとに属するノードの重みの和を計算し、その中で最大の値
e := pの全子ノードの重みの和 - m
emax < e なら emax := e, Umax = {U1, …, Un} , pmax := p とする。この後、処理は、ステップ1708に戻る。
また、r := q の下位の葉ノードで、pmax の下位でない葉ノードの内、pmaxよりも後ろの葉ノードのリストとする。
こうしておいて、CPU割当てモジュール516は、lに含まれる葉ノードを根ノードの子ノードとしてqの直前に、rに含まれる葉ノードを根ノードの子ノードとして qの直後にリスト内の順序を維持したまま移動する。そして、qをpmaxで置き換える。
そしてさらに、CPU割当てモジュール516は、以下の処理を行う。
pmaxの子ノードを切り離す(一度子ノードがいない状態になる)。
Umaxの要素のうち、空でない各集合Uiに対し、新しいSノードをpmaxの子ノードとして作成する。
各 Uiに含まれるすべてのノードの下位の葉ノードを、順序関係を維持したまま対応するSノードの子ノードとする。
根ノードがSノード
根ノードの子ノードは葉ノード(すなわちオリジナルのDAG上のノード)またはPノード
当該Pノードの子ノードの数はプロセッサ数n以下
当該Pノードの子ノードはすべてSノードで、葉ノードのみをその子ノードに持つ
SPT上に存在するすべてのPノードの子ノードの数はプロセッサ数以下であるため、各子ノード以下の葉ノード(元のDAG上のノード)をどのようにプロセッサに配分するかを示した構造になっている。
根ノードの子ノードのうち、連続する非xノードである葉ノード、および各Pノードが一つのコード化の単位となる。
406 メイン・メモリ
416 ハードティスク・ドライブ
502 シミュレーション・モデリング・ツール
504 モデル・データ
508 DAG変換モジュール
510 タスク・グラフ変形モジュール
512 SPT変換モジュール
514 SPT変形モジュール
516 CPU割当てモジュール
518 コンパイラ
520 実行環境
Claims (13)
- コンピュータの処理により、コード化対象外ブロックと、コード化対象ブロックを含む複数のブロックを連結して構成されたコードを並列化する方法であって、
前記コードを、DAGのタスク・グラフに変換するステップと、
前記タスク・グラフを、直列実行ノードがそこから分岐するSノードと、並列実行ノードがそこから分岐するPノードを含む、直列−並列木に変換するステップと、
前記コード化対象外ブロックの上位に前記Pノードが存在しなくなるまで前記直列−並列木を別の直列−並列木に変形するステップを有する、
コード並列化方法。 - 前記直列−並列木に変換する前に、前記タスク・グラフにおいて、前記コード化対象外ブロックをマージするステップをさらに含む、
請求項1に記載のコード並列化方法。 - 前記コード化対象外ブロックのマージが、リスト・スケジューリングにより行われる、請求項2に記載のコード並列化方法。
- 請求項1のコード並列化方法で生成されたコードを、マルチプロセッサ環境で実行する方法であって、
前記Pノードの下位の個々のノードをコード化するステップと、
該コード化されたコードを実行可能コードに個別にコンパイルするステップと、
前記実行可能コードを個々のプロセッサに割り当てて実行するステップを有する、
コード並列実行方法。 - 請求項1のコード並列化方法で生成されたコードを、前記コード化対象外ブロックのコードを実行するためのインタープリタをもつマルチプロセッサ環境で実行する方法であって、
前記Pノードの下位の個々のノードをコード化するステップと、
該コード化されたコードが前記コード化対象外ブロックを含まないなら、実行可能コードに個別にコンパイルするステップと、
前記実行可能コードを個々のプロセッサに割り当てて実行するステップと、
前記コード化されたコードが前記コード化対象外ブロックを含むなら、前記コード化されたコードを前記インタープリタで実行するステップを有する、
コード並列実行方法。 - コンピュータの処理により、コード化対象外ブロックと、コード化対象ブロックを含む複数のブロックを連結して構成されたコードを並列化するプログラムであって、
前記コンピュータに、
前記コードを、DAGのタスク・グラフに変換するステップと、
前記タスク・グラフを、直列実行ノードがそこから分岐するSノードと、並列実行ノードがそこから分岐するPノードを含む、直列−並列木に変換するステップと、
前記コード化対象外ブロックの上位に前記Pノードが存在しなくなるまで前記直列−並列木を別の直列−並列木に変形するステップを実行させる、
プログラム。 - 前記直列−並列木に変換する前に、前記タスク・グラフにおいて、前記コード化対象外ブロックをマージするステップをさらに含む、
請求項6に記載のプログラム。 - 前記コード化対象外ブロックのマージが、リスト・スケジューリングにより行われる、請求項7に記載のプログラム。
- コンピュータの処理により、コード化対象外ブロックと、コード化対象ブロックを含む複数のブロックを連結して構成されたコードを並列化するシステムであって、
前記コードから変換されたDAGのタスク・グラフを保存する記憶手段と、
前記タスク・グラフを、直列実行ノードがそこから分岐するSノードと、並列実行ノードがそこから分岐するPノードを含む、直列−並列木に変換する手段と、
前記コード化対象外ブロックの上位に前記Pノードが存在しなくなるまで前記直列−並列木を別の直列−並列木に変形する手段とを有する、
コード並列化システム。 - 前記タスク・グラフにおいて、前記コード化対象外ブロックをマージする手段をさらに含む、
請求項9に記載のコード並列化システム。 - 前記コード化対象外ブロックのマージが、リスト・スケジューリングにより行われる、請求項10に記載のコード並列化システム。
- マルチプロセッサ環境と、
前記Pノードの下位の個々のノードをコード化する手段と、
該コード化されたコードを実行可能コードに個別にコンパイルする手段と、
前記実行可能コードを個々のプロセッサに割り当てて実行する手段をさらに有する、
請求項9に記載のコード並列化システム。 - 前記コード化対象外ブロックのコードを実行するためのインタープリタをもつマルチプロセッサ環境と、
前記Pノードの下位の個々のノードをコード化する手段と、
該コード化されたコードが前記コード化対象外ブロックを含まないなら、実行可能コードに個別にコンパイルする手段と、
前記実行可能コードを個々のプロセッサに割り当てて実行する手段と、
前記コード化されたコードが前記コード化対象外ブロックを含むなら、前記コード化されたコードを前記インタープリタで実行する手段をさらに有する、
請求項9に記載のコード並列化システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011155616A JP5775386B2 (ja) | 2011-07-14 | 2011-07-14 | 並列化方法、システム、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011155616A JP5775386B2 (ja) | 2011-07-14 | 2011-07-14 | 並列化方法、システム、及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013020580A JP2013020580A (ja) | 2013-01-31 |
JP5775386B2 true JP5775386B2 (ja) | 2015-09-09 |
Family
ID=47691929
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011155616A Expired - Fee Related JP5775386B2 (ja) | 2011-07-14 | 2011-07-14 | 並列化方法、システム、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5775386B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017163591A1 (ja) * | 2016-03-24 | 2017-09-28 | 富士フイルム株式会社 | 画像処理装置、画像処理方法、及び画像処理プログラム |
CN108255603A (zh) * | 2017-12-04 | 2018-07-06 | 广州供电局有限公司 | 文本数据分析优化方法、系统、存储介质和计算机设备 |
CN117422281B (zh) * | 2023-12-18 | 2024-03-22 | 深圳赛桥生物创新技术有限公司 | 工艺文件测试方法、装置、计算机设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5209059B2 (ja) * | 2008-10-24 | 2013-06-12 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ソース・コード処理方法、システム、及びプログラム |
JP4931978B2 (ja) * | 2009-10-06 | 2012-05-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 並列化処理方法、システム、及びプログラム |
JP4886838B2 (ja) * | 2009-10-30 | 2012-02-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 並列化方法、システム、及びプログラム |
-
2011
- 2011-07-14 JP JP2011155616A patent/JP5775386B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2013020580A (ja) | 2013-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4931978B2 (ja) | 並列化処理方法、システム、及びプログラム | |
EP2979176B1 (en) | Method for transforming first code instructions in a first programming language into second code instructions in a second programming language | |
US7882462B2 (en) | Hardware definition language generation for frame-based processing | |
JP4886838B2 (ja) | 並列化方法、システム、及びプログラム | |
US9152389B2 (en) | Trace generating unit, system, and program of the same | |
US9952837B1 (en) | Reusable component in a modeling environment | |
US20160092181A1 (en) | Automatic source code generation for accelerated function calls | |
JP6021342B2 (ja) | 並列化方法、システム、及びプログラム | |
CN108197027B (zh) | 软件性能优化方法、可存储介质、计算机、计算机程序 | |
JP5479942B2 (ja) | 並列化方法、システム、及びプログラム | |
US10884714B2 (en) | Method for modifying models for generating source code | |
US20180088911A1 (en) | Method and system for automatic code generation | |
JP5775386B2 (ja) | 並列化方法、システム、及びプログラム | |
US9298858B1 (en) | System and method for reducing models based on a criterion | |
JP2014035548A (ja) | 並列化方法、システム、及びプログラム | |
CN112114817A (zh) | 基于cobol语言的数据字典字段信息获取方法及装置 | |
CN112527304A (zh) | 基于异构平台的自适应节点融合编译优化方法 | |
Harrison et al. | Tools for multiple-CPU environments | |
Bombieri et al. | HDTLib: an efficient implementation of SystemC data types for fast simulation at different abstraction levels | |
JP7307011B2 (ja) | モデル並列化装置および方法 | |
US20240201965A1 (en) | Method for generating source code | |
Fonseca et al. | Vird-gm: Towards a grid computing environment | |
Posadas et al. | Accelerating host-compiled simulation by modifying ir code: Industrial application in the spatial domain | |
CN117873468A (zh) | 一种基于规则引擎的代码生成系统及方法 | |
Posadas Cobo et al. | Accelerating host-compiled simulation by modifying IR code: industrial application in the spatial domain |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140303 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150213 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150310 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150601 |
|
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: 20150616 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150703 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5775386 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |