JP5083204B2 - 並列化プログラム生成プログラム、並列化プログラム生成装置、及び並列化プログラム生成方法 - Google Patents
並列化プログラム生成プログラム、並列化プログラム生成装置、及び並列化プログラム生成方法 Download PDFInfo
- Publication number
- JP5083204B2 JP5083204B2 JP2008504960A JP2008504960A JP5083204B2 JP 5083204 B2 JP5083204 B2 JP 5083204B2 JP 2008504960 A JP2008504960 A JP 2008504960A JP 2008504960 A JP2008504960 A JP 2008504960A JP 5083204 B2 JP5083204 B2 JP 5083204B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- vertex
- thread
- vertices
- generated
- 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
- 238000000034 method Methods 0.000 title claims description 211
- 230000002829 reductive effect Effects 0.000 claims description 17
- 230000004913 activation Effects 0.000 claims description 5
- 230000003068 static effect Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 description 74
- 230000001419 dependent effect Effects 0.000 description 26
- 238000003860 storage Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 9
- 230000002441 reversible effect Effects 0.000 description 9
- 230000036961 partial effect Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 230000007850 degeneration Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000008602 contraction Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
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/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/456—Parallelism detection
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)
Description
11 変数宣言部分
12 プログラム本体部分
13 出力変数の送信部分
21,22 全域木
31 出力依存辺
32,33 逆依存辺
510 コンピュータ
511 CPU
512 RAM
513 ROM
514 二次記憶装置
515 可換媒体記憶装置
516 インターフェース
520 ディスプレイ装置
521 キーボード
522 マウス
523 通信装置
エントリ:プログラムの開始ポイントを表す。
[制御依存辺: v→c L w]プリディケート頂点vに対して、その条件判定結果により、頂点wに到達するか否かが決まることを表す。Lは条件判定のフラグを表し、L=Tのときは条件判定結果が真の場合に頂点wを実行し、L=Fのときは結果が偽の場合に頂点wを実行する。
[ループ独立フロー依存辺: v→li x w]頂点vで代入された変数xの値を、頂点wで参照するような場合のデータ依存関係を表す。ここでは、ループを繰り越さない場合のみを表す。
一般にプログラム依存グラフから等価な逐次プログラムの制御の流れを再構成することは、困難と言われている。これは、制御の依存関係のみの表現となっているため、依存関係を満足する制御の流れは一意に決定できない上に、グラフを変形するような最適化を行なった場合、依存関係を満足するような制御の流れが存在しないような場合も出てくるためである。
プログラム依存グラフを探索して、頂点間の結合の強さを求める。結合度は、データ依存辺とその大きさ、及び、制御依存辺、処理の大きさから計算されるものとする。ある結合度以上の頂点に対して、縮約可能な条件を満足する場合は、頂点を結合し依存関係を縮約する。ここで、次の2つ条件を満たすときに、頂点を結合しての縮約が可能となる。
エントリ:プログラムの開始ポイントを表す。
[制御依存辺: v→c L w]プリディケート頂点vに対して、その条件判定結果により、頂点wに到達するか否かが決まることを表す。Lは条件判定のフラグを表し、L=Tのときは条件判定結果が真の場合に頂点wを実行し、L=Fのときは結果が偽の場合に頂点wを実行する。
[ループ独立フロー依存辺: v→li x w]頂点vで代入された変数xの値を、頂点wで参照するような場合のデータ依存関係を表す。ここでは、ループを繰り越さない場合のみを表す。
Span(v, x) = {v}∪{u| v→li xu ∈ ER}
と定義される。図14は、全域木を説明するための図である。図14に示されるプログラム依存グラフにおいて、頂点viにおいて変数xが定義され、2つの頂点v1及びv2が変数xを使用する。この場合、頂点vi、v1、及びv2で全域木21を形成する。また頂点vjにおいて変数xが定義され、2つの頂点v3及びv4が変数xを使用する。この場合、頂点vj、v3、及びv4で全域木22を形成する。図15は、全域木を模式的に示す図である。全域木Span(vi, x)及び全域木Span(vj, x)が、データ依存グラフとして図15に示されるように構成される。
ステップS2の判定の結果、vpがif文のプリディケート頂点の場合は、ステップS9でif文を生成する。次にステップS10で、then節を生成する。
Claims (8)
- 逐次プログラムを入力として、該逐次プログラムを構成する各文を頂点として有するとともに、文と文の間の関係を該頂点間の辺として有するプログラム依存グラフを生成し、
該プログラム依存グラフの該頂点同士を融合することにより該頂点の数を減少させた縮退プログラム依存グラフを生成し、
該縮退プログラム依存グラフの頂点の各々に相当するスレッド・プログラムを生成し、
該スレッド・プログラムの起動及び同期を制御するスレッド制御プログラムを生成する各段階を計算機に実行させるコードを含み、
前記スレッド制御プログラムを生成する段階は、
該縮退プログラム依存グラフの頂点間の実行順序関係を計算し、
該計算された実行順序関係順に該縮退プログラム依存グラフの該頂点を探索しながら該縮退プログラム依存グラフの各頂点の種類に応じて該スレッド制御プログラムを生成する各段階を含むことを特徴とする並列化プログラム生成プログラム。 - 該実行順序関係を計算する段階は、該縮退プログラム依存グラフを静的単一代入形式に変換する段階を含むことを特徴とする請求項1記載の並列化プログラム生成プログラム。
- 該縮退プログラム依存グラフの各頂点が表す文又は文の集合を実行する手続として該スレッド・プログラムを生成し、該手続を非同期の遠隔呼び出しとして呼び出すとともに先行頂点の手続を待ち合わせてから後続頂点の手続を呼び出すように制御するスレッド制御プログラムを生成することを特徴とする請求項1記載の並列化プログラム生成プログラム。
- 該縮退プログラム依存グラフの各頂点が表す文又は文の集合を実行する手続として該スレッド・プログラムを生成し、該手続に実行開始するメッセージを送信するとともに先行頂点の手続を待ち合わせてから後続頂点の手続に実行指示するように制御するスレッド制御プログラムを生成することを特徴とする請求項1記載の並列化プログラム生成プログラム。
- 該縮退プログラム依存グラフの各頂点が表す文又は文の集合を実行するスレッドとして該スレッド・プログラムを生成し、共有メモリを介して入出力変数を受け渡し該スレッドを生成するとともに先行頂点のスレッドを待ち合わせてから後続頂点のスレッドを生成するように制御するスレッド制御プログラムを生成することを特徴とする請求項1記載の並列化プログラム生成プログラム。
- 逐次プログラムと並列化プログラム生成プログラムとを格納するメモリと、
該メモリに格納された該並列化プログラム生成プログラムを実行することで該メモリに格納された該逐次プログラムから並列化プログラムを生成する演算処理ユニットを含み、該演算処理ユニットは、該並列化プログラム生成プログラムを実行することにより、該逐次プログラムを構成する各文を頂点として有するとともに文と文の間の関係を該頂点間の辺として有するプログラム依存グラフを生成し、該プログラム依存グラフの該頂点同士を融合することにより該頂点の数を減少させた縮退プログラム依存グラフを生成し、該縮退プログラム依存グラフの頂点の各々に相当するスレッド・プログラムを生成し、該スレッド・プログラムの起動及び同期を制御するスレッド制御プログラムを生成し、
該演算処理ユニットは該スレッド制御プログラムを生成する際に、該縮退プログラム依存グラフの頂点間の実行順序関係を計算し、該計算された実行順序関係順に該縮退プログラム依存グラフの該頂点を探索しながら該縮退プログラム依存グラフの各頂点の種類に応じて該スレッド制御プログラムを生成することを特徴とする並列化プログラム生成装置。 - 該演算処理ユニットは該実行順序関係を計算する際に、該縮退プログラム依存グラフを静的単一代入形式に変換することを特徴とする請求項6記載の並列化プログラム生成装置。
- 逐次プログラムを入力として、該逐次プログラムを構成する各文を頂点として有するとともに、文と文の間の関係を該頂点間の辺として有するプログラム依存グラフを生成し、
該プログラム依存グラフの該頂点同士を融合することにより該頂点の数を減少させた縮退プログラム依存グラフを生成し、
該縮退プログラム依存グラフの頂点の各々に相当するスレッド・プログラムを生成し、
該スレッド・プログラムの起動及び同期を制御するスレッド制御プログラムを生成する各段階を含み、各段階を計算機が実行し、
前記スレッド制御プログラムを生成する段階は、
該縮退プログラム依存グラフの頂点間の実行順序関係を計算し、
該計算された実行順序関係順に該縮退プログラム依存グラフの該頂点を探索しながら該縮退プログラム依存グラフの各頂点の種類に応じて該スレッド制御プログラムを生成する各段階を含み、各段階を計算機が実行することを特徴とする並列化プログラム生成方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2006/305016 WO2007105309A1 (ja) | 2006-03-14 | 2006-03-14 | 並列化プログラム生成プログラム、並列化プログラム生成装置、及び並列化プログラム生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2007105309A1 JPWO2007105309A1 (ja) | 2009-07-30 |
JP5083204B2 true JP5083204B2 (ja) | 2012-11-28 |
Family
ID=38509160
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008504960A Expired - Fee Related JP5083204B2 (ja) | 2006-03-14 | 2006-03-14 | 並列化プログラム生成プログラム、並列化プログラム生成装置、及び並列化プログラム生成方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP5083204B2 (ja) |
WO (1) | WO2007105309A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11714615B2 (en) | 2020-09-18 | 2023-08-01 | International Business Machines Corporation | Application migration using cost-aware code dependency graph |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5036523B2 (ja) * | 2007-12-21 | 2012-09-26 | 三菱電機株式会社 | プログラム並列化装置 |
JP5315703B2 (ja) * | 2008-01-22 | 2013-10-16 | 富士通株式会社 | 並列化プログラム生成方法、並列化プログラム生成プログラム、及び並列化プログラム生成装置 |
JP5244421B2 (ja) * | 2008-02-29 | 2013-07-24 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置およびプログラム分割方法 |
KR101292439B1 (ko) * | 2008-11-24 | 2013-08-05 | 인텔 코포레이션 | 순차적 프로그램을 다수의 스레드로 분해하고 이 스레드를 실행하며 순차적 실행을 재구성하는 장치, 방법 및 머신-판독가능 저장 매체 |
JP5463699B2 (ja) * | 2009-03-12 | 2014-04-09 | 富士通株式会社 | 並列処理支援プログラム、並列処理支援装置および並列処理支援方法 |
WO2015126495A2 (en) * | 2014-02-20 | 2015-08-27 | Stillwater Supercomputing, Inc. | Execution engine for executing single assignment programs with affine dependencies |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002297399A (ja) * | 2001-03-22 | 2002-10-11 | Hewlett Packard Co <Hp> | 静的単一代入を行うためのφ関数を与える方法 |
-
2006
- 2006-03-14 WO PCT/JP2006/305016 patent/WO2007105309A1/ja active Application Filing
- 2006-03-14 JP JP2008504960A patent/JP5083204B2/ja not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002297399A (ja) * | 2001-03-22 | 2002-10-11 | Hewlett Packard Co <Hp> | 静的単一代入を行うためのφ関数を与える方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11714615B2 (en) | 2020-09-18 | 2023-08-01 | International Business Machines Corporation | Application migration using cost-aware code dependency graph |
Also Published As
Publication number | Publication date |
---|---|
JPWO2007105309A1 (ja) | 2009-07-30 |
WO2007105309A1 (ja) | 2007-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4962564B2 (ja) | 並列化プログラム生成方法、並列化プログラム生成装置、及び並列化プログラム生成プログラム | |
Zheng et al. | Flextensor: An automatic schedule exploration and optimization framework for tensor computation on heterogeneous system | |
JP5083204B2 (ja) | 並列化プログラム生成プログラム、並列化プログラム生成装置、及び並列化プログラム生成方法 | |
Low et al. | Graphlab: A new framework for parallel machine learning | |
Duarte et al. | Parallel variable neighbourhood search strategies for the cutwidth minimization problem | |
US20160170725A1 (en) | Global call control flow graph for optimizing software managed manycore architectures | |
US8997073B2 (en) | Semi-automatic restructuring of offloadable tasks for accelerators | |
JP2002116916A (ja) | プログラムの最適化方法及びこれを用いたコンパイラ | |
Zhang et al. | Retiarii: A deep learning {Exploratory-Training} framework | |
Buck et al. | The token flow model | |
WO2014152800A1 (en) | Project planning and debugging from functional decomposition | |
US20120266133A1 (en) | Precondition generating apparatus | |
Hoffmann et al. | OpenMP as runtime for providing high-level stream parallelism on multi-cores | |
JP4946323B2 (ja) | 並列化プログラム生成方法、並列化プログラム生成装置、及び並列化プログラム生成プログラム | |
Ivanenko et al. | TuningGenie: auto-tuning framework based on rewriting rules | |
Taura et al. | Schematic: A concurrent object-oriented extension to scheme | |
JP5381302B2 (ja) | 並列化スケジューリング装置 | |
US8041551B1 (en) | Algorithm and architecture for multi-argument associative operations that minimizes the number of components using a latency of the components | |
JP5315703B2 (ja) | 並列化プログラム生成方法、並列化プログラム生成プログラム、及び並列化プログラム生成装置 | |
Tóth et al. | Pattern candidate discovery and parallelization techniques | |
Zhao et al. | AutoGraph: Optimizing DNN computation graph for parallel GPU kernel execution | |
Gautier et al. | Fine grain distributed implementation of a dataflow language with provable performances | |
Miyazaki et al. | A Generator of Hadoop MapReduce Programs that Manipulate One-dimensional Arrays | |
CN117742718A (zh) | 用于神经网络推理的跨算子边界优化的编译方法及编译器 | |
Smeding | Reverse Automatic Differentiation for Accelerate |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111220 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120220 |
|
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: 20120807 |
|
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: 20120820 |
|
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: 20150914 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |