JP2015141543A - ループ分割検出プログラム及びループ分割検出方法 - Google Patents
ループ分割検出プログラム及びループ分割検出方法 Download PDFInfo
- Publication number
- JP2015141543A JP2015141543A JP2014013877A JP2014013877A JP2015141543A JP 2015141543 A JP2015141543 A JP 2015141543A JP 2014013877 A JP2014013877 A JP 2014013877A JP 2014013877 A JP2014013877 A JP 2014013877A JP 2015141543 A JP2015141543 A JP 2015141543A
- Authority
- JP
- Japan
- Prior art keywords
- loop
- division
- loop division
- program
- variable
- 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
- 238000001514 detection method Methods 0.000 title claims description 9
- 238000005259 measurement Methods 0.000 claims abstract description 16
- 238000000034 method Methods 0.000 claims description 130
- 230000008569 process Effects 0.000 claims description 98
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 230000001174 ascending effect Effects 0.000 claims description 5
- 230000007717 exclusion Effects 0.000 claims description 2
- 238000012545 processing Methods 0.000 description 36
- 238000010586 diagram Methods 0.000 description 23
- 230000006870 function Effects 0.000 description 13
- 238000012986 modification Methods 0.000 description 12
- 230000004048 modification Effects 0.000 description 12
- 238000005457 optimization Methods 0.000 description 12
- IGWHDMPTQKSDTL-JXOAFFINSA-N TMP Chemical compound O=C1NC(=O)C(C)=CN1[C@H]1[C@H](O)[C@H](O)[C@@H](COP(O)(O)=O)O1 IGWHDMPTQKSDTL-JXOAFFINSA-N 0.000 description 10
- 238000005192 partition Methods 0.000 description 8
- 238000012217 deletion Methods 0.000 description 5
- 230000037430 deletion Effects 0.000 description 5
- 230000011218 segmentation Effects 0.000 description 5
- 230000010365 information processing Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012360 testing method Methods 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/44—Encoding
- G06F8/443—Optimisation
- G06F8/4441—Reducing the execution time required by the program code
- G06F8/4442—Reducing the number of cache misses; Data prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
Description
前記試験プログラムを前記ループ分割指定パラメータを変更しながら順次実行し,前記キャッシュミス計測命令が計測したキャッシュミス回数が基準回数を超えたループ分割候補を第1のループ分割候補群に抽出し,前記基準回数を超えないループ分割候補を第2のループ分割候補群に抽出する手順と,
前記ループ分割指定パラメータのループ分割を,前記第1のループ分割候補群内のループ分割候補のループ分割と比較し,前記キャッシュミス回数が前記基準回数を超えるループ分割を,前記試験プログラムの実行対象候補から除外する手順と,
を有する処理をコンピュータに実行させるループ分割検出プログラムである。
図3は,ループ分割プログラム5がコンピュータにより実行されることにより行われるループ分割処理のフローチャート図である。以下,このフローチャートにしたがって,本実施の形態のループ分割処理の概略を説明する。
[ソースコードトランスレータTによる処理X1]
図4は,コンピュータがソースコードトランスレータTを実行した場合の処理のフローチャート図である。コンピュータが,ソースコードトランスレータTを実行することで,図4の処理を行う。まず,コンピュータは,ソースコードトランスレータTを実行することで,ループ分割対象プログラムPを入力する(X11)。そして,コンピュータは,ソースコードトランスレータTを実行することで,試験プログラムの元になるテンプレートコードTLを呼び出す(X12)。コンピュータは,ソースコードトランスレータTを実行することで,テンプレートコードTL内の変数を,ループ分割対象プログラムPに基づいて生成し,テンプレートコードTLに上書きすることで,テンプレートコードTLを編集する(X13)。そして,コンピュータは,ソースコードトランスレータTを実行することで,編集されたテンプレートコードTLを試験プログラムQとして出力する(X14)。これにより,ループ分割対象プログラムPが試験プログラムQにソースコード変換される。以下,各工程X11,X12,X13について,説明する。
&GS1, &GS2,...&GSn
&GS1は実行文S1が属する分割ループの分割番号変数であり,&GS2は実行文S2が属する分割ループの分割番号変数であり,&GSnは実行文Snが属する分割ループの分割番号変数である。ループ分割指定パラメータについては後述する。
if(G==GSi){Si;}
このコードは,0から分割数の最大値nまで変化する変数Gが,実行文Siの分割番号変数GSiと等しい場合に,実行文Siを実行することを意味する。これにより,各実行文Siは,自分が所属する分割番号の分割ループ内で実行される。
次に,コンピュータが,ループ分割群検出プログラムEを実行することで,試験プログラムQをループ分割指定パラメータdを変更しながら順次実行し,キャッシュミスが少ない順のN個のループ分割候補を効率的に抽出する処理X2について説明する。
{0, 1, 2}
であれば,3桁の3進数とみなして1増やすことで,更新したdは
{0, 2, 0}
となる。
処理X24でのパターンデータxの生成処理は次の通りである。ループ分割候補dに対して,試験プログラムQの実行途中でキャッシュミス回数が最大値MAX_MISS以上になった場合に,分割番号Gが出力される。そこで,ループ分割指定パラメータdの中で分割番号G以下の番号を残し,それ以上の番号を記号?(?はワイルドカード)に変換する。例えば,d, Gが以下の場合に,
d={0, 0, 1, 1, 2, 2}
G=1
パターンデータxは次のようになる。
x={0, 0, 1, 1, ?, ?}
記号?は,分割番号Gより大きい整数を表す。
一致する候補dの例
d5={0, 0, 1, 1, 2, 2}
d6={0, 0, 1, 1, 2, 3}
一致しない候補dの例
d7={0, 0, 1, 1, 0, 0}
d8={0, 0, 1, 1, 1, 2}
候補d5,d6は,実行文S0,S1が分割番号0のループで実行され,実行文S2,S3が分割番号1のループで実行されるので,パターンデータx={0, 0, 1, 1, ?, ?}と同じように,分割番号1のループを終了した時点で,キャッシュミス回数が最大値MAX_MISS以上になることは明らかである。よって,候補d5,d6は,試す価値がないループ分割である。
コンピュータが,ステップX3でループ分割プログラム生成プログラムFを実行することで,ループ分割プログラム集合のPSETを生成する処理について,以下に説明する。コンピュータは,プログラムFを実行することで,ループ分割検出プログラムEが検出したループ分割の解の集合A内の解djから,ループ分割プログラム集合PSETのループ分割されたプログラムPjを生成する。
上記の説明で本実施の形態におけるループ分割処理が理解できた。そこで,以下,サンプルプログラムPについて,ループ分割処理をより具体的に説明する。
d={0, 0, 0, 1, 1, 1, 2, 2, 2}
MAX_MISS=999
図13は,d={0, 0, 0, 1, 1, 1, 2, 2, 2},MAX_MISS=999を与えられた試験プログラムQを示す図である。図13において,00行で分割番号変数GS1-GS9にループ分割指定パラメータdの値が設定され,01行でキャッシュミス回数の最大値MAX_MISSに999が設定されている。それ以外のソースコードは,図12と同じである。
d={0, 0, 0, 1, 1, 1, 2, 2, 2}
G=1
パターンデータxは,次のとおりである。
x={0, 0, 0, 1, 1, 1, ?, ?, ?}
ここで,?はG=1より大きい任意の番号を意味する。このパターンデータxと一致するループ分割候補は,その試験プログラムQを実行してもキャッシュミス回数が最大値MAX_MISS以上になることが確定しているので,コンピュータは,試験プログラムを実行する候補から削除する(X29)。例えば,次のようなループ分割候補は,上記のパターンデータxと一致して削除対象になる。
d={0, 0, 0, 1, 1, 1, 2, 2, 3}
d={0, 0, 0, 1, 1, 1, 2, 3, 3}
d={0, 0, 0, 1, 1, 1, 2, 3, 4}
一方,次のようなループ分割候補は,上記のパターンデータxと一致せず試験プログラムQの実行対象になる。
d={0, 0, 0, 1, 1, 1, 0, 2, 2}
d={0, 0, 0, 1, 1, 1, 1, 2, 2}
上記のように,既に試験プログラムQを実行してキャッシュミス回数が最大値MAX_MISS以上になったパターンデータxと実行結果が同じになるループ分割候補を削除することで,無駄に試験プログラムQを実行する処理が行われず。コンピュータは,プログラムEを実行することで,効率的にキャッシュミスが少ないループ分割候補を検出することができる。
d={0, 0, 1, 1, 1, 1, 2, 2, 2}
コンピュータは,プログラムFを実行することで,図15に示したループ分割プログラムPjを生成する。
プログラムの意味を変更しないループ分割指定dの集合サイズは,一般的に巨大になる可能性がある。そこで,以下のようなループ分割候補の絞り込みをすることが望ましい。
分割対象プログラム内の分割対象ループがスカラ変数を含む場合は,ループ分割した結果,第1の分割ループ内の変数を,別の第2の分割ループに引き渡す処理が必要になる。このような処理は,第1の分割ループ内にて変数を定義した後にその変数を一時配列に書き込む処理と,第2の分割ループ内にて一時配列を変数に読み出す処理を追加することにより可能になる。したがって,コンピュータは,ソースコードトランスレータTを実行することにより,スカラ変数に対して一時配列の書き込み文と読み込み文を追加する処理を行う。
S1: tmp=A[i]+B[i]
そして,実行文S2,S3で次のように変数tmpを利用している。
S2: C[i]=tmp*D[i]
S3: E[i]=tmp-C[i]
したがって,実行文S1がループ番号0に,実行文S2,S3がループ番号1,2などに分割されると,ループ番号0で,実行文S1の後に実行文S1で定義した変数tmpを一時的に一時配列に書き込む処理を行い,ループ番号1,2で,実行文S2,S3の前に一時配列を変数tmpに読み込む処理を行うことが必要になる。
USE={S2,S3}
DEF={S1}
次に,処理X15では,コンピュータは,各スカラ変数vに対して,それぞれ一時配列Vを導入する。一時配列Vとは,ループが繰り返し実行される場合に,それぞれのループiで生成されたスカラ変数vを配列する変数であり,ループが3回繰り返される場合は,3つのループで生成されたスカラ変数v1,v2,v3は,次のようになる。
v1=V[1]
v2=V[2]
v3=V[3]
次に,処理X15では,コンピュータは,ループ分割対象プログラムPのループ分割対象ループ内の各実行文Siを,一時配列Vを読み込む処理コードと,実行文Siと,一時配列Vを書き込む処理コードとを有するコードに変換する(X155)。この処理X155は,具体的には以下のとおりである。
GS3 != GS1 && GS3 != GS2
ここで,!=は等しくない,&&はANDを意味する。
つまり,「文S2の分割ループGS2が文S3の分割ループGS3と等しくなく,且つ文S1の分割ループGS1が文S3の分割ループGS3と等しくない」場合に,文S3が属する分割ループ内において文S3の前に変数vを使用する処理も定義する処理も存在しないので,文S3の直前で変数vを読み込む処理が必要になる。文S3が属する分割ループ内において文S3の前に変数vを使用する処理が存在すれば,変数vを使用する処理の直前で変数vを読み込む処理が追加されるので,文S3は変数vを使用することができる。また,文S3が属する分割ループ内において文S3の前に変数vを定義する処理が存在すれば,文S3は変数vを使用することが可能になる。
GS3 != GS4 || GS3 != GS5
ここで,!=は等しくない,||はORを意味する。
つまり,「文S3の分割ループGS3が文S4の分割ループGS4と等しくなく,または文S3の分割ループGS3が文S5の分割ループGS5と等しくない」場合には,文S4またはS5は,文S3の分割ループGS3より後の分割ループGS4またはGS5で変数vを使用するので,文S3の分割ループGS3内で変数vを書き込む処理が必要になる。
USE={S2,S3}
DEF={S1}
したがって,図20の試験プログラムQ'では,05-10行の文S1のコードには,文S1の分割ループGS1が,文S2,S3の分割ループGS2,GS3のいずれかと等しくない場合に(07行),変数tmpを一時配列TMP[i]に書き込む処理,TMP[i]=tmp;(08行)が実行されるコード(07-09行)が追加されている。
ループ分割対象プログラムを,ループ分割指定パラメータに基づいて前記ループ分割対象プログラム内のループを複数の分割ループに分割し,キャッシュミスの回数を計測するキャッシュミス計測命令を有する試験プログラムに,変換する手順と,
前記試験プログラムを前記ループ分割指定パラメータを変更しながら順次実行し,前記キャッシュミス計測命令が計測したキャッシュミス回数が基準回数を超えたループ分割候補を第1のループ分割候補群に抽出し,前記基準回数を超えないループ分割候補を第2のループ分割候補群に抽出する手順と,
前記ループ分割指定パラメータのループ分割を,前記第1のループ分割候補群内のループ分割候補のループ分割と比較し,前記キャッシュミス回数が前記基準回数を超えるループ分割を,前記試験プログラムの実行対象候補から除外する手順と,
を有する処理をコンピュータに実行させるループ分割検出プログラム。
更に,前記処理は,
前記第2のループ分割候補群内のループ分割候補から,前記キャッシュミス回数が少ない順に所望の候補数を残す手順と,
前記基準回数を,前記残されたループ分割候補の最大キャッシュミス回数に更新する手順とを有する付記1に記載されたループ分割検出プログラム。
前記抽出する手順では,前記キャッシュミス回数が基準回数を超えた分割番号と,前記ループ分割とを前記第1のループ分割候補群に登録し,
前記除外する手順では,前記ループ分割指定パラメータのループ分割と,前記第1のループ分割候補群内のループ分割とが,最初の分割番号から前記基準回数を超えた分割番号までのループ分割の組合せが一致する場合に,前記キャッシュミス回数が前記基準回数を超えるループ分割と判定する,
付記1に記載されたループ分割検出プログラム。
更に,前記処理は,
前記ループ分割指定パラメータに基づいて分割される分割ループ内の命令文の数が,第1の命令文数より少ないか,前記第1の命令文数より多い第2の命令文数より多いか,または前記第1の命令文数より少なく且つ前記第2の命令文数より多いか,のいずれかに該当する場合は,前記ループ分割指定パラメータのループ分割候補を,前記試験プログラムの実行対象候補から除外する手順を有する付記1に記載されたループ分割検出プログラム。
前記変換する手順では,前記ループ分割対象プログラム内の変数を使用する命令文の前に前記変数の一時配列変数を読み込む変数読み込み文を追加し,前記変数を定義する命令文の後に前記変数を一時配列変数に書き込む変数書き込み文を追加する,
付記1に記載されたループ分割検出プログラム。
前記変数読み込み文の追加は,前記変数を使用する命令文が属する分割ループ内に,前記変数を使用するまたは定義する命令文が存在しない場合に行い,
前記変数書き込み文の追加は,前記変数を定義する命令文が属する分割ループとは異なる分割ループ内に,前記変数を使用する命令文が存在する場合に行う,
付記5に記載されたループ分割検出プログラム。
ループ分割対象プログラムを,ループ分割指定パラメータに基づいて前記ループ分割対象プログラム内のループを複数の分割ループに分割し,キャッシュミスの回数を計測するキャッシュミス計測命令を有する試験プログラムに変換する手順と,
前記試験プログラムを前記ループ分割指定パラメータを変更しながら順次実行し,前記キャッシュミス計測命令が計測したキャッシュミス回数が基準回数を超えているループ分割候補を第1のループ分割候補群に抽出し,前記基準回数を超えないループ分割候補を第2のループ分割候補群に抽出する手順を実行させる手順と,
前記ループ分割指定パラメータのループ分割を,前記第1のループ分割候補群内のループ分割候補のループ分割と比較し,前記キャッシュミス回数が前記基準回数を超えるループ分割を,前記試験プログラムの実行対象候補から除外する手順と,
を有する処理を,プロセッサに実行させるループ分割検出方法。
更に,前記処理は,
前記第2のループ分割候補群内のループ分割候補から,前記キャッシュミス回数が少ない順に所望の候補数を残す手順と,
前記基準回数を,前記残されたループ分割候補の最大キャッシュミス回数に更新する手順とを有する付記7に記載されたループ分割検出方法。
前記抽出する手順では,前記キャッシュミス回数が基準回数を超えた分割番号と,前記ループ分割とを前記第1のループ分割候補群に登録し,
前記除外する手順では,前記ループ分割指定パラメータのループ分割と,前記第1のループ分割候補群内のループ分割とが,最初の分割番号から前記基準回数を超えた分割番号までのループ分割の組合せが一致する場合に,前記キャッシュミス回数が前記基準回数を超えるループ分割と判定する,
付記7に記載されたループ分割検出方法。
Q:試験プログラム
A:ループ分割の解の集合
PSET:ループ分割プログラムの集合
T:ソースコードトランスレータ
E:ループ分割群検出プログラム
F:ループ分割プログラム生成プログラム
CMP:最適化コンパイラ
OS:オペレーションシステム
Claims (7)
- ループ分割対象プログラムを,ループ分割指定パラメータに基づいて前記ループ分割対象プログラム内のループを複数の分割ループに分割し,キャッシュミスの回数を計測するキャッシュミス計測命令を有する試験プログラムに,変換する手順と,
前記試験プログラムを前記ループ分割指定パラメータを変更しながら順次実行し,前記キャッシュミス計測命令が計測したキャッシュミス回数が基準回数を超えたループ分割候補を第1のループ分割候補群に抽出し,前記基準回数を超えないループ分割候補を第2のループ分割候補群に抽出する手順と,
前記ループ分割指定パラメータのループ分割を,前記第1のループ分割候補群内のループ分割候補のループ分割と比較し,前記キャッシュミス回数が前記基準回数を超えるループ分割を,前記試験プログラムの実行対象候補から除外する手順と,
を有する処理をコンピュータに実行させるループ分割検出プログラム。 - 更に,前記処理は,
前記第2のループ分割候補群内のループ分割候補から,前記キャッシュミス回数が少ない順に所望の候補数を残す手順と,
前記基準回数を,前記残されたループ分割候補の最大キャッシュミス回数に更新する手順とを有する請求項1に記載されたループ分割検出プログラム。 - 前記抽出する手順では,前記キャッシュミス回数が基準回数を超えた分割番号と,前記ループ分割とを前記第1のループ分割候補群に登録し,
前記除外する手順では,前記ループ分割指定パラメータのループ分割と,前記第1のループ分割候補群内のループ分割とが,最初の分割番号から前記基準回数を超えた分割番号までのループ分割の組合せが一致する場合に,前記キャッシュミス回数が前記基準回数を超えるループ分割と判定する,
請求項1に記載されたループ分割検出プログラム。 - 更に,前記処理は,
前記ループ分割指定パラメータに基づいて分割される分割ループ内の命令文の数が,第1の命令文数より少ないか,前記第1の命令文数より多い第2の命令文数より多いか,または前記第1の命令文数より少なく且つ前記第2の命令文数より多いか,のいずれかに該当する場合は,前記ループ分割指定パラメータのループ分割候補を,前記試験プログラムの実行対象候補から除外する手順を有する請求項1に記載されたループ分割検出プログラム。 - 前記変換する手順では,前記ループ分割対象プログラム内の変数を使用する命令文の前に前記変数の一時配列変数を読み込む変数読み込み文を追加し,前記変数を定義する命令文の後に前記変数を一時配列変数に書き込む変数書き込み文を追加する,
請求項1に記載されたループ分割検出プログラム。 - 前記変数読み込み文の追加は,前記変数を使用する命令文が属する分割ループ内に,前記変数を使用するまたは定義する命令文が存在しない場合に行い,
前記変数書き込み文の追加は,前記変数を定義する命令文が属する分割ループとは異なる分割ループ内に,前記変数を使用する命令文が存在する場合に行う,
請求項5に記載されたループ分割検出プログラム。 - ループ分割対象プログラムを,ループ分割指定パラメータに基づいて前記ループ分割対象プログラム内のループを複数の分割ループに分割し,キャッシュミスの回数を計測するキャッシュミス計測命令を有する試験プログラムに変換する手順と,
前記試験プログラムを前記ループ分割指定パラメータを変更しながら順次実行し,前記キャッシュミス計測命令が計測したキャッシュミス回数が基準回数を超えているループ分割候補を第1のループ分割候補群に抽出し,前記基準回数を超えないループ分割候補を第2のループ分割候補群に抽出する手順を実行させる手順と,
前記ループ分割指定パラメータのループ分割を,前記第1のループ分割候補群内のループ分割候補のループ分割と比較し,前記キャッシュミス回数が前記基準回数を超えるループ分割を,前記試験プログラムの実行対象候補から除外する手順と,
を有する処理を,プロセッサに実行させるループ分割検出方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014013877A JP6201788B2 (ja) | 2014-01-29 | 2014-01-29 | ループ分割検出プログラム及びループ分割検出方法 |
US14/603,410 US9182960B2 (en) | 2014-01-29 | 2015-01-23 | Loop distribution detection program and loop distribution detection method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014013877A JP6201788B2 (ja) | 2014-01-29 | 2014-01-29 | ループ分割検出プログラム及びループ分割検出方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015141543A true JP2015141543A (ja) | 2015-08-03 |
JP6201788B2 JP6201788B2 (ja) | 2017-09-27 |
Family
ID=53679110
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014013877A Expired - Fee Related JP6201788B2 (ja) | 2014-01-29 | 2014-01-29 | ループ分割検出プログラム及びループ分割検出方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9182960B2 (ja) |
JP (1) | JP6201788B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017224038A (ja) * | 2016-06-13 | 2017-12-21 | 富士通株式会社 | キャッシュミス推定プログラム、キャッシュミス推定方法及び情報処理装置 |
JP2021018585A (ja) * | 2019-07-19 | 2021-02-15 | 富士通株式会社 | 情報処理装置及び情報処理方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6201788B2 (ja) * | 2014-01-29 | 2017-09-27 | 富士通株式会社 | ループ分割検出プログラム及びループ分割検出方法 |
JP6492943B2 (ja) * | 2015-05-07 | 2019-04-03 | 富士通株式会社 | 計算機、コンパイル方法、コンパイルプログラム、およびパイプライン処理プログラム |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001005792A (ja) * | 1999-06-22 | 2001-01-12 | Hitachi Ltd | 並列化ループ決定方法 |
JP2003173262A (ja) * | 2001-12-06 | 2003-06-20 | Hitachi Ltd | プログラムチューニングシステムとプログラムチューニング方法およびプログラムと記録媒体 |
JP2005122506A (ja) * | 2003-10-17 | 2005-05-12 | Matsushita Electric Ind Co Ltd | コンパイラ装置 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3280449B2 (ja) | 1993-03-01 | 2002-05-13 | 富士通株式会社 | コンパイル装置 |
US5805863A (en) * | 1995-12-27 | 1998-09-08 | Intel Corporation | Memory pattern analysis tool for use in optimizing computer program code |
WO1998019249A1 (fr) | 1996-10-30 | 1998-05-07 | Hitachi, Ltd. | Procede de distribution de donnees et de determination d'agencement pour ordinateurs en parallele et appareil de realisation de ce procede |
US6675374B2 (en) * | 1999-10-12 | 2004-01-06 | Hewlett-Packard Development Company, L.P. | Insertion of prefetch instructions into computer program code |
US7107583B2 (en) * | 2001-02-16 | 2006-09-12 | Hewlett-Packard Development Company, L.P. | Method and apparatus for reducing cache thrashing |
CA2363182C (en) * | 2001-11-19 | 2006-06-06 | Ibm Canada Limited-Ibm Canada Limitee | Automatic program restructuring to reduce average cache miss penalty |
US9170812B2 (en) * | 2002-03-21 | 2015-10-27 | Pact Xpp Technologies Ag | Data processing system having integrated pipelined array data processor |
US7765534B2 (en) * | 2004-04-30 | 2010-07-27 | International Business Machines Corporation | Compiler with cache utilization optimizations |
US7669194B2 (en) * | 2004-08-26 | 2010-02-23 | International Business Machines Corporation | Fine-grained software-directed data prefetching using integrated high-level and low-level code analysis optimizations |
US7840914B1 (en) * | 2005-05-13 | 2010-11-23 | Massachusetts Institute Of Technology | Distributing computations in a parallel processing environment |
US8490065B2 (en) * | 2005-10-13 | 2013-07-16 | International Business Machines Corporation | Method and apparatus for software-assisted data cache and prefetch control |
JP5224498B2 (ja) * | 2007-02-28 | 2013-07-03 | 学校法人早稲田大学 | メモリ管理方法、情報処理装置、プログラムの作成方法及びプログラム |
JP4339907B2 (ja) * | 2007-10-24 | 2009-10-07 | 株式会社日立製作所 | マルチプロセッサ向け最適コード生成方法及びコンパイル装置 |
US9189233B2 (en) * | 2008-11-24 | 2015-11-17 | Intel Corporation | Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads |
JP6201788B2 (ja) * | 2014-01-29 | 2017-09-27 | 富士通株式会社 | ループ分割検出プログラム及びループ分割検出方法 |
-
2014
- 2014-01-29 JP JP2014013877A patent/JP6201788B2/ja not_active Expired - Fee Related
-
2015
- 2015-01-23 US US14/603,410 patent/US9182960B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001005792A (ja) * | 1999-06-22 | 2001-01-12 | Hitachi Ltd | 並列化ループ決定方法 |
JP2003173262A (ja) * | 2001-12-06 | 2003-06-20 | Hitachi Ltd | プログラムチューニングシステムとプログラムチューニング方法およびプログラムと記録媒体 |
JP2005122506A (ja) * | 2003-10-17 | 2005-05-12 | Matsushita Electric Ind Co Ltd | コンパイラ装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017224038A (ja) * | 2016-06-13 | 2017-12-21 | 富士通株式会社 | キャッシュミス推定プログラム、キャッシュミス推定方法及び情報処理装置 |
JP2021018585A (ja) * | 2019-07-19 | 2021-02-15 | 富士通株式会社 | 情報処理装置及び情報処理方法 |
JP7230719B2 (ja) | 2019-07-19 | 2023-03-01 | 富士通株式会社 | 情報処理装置及び情報処理方法 |
Also Published As
Publication number | Publication date |
---|---|
JP6201788B2 (ja) | 2017-09-27 |
US20150212804A1 (en) | 2015-07-30 |
US9182960B2 (en) | 2015-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Shen et al. | SeqKit: a cross-platform and ultrafast toolkit for FASTA/Q file manipulation | |
US11243816B2 (en) | Program execution on heterogeneous platform | |
JP6605573B2 (ja) | 並列ディシジョン・ツリー・プロセッサー・アーキテクチャ | |
JP6427592B2 (ja) | データ型に関連するデータプロファイリング操作の管理 | |
US9152389B2 (en) | Trace generating unit, system, and program of the same | |
JP6141365B2 (ja) | 逐次コンピュータプログラムコードを並列処理する方法及びシステム | |
Denti et al. | ASGAL: aligning RNA-Seq data to a splicing graph to detect novel alternative splicing events | |
JP6201788B2 (ja) | ループ分割検出プログラム及びループ分割検出方法 | |
CN108197027B (zh) | 软件性能优化方法、可存储介质、计算机、计算机程序 | |
US11487535B2 (en) | Ranking of software code parts | |
US10990073B2 (en) | Program editing device, program editing method, and computer readable medium | |
JP2013214832A (ja) | 圧縮及び伸長システム、圧縮装置、伸長装置、圧縮及び伸長方法、圧縮プログラム及び伸長プログラム | |
CN114237911A (zh) | 基于cuda的基因数据处理方法、装置和cuda构架 | |
US9715374B2 (en) | Multi-branch determination syntax optimization apparatus | |
US10102099B2 (en) | Performance information generating method, information processing apparatus and computer-readable storage medium storing performance information generation program | |
JP5936135B2 (ja) | 情報処理装置、情報処理方法、及び、プログラム | |
US20160371068A1 (en) | Computer that performs compiling, compiler program, and link program | |
CN114420209A (zh) | 基于测序数据的病原微生物检测方法及*** | |
CN113031952A (zh) | 深度学习模型的执行代码的确定方法、装置及存储介质 | |
US20170344351A1 (en) | Information processing apparatus, compiling management method, and recording medium | |
WO2018150588A1 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
JP6547345B2 (ja) | テストケース生成プログラム、テストケース生成方法およびテストケース生成装置 | |
CN116168765B (zh) | 基于改进strobemer的基因序列生成方法及*** | |
CN114091111B (zh) | 一种区块链智能合约的存储方法及装置 | |
US10534691B2 (en) | Apparatus and method to improve accuracy of performance measurement for loop processing in a program code |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20161004 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170721 |
|
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: 20170801 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170814 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6201788 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |