JPWO2008120367A1 - 並列化プログラム生成方法、並列化プログラム生成装置、及び並列化プログラム生成プログラム - Google Patents
並列化プログラム生成方法、並列化プログラム生成装置、及び並列化プログラム生成プログラム Download PDFInfo
- Publication number
- JPWO2008120367A1 JPWO2008120367A1 JP2009507358A JP2009507358A JPWO2008120367A1 JP WO2008120367 A1 JPWO2008120367 A1 JP WO2008120367A1 JP 2009507358 A JP2009507358 A JP 2009507358A JP 2009507358 A JP2009507358 A JP 2009507358A JP WO2008120367 A1 JPWO2008120367 A1 JP WO2008120367A1
- Authority
- JP
- Japan
- Prior art keywords
- procedure
- program
- vertex
- dependency
- vertices
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 530
- 238000012546 transfer Methods 0.000 claims abstract description 113
- 230000002829 reductive effect Effects 0.000 claims abstract description 20
- 238000012545 processing Methods 0.000 claims description 88
- 230000008569 process Effects 0.000 description 111
- 230000002441 reversible effect Effects 0.000 description 32
- 230000001419 dependent effect Effects 0.000 description 30
- 238000010586 diagram Methods 0.000 description 16
- 238000003860 storage Methods 0.000 description 16
- 230000010076 replication Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 230000036961 partial effect Effects 0.000 description 5
- 230000004913 activation Effects 0.000 description 4
- 230000001174 ascending effect Effects 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000007850 degeneration Effects 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
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003068 static effect Effects 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
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000002910 structure generation Methods 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
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F17—STORING OR DISTRIBUTING GASES OR LIQUIDS
- F17C—VESSELS FOR CONTAINING OR STORING COMPRESSED, LIQUEFIED OR SOLIDIFIED GASES; FIXED-CAPACITY GAS-HOLDERS; FILLING VESSELS WITH, OR DISCHARGING FROM VESSELS, COMPRESSED, LIQUEFIED, OR SOLIDIFIED GASES
- F17C2201/00—Vessel construction, in particular geometry, arrangement or size
- F17C2201/01—Shape
- F17C2201/0104—Shape cylindrical
- F17C2201/0109—Shape cylindrical with exteriorly curved end-piece
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F17—STORING OR DISTRIBUTING GASES OR LIQUIDS
- F17C—VESSELS FOR CONTAINING OR STORING COMPRESSED, LIQUEFIED OR SOLIDIFIED GASES; FIXED-CAPACITY GAS-HOLDERS; FILLING VESSELS WITH, OR DISCHARGING FROM VESSELS, COMPRESSED, LIQUEFIED, OR SOLIDIFIED GASES
- F17C2203/00—Vessel construction, in particular walls or details thereof
- F17C2203/06—Materials for walls or layers thereof; Properties or structures of walls or their materials
- F17C2203/0602—Wall structures; Special features thereof
- F17C2203/0604—Liners
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F17—STORING OR DISTRIBUTING GASES OR LIQUIDS
- F17C—VESSELS FOR CONTAINING OR STORING COMPRESSED, LIQUEFIED OR SOLIDIFIED GASES; FIXED-CAPACITY GAS-HOLDERS; FILLING VESSELS WITH, OR DISCHARGING FROM VESSELS, COMPRESSED, LIQUEFIED, OR SOLIDIFIED GASES
- F17C2203/00—Vessel construction, in particular walls or details thereof
- F17C2203/06—Materials for walls or layers thereof; Properties or structures of walls or their materials
- F17C2203/0602—Wall structures; Special features thereof
- F17C2203/0612—Wall structures
- F17C2203/0614—Single wall
- F17C2203/0619—Single wall with two layers
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F17—STORING OR DISTRIBUTING GASES OR LIQUIDS
- F17C—VESSELS FOR CONTAINING OR STORING COMPRESSED, LIQUEFIED OR SOLIDIFIED GASES; FIXED-CAPACITY GAS-HOLDERS; FILLING VESSELS WITH, OR DISCHARGING FROM VESSELS, COMPRESSED, LIQUEFIED, OR SOLIDIFIED GASES
- F17C2203/00—Vessel construction, in particular walls or details thereof
- F17C2203/06—Materials for walls or layers thereof; Properties or structures of walls or their materials
- F17C2203/0634—Materials for walls or layers thereof
- F17C2203/0636—Metals
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F17—STORING OR DISTRIBUTING GASES OR LIQUIDS
- F17C—VESSELS FOR CONTAINING OR STORING COMPRESSED, LIQUEFIED OR SOLIDIFIED GASES; FIXED-CAPACITY GAS-HOLDERS; FILLING VESSELS WITH, OR DISCHARGING FROM VESSELS, COMPRESSED, LIQUEFIED, OR SOLIDIFIED GASES
- F17C2203/00—Vessel construction, in particular walls or details thereof
- F17C2203/06—Materials for walls or layers thereof; Properties or structures of walls or their materials
- F17C2203/0634—Materials for walls or layers thereof
- F17C2203/0658—Synthetics
- F17C2203/066—Plastics
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F17—STORING OR DISTRIBUTING GASES OR LIQUIDS
- F17C—VESSELS FOR CONTAINING OR STORING COMPRESSED, LIQUEFIED OR SOLIDIFIED GASES; FIXED-CAPACITY GAS-HOLDERS; FILLING VESSELS WITH, OR DISCHARGING FROM VESSELS, COMPRESSED, LIQUEFIED, OR SOLIDIFIED GASES
- F17C2203/00—Vessel construction, in particular walls or details thereof
- F17C2203/06—Materials for walls or layers thereof; Properties or structures of walls or their materials
- F17C2203/0634—Materials for walls or layers thereof
- F17C2203/0658—Synthetics
- F17C2203/0663—Synthetics in form of fibers or filaments
- F17C2203/067—Synthetics in form of fibers or filaments helically wound
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F17—STORING OR DISTRIBUTING GASES OR LIQUIDS
- F17C—VESSELS FOR CONTAINING OR STORING COMPRESSED, LIQUEFIED OR SOLIDIFIED GASES; FIXED-CAPACITY GAS-HOLDERS; FILLING VESSELS WITH, OR DISCHARGING FROM VESSELS, COMPRESSED, LIQUEFIED, OR SOLIDIFIED GASES
- F17C2203/00—Vessel construction, in particular walls or details thereof
- F17C2203/06—Materials for walls or layers thereof; Properties or structures of walls or their materials
- F17C2203/0634—Materials for walls or layers thereof
- F17C2203/0658—Synthetics
- F17C2203/0663—Synthetics in form of fibers or filaments
- F17C2203/0673—Polymers
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F17—STORING OR DISTRIBUTING GASES OR LIQUIDS
- F17C—VESSELS FOR CONTAINING OR STORING COMPRESSED, LIQUEFIED OR SOLIDIFIED GASES; FIXED-CAPACITY GAS-HOLDERS; FILLING VESSELS WITH, OR DISCHARGING FROM VESSELS, COMPRESSED, LIQUEFIED, OR SOLIDIFIED GASES
- F17C2205/00—Vessel construction, in particular mounting arrangements, attachments or identifications means
- F17C2205/01—Mounting arrangements
- F17C2205/0123—Mounting arrangements characterised by number of vessels
- F17C2205/013—Two or more vessels
- F17C2205/0134—Two or more vessels characterised by the presence of fluid connection between vessels
- F17C2205/0142—Two or more vessels characterised by the presence of fluid connection between vessels bundled in parallel
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F17—STORING OR DISTRIBUTING GASES OR LIQUIDS
- F17C—VESSELS FOR CONTAINING OR STORING COMPRESSED, LIQUEFIED OR SOLIDIFIED GASES; FIXED-CAPACITY GAS-HOLDERS; FILLING VESSELS WITH, OR DISCHARGING FROM VESSELS, COMPRESSED, LIQUEFIED, OR SOLIDIFIED GASES
- F17C2205/00—Vessel construction, in particular mounting arrangements, attachments or identifications means
- F17C2205/03—Fluid connections, filters, valves, closure means or other attachments
- F17C2205/0302—Fittings, valves, filters, or components in connection with the gas storage device
- F17C2205/0305—Bosses, e.g. boss collars
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F17—STORING OR DISTRIBUTING GASES OR LIQUIDS
- F17C—VESSELS FOR CONTAINING OR STORING COMPRESSED, LIQUEFIED OR SOLIDIFIED GASES; FIXED-CAPACITY GAS-HOLDERS; FILLING VESSELS WITH, OR DISCHARGING FROM VESSELS, COMPRESSED, LIQUEFIED, OR SOLIDIFIED GASES
- F17C2209/00—Vessel construction, in particular methods of manufacturing
- F17C2209/21—Shaping processes
- F17C2209/2109—Moulding
- F17C2209/2118—Moulding by injection
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F17—STORING OR DISTRIBUTING GASES OR LIQUIDS
- F17C—VESSELS FOR CONTAINING OR STORING COMPRESSED, LIQUEFIED OR SOLIDIFIED GASES; FIXED-CAPACITY GAS-HOLDERS; FILLING VESSELS WITH, OR DISCHARGING FROM VESSELS, COMPRESSED, LIQUEFIED, OR SOLIDIFIED GASES
- F17C2209/00—Vessel construction, in particular methods of manufacturing
- F17C2209/21—Shaping processes
- F17C2209/2154—Winding
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F17—STORING OR DISTRIBUTING GASES OR LIQUIDS
- F17C—VESSELS FOR CONTAINING OR STORING COMPRESSED, LIQUEFIED OR SOLIDIFIED GASES; FIXED-CAPACITY GAS-HOLDERS; FILLING VESSELS WITH, OR DISCHARGING FROM VESSELS, COMPRESSED, LIQUEFIED, OR SOLIDIFIED GASES
- F17C2209/00—Vessel construction, in particular methods of manufacturing
- F17C2209/23—Manufacturing of particular parts or at special locations
- F17C2209/234—Manufacturing of particular parts or at special locations of closing end pieces, e.g. caps
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F17—STORING OR DISTRIBUTING GASES OR LIQUIDS
- F17C—VESSELS FOR CONTAINING OR STORING COMPRESSED, LIQUEFIED OR SOLIDIFIED GASES; FIXED-CAPACITY GAS-HOLDERS; FILLING VESSELS WITH, OR DISCHARGING FROM VESSELS, COMPRESSED, LIQUEFIED, OR SOLIDIFIED GASES
- F17C2221/00—Handled fluid, in particular type of fluid
- F17C2221/01—Pure fluids
- F17C2221/012—Hydrogen
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F17—STORING OR DISTRIBUTING GASES OR LIQUIDS
- F17C—VESSELS FOR CONTAINING OR STORING COMPRESSED, LIQUEFIED OR SOLIDIFIED GASES; FIXED-CAPACITY GAS-HOLDERS; FILLING VESSELS WITH, OR DISCHARGING FROM VESSELS, COMPRESSED, LIQUEFIED, OR SOLIDIFIED GASES
- F17C2223/00—Handled fluid before transfer, i.e. state of fluid when stored in the vessel or before transfer from the vessel
- F17C2223/01—Handled fluid before transfer, i.e. state of fluid when stored in the vessel or before transfer from the vessel characterised by the phase
- F17C2223/0107—Single phase
- F17C2223/0123—Single phase gaseous, e.g. CNG, GNC
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F17—STORING OR DISTRIBUTING GASES OR LIQUIDS
- F17C—VESSELS FOR CONTAINING OR STORING COMPRESSED, LIQUEFIED OR SOLIDIFIED GASES; FIXED-CAPACITY GAS-HOLDERS; FILLING VESSELS WITH, OR DISCHARGING FROM VESSELS, COMPRESSED, LIQUEFIED, OR SOLIDIFIED GASES
- F17C2223/00—Handled fluid before transfer, i.e. state of fluid when stored in the vessel or before transfer from the vessel
- F17C2223/03—Handled fluid before transfer, i.e. state of fluid when stored in the vessel or before transfer from the vessel characterised by the pressure level
- F17C2223/035—High pressure (>10 bar)
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F17—STORING OR DISTRIBUTING GASES OR LIQUIDS
- F17C—VESSELS FOR CONTAINING OR STORING COMPRESSED, LIQUEFIED OR SOLIDIFIED GASES; FIXED-CAPACITY GAS-HOLDERS; FILLING VESSELS WITH, OR DISCHARGING FROM VESSELS, COMPRESSED, LIQUEFIED, OR SOLIDIFIED GASES
- F17C2260/00—Purposes of gas storage and gas handling
- F17C2260/01—Improving mechanical properties or manufacturing
- F17C2260/012—Reducing weight
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F17—STORING OR DISTRIBUTING GASES OR LIQUIDS
- F17C—VESSELS FOR CONTAINING OR STORING COMPRESSED, LIQUEFIED OR SOLIDIFIED GASES; FIXED-CAPACITY GAS-HOLDERS; FILLING VESSELS WITH, OR DISCHARGING FROM VESSELS, COMPRESSED, LIQUEFIED, OR SOLIDIFIED GASES
- F17C2270/00—Applications
- F17C2270/01—Applications for fluid transport or storage
- F17C2270/0102—Applications for fluid transport or storage on or in the water
- F17C2270/0105—Ships
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F17—STORING OR DISTRIBUTING GASES OR LIQUIDS
- F17C—VESSELS FOR CONTAINING OR STORING COMPRESSED, LIQUEFIED OR SOLIDIFIED GASES; FIXED-CAPACITY GAS-HOLDERS; FILLING VESSELS WITH, OR DISCHARGING FROM VESSELS, COMPRESSED, LIQUEFIED, OR SOLIDIFIED GASES
- F17C2270/00—Applications
- F17C2270/01—Applications for fluid transport or storage
- F17C2270/0165—Applications for fluid transport or storage on the road
- F17C2270/0168—Applications for fluid transport or storage on the road by vehicles
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F17—STORING OR DISTRIBUTING GASES OR LIQUIDS
- F17C—VESSELS FOR CONTAINING OR STORING COMPRESSED, LIQUEFIED OR SOLIDIFIED GASES; FIXED-CAPACITY GAS-HOLDERS; FILLING VESSELS WITH, OR DISCHARGING FROM VESSELS, COMPRESSED, LIQUEFIED, OR SOLIDIFIED GASES
- F17C2270/00—Applications
- F17C2270/01—Applications for fluid transport or storage
- F17C2270/0165—Applications for fluid transport or storage on the road
- F17C2270/0168—Applications for fluid transport or storage on the road by vehicles
- F17C2270/0178—Cars
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F17—STORING OR DISTRIBUTING GASES OR LIQUIDS
- F17C—VESSELS FOR CONTAINING OR STORING COMPRESSED, LIQUEFIED OR SOLIDIFIED GASES; FIXED-CAPACITY GAS-HOLDERS; FILLING VESSELS WITH, OR DISCHARGING FROM VESSELS, COMPRESSED, LIQUEFIED, OR SOLIDIFIED GASES
- F17C2270/00—Applications
- F17C2270/01—Applications for fluid transport or storage
- F17C2270/0165—Applications for fluid transport or storage on the road
- F17C2270/0184—Fuel cells
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F17—STORING OR DISTRIBUTING GASES OR LIQUIDS
- F17C—VESSELS FOR CONTAINING OR STORING COMPRESSED, LIQUEFIED OR SOLIDIFIED GASES; FIXED-CAPACITY GAS-HOLDERS; FILLING VESSELS WITH, OR DISCHARGING FROM VESSELS, COMPRESSED, LIQUEFIED, OR SOLIDIFIED GASES
- F17C2270/00—Applications
- F17C2270/01—Applications for fluid transport or storage
- F17C2270/0186—Applications for fluid transport or storage in the air or in space
- F17C2270/0189—Planes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02E—REDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
- Y02E60/00—Enabling technologies; Technologies with a potential or indirect contribution to GHG emissions mitigation
- Y02E60/30—Hydrogen technology
- Y02E60/32—Hydrogen storage
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)
- Executing Machine-Instructions (AREA)
Abstract
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}
と定義される。図16は、全域木を説明するための図である。図16に示されるプログラム依存グラフにおいて、頂点viにおいて変数xが定義され、2つの頂点v1及びv2が変数xを使用する。この場合、頂点vi、v1、及びv2で全域木21を形成する。また頂点vjにおいて変数xが定義され、2つの頂点v3及びv4が変数xを使用する。この場合、頂点vj、v3、及びv4で全域木22を形成する。図17は、全域木を模式的に示す図である。全域木Span(vi, x)及び全域木Span(vj, x)が、データ依存グラフとして図17に示されるように構成される。
PE(v)≠PE(w)
かつ
¬∃ u∈V w→f x u∈E かつ PE(v)=PE(u)
である。ここでPE(v)は頂点vが実行されるプロセッサPEを表し、上記第1の条件では、逆依存関係にある頂点vとwが異なるプロセッサPEに割り付けられていることを示している。この場合、プロセッサ毎に変数が異なるので、このような逆依存関係は削除できる可能性がある。もし逆に、頂点vとwが同一プロセッサPEiに対して割り付けられているとすると、そのプロセッサPEiの変数x(例えばPEi_x)に関して逆依存関係が解消されないので、当該逆依存関係を削除することはできない。即ち、頂点vの処理が終了するまで、頂点wの実行を待ち合わせる必要がある。
PE(v)≠PE(w)
かつ
¬∃u∈V w→f x u∈E PE(v)=PE(u)
である。上記第1の条件では、頂点vとwが異なるプロセッサPEに割り付けられていることを示している。もし逆に、頂点vとwが同一プロセッサPEiに対して割り付けられているとすると、PEiの変数xに関して出力依存関係が解消されない。頂点vの結果を後続の頂点が利用するので、それらのデータ転送が完了するまで、頂点wの実行を待ち合わせる必要がある。
1)Biの頂点wへのループ繰越フロー依存辺: v →lc(L)w w∈Bi
頂点v→頂点wへのデータ転送について待ち合わせを生成する。
2)Bx(i≠x)の頂点vからBiの頂点wへのループ独立フロー依存辺: v →liw u∈Bx w∈Bi(i≠x)
頂点v→頂点wへのデータ転送について待ち合わせを生成する。
3)Biの頂点wへの定義順序関係: v →do(u)w w∈Bi
頂点v→頂点tへのデータ転送について待ち合わせを生成する。
4)Bx(i≠x)の頂点vからBiの頂点wへの逆依存関係:v →antiw v∈Bx w∈Bi(i≠x)
4−1)PE(v)=PE(w)の場合
頂点vの手続き呼び出しについて待ち合わせを生成する。
4−2)∃u∈V w→f x u∈E かつ PE(v)=PE(u)の場合
頂点vの手続き呼び出しについて待ち合わせを生成する。
5)Bx(i≠x)の頂点vからBiの頂点wへの出力依存関係: v →outputw v∈Bx w∈Bi(i≠x)
5−1)PE(v)=PE(w)の場合
頂点vから全ての頂点uへの変数xに関するデータ転送(∀e =(v→f x u) ∈E)について待ち合わせを生成する。
5−2)∃u∈V w→f x u∈E かつ PE(v)=PE(u)の場合
頂点vから全ての頂点tへの変数xに関するデータ転送(∀e =(v→f x t) ∈E)について待ち合わせを生成する。
1)Biの頂点vからBiの頂点wへの逆依存関係: v →anti xw v,w ∈Bi
1−1)PE(v=PE(w)の場合
頂点vの手続き呼び出しから、頂点wの手続き呼び出しについて依存関係を登録する。
1−2)∃ u∈V w→f x u∈E かつ PE(v)=PE(u)の場合
頂点vの手続き呼び出しから、頂点w→頂点uのデータ転送について依存関係を登録する。
2)Biの頂点vからBiの頂点wへの出力依存関係: v→output xw v,w∈Bi
2−1)PE(v)=PE(w)の場合
頂点vから全ての頂点uへの変数xに関するデータ転送(∀e =(v→f x u) ∈E)から、頂点wの手続き呼び出しについて依存関係を登録する。
2−2)∃u∈V w→f x u∈E かつ PE(v)=PE(u)の場合
頂点vから全ての頂点tへの変数xに関するデータ転送(∀e =(v→f x u) ∈E)から、頂点w→頂点uのデータ転送について依存関係を登録する。
1)Biの頂点wへのループ繰越フロー依存辺: u →lc(L)w w∈Bi
頂点v→頂点wへのデータ転送について待ち合わせを生成する。
2)Bx(i≠x)の頂点uからBiの頂点wへのループ独立フロー依存辺: u →liw u∈Bx w∈Bi(i≠x)
頂点v→頂点wへのデータ転送について待ち合わせを生成する。
3)Biの頂点wへの定義順序関係: u →do(t)w w∈Bi
頂点v→頂点tへのデータ転送について待ち合わせを生成する。
Claims (10)
- 逐次プログラムを入力として、該逐次プログラムを構成する各文を頂点として有するとともに、文と文との間の関係を該頂点間の辺として有するプログラム依存グラフを生成し、
該プログラム依存グラフの該頂点同士を縮退することにより該頂点の数を減少させた縮退プログラム依存グラフを生成し、
該縮退プログラム依存グラフの頂点の実行順序を算出し、
該実行順序を与えられた複数の頂点のうちで分岐及び合流の何れも含まず順番に実行される頂点列を基本ブロックとして纏め、
該縮退プログラム依存グラフの該頂点の各々に相当する手続きを生成し、
該基本ブロック間をまたいだ依存関係がある手続きについては先行手続きの出力データ転送を待ち合わせる命令の後に後続手続きを実行する命令を配置し、同一の基本ブロック内部で依存関係がある手続きについては先行手続きの出力データ転送に対する後続手続きの依存関係を登録する命令を生成し、および同一の基本ブロック内部でのデータ転送及び基本ブロック間をまたいでのデータ転送それぞれについては手続きから手続きへの直接のデータ転送を指示する命令および該データ転送の先行手続きに対する依存関係を登録する命令を生成して、該手続きの実行を制御する手続き制御プログラムを生成する
ことを特徴とする並列化プログラム生成方法。 - 該手続き制御プログラムを生成するときに、該手続きを実行する各プロセッサ毎に変数を生成するように該手続き制御プログラムを生成することを特徴とする請求項1記載の並列化プログラム生成方法。
- 該手続き制御プログラムを生成するときに、該手続き毎に変数を生成するように該手続き制御プログラムを生成することを特徴とする請求項1記載の並列化プログラム生成方法。
- 該手続き制御プログラムを生成するときに、該手続きを実行する各プロセッサ毎に変数を生成し、更に各手続き毎に変数を生成することにより該依存関係を解消することが可能な変数については該手続き毎に変数を生成するように該手続き制御プログラムを生成することを特徴とする請求項1記載の並列化プログラム生成方法。
- 該手続き制御プログラムを生成するときに、定義順序関係について先行するデータ転送をキャンセルする指示を生成するように該手続き制御プログラムを生成することを特徴とする請求項1記載の並列化プログラム生成方法。
- 逐次プログラムと並列化プログラム生成プログラムとを格納するメモリと、
該メモリに格納された該並列化プログラム生成プログラムを実行することで該メモリに格納された該逐次プログラムから並列化プログラムを生成する演算処理ユニットとを含み、該演算処理ユニットは、該並列化プログラム生成プログラムを実行することにより、
該逐次プログラムを構成する各文を頂点として有するとともに、文と文の間の関係を該頂点間の辺として有するプログラム依存グラフを生成し、
該プログラム依存グラフの該頂点同士を縮退することにより該頂点の数を減少させた縮退プログラム依存グラフを生成し、
該縮退プログラム依存グラフの該頂点の実行順序を算出し、
該実行順序を与えられた該複数の頂点のうちで分岐及び合流の何れも含まずに順番に実行される頂点列を基本ブロックとして纏め、
該縮退プログラム依存グラフの頂点の各々に相当する手続きを生成し、
該基本ブロック間をまたいだ依存関係がある手続きについては先行手続きの出力データ転送を待ち合わせる命令の後に後続手続きを実行する命令を配置し、同一の基本ブロック内部で依存関係がある手続きについては先行手続きの出力データ転送に対する後続手続きの依存関係を登録する命令を生成し、および同一の基本ブロック内部でのデータ転送及び基本ブロック間をまたいでのデータ転送の両方について手続きから手続きへの直接のデータ転送を指示する命令および該データ転送の先行手続きに対する依存関係を登録する命令を生成して、該手続きの実行を制御する手続き制御プログラムを生成する
ことを特徴とする並列化プログラム生成装置。 - 該演算処理ユニットは、該手続きを実行する各プロセッサ毎に変数を生成するように該手続き制御プログラムを生成することを特徴とする請求項6記載の並列化プログラム生成装置。
- 該演算処理ユニットは、該手続き毎に変数を生成するように該手続き制御プログラムを生成することを特徴とする請求項6記載の並列化プログラム生成装置。
- 該演算処理ユニットは、該手続きを実行する各プロセッサ毎に変数を生成し、更に該手続き毎に変数を生成することにより該依存関係を解消することが可能な変数については各手続き毎に変数を生成するように該手続き制御プログラムを生成することを特徴とする請求項6記載の並列化プログラム生成装置。
- 逐次プログラムを入力として、該逐次プログラムを構成する各文を頂点として有するとともに、文と文との間の関係を該頂点間の辺として有するプログラム依存グラフを生成し、該プログラム依存グラフの該頂点同士を縮退することにより該頂点の数を減少させた縮退プログラム依存グラフを生成し、該縮退プログラム依存グラフの頂点の実行順序を算出し、該実行順序を与えられた複数の頂点のうちで分岐及び合流の何れも含まず順番に実行される頂点列を基本ブロックとして纏め、該縮退プログラム依存グラフの該頂点の各々に相当する手続きを生成し、該基本ブロック間をまたいだ依存関係がある手続きについては先行手続きの出力データ転送を待ち合わせる命令の後に後続手続きを実行する命令を配置し、同一の基本ブロック内部で依存関係がある手続きについては先行手続きの出力データ転送に対する後続手続きの依存関係を登録する命令を生成し、および同一の基本ブロック内部でのデータ転送及び基本ブロック間をまたいでのデータ転送それぞれについては手続きから手続きへの直接のデータ転送を指示する命令および該データ転送の先行手続きに対する依存関係を登録する命令を生成して、該手続きの実行を制御する手続き制御プログラムを生成することを計算機に実行させるコードを含むことを特徴とする並列化プログラム生成プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2007/056916 WO2008120367A1 (ja) | 2007-03-29 | 2007-03-29 | 並列化プログラム生成方法、並列化プログラム生成装置、及び並列化プログラム生成プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2008120367A1 true JPWO2008120367A1 (ja) | 2010-07-15 |
JP4962564B2 JP4962564B2 (ja) | 2012-06-27 |
Family
ID=39807960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009507358A Expired - Fee Related JP4962564B2 (ja) | 2007-03-29 | 2007-03-29 | 並列化プログラム生成方法、並列化プログラム生成装置、及び並列化プログラム生成プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US8656347B2 (ja) |
JP (1) | JP4962564B2 (ja) |
WO (1) | WO2008120367A1 (ja) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7958401B2 (en) * | 2008-07-25 | 2011-06-07 | Freescale Semiconductor, Inc. | Debug trace messaging with one or more characteristic indicators |
US8024620B2 (en) | 2008-07-25 | 2011-09-20 | Freescale Semiconductor, Inc. | Dynamic address-type selection control in a data processing system |
JP2010039536A (ja) * | 2008-07-31 | 2010-02-18 | Panasonic Corp | プログラム変換装置、プログラム変換方法およびプログラム変換プログラム |
WO2010064260A1 (en) | 2008-12-01 | 2010-06-10 | Kpit Cummins Infosystems Ltd. | Method and system for parallelization of sequencial computer program codes |
JP5463699B2 (ja) * | 2009-03-12 | 2014-04-09 | 富士通株式会社 | 並列処理支援プログラム、並列処理支援装置および並列処理支援方法 |
US9003383B2 (en) * | 2011-09-15 | 2015-04-07 | You Know Solutions, LLC | Analytic engine to parallelize serial code |
US9575802B2 (en) * | 2014-10-28 | 2017-02-21 | International Business Machines Corporation | Controlling execution of threads in a multi-threaded processor |
US11080064B2 (en) | 2014-10-28 | 2021-08-03 | International Business Machines Corporation | Instructions controlling access to shared registers of a multi-threaded processor |
US10255128B2 (en) * | 2016-08-17 | 2019-04-09 | Red Hat, Inc. | Root cause candidate determination in multiple process systems |
US10255049B2 (en) * | 2017-05-15 | 2019-04-09 | Sap Se | Non-blocking application object framework and dependency model management |
US10628286B1 (en) | 2018-10-18 | 2020-04-21 | Denso International America, Inc. | Systems and methods for dynamically identifying program control flow and instrumenting source code |
US11113176B2 (en) | 2019-01-14 | 2021-09-07 | Microsoft Technology Licensing, Llc | Generating a debugging network for a synchronous digital circuit during compilation of program source code |
US10810343B2 (en) * | 2019-01-14 | 2020-10-20 | Microsoft Technology Licensing, Llc | Mapping software constructs to synchronous digital circuits that do not deadlock |
US11275568B2 (en) | 2019-01-14 | 2022-03-15 | Microsoft Technology Licensing, Llc | Generating a synchronous digital circuit from a source code construct defining a function call |
US11106437B2 (en) | 2019-01-14 | 2021-08-31 | Microsoft Technology Licensing, Llc | Lookup table optimization for programming languages that target synchronous digital circuits |
US11093682B2 (en) | 2019-01-14 | 2021-08-17 | Microsoft Technology Licensing, Llc | Language and compiler that generate synchronous digital circuits that maintain thread execution order |
US11144286B2 (en) | 2019-01-14 | 2021-10-12 | Microsoft Technology Licensing, Llc | Generating synchronous digital circuits from source code constructs that map to circuit implementations |
US11782723B1 (en) | 2022-09-27 | 2023-10-10 | Zhejiang Lab | Intermediate representation method and apparatus for parallel execution of graph computation |
CN115268877B (zh) * | 2022-09-27 | 2022-12-13 | 之江实验室 | 一种用于图计算并行执行的中间表示方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005258920A (ja) * | 2004-03-12 | 2005-09-22 | Fujitsu Ltd | マルチスレッド実行方法、マルチスレッド実行プログラム、およびマルチスレッド実行装置 |
JP2008090541A (ja) * | 2006-09-29 | 2008-04-17 | Fujitsu Ltd | 並列化プログラム生成方法、並列化プログラム生成装置、及び並列化プログラム生成プログラム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3028821B2 (ja) | 1989-09-04 | 2000-04-04 | 株式会社日立製作所 | 並列化コンパイル方法 |
US6654952B1 (en) * | 2000-02-03 | 2003-11-25 | Sun Microsystems, Inc. | Region based optimizations using data dependence graphs |
JP3664473B2 (ja) * | 2000-10-04 | 2005-06-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラムの最適化方法及びこれを用いたコンパイラ |
-
2007
- 2007-03-29 WO PCT/JP2007/056916 patent/WO2008120367A1/ja active Application Filing
- 2007-03-29 JP JP2009507358A patent/JP4962564B2/ja not_active Expired - Fee Related
-
2009
- 2009-09-29 US US12/585,957 patent/US8656347B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005258920A (ja) * | 2004-03-12 | 2005-09-22 | Fujitsu Ltd | マルチスレッド実行方法、マルチスレッド実行プログラム、およびマルチスレッド実行装置 |
JP2008090541A (ja) * | 2006-09-29 | 2008-04-17 | Fujitsu Ltd | 並列化プログラム生成方法、並列化プログラム生成装置、及び並列化プログラム生成プログラム |
Also Published As
Publication number | Publication date |
---|---|
JP4962564B2 (ja) | 2012-06-27 |
US8656347B2 (en) | 2014-02-18 |
WO2008120367A1 (ja) | 2008-10-09 |
US20100023731A1 (en) | 2010-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4962564B2 (ja) | 並列化プログラム生成方法、並列化プログラム生成装置、及び並列化プログラム生成プログラム | |
JP7090778B2 (ja) | 影響分析 | |
Zheng et al. | Flextensor: An automatic schedule exploration and optimization framework for tensor computation on heterogeneous system | |
Wang et al. | Gunrock: GPU graph analytics | |
Abadi et al. | Tensorflow: Large-scale machine learning on heterogeneous distributed systems | |
JP7220914B2 (ja) | コンピュータに実装する方法、コンピュータ可読媒体および異種計算システム | |
JP3311462B2 (ja) | コンパイル処理装置 | |
CN103858099B (zh) | 用于执行应用的方法和系统、具有机器指令的电路 | |
Seinstra et al. | A software architecture for user transparent parallel image processing | |
US20140325495A1 (en) | Semi-Automatic Restructuring of Offloadable Tasks for Accelerators | |
CN104572260B (zh) | 用于实现事务内存区域提升的代码版本控制的方法和设备 | |
US8893103B2 (en) | Automatic asynchronous offload to many-core coprocessors | |
JP2001166949A (ja) | シンボリック実行を用いてソースコードをコンパイルするための方法及び装置 | |
Buck et al. | The token flow model | |
WO2014152800A1 (en) | Project planning and debugging from functional decomposition | |
JP5083204B2 (ja) | 並列化プログラム生成プログラム、並列化プログラム生成装置、及び並列化プログラム生成方法 | |
Rauchwerger | Run-time parallelization: Its time has come | |
Jiang et al. | Boyi: A systematic framework for automatically deciding the right execution model of OpenCL applications on FPGAs | |
US8701098B2 (en) | Leveraging multicore systems when compiling procedures | |
JP4946323B2 (ja) | 並列化プログラム生成方法、並列化プログラム生成装置、及び並列化プログラム生成プログラム | |
JP5315703B2 (ja) | 並列化プログラム生成方法、並列化プログラム生成プログラム、及び並列化プログラム生成装置 | |
JP2012014526A (ja) | プログラムコードの構造変換装置、並びにコード構造変換プログラム | |
JPWO2011090032A1 (ja) | 並列処理プログラム生成方法、並列処理プログラム生成プログラム、及び並列処理プログラム生成装置 | |
Gondhalekar | Characterization of Sparsity-aware Optimization Paths for Graph Traversal on FPGA | |
Hsu | Unified Graph Framework: Optimizing Graph Applications across Novel Architectures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111129 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120127 |
|
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: 20120228 |
|
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: 20120312 |
|
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: 20150406 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |