JP2006018447A - プログラム並列化装置及びその方法並びにプログラム - Google Patents
プログラム並列化装置及びその方法並びにプログラム Download PDFInfo
- Publication number
- JP2006018447A JP2006018447A JP2004194053A JP2004194053A JP2006018447A JP 2006018447 A JP2006018447 A JP 2006018447A JP 2004194053 A JP2004194053 A JP 2004194053A JP 2004194053 A JP2004194053 A JP 2004194053A JP 2006018447 A JP2006018447 A JP 2006018447A
- Authority
- JP
- Japan
- Prior art keywords
- fork
- combination
- program
- unit
- location
- 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 description 111
- 238000012545 processing Methods 0.000 claims description 66
- 230000006872 improvement Effects 0.000 claims description 42
- 230000010354 integration Effects 0.000 claims description 21
- 239000000284 extract Substances 0.000 abstract description 5
- 230000003068 static effect Effects 0.000 description 52
- 230000008569 process Effects 0.000 description 41
- 230000008707 rearrangement Effects 0.000 description 25
- 238000005206 flow analysis Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 238000004040 coloring Methods 0.000 description 8
- 238000012805 post-processing Methods 0.000 description 8
- 238000000605 extraction Methods 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 5
- 238000002474 experimental method Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 230000004083 survival effect Effects 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 102220053993 rs28929485 Human genes 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012966 insertion method Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000003973 paint Substances 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000007787 solid Substances 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)
Abstract
【解決手段】 フォーク箇所決定部110は、逐次処理プログラム101のフォーク箇所を抽出する。フォーク箇所組合せ決定部120は、逐次処理プログラム101を入力データ152の下で実行したときの逐次実行トレース情報を複数の区間に分割し、各分割区間毎に、その分割区間において出現するフォーク箇所の集合に含まれるフォーク箇所の最適な組合せを求め、最後に各分割区間での最適な組合せを適当な基準で1つに統合する。並列化プログラム出力部130は、フォーク箇所組合せ決定部120により決定されたフォーク箇所の最適な組合せに基づいて逐次処理プログラム101からマルチスレッド型並列プロセッサ向けの並列化プログラム103を生成する。
【選択図】 図1−1
Description
図1−1を参照すると、本発明の第1の実施の形態にかかるプログラム並列化装置100は、図示しない逐次コンパイラによって生成された機械語命令形式の逐次処理プログラム101を入力し、マルチスレッド型並列プロセッサ向けの並列化プログラム103を生成し出力する装置であり、入力となる逐次処理プログラム101を記憶する磁気ディスク等の記憶装置102と、出力となる並列化プログラム103を記憶する磁気ディスク等の記憶装置104と、逐次処理プログラム101を並列化プログラム103に変換する過程で生成される各種のデータを記憶する磁気ディスク等の記憶装置105と、逐次処理プログラム101を並列化プログラム103に変換する過程で使用する予め定められた各種のデータを記憶する磁気ディスク等の記憶装置106と、これらの記憶装置102、104、105および106に接続された中央処理装置等の処理装置107とで構成されている。また処理装置107は、フォーク箇所決定部110と、フォーク箇所組合せ決定部120と、並列化プログラム出力部130とを備えている。
静的足切り条件1:静的ブースト値<Ms
静的足切り条件2:静的ブースト値>Ns
通常、スーパスカラマシンなど命令レベル並列実行可能なプロセッサ向けの目的プログラムを生成する逐次コンパイラは、パイプラインストールを回避するためや命令レベル並列性を高めるため等を目的として、データ依存関係のある命令が互いになるべく離れる、つまり変数が利用されている期間である生存(alive)区間が拡がるように命令を配置する最適化を行っている。この最適化は一般に命令スケジューリングと呼ばれるが、このような最適化がスレッド並列性の抽出を阻害する要因となり得る。なぜなら、命令スケジューリングによって変数の生存区間が拡がると、抽出できるフォーク箇所の候補数が減って静的ブースト値の合計である並列実行性能の指標値も減る場合があるためである。そこで、命令スケジューリングとは逆に、データ依存関係のある命令が互いになるべく近づく、つまり変数の生存区間が狭まるように命令を並べ替えた逐次処理プログラム1141を生成し、若し、元の逐次処理プログラム101より並列実行性能の指標値が改善されたならば、命令並べ替えした逐次処理プログラム1141を採用することで、よりよい並列実行性能の並列化プログラムが得られるようにする。
一般的に、変数がレジスタに割り付けられていれば、メモリに入っている場合よりもアクセスが速く、且つ取り出しや格納(load、store)の命令が不要になるため、逐次処理プログラムを生成する逐次コンパイラは、基本的にそのようなレジスタ割当を実施する。しかし、レジスタの数には限度があるため、新たな変数を割り付けるレジスタが不足した場合、既にレジスタに割り付けられている変数のどれかをメモリに退避することによりレジスタを確保し、メモリに退避した変数に対し、後刻にレジスタを再度割り当てる場合がある。このとき、前回と同じレジスタが割り当てられる保証がないため、若し、逐次処理プログラム101において、別のレジスタが割り当てられていると、退避した時点と復帰した時点とでレジスタが一致しないために、退避した時点をフォーク元ポイント、復帰した時点をフォーク先ポイントとするようなフォーク箇所を抽出できない。そこで、プログラム変換部1112は、このような場合にレジスタ割当を退避と復帰時で一致させることにより、つまり変数の割り当てられるレジスタをできるだけ変えないようにレジスタ割当を変更した逐次処理プログラム1141を生成し、若し、元の逐次処理プログラム101より並列実行性能の指標値が改善されたならば、レジスタ割当変更した逐次処理プログラム1141を採用することで、よりよい並列実行性能の並列化プログラムが得られるようにする。
動的足切り条件1:(動的ブースト値/逐次実行サイクル)<Md
動的足切り条件2:最小サイクル数>Nd
2.上記の1で選んだノードと接続しているノードをグラフから削除する。
3.選択できるノードがなくなるまで、上記の1と2を繰り返す。
図19−1を参照すると、本実施の形態にかかるプログラム並列化装置100Aは、第1の実施の形態にかかるプログラム並列化装置100と比較して、フォーク箇所決定部110および並列化プログラム出力部130の代わりにフォーク箇所決定部110Aおよび並列化プログラム出力部130Aを備えている点で相違する。
図20−1を参照すると、本実施の形態にかかるプログラム並列化装置100Bは、第1の実施の形態にかかるプログラム並列化装置100と比較して、フォーク箇所組合せ決定部120の代わりにフォーク箇所組合せ決定部120Bを備えている点で相違する。
図21−1を参照すると、本実施の形態にかかるプログラム並列化装置100Cは、第1の実施の形態にかかるプログラム並列化装置100と比較して、フォーク箇所決定部110およびフォーク箇所組合せ決定部120の代わりにフォーク箇所決定部110Cおよびフォーク箇所組合せ決定部120Cを備えている点で相違する。
以上、本発明の実施の形態について説明したが、本発明は以上の実施の形態にのみ限定されず、その他各種の付加変更が可能である。例えば、前記各実施の形態において、組合せ改善部1234を省略した構成にすることも可能である。
101…逐次処理プログラム
102、104〜106…記憶装置
103…並列化プログラム
110…フォーク箇所決定部
120…フォーク箇所組合せ決定部
130…並列化プログラム出力部
Claims (20)
- 逐次処理プログラムを入力し、マルチスレッド型並列プロセッサ向けの並列化プログラムを出力するプログラム並列化装置において、
前記入力した逐次処理プログラムを解析してフォーク箇所の集合を決定するフォーク箇所決定部と、
前記フォーク箇所決定部により決定されたフォーク箇所の集合に含まれるフォーク箇所の最適な組合せを決定するフォーク箇所組合せ決定部と、
前記フォーク箇所組合せ決定部により決定されたフォーク箇所の最適な組合せに基づいてマルチスレッド型並列プロセッサ向けの並列化プログラムを生成する並列化プログラム出力部とを備え、
前記フォーク箇所組合せ決定部は、逐次処理プログラムを或る入力データの下で実行したときの逐次実行トレース情報を複数の区間に分割し、各分割区間毎にその分割区間において出現するフォーク箇所の集合に含まれるフォーク箇所の最適な組合せを求め、該求めた各分割区間での最適な組合せを1つに統合するものであることを特徴とするプログラム並列化装置。 - 逐次処理プログラムを入力し、マルチスレッド型並列プロセッサ向けの並列化プログラムを出力するプログラム並列化装置において、
前記入力した逐次処理プログラムを解析してフォーク箇所の集合を決定するフォーク箇所決定部と、
前記フォーク箇所決定部により決定されたフォーク箇所の集合に含まれるフォーク箇所の最適な組合せを決定するフォーク箇所組合せ決定部と、
前記フォーク箇所組合せ決定部により決定されたフォーク箇所の最適な組合せに基づいてマルチスレッド型並列プロセッサ向けの並列化プログラムを生成する並列化プログラム出力部とを備え、
前記フォーク箇所組合せ決定部は、逐次処理プログラムを或る入力データの下で実行したときの逐次実行トレース情報を取得する逐次実行トレース情報取得部と、前記取得された逐次実行トレース情報を記憶する記憶部と、前記取得された逐次実行トレース情報を複数の区間に分割する分割部と、各分割区間毎にその分割区間の逐次実行トレース情報において出現するフォーク箇所の集合に含まれるフォーク箇所の最適な組合せを求める組合せ決定部と、前記求められた各分割区間での最適な組合せを記憶する記憶部と、それらの複数の最適な組合せを1つに統合する統合部とを備えることを特徴とするプログラム並列化装置。 - 前記組合せ決定部は、前記各分割区間毎にその分割区間において出現するフォーク箇所の集合からフォーク箇所の初期組合せを決定する初期組合せ決定部と、該初期組合せ決定部により前記各分割区間毎に決定された初期組合せを初期解として、反復改善法によって、並列実行性能のよりよい組合せを探索する組合せ改善部とを含むことを特徴とする請求項2記載のプログラム並列化装置。
- 前記フォーク箇所組合せ決定部は、逐次処理プログラムを或る入力データの下で実行した場合に或るフォーク箇所がn回出現し、各回におけるフォーク元ポイントからフォーク先ポイントまでの実行サイクル数がC1、C2、…、CNであった場合、その合計値を当該フォーク箇所の動的ブースト値と定義し、或るフォーク箇所と同時に実行できない他のフォーク箇所の集合を当該フォーク箇所の排他フォーク集合と定義するとき、前記各分割区間毎に各フォーク箇所毎の動的ブースト値および排他フォーク集合を求める動的フォーク情報取得部を備え、且つ、前記組合せ決定部は、前記各分割区間毎にその分割区間において出現するフォーク箇所の集合から、排他関係のないフォーク箇所の組合せであって、動的ブースト値の合計が最大になる初期組合せを決定する初期組合せ決定部と、該初期組合せ決定部により前記各分割区間毎に決定された初期組合せを初期解として、反復改善法によって、並列実行性能のよりよい組合せを探索する組合せ改善部とを含むことを特徴とする請求項2記載のプログラム並列化装置。
- 前記フォーク箇所組合せ決定部は、逐次処理プログラムを或る入力データの下で実行した場合に或るフォーク箇所がn回出現し、各回におけるフォーク元ポイントからフォーク先ポイントまでの実行サイクル数がC1、C2、…、CNであった場合、そのうちの最小のものを当該フォーク箇所の最小実行サイクル数と定義し、その合計値を当該フォーク箇所の動的ブースト値と定義し、或るフォーク箇所と同時に実行できない他のフォーク箇所の集合を当該フォーク箇所の排他フォーク集合と定義するとき、前記各分割区間毎に各フォーク箇所毎の最小実行サイクル数、動的ブースト値および排他フォーク集合を求める動的フォーク情報取得部と、前記フォーク箇所決定部により決定されたフォーク箇所の集合から、前記各分割区間毎に前記最小実行サイクル数および前記動的ブースト値が予め定められた足切り条件を満たすフォーク箇所を取り除いた集合を決定する動的足切り部とを備え、且つ、前記組合せ決定部は、前記動的足切り部により前記各分割区間毎に求められたフォーク箇所の集合から、排他関係のないフォーク箇所の組合せであって、動的ブースト値の合計が最大になる初期組合せを決定する初期組合せ決定部と、該初期組合せ決定部により前記各分割区間毎に決定された初期組合せを初期解として、反復改善法によって、並列実行性能のよりよい組合せを探索する組合せ改善部とを含むことを特徴とする請求項2記載のプログラム並列化装置。
- 前記統合部は、何れかの分割区間での最適な組合せに含まれ且つ全分割区間での動的ブースト値の合計が一定値以上のフォーク箇所の集合を、統合された最適組合せとするものであることを特徴とする請求項4または5記載のプログラム並列化装置。
- 前記統合部は、何れかの分割区間での最適な組合せに含まれ且つ全分割区間での動的ブースト値の合計から排他フォーク集合中の各フォーク箇所の全分割区間での動的ブースト値の合計を引いた値が一定値以上のフォーク箇所の集合を、統合された最適組合せとするものであることを特徴とする請求項4または5記載のプログラム並列化装置。
- 前記統合部は、排他関係のないフォーク箇所の組合せであって、全分割区間での動的ブースト値の合計が最大になる組合せを、統合された最適組合せとするものであることを特徴とする請求項4または5記載のプログラム並列化装置。
- 前記統合部は、何れかの分割区間での最適な組合せに含まれるフォーク箇所をノードとし、排他関係にあるフォーク箇所どうしをエッジで結んだグラフであって、各ノードにそのノードに対応するフォーク箇所の全分割区間での動的ブースト値の合計を重みとして付与した重み付きグラフを生成する手段と、前記重み付きグラフの重み最大独立集合を求める手段と、求められた重み最大独立集合に含まれるノードに対応するフォーク箇所の集合を、統合された最適組合せとして出力する手段とを含むことを特徴とする請求項8記載のプログラム並列化装置。
- a)フォーク箇所決定部が、入力した逐次処理プログラムを解析してフォーク箇所の集合を決定するステップ、
b)フォーク箇所組合せ決定部が、前記フォーク箇所決定部により決定されたフォーク箇所の集合に含まれるフォーク箇所の最適な組合せを決定するステップ、
c)並列プログラム出力部が、前記フォーク箇所組合せ決定部により決定されたフォーク箇所の最適な組合せに基づいてマルチスレッド型並列プロセッサ向けの並列化プログラムを生成するステップ、
を含み、且つ、前記ステップbは、逐次処理プログラムを或る入力データの下で実行したときの逐次実行トレース情報を複数の区間に分割し、各分割区間毎にその分割区間において出現するフォーク箇所の集合に含まれるフォーク箇所の最適な組合せを求め、該求めた各分割区間での最適な組合せを1つに統合する処理を含むことを特徴とするプログラム並列化方法。 - a)フォーク箇所決定部が、入力した逐次処理プログラムを解析してフォーク箇所の集合を決定するステップ、
b)フォーク箇所組合せ決定部が、前記フォーク箇所決定部により決定されたフォーク箇所の集合に含まれるフォーク箇所の最適な組合せを決定するステップ、
c)並列プログラム出力部が、前記フォーク箇所組合せ決定部により決定されたフォーク箇所の最適な組合せに基づいてマルチスレッド型並列プロセッサ向けの並列化プログラムを生成するステップ、
を含み、且つ、前記ステップbは、b−1)逐次実行トレース情報取得部が、逐次処理プログラムを或る入力データの下で実行したときの逐次実行トレース情報を取得するステップ、b−2)前記取得された逐次実行トレース情報を記憶部に記憶するステップ、b−3)分割部が、前記取得された逐次実行トレース情報を複数の区間に分割するステップ、b−4)組合せ決定部が、各分割区間毎にその分割区間の逐次実行トレース情報において出現するフォーク箇所の集合に含まれるフォーク箇所の最適な組合せを求めるステップ、b−5)前記求められた各分割区間での最適な組合せを記憶部に記憶するステップ、b−6)統合部が、各分割区間での最適な組合せを1つに統合するステップ、を含むことを特徴とするプログラム並列化方法。 - 前記ステップb−4は、b−4−1)初期組合せ決定部が、前記各分割区間毎にその分割区間において出現するフォーク箇所の集合からフォーク箇所の初期組合せを決定するステップ、b−4−2)組合せ改善部が、前記初期組合せ決定部により前記各分割区間毎に決定された初期組合せを初期解として、反復改善法によって、並列実行性能のよりよい組合せを探索するステップ、を含むことを特徴とする請求項11記載のプログラム並列化方法。
- 前記ステップbは、逐次処理プログラムを或る入力データの下で実行した場合に或るフォーク箇所がn回出現し、各回におけるフォーク元ポイントからフォーク先ポイントまでの実行サイクル数がC1、C2、…、CNであった場合、その合計値を当該フォーク箇所の動的ブースト値と定義し、或るフォーク箇所と同時に実行できない他のフォーク箇所の集合を当該フォーク箇所の排他フォーク集合と定義するとき、動的フォーク情報取得部が、前記各分割区間毎に各フォーク箇所毎の動的ブースト値および排他フォーク集合を求めるステップを含み、且つ、前記ステップb−4は、b−4−1)初期組合せ決定部が、前記各分割区間毎にその分割区間において出現するフォーク箇所の集合から、排他関係のないフォーク箇所の組合せであって、動的ブースト値の合計が最大になる初期組合せを決定するステップ、b−4−2)組合せ改善部が、前記初期組合せ決定部により前記各分割区間毎に決定された初期組合せを初期解として、反復改善法によって、並列実行性能のよりよい組合せを探索するステップ、を含むことを特徴とする請求項11記載のプログラム並列化方法。
- 前記ステップbは、逐次処理プログラムを或る入力データの下で実行した場合に或るフォーク箇所がn回出現し、各回におけるフォーク元ポイントからフォーク先ポイントまでの実行サイクル数がC1、C2、…、CNであった場合、そのうちの最小のものを当該フォーク箇所の最小実行サイクル数と定義し、その合計値を当該フォーク箇所の動的ブースト値と定義し、或るフォーク箇所と同時に実行できない他のフォーク箇所の集合を当該フォーク箇所の排他フォーク集合と定義するとき、動的フォーク情報取得部が、前記各分割区間毎に各フォーク箇所毎の最小実行サイクル数、動的ブースト値および排他フォーク集合を求めるステップ、動的足切り部が、前記フォーク箇所決定部により決定されたフォーク箇所の集合から、前記各分割区間毎に前記最小実行サイクル数および前記動的ブースト値が予め定められた足切り条件を満たすフォーク箇所を取り除いた集合を決定するステップを含み、且つ、前記ステップb−4は、b−4−1)初期組合せ決定部が、前記動的足切り部により前記各分割区間毎に求められたフォーク箇所の集合から、排他関係のないフォーク箇所の組合せであって、動的ブースト値の合計が最大になる初期組合せを決定するステップ、b−4−2)組合せ改善部が、前記初期組合せ決定部により前記各分割区間毎に決定された初期組合せを初期解として、反復改善法によって、並列実行性能のよりよい組合せを探索するステップ、を含むことを特徴とする請求項11記載のプログラム並列化方法。
- 前記ステップb−6は、何れかの分割区間での最適な組合せに含まれ且つ全分割区間での動的ブースト値の合計が一定値以上のフォーク箇所の集合を、統合された最適組合せとすることを特徴とする請求項13または14記載のプログラム並列化方法。
- 前記ステップb−6は、何れかの分割区間での最適な組合せに含まれ且つ全分割区間での動的ブースト値の合計から排他フォーク集合中の各フォーク箇所の全分割区間での動的ブースト値の合計を引いた値が一定値以上のフォーク箇所の集合を、統合された最適組合せとすることを特徴とする請求項13または14記載のプログラム並列化方法。
- 前記ステップb−6は、排他関係のないフォーク箇所の組合せであって、全分割区間での動的ブースト値の合計が最大になる組合せを、統合された最適組合せとすることを特徴とする請求項13または14記載のプログラム並列化方法。
- 前記ステップb−6は、b−6−1)何れかの分割区間での最適な組合せに含まれるフォーク箇所をノードとし、排他関係にあるフォーク箇所どうしをエッジで結んだグラフであって、各ノードにそのノードに対応するフォーク箇所の全分割区間での動的ブースト値の合計を重みとして付与した重み付きグラフを生成するステップ、b−6−2)前記重み付きグラフの重み最大独立集合を求めるステップ、b−6−3)求められた重み最大独立集合に含まれるノードに対応するフォーク箇所の集合を、統合された最適組合せとして出力するステップ、を含むことを特徴とする請求項17記載のプログラム並列化方法。
- 逐次処理プログラムを入力し、マルチスレッド型並列プロセッサ向けの並列化プログラムを出力するプログラム並列化装置を構成するコンピュータを、
前記入力した逐次処理プログラムを解析してフォーク箇所の集合を決定するフォーク箇所決定手段、
前記フォーク箇所決定手段により決定されたフォーク箇所の集合に含まれるフォーク箇所の最適な組合せを決定するフォーク箇所組合せ決定手段、
前記フォーク箇所組合せ決定手段により決定されたフォーク箇所の最適な組合せに基づいてマルチスレッド型並列プロセッサ向けの並列化プログラムを生成する並列化プログラム出力手段、
として機能させ、且つ、前記フォーク箇所組合せ決定手段は、逐次処理プログラムを或る入力データの下で実行したときの逐次実行トレース情報を複数の区間に分割し、各分割区間毎にその分割区間において出現するフォーク箇所の集合に含まれるフォーク箇所の最適な組合せを求め、該求めた各分割区間での最適な組合せを1つに統合するものであることを特徴とするプログラム。 - 逐次処理プログラムを入力し、マルチスレッド型並列プロセッサ向けの並列化プログラムを出力するプログラム並列化装置を構成するコンピュータを、
前記入力した逐次処理プログラムを解析してフォーク箇所の集合を決定するフォーク箇所決定手段、
前記フォーク箇所決定手段により決定されたフォーク箇所の集合に含まれるフォーク箇所の最適な組合せを決定するフォーク箇所組合せ決定手段、
前記フォーク箇所組合せ決定手段により決定されたフォーク箇所の最適な組合せに基づいてマルチスレッド型並列プロセッサ向けの並列化プログラムを生成する並列化プログラム出力手段、
として機能させ、且つ、前記フォーク箇所組合せ決定手段は、逐次処理プログラムを或る入力データの下で実行したときの逐次実行トレース情報を取得して記憶部に記憶する逐次実行トレース情報取得部と、前記取得された逐次実行トレース情報を複数の区間に分割する分割部と、各分割区間毎にその分割区間の逐次実行トレース情報において出現するフォーク箇所の集合に含まれるフォーク箇所の最適な組合せを求めて記憶部に記憶する組合せ決定部と、それらの複数の最適な組合せを1つに統合する統合部とを備えることを特徴とするプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004194053A JP3901182B2 (ja) | 2004-06-30 | 2004-06-30 | プログラム並列化装置及びその方法並びにプログラム |
GB0513305A GB2415813A (en) | 2004-06-30 | 2005-06-29 | Program parallelising apparatus, method and program for compiling an optimised parallelised program |
US11/168,740 US20060005194A1 (en) | 2004-06-30 | 2005-06-29 | Program parallelizing apparatus, program parallelizing method, and program parallelizing program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004194053A JP3901182B2 (ja) | 2004-06-30 | 2004-06-30 | プログラム並列化装置及びその方法並びにプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006018447A true JP2006018447A (ja) | 2006-01-19 |
JP3901182B2 JP3901182B2 (ja) | 2007-04-04 |
Family
ID=34858552
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004194053A Expired - Fee Related JP3901182B2 (ja) | 2004-06-30 | 2004-06-30 | プログラム並列化装置及びその方法並びにプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20060005194A1 (ja) |
JP (1) | JP3901182B2 (ja) |
GB (1) | GB2415813A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008041442A1 (fr) * | 2006-09-29 | 2008-04-10 | Fujitsu Limited | Procédé de création de programme par parallélisation, dispositif de création de programme par parallélisation, et programme de création de programme par parallélisation |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4405365B2 (ja) * | 2004-10-27 | 2010-01-27 | パナソニック株式会社 | プログラム変換装置及び方法 |
CN101329638B (zh) * | 2007-06-18 | 2011-11-09 | 国际商业机器公司 | 程序代码的并行性的分析方法和系统 |
JP5165969B2 (ja) * | 2007-08-29 | 2013-03-21 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラムのコンパイルのために変数にレジスタを割り付ける技術 |
US8495636B2 (en) * | 2007-12-19 | 2013-07-23 | International Business Machines Corporation | Parallelizing single threaded programs by performing look ahead operation on the single threaded program to identify plurality of instruction threads prior to execution |
US8549470B2 (en) | 2008-12-11 | 2013-10-01 | The Mathworks, Inc. | Multi-threaded subgraph execution control in a graphical modeling environment |
US8756562B2 (en) * | 2008-12-11 | 2014-06-17 | The Mathworks, Inc. | Subgraph execution control in a graphical modeling environment |
US8954546B2 (en) | 2013-01-25 | 2015-02-10 | Concurix Corporation | Tracing with a workload distributor |
US8997063B2 (en) | 2013-02-12 | 2015-03-31 | Concurix Corporation | Periodicity optimization in an automated tracing system |
US8924941B2 (en) | 2013-02-12 | 2014-12-30 | Concurix Corporation | Optimization analysis using similar frequencies |
US20130283281A1 (en) | 2013-02-12 | 2013-10-24 | Concurix Corporation | Deploying Trace Objectives using Cost Analyses |
US20130219372A1 (en) | 2013-03-15 | 2013-08-22 | Concurix Corporation | Runtime Settings Derived from Relationships Identified in Tracer Data |
US9575874B2 (en) | 2013-04-20 | 2017-02-21 | Microsoft Technology Licensing, Llc | Error list and bug report analysis for configuring an application tracer |
US9292415B2 (en) | 2013-09-04 | 2016-03-22 | Microsoft Technology Licensing, Llc | Module specific tracing in a shared module environment |
EP3069241B1 (en) | 2013-11-13 | 2018-08-15 | Microsoft Technology Licensing, LLC | Application execution path tracing with configurable origin definition |
US9996354B2 (en) * | 2015-01-09 | 2018-06-12 | International Business Machines Corporation | Instruction stream tracing of multi-threaded processors |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4205370A (en) * | 1975-04-16 | 1980-05-27 | Honeywell Information Systems Inc. | Trace method and apparatus for use in a data processing system |
CA2078315A1 (en) * | 1991-09-20 | 1993-03-21 | Christopher L. Reeve | Parallel processing apparatus and method for utilizing tiling |
US5450554A (en) * | 1991-11-11 | 1995-09-12 | Matsushita Electric Industrial Co., Ltd. | Apparatus for detecting possibility of parallel processing and method thereof and a program translation apparatus utilized therein |
JP3311462B2 (ja) * | 1994-02-23 | 2002-08-05 | 富士通株式会社 | コンパイル処理装置 |
JP2882475B2 (ja) * | 1996-07-12 | 1999-04-12 | 日本電気株式会社 | スレッド実行方法 |
JP2970553B2 (ja) * | 1996-08-30 | 1999-11-02 | 日本電気株式会社 | マルチスレッド実行方法 |
US6230313B1 (en) * | 1998-12-23 | 2001-05-08 | Cray Inc. | Parallelism performance analysis based on execution trace information |
JP3641997B2 (ja) * | 2000-03-30 | 2005-04-27 | 日本電気株式会社 | プログラム変換装置及び方法並びに記録媒体 |
JP3702813B2 (ja) * | 2001-07-12 | 2005-10-05 | 日本電気株式会社 | マルチスレッド実行方法及び並列プロセッサシステム |
JP3702814B2 (ja) * | 2001-07-12 | 2005-10-05 | 日本電気株式会社 | マルチスレッド実行方法及び並列プロセッサシステム |
JP4042604B2 (ja) * | 2003-03-31 | 2008-02-06 | 日本電気株式会社 | プログラム並列化装置,プログラム並列化方法およびプログラム並列化プログラム |
-
2004
- 2004-06-30 JP JP2004194053A patent/JP3901182B2/ja not_active Expired - Fee Related
-
2005
- 2005-06-29 GB GB0513305A patent/GB2415813A/en not_active Withdrawn
- 2005-06-29 US US11/168,740 patent/US20060005194A1/en not_active Abandoned
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008041442A1 (fr) * | 2006-09-29 | 2008-04-10 | Fujitsu Limited | Procédé de création de programme par parallélisation, dispositif de création de programme par parallélisation, et programme de création de programme par parallélisation |
JP2008090541A (ja) * | 2006-09-29 | 2008-04-17 | Fujitsu Ltd | 並列化プログラム生成方法、並列化プログラム生成装置、及び並列化プログラム生成プログラム |
Also Published As
Publication number | Publication date |
---|---|
JP3901182B2 (ja) | 2007-04-04 |
GB2415813A (en) | 2006-01-04 |
GB0513305D0 (en) | 2005-08-03 |
US20060005194A1 (en) | 2006-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3901181B2 (ja) | プログラム並列化装置及びその方法並びにプログラム | |
JP3901180B2 (ja) | プログラム並列化装置及びその方法並びにプログラム | |
JP3901182B2 (ja) | プログラム並列化装置及びその方法並びにプログラム | |
JP4957729B2 (ja) | プログラム並列化方法、プログラム並列化装置及びプログラム | |
US5828886A (en) | Compiling apparatus and method for promoting an optimization effect of a program | |
JP3220055B2 (ja) | 機械語命令列またはアセンブリ言語命令列を最適化する最適化装置、及び、高級言語で記載されたソースプログラムを機械語またはアセンブリ言語の命令列に変換するコンパイラ装置。 | |
JP4042604B2 (ja) | プログラム並列化装置,プログラム並列化方法およびプログラム並列化プログラム | |
US6539541B1 (en) | Method of constructing and unrolling speculatively counted loops | |
US20110119660A1 (en) | Program conversion apparatus and program conversion method | |
US10430191B2 (en) | Methods and apparatus to compile instructions for a vector of instruction pointers processor architecture to enable speculative execution and avoid data corruption | |
WO2015067488A1 (en) | A data processing apparatus and method for scheduling sets of threads on parallel processing lanes | |
JPH0883185A (ja) | コンパイラ | |
JP2008009957A (ja) | コンパイル装置 | |
JPH04213118A (ja) | プログラム翻訳装置およびプログラム翻訳方法 | |
KR101962250B1 (ko) | 재구성가능 아키텍처를 위한 스케줄러 및 스케줄링 방법 | |
JP4293223B2 (ja) | プログラム並列化装置及びその方法並びにプログラム | |
JP6488739B2 (ja) | 並列化コンパイル方法、及び、並列化コンパイラ | |
CN108027736B (zh) | 使用通过对物理寄存器预分配的乱序重命名的运行时代码并行化 | |
JP2012014526A (ja) | プログラムコードの構造変換装置、並びにコード構造変換プログラム | |
JP2016143377A (ja) | 並列化コンパイル方法、並列化コンパイラ、及び、電子装置 | |
KR100970758B1 (ko) | 복합 명령어 선택시 무가치 복합 명령어를 제거하여 코드를 최적화하기 위한 코드 생성 장치 및 그 코드 생성 방법 | |
JP2017224288A (ja) | 並列化方法、並列化ツール、車載装置 | |
JP2011181114A (ja) | プログラム変換装置、プログラム変換方法及び記録媒体 | |
KR102207775B1 (ko) | 네트워크 스위치 병렬화를 위한 데이터 의존성 기반의 데이터 평면 정적 분석 방법 및 이를 이용한 병렬화 장치 | |
Ying | Scaling sequential code with hardware-software co-design for fine-grain speculative parallelization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060822 |
|
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: 20061212 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061225 |
|
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: 20110112 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110112 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120112 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130112 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130112 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |