JP3901180B2 - プログラム並列化装置及びその方法並びにプログラム - Google Patents
プログラム並列化装置及びその方法並びにプログラム Download PDFInfo
- Publication number
- JP3901180B2 JP3901180B2 JP2004194051A JP2004194051A JP3901180B2 JP 3901180 B2 JP3901180 B2 JP 3901180B2 JP 2004194051 A JP2004194051 A JP 2004194051A JP 2004194051 A JP2004194051 A JP 2004194051A JP 3901180 B2 JP3901180 B2 JP 3901180B2
- Authority
- JP
- Japan
- Prior art keywords
- fork
- program
- combination
- unit
- sequential processing
- 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
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
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Description
図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と比較して、フォーク箇所組合せ決定部120の代わりにフォーク箇所組合せ決定部120Aを備えている点で相違する。
図20−1を参照すると、本実施の形態にかかるプログラム並列化装置100Bは、第1の実施の形態にかかるプログラム並列化装置100と比較して、フォーク箇所決定部110およびフォーク箇所組合せ決定部120の代わりにフォーク箇所決定部110Bおよびフォーク箇所組合せ決定部120Bを備えている点で相違する。
以上、本発明の実施の形態について説明したが、本発明は以上の実施の形態にのみ限定されず、その他各種の付加変更が可能である。例えば、前記各実施の形態において、初期組合せ決定部1233が動的ブースト値の大きい上位幾つかのフォーク箇所の組合せを初期組合せとして生成する構成や、組合せ改善部1234を省略した構成にすることも可能である。
101…逐次処理プログラム
102、104〜106…記憶装置
103…並列化プログラム
110…フォーク箇所決定部
120…フォーク箇所組合せ決定部
130…並列化プログラム出力部
Claims (28)
- 逐次処理プログラムを入力し、マルチスレッド型並列プロセッサ向けの並列化プログラムを出力するプログラム並列化装置において、
前記入力した逐次処理プログラムを解析して、並列化の対象とする逐次処理プログラムおよびフォーク箇所の集合を決定するフォーク箇所決定部と、
前記フォーク箇所決定部により決定されたフォーク箇所の集合に含まれるフォーク箇所の最適な組合せを決定するフォーク箇所組合せ決定部と、
前記フォーク箇所組合せ決定部により決定されたフォーク箇所の最適な組合せに基づいて前記並列化の対象とする逐次処理プログラムからマルチスレッド型並列プロセッサ向けの並列化プログラムを生成する並列化プログラム出力部とを備え、
前記フォーク箇所決定部は、前記入力した逐次処理プログラムの一部の命令列を他の命令列に変換した少なくとも1つの等価な逐次処理プログラムおよび前記入力した逐次処理プログラム毎にフォーク箇所の集合および並列実行性能の指標値を求め、並列実行性能の指標値が最も優れているフォーク箇所の集合および逐次処理プログラムを選択するものであることを特徴とするプログラム並列化装置。 - 前記フォーク箇所決定部は、前記入力した逐次処理プログラムを記憶する記憶部と、前記入力した逐次処理プログラムの一部の命令列を等価な他の命令列に変換するプログラム変換部と、該変換されて生成された逐次処理プログラムを記憶する記憶部と、前記入力した逐次処理プログラムおよび前記プログラム変換部によって生成された少なくとも1つの変換後の逐次処理プログラム毎にフォーク箇所の集合を求めるフォーク箇所抽出部と、該抽出されたフォーク箇所の集合を記憶する記憶部と、前記入力した逐次処理プログラムおよび前記プログラム変換部によって生成された少なくとも1つの変換後の逐次処理プログラム毎に前記求められたフォーク箇所の集合の並列実行性能の指標値を求める算出部と、前記算出された並列実行性能の指標値が最も優れているフォーク箇所の集合および逐次処理プログラムを選択する選択部とを有することを特徴とする請求項1記載のプログラム並列化装置。
- フォーク箇所のフォーク元ポイントからフォーク先ポイントまでの全命令の重みの合計値を当該フォーク箇所の静的ブースト値と定義するとき、前記並列実行性能の指標値として、フォーク箇所の集合に含まれる各フォーク箇所の静的ブースト値の合計値を用いることを特徴とする請求項1または2記載のプログラム並列化装置。
- 前記並列実行性能の指標値として、フォーク箇所の集合に含まれるフォーク箇所の総数を用いることを特徴とする請求項1または2記載のプログラム並列化装置。
- 前記プログラム変換部は、変数の生存区間が狭まるように逐次処理プログラムの命令の並べ替えを行うものであることを特徴とする請求項2記載のプログラム並列化装置。
- 前記プログラム変換部は、変数の割り当てられるレジスタができるだけ変わらないように逐次処理プログラムのレジスタ割当の変更を行うものであることを特徴とする請求項2記載のプログラム並列化装置。
- 前記並列化プログラム出力部は、前記フォーク箇所組合せ決定部により決定された最適な組合せ中のフォーク箇所のフォーク元ポイントおよびフォーク先ポイントをまたいだ命令の入れ替えは行わないという制限の下に、変数の生存区間が拡がるように命令の並べ替えを行う後処理部を含むことを特徴とする請求項5記載のプログラム並列化装置。
- 前記フォーク箇所決定部は、フォーク箇所のフォーク元ポイントからフォーク先ポイントまでの全命令の重みの合計値を当該フォーク箇所の静的ブースト値と定義するとき、前記選択されたフォーク箇所の集合に含まれる各フォーク箇所毎に前記静的ブースト値を求め、該求めた静的ブースト値が予め定められた静的足切り条件を満たすフォーク箇所を取り除く静的足切り部を含むことを特徴とする請求項1または2記載のプログラム並列化装置。
- 前記静的足切り条件は上限閾値を含み、前記静的足切り部は静的ブースト値が上限閾値より大きなフォーク箇所を取り除くことを特徴とする請求項8記載のプログラム並列化装置。
- 前記静的足切り条件は下限閾値を含み、前記静的足切り部は静的ブースト値が下限閾値より小さなフォーク箇所を取り除くことを特徴とする請求項8記載のプログラム並列化装置。
- 前記フォーク箇所組合せ決定部は、逐次処理プログラムを或る入力データの下で実行した場合に或るフォーク箇所がn回出現し、各回におけるフォーク元ポイントからフォーク先ポイントまでの実行サイクル数がC1、C2、…、CNであった場合、そのうちの最小のものを当該フォーク箇所の最小実行サイクル数と定義するとき、前記フォーク箇所決定部により決定されたフォーク箇所の集合に含まれる各フォーク箇所毎に、前記最小実行サイクル数を求め、該求めた最小実行サイクル数が予め定められた動的足切り条件の上限閾値より大きいフォーク箇所を前記集合から取り除く動的足切り部を含むことを特徴とする請求項1または2記載のプログラム並列化装置。
- 前記フォーク箇所組合せ決定部は、逐次処理プログラムを或る入力データの下で実行した場合に或るフォーク箇所がn回出現し、各回におけるフォーク元ポイントからフォーク先ポイントまでの実行サイクル数がC1、C2、…、CNであった場合、その合計値を当該フォーク箇所の動的ブースト値と定義するとき、前記フォーク箇所決定部により決定されたフォーク箇所の集合に含まれる各フォーク箇所毎に、前記動的ブースト値を求め、該求めた動的ブースト値が予め定められた動的足切り条件の下限閾値より小さなフォーク箇所を前記集合から取り除く動的足切り部を含むことを特徴とする請求項1または2記載のプログラム並列化装置。
- 前記フォーク箇所組合せ決定部は、逐次処理プログラムを或る入力データの下で実行した場合に或るフォーク箇所がn回出現し、各回におけるフォーク元ポイントからフォーク先ポイントまでの実行サイクル数がC1、C2、…、CNであった場合、その合計値を当該フォーク箇所の動的ブースト値と定義し、或るフォーク箇所と同時に実行できない他のフォーク箇所の集合を当該フォーク箇所の排他フォーク集合と定義するとき、前記フォーク箇所決定部で決定された最適な逐次処理プログラムを或る入力データの下で実行したときの各フォーク箇所毎の動的ブースト値および排他フォーク集合を求める動的フォーク情報取得部と、排他関係のないフォーク箇所の組合せであって、動的ブースト値の合計が最大になる組合せを生成する組合せ決定部とを含むことを特徴とする請求項1または2記載のプログラム並列化装置。
- 前記組合せ決定部は、フォーク箇所の集合に含まれる各フォーク箇所をノードとし、排他関係にあるフォーク箇所どうしをエッジで結んだグラフであって、各ノードにそのノードに対応するフォーク箇所の動的ブースト値を重みとして付与した重み付きグラフを生成する手段と、前記重み付きグラフの重み最大独立集合を求める手段と、求められた重み最大独立集合に含まれるノードに対応するフォーク箇所の集合を、排他関係のないフォーク箇所の組合せであって、動的ブースト値の合計が最大になる組合せとして出力する手段とを含むことを特徴とする請求項13記載のプログラム並列化装置。
- 前記フォーク箇所組合せ決定部は、前記組合せ決定部が決定した組合せを初期解として、反復改善法によって、並列実行性能のよりよい組合せを探索する組合せ改善部を含むことを特徴とする請求項14記載のプログラム並列化装置。
- 前記フォーク箇所組合せ決定部は、前記フォーク箇所決定部が決定した逐次処理プログラムを或る入力データの下で実行したときの逐次実行トレース情報を複数の区間に分割し、各分割区間毎に、前記フォーク箇所決定部が決定したフォーク箇所の集合に含まれるフォーク箇所のうち当該分割区間において出現するフォーク箇所の集合からフォーク箇所の最適な組合せを求め、該求めた各分割区間でのフォーク箇所の最適な組合せを統合するものであることを特徴とする請求項1または2記載のプログラム並列化装置。
- 前記フォーク箇所組合せ決定部は、前記各分割区間毎にその分割区間において出現するフォーク箇所の集合からフォーク箇所の初期組合せを決定する初期組合せ決定部と、該初期組合せ決定部により前記各分割区間毎に決定された初期組合せを初期解として、反復改善法によって、並列実行性能のよりよい組合せを探索する組合せ改善部と、該組合せ改善部により前記各分割区間毎に決定されたフォーク箇所の最適な組合せを統合する統合部とを含むことを特徴とする請求項16記載のプログラム並列化装置。
- 前記フォーク箇所組合せ決定部は、逐次処理プログラムを或る入力データの下で実行した場合に或るフォーク箇所がn回出現し、各回におけるフォーク元ポイントからフォーク先ポイントまでの実行サイクル数がC1、C2、…、CNであった場合、その合計値を当該フォーク箇所の動的ブースト値と定義し、或るフォーク箇所と同時に実行できない他のフォーク箇所の集合を当該フォーク箇所の排他フォーク集合と定義するとき、前記各分割区間毎に各フォーク箇所毎の動的ブースト値および排他フォーク集合を求める動的フォーク情報取得部と、前記各分割区間毎にその分割区間において出現するフォーク箇所の集合から、排他関係のないフォーク箇所の組合せであって、動的ブースト値の合計が最大になる初期組合せを決定する初期組合せ決定部と、該初期組合せ決定部により前記各分割区間毎に決定された初期組合せを初期解として、反復改善法によって、並列実行性能のよりよい組合せを探索する組合せ改善部と、該組合せ改善部により前記各分割区間毎に決定されたフォーク箇所の最適な組合せを統合する統合部とを含むことを特徴とする請求項16記載のプログラム並列化装置。
- 前記フォーク箇所組合せ決定部は、逐次処理プログラムを或る入力データの下で実行した場合に或るフォーク箇所がn回出現し、各回におけるフォーク元ポイントからフォーク先ポイントまでの実行サイクル数がC1、C2、…、CNであった場合、そのうちの最小のものを当該フォーク箇所の最小実行サイクル数と定義し、その合計値を当該フォーク箇所の動的ブースト値と定義し、或るフォーク箇所と同時に実行できない他のフォーク箇所の集合を当該フォーク箇所の排他フォーク集合と定義するとき、前記各分割区間毎に各フォーク箇所毎の最小実行サイクル数、動的ブースト値および排他フォーク集合を求める動的フォーク情報取得部と、前記フォーク箇所決定部により決定されたフォーク箇所の集合から、前記各分割区間毎に前記最小実行サイクル数および前記動的ブースト値が予め定められた足切り条件を満たすフォーク箇所を取り除いた集合を決定する動的足切り部と、前記動的足切り部により前記各分割区間毎に求められたフォーク箇所の集合から、排他関係のないフォーク箇所の組合せであって、動的ブースト値の合計が最大になる初期組合せを決定する初期組合せ決定部と、該初期組合せ決定部により前記各分割区間毎に決定された初期組合せを初期解として、反復改善法によって、並列実行性能のよりよい組合せを探索する組合せ改善部と、該組合せ改善部により前記各分割区間毎に決定されたフォーク箇所の最適な組合せを統合する統合部とを含むことを特徴とする請求項16記載のプログラム並列化装置。
- a)フォーク箇所決定部が、逐次処理プログラムを入力して解析し、並列化の対象とする逐次処理プログラムおよびフォーク箇所の集合を決定するステップ、
b)フォーク箇所組合せ決定部が、前記フォーク箇所決定部により決定されたフォーク箇所の集合に含まれるフォーク箇所の最適な組合せを決定するステップ、
c)並列化プログラム出力部が、前記フォーク箇所組合せ決定部により決定されたフォーク箇所の最適な組合せに基づいて前記並列化の対象とする逐次処理プログラムからマルチスレッド型並列プロセッサ向けの並列化プログラムを生成するステップ、
を含み、かつ、前記ステップaは、前記入力した逐次処理プログラムの一部の命令列を他の命令列に変換した少なくとも1つの等価な逐次処理プログラムおよび前記入力した逐次処理プログラム毎にフォーク箇所の集合および並列実行性能の指標値を求め、並列実行性能の指標値が最も優れているフォーク箇所の集合および逐次処理プログラムを選択することを特徴とするプログラム並列化方法。 - 前記ステップaは、
a−1)前記入力した逐次処理プログラムを記憶部に記憶するステップ、
a−2)プログラム変換部が、前記入力した逐次処理プログラムの一部の命令列を等価な他の命令列に変換するステップ、
a−3)前記変換されて生成された逐次処理プログラムを記憶部に記憶するステップ、
a−4)フォーク箇所抽出部が、前記入力した逐次処理プログラムおよび前記プログラム変換部によって生成された少なくとも1つの変換後の逐次処理プログラム毎にフォーク箇所の集合を求めるステップ、
a−5)前記抽出されたフォーク箇所の集合を記憶部に記憶するステップ、
a−6)算出部が、前記入力した逐次処理プログラムおよび前記プログラム変換部によって生成された少なくとも1つの変換後の逐次処理プログラム毎に前記求められたフォーク箇所の集合の並列実行性能の指標値を求めるステップ、
a−7)選択部が、前記算出された並列実行性能の指標値が最も優れているフォーク箇所の集合および逐次処理プログラムを選択するステップ、
を含むことを特徴とする請求項20記載のプログラム並列化方法。 - フォーク箇所のフォーク元ポイントからフォーク先ポイントまでの全命令の重みの合計値を当該フォーク箇所の静的ブースト値と定義するとき、前記並列実行性能の指標値として、フォーク箇所の集合に含まれる各フォーク箇所の静的ブースト値の合計値を用いることを特徴とする請求項20または21記載のプログラム並列化方法。
- 前記並列実行性能の指標値として、フォーク箇所の集合に含まれるフォーク箇所の総数を用いることを特徴とする請求項20または21記載のプログラム並列化方法。
- 前記プログラム変換部は、変数の生存区間が狭まるように逐次処理プログラムの命令の並べ替えを行うことを特徴とする請求項21記載のプログラム並列化方法。
- 前記プログラム変換部は、変数の割り当てられるレジスタができるだけ変わらないように逐次処理プログラムのレジスタ割当の変更を行うものであることを特徴とする請求項21記載のプログラム並列化方法。
- 前記並列化プログラム出力部は、前記フォーク箇所組合せ決定部により決定された最適な組合せ中のフォーク箇所のフォーク元ポイントおよびフォーク先ポイントをまたいだ命令の入れ替えは行わないという制限の下に、変数の生存区間が拡がるように命令の並べ替えを行うことを特徴とする請求項24記載のプログラム並列化方法。
- 逐次処理プログラムを入力し、マルチスレッド型並列プロセッサ向けの並列化プログラムを出力するプログラム並列化装置を構成するコンピュータを、
前記入力した逐次処理プログラムの一部の命令列を他の命令列に変換した少なくとも1つの等価な逐次処理プログラムおよび前記入力した逐次処理プログラム毎にフォーク箇所の集合および並列実行性能の指標値を求め、並列実行性能の指標値が最も優れているフォーク箇所の集合を選択すると共に、そのフォーク箇所の集合を抽出した逐次処理プログラムを並列化の対象とするフォーク箇所決定手段、
前記フォーク箇所決定手段により決定されたフォーク箇所の集合に含まれるフォーク箇所の最適な組合せを決定するフォーク箇所組合せ決定手段、
前記フォーク箇所組合せ決定手段により決定されたフォーク箇所の最適な組合せに基づいて前記並列化の対象とする逐次処理プログラムからマルチスレッド型並列プロセッサ向けの並列化プログラムを生成する並列化プログラム出力手段、
として機能させることを特徴とするプログラム。 - 前記フォーク箇所決定手段は、前記入力した逐次処理プログラムを記憶部から読み出してその一部の命令列を等価な他の命令列に変換し、記憶部に書き出すプログラム変換手段と、前記入力した逐次処理プログラムおよび前記プログラム変換部によって生成された少なくとも1つの変換後の逐次処理プログラムを記憶部から読み出して、それぞれ毎にフォーク箇所の集合を求め、記憶部に書き出すフォーク箇所抽出手段と、前記入力した逐次処理プログラムおよび前記プログラム変換部によって生成された少なくとも1つの変換後の逐次処理プログラム毎に前記求められたフォーク箇所の集合を記憶部から読み出して、それぞれ毎に並列実行性能の指標値を求め、記憶部に書き出す算出手段と、前記算出された並列実行性能の指標値を記憶部から読み出して比較し、最も優れているフォーク箇所の集合および逐次処理プログラムを選択する選択手段とを有することを特徴とする請求項27記載のプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004194051A JP3901180B2 (ja) | 2004-06-30 | 2004-06-30 | プログラム並列化装置及びその方法並びにプログラム |
US11/169,113 US20060005179A1 (en) | 2004-06-30 | 2005-06-29 | Program parallelizing apparatus, program parallelizing method, and program parallelizing program |
GB0513301A GB2415811A (en) | 2004-06-30 | 2005-06-29 | Compiler for producing an optimised parallel program using execution performance index values |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004194051A JP3901180B2 (ja) | 2004-06-30 | 2004-06-30 | プログラム並列化装置及びその方法並びにプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006018445A JP2006018445A (ja) | 2006-01-19 |
JP3901180B2 true JP3901180B2 (ja) | 2007-04-04 |
Family
ID=34858550
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004194051A Expired - Fee Related JP3901180B2 (ja) | 2004-06-30 | 2004-06-30 | プログラム並列化装置及びその方法並びにプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20060005179A1 (ja) |
JP (1) | JP3901180B2 (ja) |
GB (1) | GB2415811A (ja) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7590977B2 (en) * | 2005-10-13 | 2009-09-15 | International Business Machines Corporation | Method and system for reducing memory reference overhead associated with threadprivate variables in parallel programs |
GB2443277B (en) * | 2006-10-24 | 2011-05-18 | Advanced Risc Mach Ltd | Performing diagnostics operations upon an asymmetric multiprocessor apparatus |
JP4957729B2 (ja) * | 2007-01-25 | 2012-06-20 | 日本電気株式会社 | プログラム並列化方法、プログラム並列化装置及びプログラム |
JP2008305337A (ja) * | 2007-06-11 | 2008-12-18 | Panasonic Corp | プログラム変換装置、プログラム変換方法、プログラム、記憶媒体、デバッグ装置、デバッグ方法及びプログラム開発システム |
JP2009129179A (ja) * | 2007-11-22 | 2009-06-11 | Toshiba Corp | プログラム並列化支援装置およびプログラム並列化支援方法 |
US10621092B2 (en) | 2008-11-24 | 2020-04-14 | Intel Corporation | Merging level cache and data cache units having indicator bits related to speculative execution |
US9672019B2 (en) * | 2008-11-24 | 2017-06-06 | Intel Corporation | Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads |
US8495342B2 (en) * | 2008-12-16 | 2013-07-23 | International Business Machines Corporation | Configuring plural cores to perform an instruction having a multi-core characteristic |
GB0911099D0 (en) | 2009-06-26 | 2009-08-12 | Codeplay Software Ltd | Processing method |
US9141359B2 (en) * | 2010-12-13 | 2015-09-22 | Hewlett-Packard Development Company, L.P. | Procedural concurrency graph generator |
US8813054B2 (en) | 2010-12-13 | 2014-08-19 | Hewlett-Packard Development Company, L. P. | Sequential-code optimization of parallel code based on identifying siloed program references |
US9003383B2 (en) * | 2011-09-15 | 2015-04-07 | You Know Solutions, LLC | Analytic engine to parallelize serial code |
US9417855B2 (en) | 2011-09-30 | 2016-08-16 | Intel Corporation | Instruction and logic to perform dynamic binary translation |
JP6021342B2 (ja) * | 2012-02-09 | 2016-11-09 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 並列化方法、システム、及びプログラム |
US8789022B2 (en) | 2012-03-31 | 2014-07-22 | Bmc Software, Inc. | Self-evolving computing service template translation |
US8893080B2 (en) * | 2012-08-15 | 2014-11-18 | Telefonaktiebolaget L M Ericsson (Publ) | Parallelization of dataflow actors with local state |
US8954546B2 (en) | 2013-01-25 | 2015-02-10 | Concurix Corporation | Tracing with a workload distributor |
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 |
US8997063B2 (en) | 2013-02-12 | 2015-03-31 | Concurix Corporation | Periodicity optimization in an automated tracing system |
US9880842B2 (en) | 2013-03-15 | 2018-01-30 | Intel Corporation | Using control flow data structures to direct and track instruction execution |
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 |
US9891936B2 (en) | 2013-09-27 | 2018-02-13 | Intel Corporation | Method and apparatus for page-level monitoring |
CN105765528B (zh) | 2013-11-13 | 2019-09-24 | 微软技术许可有限责任公司 | 具有可配置原点定义的应用执行路径跟踪的方法、系统和介质 |
US9996354B2 (en) * | 2015-01-09 | 2018-06-12 | International Business Machines Corporation | Instruction stream tracing of multi-threaded processors |
CN110347400B (zh) * | 2019-06-13 | 2023-03-14 | 西安科技大学 | 编译加速方法、路由单元和缓存 |
CN110795903B (zh) * | 2019-09-12 | 2023-08-15 | 中科寒武纪科技股份有限公司 | 指令处理方法、装置及相关产品 |
CN113031522B (zh) * | 2019-12-25 | 2022-05-31 | 沈阳高精数控智能技术股份有限公司 | 适用于开放式数控系统周期性依赖任务的低功耗调度方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5412799A (en) * | 1990-02-27 | 1995-05-02 | Massachusetts Institute Of Technology | Efficient data processor instrumentation for systematic program debugging and development |
JP2818016B2 (ja) * | 1990-08-09 | 1998-10-30 | 株式会社日立製作所 | プロセス並列実行方法および装置 |
US5812133A (en) * | 1995-11-01 | 1998-09-22 | Allen Bradley Company, Llc | Industrial controller with display of rung execution |
JP2882475B2 (ja) * | 1996-07-12 | 1999-04-12 | 日本電気株式会社 | スレッド実行方法 |
JP2970553B2 (ja) * | 1996-08-30 | 1999-11-02 | 日本電気株式会社 | マルチスレッド実行方法 |
JP3641997B2 (ja) * | 2000-03-30 | 2005-04-27 | 日本電気株式会社 | プログラム変換装置及び方法並びに記録媒体 |
JP2002116915A (ja) * | 2000-10-10 | 2002-04-19 | Fujitsu Ltd | コンパイラ並列化スケジュール方法 |
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 JP2004194051A patent/JP3901180B2/ja not_active Expired - Fee Related
-
2005
- 2005-06-29 GB GB0513301A patent/GB2415811A/en not_active Withdrawn
- 2005-06-29 US US11/169,113 patent/US20060005179A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20060005179A1 (en) | 2006-01-05 |
GB2415811A (en) | 2006-01-04 |
JP2006018445A (ja) | 2006-01-19 |
GB0513301D0 (en) | 2005-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3901180B2 (ja) | プログラム並列化装置及びその方法並びにプログラム | |
JP3901181B2 (ja) | プログラム並列化装置及びその方法並びにプログラム | |
JP3901182B2 (ja) | プログラム並列化装置及びその方法並びにプログラム | |
JP4042604B2 (ja) | プログラム並列化装置,プログラム並列化方法およびプログラム並列化プログラム | |
JP4957729B2 (ja) | プログラム並列化方法、プログラム並列化装置及びプログラム | |
US6539541B1 (en) | Method of constructing and unrolling speculatively counted loops | |
JP3220055B2 (ja) | 機械語命令列またはアセンブリ言語命令列を最適化する最適化装置、及び、高級言語で記載されたソースプログラムを機械語またはアセンブリ言語の命令列に変換するコンパイラ装置。 | |
JP3311462B2 (ja) | コンパイル処理装置 | |
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 | |
JPH0883185A (ja) | コンパイラ | |
KR101962250B1 (ko) | 재구성가능 아키텍처를 위한 스케줄러 및 스케줄링 방법 | |
JPH04213118A (ja) | プログラム翻訳装置およびプログラム翻訳方法 | |
JP6488739B2 (ja) | 並列化コンパイル方法、及び、並列化コンパイラ | |
JP4293223B2 (ja) | プログラム並列化装置及びその方法並びにプログラム | |
CN108027736B (zh) | 使用通过对物理寄存器预分配的乱序重命名的运行时代码并行化 | |
JP2012014526A (ja) | プログラムコードの構造変換装置、並びにコード構造変換プログラム | |
JP6488738B2 (ja) | 並列化コンパイル方法、及び、並列化コンパイラ | |
US6637026B1 (en) | Instruction reducing predicate copy | |
JP2022140995A (ja) | 情報処理装置、コンパイルプログラムおよびコンパイル方法 | |
JP6933001B2 (ja) | 並列化方法、並列化ツール | |
KR100970758B1 (ko) | 복합 명령어 선택시 무가치 복합 명령어를 제거하여 코드를 최적화하기 위한 코드 생성 장치 및 그 코드 생성 방법 | |
Ying | Scaling sequential code with hardware-software co-design for fine-grain speculative parallelization | |
Waduge | Taming Irregular Control-Flow with Targeted Compiler Transformations | |
JP3634712B2 (ja) | コンパイラ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060822 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061016 |
|
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 |
Ref document number: 3901180 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: 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 |