JP4740561B2 - トランスレータプログラム、プログラム変換方法およびトランスレータ装置 - Google Patents
トランスレータプログラム、プログラム変換方法およびトランスレータ装置 Download PDFInfo
- Publication number
- JP4740561B2 JP4740561B2 JP2004203063A JP2004203063A JP4740561B2 JP 4740561 B2 JP4740561 B2 JP 4740561B2 JP 2004203063 A JP2004203063 A JP 2004203063A JP 2004203063 A JP2004203063 A JP 2004203063A JP 4740561 B2 JP4740561 B2 JP 4740561B2
- Authority
- JP
- Japan
- Prior art keywords
- loop
- index
- distribution
- program
- code
- 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 60
- 238000009826 distribution Methods 0.000 claims description 130
- 238000006243 chemical reaction Methods 0.000 claims description 43
- 238000012545 processing Methods 0.000 claims description 39
- 238000004364 calculation method Methods 0.000 claims description 25
- 230000004807 localization Effects 0.000 claims description 23
- 230000001788 irregular Effects 0.000 claims description 17
- 238000003860 storage Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 31
- 230000014509 gene expression Effects 0.000 description 29
- 230000006870 function Effects 0.000 description 22
- 238000005457 optimization Methods 0.000 description 11
- 125000004122 cyclic group Chemical group 0.000 description 10
- 239000006185 dispersion Substances 0.000 description 7
- 238000010606 normalization Methods 0.000 description 7
- 238000000638 solvent extraction Methods 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 239000002699 waste material Substances 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 101710161855 Methionine aminopeptidase 1 Proteins 0.000 description 2
- 102100021440 Modulator of apoptosis 1 Human genes 0.000 description 2
- 101710103983 Modulator of apoptosis 1 Proteins 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 125000005842 heteroatom Chemical group 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 108700019579 mouse Ifi16 Proteins 0.000 description 1
- 239000002245 particle Substances 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
Description
複数CPUが同じメモリ空間を共有する並列実行。データの分散を考える必要がなく、すべてのデータはすべてのCPUから直接アクセス可能である。共有メモリ型計算機は通常SMP型の計算機であると言える。
複数のプロセッサに同じプログラムを与えて、プロセッサIDなどのパラメタの違いによって処理を分担させ、全体として並列実行を行わせる方法。
m=1, n=0の整列。
Aの第d次元がBの第e次元に整列するとは、Aの第d次元のインデックスiからBの第e次元のインデックスjに一定の対応付けがあり、対応する配列要素どうしは同じプロセッサに対して分散されることを言う。HPFで定義される整列は、
j = m i + n (m, nは整数、m≠0)
という形であり、ARIGN指示文を使って以下のように表現する。
ALIGN A(i) WITH B(m*i+n)
HPFでは、ARIGN指示文によって、配列データから配列データまたはテンプレートへの整列が表現できる。また、ON指示文によって間接的に、ループから配列データまたはテンプレートへの整列が表現できる。VPP Fortranでは、配列データからテンプレート、ループからテンプレートへの整列が表現できる。OpenMPでは整列の表現はないが、並列ループからテンプレートへ常に恒等的な整列(m=1, n=0の整列)があると思えばよい。
配列要素やループの反復をプロセッサに分散するとき、仲介となる仮想的な配列。HPFの言語仕様(非特許文献1および2参照。)で定義されていて、VPP Fortranのインデックス(非特許文献5参照。)の概念にも近い。テンプレートは、図22に例示したような分散方法でプロセッサと対応づけられる。変数やループはテンプレートに対して整列することができる。
並列計算処理を実行する仮想的な単位。プロセッサは任意の次元数の矩形状に配置することができ、プロセッサの総数が並列度となる。分散メモリ型計算機では、各プロセッサは固有のメモリ空間を持つ。共有メモリ型計算機(SMP)では、メモリ空間はプロセッサ間で共有される。プロセッサと物理的なCPUの対応は、言語仕様で定義されることもあるし、コンパイラやオペレーティングシステムが決定することもある。複数のプロセッサの実行が物理的には1つのCPUで実現される場合もある。複数のプロセッサ配列が定義されるとき、その配列要素間の対応もまた、言語仕様で定義されることもあるし、コンパイラやオペレーティングシステムが決定することもある。
プロセッサ間の通信を伴わないデータのアクセス。参照の場合にはアクセスするプロセッサがそのデータを所有していることが条件であり、定義の場合には、それに加えて、複製を持つすべてのプロセッサが同じ値を定義することが条件となる。分散されていない変数(プロセッサに分割配置されず全要素のコピーが配置されている変数)は、分散されたDOループの中では、参照はローカルアクセスだが、定義はローカルアクセスでない。
Nd:テンプレートの次元dの寸法。言い換えると、分割されるインデックスの長さ。例えば、HPFプログラムで、
!HPF$ PROCESSORS Q(4,6)
!HPF$ TEMPLATE U(100,0:29)
!HPF$ DISTRIBUTE U(block,cyclic) ONTO Q
とある場合、N1=100、N2=30となる。dを省略し単にNと書くこともある。
W(p) (0 ≦ p < P)はプロセッサpに割り当てられるインデックスの幅となる。W(0) = W(1) = ... = W(P-1) = wであるとき幅wのブロック分散を意味する。
M(k) (0 ≦ k < N)はテンプレートの各要素に対応するプロセッサの要素番号であり、0 ≦ M(k) < Pとなる。
B:不均等ブロック分散のときのグローバルインデックスでの下限値の配列。長さPのベクトル。以下のように定義される。
プロセッサ番号pを変数myIDに格納するため、手続の入口に以下のコードを挿入する。この値にはMPIライブラリが返す仮想プロセッサ番号をそのまま使用している。
CALL mpi_comm_rank(MPI_COMM_WORLD,myID,...)
ブロック分散の他のパラメタはそれぞれ、
テンプレートに整列するループはdo Iだけである。
[ステップS210]ループインデックスはI1 = 0, I2 = 999であるので、変換後の初期値i1と終値i2はブロック分散のgtol2関数よりそれぞれ以下のように計算できる。これに対応するコードをループの直前に生成する。
i1 = -250*myID for myID ≦ 0
= 0 for myID > 0
i2 = 249 for myID < 3
= 999-250*myID for myID ≧ 3
[ステップS220]ループ内でループ変数Iは3個所で引用されているが、いずれも変換を行わない条件に該当する。
対象変数はAだけで、分散次元は1次元目である。w = 250 であるので、Aの1次元目の形状は0:249とする。
入力例1と同様、myIDにpを設定するコードを生成する。N = 1000, P = 4, w = 5である。
[ステップS210]I1 = 1, I2 = 998であるので、変換後の初期値i1と終値i2はブロック−サイクリック分散のgtol2関数よりそれぞれ図14−2に示すように計算できる。これに対応するコードをループの直前に生成する。pの取り得る範囲が0以上P未満であることから、i1の計算におけるp<0のケースと、i2の計算におけるp>3のケースは省略することができる。
[ステップS220]変換を行わない。
入力例1と同様にmyIDにプロセッサ番号pを設定する実行コードを生成する。また、以下のコードにより、実行時にmapArray(0:11)にマッピング配列Mを設定させる。
mapArray = MAP-1
または
do I=0,11
mapArray(I) = MAP(I-1)-1
end do
gtol(0) = 0
i = 0
do k=0,11
if (myID.EQ.mapArray(k)) then
ltog(i) = k
i = i+1
end if
gtol(k+1) = i
end do
DO文の初期値Mをgtol(M)に、終値Nをgtol(N+1)-1に、それぞれ置換する。ループ内で変数Iは4個所で引用されていて、うち一個所だけは変換を行わない条件に該当しないので変換する。すなわち、3番目に出現するIだけをltog(I)に置換する。
N=12であるので、Aの1次元目の形状は0:11とする。
入力例1と同様、myIDにpを設定するコードを生成する。N = 24, P = 6である。
[ステップS210]I1 = 4, I2 = 20, I3 = 4であるので、変換後の初期値i1、終値i2、および増分i3はサイクリック分散のgtol3関数より以下のように計算する。
(1)t = GCD(P, |I3|) = GCD(6, 4) = 2をコンパイル時の計算で得る。
(2)図17を実現するソースコードをコンパイル時にFORTRAN外部関数として生成する。ここでは、関数名をcyclic_fとし、解なしの場合に-1を返すインタフェースとしている。
(3)cyclic_fを呼び出して戻り値を変数n_cycに代入するコードをDOループの前に生成する。
(4)n_cycの値が-1でない場合に限ってDOループが実行されるように、DOループ全体をIFブロックで囲む。
(5)DOループパラメタをそれぞれ変数k1,k2,k3に置換し、k1,k2,k3の値を求めるコードをDOループの直前に生成する。
[ステップS220]ループ内で変数kは2個所で引用されていて、うち右辺式の出現は変換を行わない条件に該当しないので変換する。すなわち、式i*j*kのkをltog関数に従い(6*k+myID)に置き換える。
[ステップS100]
テンプレートT1に対するプロセッサ番号pを変数myID1に格納するため、手続の入口に以下のコードを挿入する。この値にはMPIライブラリが返す仮想プロセッサ番号をそのまま使用している。
CALL mpi_comm_rank(MPI_COMM_WORLD,RANK,...)
myID1=RANK
myLB1=8*myID1
T1に整列するループはL1のみである。
[ステップS210]I1 = 1, I2 = 28であるので、変換後の初期値i1と終値i2はブロック分散のgtol2関数よりそれぞれ図18−3に示すように計算できる。この値を実行時に変数ib1,ie1を介してループの初期値と終値に設定できるように、ループL1の直前に実行されるコードを生成する。
[ステップS220]ループL1内のループ変数iの引用は図18−1に示したプログラムの14行に4箇所と16行に2箇所ある。このうち、14行の変数Bの第1添字式に出現するiと、16行の右辺に出現するiは、対象から除外する条件に該当しないので、ブロック分散のltog関数に沿って(i+myLB1)に置換する。
T1に整列する変数はA,B,Cである。そこで、Aの宣言形状に対して、T1に整列している次元の宣言の下限を0、上限をw-1すなわち定数7に変換する。Bの2次元目の宣言形状と、Cの宣言形状に対しても、同様に変換する。
[ステップS100]
ユーザが定義する多次元プロセッサ群とプロセッサとの対応付けは、入力プログラムの言語仕様や、処理系の実装方法や、実行時ライブラリの変換仕様による。ここでは図18−5に示すような対応付けを行うとする。この場合、p1、p2は以下の式で得られる。
myID2=MOD(RANK,2)
なお、他の分散パラメタは、N1=30、P1=2、w=5となる。p1 * w = 5*myID2を変数myLB2に設定する。
myID3=RANK/2
なお、他の分散パラメタは、N2=30、P2=2、w=5となる。p2 * w = 5*myID3を変数myLB3に設定する。
まず、T2の1次元目に対して以下の処理を行う。T2の第1次元に整列するループはL2のみである。
[ステップS210]I1 = 0, I2 = jであるので、gtol2関数を用いてL2の下限ib2および上限ie2は図18−6に示すように計算できる。myID2は0以上なので、ib2の値は常に定数0となる。ここでは最適化によりそのような簡単化ができたとする。
[ステップS210]I1 = 1, I2 = 9, I3 = 2であるので、gtol3関数でブロック分散でI3>0のケースを用いてL3の下限ib3、上限ie3、および増分is3は図18−7に示すように計算できる。この値を実行時に変数ib3,ie3を介してループの初期値と終値に設定できるように、ループL3の直前に実行されるコードを生成する。is3は定数なので直接DO文の増分に設定する。
T2に整列している変数はDだけである。まず、Dの1次元目の下限を0、上限をw-1すなわち定数4に変換する。また、Dの2次元目の下限を0、上限をw-1すなわち定数4に変換する。
分散に関するパラメタである分散パラメタに値を設定するコードを生成する分散パラメタ設定手順と、
前記分散パラメタ設定手順により生成されたコードにより値が設定される分散パラメタを用いてループインデックスおよび配列インデックスをローカル化するコードを生成するインデックスローカル化手順と、
をコンピュータに実行させることを特徴とするトランスレータプログラム。
分散に関するパラメタである分散パラメタに値を設定するコードを生成する分散パラメタ設定手順と、
前記分散パラメタ設定手順により生成されたコードにより値が設定される分散パラメタを用いてループインデックスおよび配列インデックスをローカル化するコードを生成するインデックスローカル化手順と、
をコンピュータに実行させるトランスレータプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
分散に関するパラメタである分散パラメタに値を設定するコードを生成する分散パラメタ設定工程と、
前記分散パラメタ設定工程により生成されたコードにより値が設定される分散パラメタを用いてループインデックスおよび配列インデックスをローカル化するコードを生成するインデックスローカル化工程と、
を含んだことを特徴とするプログラム変換方法。
分散に関するパラメタである分散パラメタに値を設定するコードを生成する分散パラメタ設定手段と、
前記分散パラメタ設定手段により生成されたコードにより値が設定される分散パラメタを用いてループインデックスおよび配列インデックスをローカル化するコードを生成するインデックスローカル化手段と、
を備えたことを特徴とするトランスレータ装置。
100 トランスレータプログラム
110 並列言語パーサ
120 最適化・正規化処理部
130 コード生成部
131 分散パラメタ設定部
132 ループインデックスローカル化部
132a ループパラメタローカル化部
132b ループ変数変換部
133 配列形状ローカル化部
200,211 コンピュータシステム
201 本体部
202 ディスプレイ
202a 表示画面
203 キーボード
204 マウス
206 LAN
207 公衆回線
208 フロッピィディスク
209 CD−ROM
212 サーバ
213 プリンタ
221 CPU
222 RAM
223 ROM
224 ハードディスクドライブ
225 CD−ROMドライブ
226 フロッピィディスクドライブ
227 I/Oインタフェース
228 LANインタフェース
229 モデム
Claims (5)
- コンピュータに、並列言語プログラムを解析させ、複数のプロセッサで分散処理される逐次言語プログラムに変換させるトランスレータプログラムであって、
分散に関するパラメタである、分散種別を含む分散パラメタに値を設定するコードを生成する分散パラメタ設定手順と、
複数のプロセッサで共通して使用されるグローバルインデックスとローカルインデックスとを相互に変換する計算式を分散種別毎に記憶する記憶部から、前記分散パラメタ設定手順により生成されたコードにより値が設定される分散パラメタに対応した計算式を参照し、該参照した計算式および当該分散パラメタを用いて、ループで使用されるインデックスの範囲を示すループインデックスおよびループ内の配列で使用されるインデックスを示す配列インデックスについて、分散処理するプロセッサ内でローカル化処理を実行した結果として表されるコードを生成するインデックスローカル化手順と、
をコンピュータに実行させることを特徴とするトランスレータプログラム。 - 前記インデックスローカル化手順は、前記ループインデックスが示す初期値および終値を含むループパラメタをローカル化するループパラメタローカル化手順と、ループ内で引用される変数を示すループ変数をグローバルインデックスに変換するループ変数変換手順をコンピュータに実行させることによってループインデックスについて、ローカル化処理を実行した結果として表されるコードを生成することを特徴とする請求項1に記載のトランスレータプログラム。
- 前記並列言語プログラムには、分散種別として不均等ブロック分散および不規則分散を指定可能であることを特徴とする請求項1または2に記載のトランスレータプログラム。
- コンピュータが、並列言語プログラムを解析し、複数のプロセッサで分散処理される逐次言語プログラムに変換するプログラム変換方法であって、
分散に関するパラメタである、分散種別を含む分散パラメタに値を設定するコードを生成する分散パラメタ設定工程と、
複数のプロセッサで共通して使用されるグローバルインデックスとローカルインデックスとを相互に変換する計算式を分散種別毎に記憶する記憶部から、前記分散パラメタ設定工程により生成されたコードにより値が設定される分散パラメタに対応した計算式を参照し、該参照した計算式および当該分散パラメタを用いて、ループで使用されるインデックスの範囲を示すループインデックスおよびループ内の配列で使用されるインデックスを示す配列インデックスについて、分散処理するプロセッサ内でローカル化処理を実行した結果として表されるコードを生成するインデックスローカル化工程と、
を含んだことを特徴とするプログラム変換方法。 - 並列言語プログラムを解析し、複数のプロセッサで分散処理される逐次言語プログラムに変換するトランスレータ装置であって、
分散に関するパラメタである、分散種別を含む分散パラメタに値を設定するコードを生成する分散パラメタ設定手段と、
複数のプロセッサで共通して使用されるグローバルインデックスとローカルインデックスとを相互に変換する計算式を分散種別毎に記憶する記憶部から、前記分散パラメタ設定手段により生成されたコードにより値が設定される分散パラメタに対応した計算式を参照し、該参照した計算式および当該分散パラメタを用いて、ループで使用されるインデックスの範囲を示すループインデックスおよびループ内の配列で使用されるインデックスを示す配列インデックスについて、分散処理するプロセッサ内でローカル化処理を実行した結果として表されるコードを生成するインデックスローカル化手段と、
を備えたことを特徴とするトランスレータ装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004203063A JP4740561B2 (ja) | 2004-07-09 | 2004-07-09 | トランスレータプログラム、プログラム変換方法およびトランスレータ装置 |
US10/992,353 US7555745B2 (en) | 2004-07-09 | 2004-11-18 | Program and apparatus for translating language, and program converting method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004203063A JP4740561B2 (ja) | 2004-07-09 | 2004-07-09 | トランスレータプログラム、プログラム変換方法およびトランスレータ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006024088A JP2006024088A (ja) | 2006-01-26 |
JP4740561B2 true JP4740561B2 (ja) | 2011-08-03 |
Family
ID=35542781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004203063A Expired - Fee Related JP4740561B2 (ja) | 2004-07-09 | 2004-07-09 | トランスレータプログラム、プログラム変換方法およびトランスレータ装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7555745B2 (ja) |
JP (1) | JP4740561B2 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8104030B2 (en) * | 2005-12-21 | 2012-01-24 | International Business Machines Corporation | Mechanism to restrict parallelization of loops |
US8443351B2 (en) * | 2006-02-23 | 2013-05-14 | Microsoft Corporation | Parallel loops in a workflow |
EP2050002A2 (en) * | 2006-08-01 | 2009-04-22 | Massachusetts Institute of Technology | Extreme virtual memory |
US7921416B2 (en) * | 2006-10-20 | 2011-04-05 | Yahoo! Inc. | Formal language and translator for parallel processing of data |
US8255890B2 (en) * | 2007-02-14 | 2012-08-28 | The Mathworks, Inc. | Media for performing parallel processing of distributed arrays |
US20090037690A1 (en) * | 2007-08-03 | 2009-02-05 | Nema Labs Ab | Dynamic Pointer Disambiguation |
WO2009037731A1 (ja) * | 2007-09-21 | 2009-03-26 | Fujitsu Limited | 翻訳装置と翻訳方法および翻訳プログラムとプロセッサコアの制御方法およびプロセッサ |
EP2257873A4 (en) * | 2008-02-12 | 2013-05-15 | Scrutiny Inc | SYSTEMS AND METHODS FOR ANALYZING INFORMATION FLOWS |
US8776030B2 (en) * | 2008-04-09 | 2014-07-08 | Nvidia Corporation | Partitioning CUDA code for execution by a general purpose processor |
US8645933B2 (en) * | 2008-08-01 | 2014-02-04 | Leon Schwartz | Method and apparatus for detection and optimization of presumably parallel program regions |
US20100037214A1 (en) * | 2008-08-11 | 2010-02-11 | International Business Machines Corporation | Method and system for mpi_wait sinking for better computation-communication overlap in mpi applications |
US20110010690A1 (en) * | 2009-07-07 | 2011-01-13 | Howard Robert S | System and Method of Automatically Transforming Serial Streaming Programs Into Parallel Streaming Programs |
JP5148674B2 (ja) * | 2010-09-27 | 2013-02-20 | 株式会社東芝 | プログラム並列化装置およびプログラム |
US20130055224A1 (en) * | 2011-08-25 | 2013-02-28 | Nec Laboratories America, Inc. | Optimizing compiler for improving application performance on many-core coprocessors |
JP6171658B2 (ja) | 2013-07-19 | 2017-08-02 | 富士通株式会社 | 並列処理最適化プログラム、並列処理最適化方法および情報処理装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3208870B2 (ja) * | 1992-10-30 | 2001-09-17 | 株式会社日立製作所 | データ分割パタンの評価方法 |
JPH08221276A (ja) * | 1995-02-16 | 1996-08-30 | Hitachi Ltd | コンパイラ |
JPH08255086A (ja) * | 1995-03-16 | 1996-10-01 | Toshiba Corp | オブジェクトコード生成方式 |
US6339840B1 (en) * | 1997-06-02 | 2002-01-15 | Iowa State University Research Foundation, Inc. | Apparatus and method for parallelizing legacy computer code |
JP3395646B2 (ja) * | 1998-03-31 | 2003-04-14 | 日本電気株式会社 | プログラム並列化装置及び並列化用プログラムを記録した記録媒体 |
US6106575A (en) * | 1998-05-13 | 2000-08-22 | Microsoft Corporation | Nested parallel language preprocessor for converting parallel language programs into sequential code |
-
2004
- 2004-07-09 JP JP2004203063A patent/JP4740561B2/ja not_active Expired - Fee Related
- 2004-11-18 US US10/992,353 patent/US7555745B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20060010432A1 (en) | 2006-01-12 |
JP2006024088A (ja) | 2006-01-26 |
US7555745B2 (en) | 2009-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Elango et al. | Diesel: DSL for linear algebra and neural net computations on GPUs | |
Sarkar | Automatic partitioning of a program dependence graph into parallel tasks | |
Phothilimthana et al. | Chlorophyll: Synthesis-aided compiler for low-power spatial architectures | |
JP4740561B2 (ja) | トランスレータプログラム、プログラム変換方法およびトランスレータ装置 | |
Kennedy et al. | Automatic data layout for distributed-memory machines | |
Shin et al. | Speeding up nek5000 with autotuning and specialization | |
Mendonça et al. | DawnCC: automatic annotation for data parallelism and offloading | |
Gareev et al. | High-performance generalized tensor operations: A compiler-oriented approach | |
KR101740093B1 (ko) | 타일 통신 연산자 | |
Arabnejad et al. | Source-to-source compilation targeting OpenMP-based automatic parallelization of C applications | |
Ittah et al. | QIRO: A static single assignment-based quantum program representation for optimization | |
Johnson et al. | Automatic parallel code generation for message passing on distributed memory systems | |
Kataev et al. | The experience of using DVM and SAPFOR systems in semi automatic parallelization of an application for 3D modeling in geophysics | |
Moses et al. | Polygeist: Affine c in mlir | |
Su et al. | Processor Tagged Descriptors: A Data Structure for Compiling for Distributed-Memory Multicomputers. | |
Palermo | Compiler techniques for optimizing communication and data distribution for distributed-memory multicomputers | |
Hornung et al. | A case for improved C++ compiler support to enable performance portability in large physics simulation codes | |
Belyaev et al. | LuNA-ICLU compiler for automated generation of iterative fragmented programs | |
Becker et al. | From scilab to high performance embedded multicore systems: The alma approach | |
Rodrigues et al. | GPU support for automatic generation of finite-differences Stencil Kernels | |
Clement et al. | Automatic Port to OpenACC/OpenMP for Physical Parameterization in Climate and Weather Code Using the CLAW Compiler | |
US11656857B2 (en) | Method and apparatus for optimizing code for field programmable gate arrays | |
Ejjaaouani et al. | InKS: a programming model to decouple algorithm from optimization in HPC codes | |
Liang et al. | The Support of MLIR HLS Adaptor for LLVM IR | |
Li | Mc2For: a MATLAB to Fortran 95 complier |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070703 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100225 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100914 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101112 |
|
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: 20110426 |
|
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: 20110502 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4740561 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140513 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |