JP4664923B2 - パイプライン変換を通じて自動的にネットワークアプリケーションを並列化する装置及び方法 - Google Patents
パイプライン変換を通じて自動的にネットワークアプリケーションを並列化する装置及び方法 Download PDFInfo
- Publication number
- JP4664923B2 JP4664923B2 JP2006539703A JP2006539703A JP4664923B2 JP 4664923 B2 JP4664923 B2 JP 4664923B2 JP 2006539703 A JP2006539703 A JP 2006539703A JP 2006539703 A JP2006539703 A JP 2006539703A JP 4664923 B2 JP4664923 B2 JP 4664923B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- program
- stage
- control
- pipeline
- 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
- G06F8/456—Parallelism detection
Description
オペレーション
代替の実施形態
Claims (28)
- 1以上のプロセッサがD段のプロセッサパイプラインを設定する段階と、
1つのシーケンシャルアプリケーションプログラムをD段のパイプラインステージプログラムに変換する段階と、
前記D段のパイプラインステージプログラムを、前記D段のプロセッサパイプライン内でパラレルに実行する段階と、
を備え、
前記シーケンシャルアプリケーションプログラムを変換する段階は、
前記シーケンシャルアプリケーションプログラムについて1つのフローネットワークモデルを構築する段階と、
前記フローネットワークモデルから複数のパイプラインステージを選択する段階と、
コントロールフローと変数とをパイプラインステージ間で伝達できる前記D段のパイプラインステージプログラムを形成すべく前記複数のパイプラインステージを変更する段階と
を有し、
前記フローネットワークモデルを構築する段階は、
前記アプリケーションプログラムを1つの静的単一代入形式プログラムに変換する段階と、
前記アプリケーションプログラムの1つのループ本体について1つのコントロールフローグラフを構築する段階と、
前記コントロールフローグラフ及び前記コントロールフローグラフから特定された予め定められた強連結構成要素(SSC)に基づいて1つの依存グラフを構築する段階と、
前記依存グラフ及び特定された前記依存グラフの複数のSSCノードに従って前記フローネットワークモデルを形成する段階と
前記フローネットワークモデルを形成する段階は、
1つの固有なソースノード及び1つの固有なシンクノードを前記フローネットワークモデルに割り当てる段階と、
前記依存グラフにおいて特定されたそれぞれのSSCノードについて1つのプログラムノードを前記フローネットワークモデルに加える段階と、
複数のプログラムノードによって定義されて使用されるそれぞれの変数について1つの変数ノードを前記フローネットワークモデルに加える段階と、
前記依存グラフにおいてコントロール依存の1つのソースとして特定されたそれぞれのSSCノードについて1つのコントロールノードCを前記フローネットワークモデルに加える段階と、
対応する複数のプログラムノードを対応する複数の変数ノードに連結する1つの関連づけられた重みを持つ複数のエッジを生成する段階と、
対応する複数のプログラムノードを対応する複数のコントロールノードに連結する1つの関連づけられた重みを持つ複数のエッジを生成する段階と、
前記複数のプログラムノードと前記ソースノード及び前記シンクノードのうちの1つとの間に複数のエッジを生成する段階と
を含む方法。 - 対応する複数のプログラムノードを対応する複数の変数ノードに連結する1つの関連づけられた重みを持つ複数のエッジを生成する段階は、
(i)1つの変数ノードVを定める1つのプログラムノードNを選択する段階と、
(ii)前記フローネットワークモデルに、1つの重みVCostを持つノードNからノードVへの定義エッジを加える段階と、
(iii)1つの変数ノードVを定義するそれぞれのプログラムノードNについて(i)−(ii)を繰り返す段階と、
(iv)1つの変数ノードWを使用する1つのプログラムノードMを選択する段階と、
(v)前記フローネットワークモデルに、1つの割り当てられた無限量の重みを持つ前記ノードWから前記ノードMへの1つのエッジを加える段階と、
(vi)1つの変数ノードWを使用するそれぞれのプログラムノードMについて(iv)−(v)を繰り返す段階と
をさらに持つ請求項1に記載の方法。 - 対応する複数のプログラムノードを対応する複数のコントロールノードに連結する1つの関連づけられた重みを持つ複数のエッジを生成する段階は、
(i)1つの関連づけられたコントロールノードCを持つ1つのプログラムノードNを選択する段階と、
(ii)前記選択されたノードNから前記関連づけられたコントロールノードCへの1つの定義エッジを加える段階と、
(iii)1つの重みCCostを前記エッジに関連づける段階と、
(iv)1つの関連づけられたコントロールノードを持つそれぞれのプログラムノードについて(i)−(iii)を繰り返す段階と、
(v)他のプログラムノードMに1つのコントロール依存を持つ1つのプログラムノードNを選択する段階と、
(vi)Mを前記コントロールノードCに関連づける段階と、
(vii)前記関連づけられたコントロールノードCから前記選択されたプログラムノードNへの1つのエッジを加える段階と、
(viii)前記エッジに無限量の重みを割り当てる段階と、
(ix)他のプログラムノードMに1つのコントロール依存を持つそれぞれのノードNについて(v)−(viii)を繰り返す段階と
を持つ請求項1に記載の方法。 - 前記複数のプログラムノードと前記ソースノード及び前記シンクノードのうちの1つとの間に複数のエッジを生成する段階は、
(i)前記フローネットワークモデルにおいて先行ノードを持たない1つのプログラムノードを選択する段階と、
(ii)前記ソースノードから前記選択されたプログラムノードへの1つのエッジを加える段階と、
(iii)ゼロの重みを前記エッジに割り当てる段階と、
(iv)先行ノードを持たないそれぞれのプログラムノードについて(i)−(iii)を繰り返す段階と、
(v)前記フローネットワークにおいて後続ノードを持たない1つのプログラムノードを選択する段階と、
(vi)前記選択されたプログラムノードから前記シンクノードへの1つのエッジを加える段階と、
(vii)ゼロの重みを前記加えられたエッジに割り当てる段階と、
(viii)前記フローネットワークモデルにおいて後続ノードを持たないそれぞれのプログラムノードについて(v)−(vii)を繰り返す段階と
を持つ請求項1から請求項3のいずれか1つに記載の方法。 - 前記複数のパイプラインステージを選択する段階は、
それぞれのカットがバランスの取れた最小コストカットとなるよう、前記フローネットワークモデルをD−1段の連続するカットにカットする段階
を含む請求項1から請求項4のいずれか1つに記載の方法。 - カットする段階は、1つの繰り返しのバランスの取れたプッシュリラベルアルゴリズムを用いて実行される
請求項5に記載の方法。 - 前記複数のパイプラインステージを変更する段階は、
1つのパイプラインステージを選択する段階と、
選択されたパイプラインステージに対応するパケットプロセッシングループ(PPSループ)について生成されたコントロールフローグラフを選択する段階と、
選択されたコントロールグラフに含まれる命令から、選択されたパイプラインステージに含まれない命令を削除する段階と、
前のパイプラインステージから、前記選択されたパイプラインステージに伝達された変数およびコントロールオブジェクトに従って前記選択されたコントロールグラフを変換する段階と、
前記選択されたパイプラインステージを実行すべく、変換されたコントロールグラフからPPSループを再構築する段階と、
それぞれのパイプラインステージについて、前記パイプラインステージを選択する段階、前記コントロールフローグラフを選択する段階、前記削除する段階、前記変換する段階、および前記再構築する段階を繰り返して、1つのパラレルネットワークアプリケーションプログラムの前記D段のパイプラインステージプログラムを形成する段階と
を含む請求項1から請求項6のいずれか1つに記載の方法。 - コンピュータに実行させるためのプログラムであって、
前記コンピュータに、
1以上のプロセッサをD段のプロセッサパイプラインを設定する段階と、
1つのシーケンシャルアプリケーションプログラムをD段のパイプラインステージプログラムに変換する段階と、
前記D段のパイプラインステージプログラムを、前記D段のプロセッサパイプライン内でパラレルに実行する段階と
を実行させ、
前記シーケンシャルアプリケーションプログラムを変換する段階は、
前記シーケンシャルアプリケーションプログラムについて1つのフローネットワークモデルを構築する段階と、
前記フローネットワークモデルから複数のパイプラインステージを選択する段階と、
コントロールフローおよび変数をパイプラインステージ間で伝達できる前記D段のパイプラインステージプログラムを形成すべく前記複数のパイプラインステージを変更する段階と
を有し、
前記フローネットワークモデルを構築する段階は、
前記アプリケーションプログラムを1つの静的単一代入形式プログラムに変換する段階と、
前記アプリケーションプログラムの1つのループ本体について1つのコントロールフローグラフを構築する段階と、
前記コントロールフローグラフ及び前記コントロールフローグラフの特定された強連結構成要素(SSC)に基づいて1つの依存グラフを構築する段階と、
前記依存グラフ及び特定された前記依存グラフの複数のSSCノードに従って前記フローネットワークモデルを構築する段階と
を含み、
前記フローネットワークモデルを構築する段階は、
1つの固有なソースノード及び1つの固有なシンクノードを前記フローネットワークモデルに割り当てる段階と、
前記依存グラフにおいて特定されたそれぞれのSSCノードについて1つのプログラムノードを前記フローネットワークモデルに加える段階と、
複数のプログラムノードによって定義されて使用されるそれぞれの変数について1つの変数ノードを前記フローネットワークモデルに加える段階と、
前記依存グラフにおいてコントロール依存の1つのソースとして特定されたそれぞれのSSCノードについて1つのコントロールノードCを前記フローネットワークモデルに加える段階と、
対応する複数のプログラムノードを対応する複数の変数ノードに連結する1つの関連づけられた重みを持つ複数のエッジを生成する段階と、
対応する複数のプログラムノードを対応する複数のコントロールノードに連結する1つの関連づけられた重みを持つ複数のエッジを生成する段階と、
前記複数のプログラムノードと前記ソースノード及び前記シンクノードのうちの1つとの間に複数のエッジを生成する段階と
を含むプログラム。 - 対応する複数のプログラムノードを対応する複数の変数ノードに連結する1つの関連づけられた重みを持つ複数のエッジを生成する段階は、
(i)1つの変数ノードVを定める1つのプログラムノードNを選択する段階と、
(ii)前記フローネットワークモデルに、1つの重みVCostを持つノードNからノードVへの定義エッジを加える段階と、
(iii)1つの変数ノードVを定義するそれぞれのプログラムノードNについて(i)−(ii)を繰り返す段階と、
(iv)1つの変数ノードWを使用する1つのプログラムノードMを選択する段階と、
(v)前記フローネットワークモデルに、1つの割り当てられた無限量の重みを持つ前記ノードWから前記ノードMへの1つのエッジを加える段階と、
(vi)1つの変数ノードWを使用するそれぞれのプログラムノードMについて(iv)−(v)を繰り返す段階と
をさらに持つ請求項8に記載のプログラム。 - 対応する複数のプログラムノードを対応する複数のコントロールノードに連結する1つの関連づけられた重みを持つ複数のエッジを生成する段階は、
(i)1つの関連づけられたコントロールノードCを持つ1つのプログラムノードNを選択する段階と、
(ii)前記選択されたノードNから前記関連づけられたコントロールノードCへの1つの定義エッジを加える段階と、
(iii)1つの重みCCostを前記エッジに関連づける段階と、
(iv)1つの関連づけられたコントロールノードを持つそれぞれのプログラムノードについて(i)−(iii)を繰り返す段階と、
(v)他のプログラムノードMに1つのコントロール依存を持つ1つのプログラムノードNを選択する段階と、
(vi)Mを前記コントロールノードCに関連づける段階と、
(vii)前記関連づけられたコントロールノードCから前記選択されたプログラムノードNへの1つのエッジを加える段階と、
(viii)前記エッジに無限量の重みを割り当てる段階と、
(ix)他のプログラムノードMに1つのコントロール依存を持つそれぞれのノードNについて(v)−(viii)を繰り返す段階と
を持つ請求項8に記載のプログラム。 - 前記複数のプログラムノードと前記ソースノード及び前記シンクノードのうちの1つとの間に複数のエッジを生成する段階は、
(i)前記フローネットワークモデルにおいて先行ノードを持たない1つのプログラムノードを選択する段階と、
(ii)前記ソースノードから前記選択されたプログラムノードへの1つのエッジを加える段階と、
(iii)ゼロの重みを前記エッジに割り当てる段階と、
(iv)先行ノードを持たないそれぞれのプログラムノードについて(i)−(iii)を繰り返す段階と、
(v)前記フローネットワークにおいて後続ノードを持たない1つのプログラムノードを選択する段階と、
(vi)前記選択されたプログラムノードから前記シンクノードへの1つのエッジを加える段階と、
(vii)ゼロの重みを前記加えられたエッジに割り当てる段階と、
(viii)前記フローネットワークモデルにおいて後続ノードを持たないそれぞれのプログラムノードについて(v)−(vii)を繰り返す段階と
を持つ請求項8から請求項10のいずれか1つに記載のプログラム。 - 前記複数のパイプラインステージを選択する段階は、
それぞれのカットがバランスの取れた最小コストカットとなるよう、前記フローネットワークモデルをD−1段の連続するカットにカットする段階
を含む請求項8から請求項10のいずれか1つに記載のプログラム。 - カットする段階は、1つの繰り返しのバランスの取れたプッシュリラベルアルゴリズムを用いて実行される
請求項12に記載のプログラム。 - 前記複数のパイプラインステージを変更する段階は、
1つのパイプラインステージを選択する段階と、
選択されたパイプラインステージに対応するパケットプロセッシングループ(PPSループ)について生成されたコントロールフローグラフを選択する段階と、
選択されたコントロールグラフに含まれる命令から、選択されたパイプラインステージに含まれない命令を削除する段階と、
前のパイプラインステージから、前記選択されたパイプラインステージに伝達された変数およびコントロールオブジェクトに従って前記選択されたコントロールグラフを変換する段階と、
前記選択されたパイプラインステージを実行すべく、変換されたコントロールグラフからPPSループを再構築する段階と、
それぞれの予備のステージについて、前記パイプラインステージを選択する段階、前記コントロールグラフを選択する段階、前記削除する段階、前記変換する段階、および前記再構築する段階を繰り返して、1つのパラレルネットワークアプリケーションプログラムの前記D段のパイプラインステージプログラムを形成する段階と
を含む請求項8から請求項13のいずれか1つに記載のプログラム。 - 1つのシーケンシャルアプリケーションプログラムから1つのフローネットワークモデルを構築する段階と、
前記フローネットワークモデルを複数のパイプラインステージにカットする段階と、
コントロールフローおよび変数をパイプラインステージ間で伝達できる1つのパラレルアプリケーションプログラムのD段のパイプラインステージプログラムを形成すべく、前記複数のパイプラインステージを変換する段階と
を備え、
前記複数のパイプラインステージを変換する段階は、
(i)1つのパイプラインステージを選択する段階と、
(ii)前記選択されたパイプラインステージに対応する1つのパケットプロセッシングステージ(PPS)ループについて生成された1つのコントロールフローグラフを選択する段階と、
(iii)前記選択されたパイプラインステージ内に命令が含まれない場合に、前記コントロールフローグラフから前記命令を削除する段階と、
(iv)前ステージから伝達された複数の変数及び複数のコントロールオブジェクトに従って、前記選択されたコントロールフローグラフを変換する段階と、
(v)1つのパイプラインステージを形成すべく、前記変換されたコントロールフローグラフからPPSループを再構築する段階と、
1つのパラレルネットワークアプリケーションプログラムのD段のパイプラインステージプログラムを形成すべく、それぞれのパイプラインステージについて(i)−(v)を繰り返す段階と、
を有する方法。 - 前記コントロールフローグラフを変換する段階は、
前記コントロールフローグラフへの入口において前のパイプラインステージから伝達されたコントロールオブジェクトについて複数の値を選択する段階と、
前記前のパイプラインステージから受け取ったそれぞれのコントロールオブジェクトについて、前記コントロールオブジェクトを使用して1つの条件命令を構築する段階と、
前記コントロールフローグラフ内の対応する複数の条件ノードを、前記条件命令で置き換える段階と
をさらに有する請求項15に記載の方法。 - 前記コントロールフローグラフを変換する段階は、
前のパイプラインステージから伝達された複数の変数の複数の値を選択する段階と、
次のパイプラインステージに伝達されるそれぞれの変数について、前記コントロールフローグラフ内の独自の一時的な後続の前記変数の定義に、前記変数の値をセットする段階と
をさらに有する請求項15に記載の方法。 - 前記コントロールフローグラフを変換する段階は、
次のパイプラインステージに伝達されるべきコントロールオブジェクトのそれぞれについて、前記コントロールフローグラフ内の前記コントロールオブジェクトに関連づけられた1つの条件ノードの代替の後続ノードのそれぞれの中の前記コントロールオブジェクトの代替の値を配置する段階と、
前記コントロールフローグラフの出口において次のパイプラインステージにライブセットデータを伝達する段階と
をさらに有する請求項15に記載の方法。 - コンピュータに実行させるためのプログラムであって、
前記コンピュータに
1つのシーケンシャルアプリケーションプログラムから1つのフローネットワークモデルを構築する段階と、
前記フローネットワークモデルを複数のパイプラインステージにカットする段階と、
コントロールフロー及び変数のパイプラインステージ間の伝達を実行できる1つのパラレルアプリケーションプログラムのD段のパイプラインステージプログラムを形成すべく、前記複数のパイプラインステージを変換する段階と
を実行させ、
前記複数のパイプラインステージを変換する段階は、
(i)1つのパイプラインステージを選択する段階と、
(ii)前記選択されたパイプラインステージに対応する1つのパケットプロセッシングステージ(PPS)ループについて生成された1つのコントロールフローグラフを選択する段階と、
(iii)前記選択されたパイプラインステージ内に命令が含まれない場合に、前記コントロールフローグラフから前記命令を削除する段階と、
(iv)前ステージから伝達された複数の変数及び複数のコントロールオブジェクトに従って、前記選択されたコントロールフローグラフを変換する段階と、
(v)1つのパイプラインステージを形成すべく、前記変換されたコントロールフローグラフからPPSループを再構築する段階と、
1つのパラレルネットワークアプリケーションプログラムのD段のパイプラインステージプログラムを形成すべく、それぞれのパイプラインステージについて(i)−(v)を繰り返す段階と、
を有するプログラム。 - 前記コントロールフローグラフを変換する段階は、
前記コントロールフローグラフへの入口において前のパイプラインステージから伝達されたコントロールオブジェクトについて複数の値を選択する段階と、
前記前のパイプラインステージから受け取ったそれぞれのコントロールオブジェクトについて、前記コントロールオブジェクトを使用して1つの条件命令を構築する段階と、
前記コントロールフローグラフ内の対応する複数の条件ノードを、前記条件命令で置き換える段階と
をさらに有する請求項19に記載のプログラム。 - 前記コントロールフローグラフを変換する段階は、
前のパイプラインステージから伝達された複数の変数の複数の値を選択する段階と、
次のパイプラインステージに伝達されるそれぞれの変数について、前記コントロールフローグラフ内の独自の一時的な後続の前記変数の定義に、前記変数の値をセットする段階と
をさらに有する請求項19に記載のプログラム。 - 前記コントロールフローグラフを変換する段階は、
次のパイプラインステージに伝達されるべきコントロールオブジェクトのそれぞれについて、前記コントロールオブジェクトの代替の値を、前記コントロールフローグラフ内の前記コントロールオブジェクトに関連づけられた1つの条件ノードの代替の後続ノードのそれぞれの中に配置する段階と、
前記コントロールフローグラフの出口において次のパイプラインステージにライブセットデータを伝達する段階と
をさらに有する請求項21に記載のプログラム。 - 1つのプロセッサと、
前記プロセッサに結合された1つのメモリであって、請求項8から請求項14、請求項19から請求項22のいずれか1つに記載のプログラムを前記プロセッサに実行させることで、1つのシーケンシャルアプリケーションプログラムのD段のパイプラインステージプログラムへの変換を生じさせ、D段のプロセッサパイプライン内で前記D段のパイプランステージプログラムの並列実行を可能にする1つのコンパイラを有するメモリと
を備える装置。 - 前記コンパイラは、前記シーケンシャルアプリケーションプログラムについての1つのフローネットワークモデルの構築を生じさせ、前記フローネットワークモデルから複数のパイプラインステージの選択を生じさせ、コントロールフロー及び変数のパイプラインステージ間の伝達を実行できる前記D段のパイプランステージプログラムを形成すべく前記複数のパイプラインステージの変更を生じさせる
請求項23に記載の装置。 - 前記コンパイラは、前記D段のパイプラインステージプログラムを形成すべく、それぞれのカットがバランスの取れた最小コストカットとなるよう、前記フローネットワークモデルのD−1段の連続する複数のカットを生じさせる
請求項24に記載の装置。 - 1つのプロセッサと、
前記プロセッサに結合された1つのメモリコントローラと、
前記プロセッサに結合された1つのDDR SRAMメモリであって、請求項8から請求項14、請求項19から請求項22のいずれか1つに記載のプログラムを前記プロセッサに実行させることで、1つのシーケンシャルアプリケーションプログラムのD段のパイプラインステージプログラムへの変換を生じさせ、D段のプロセッサパイプライン内で前記D段のパイプラインステージプログラムの並列実行を可能にする1つのコンパイラを有するDDR SRAMメモリと
を備えるシステム。 - 前記コンパイラは、前記シーケンシャルアプリケーションプログラムについての1つのフローネットワークモデルの構築を生じさせ、前記フローネットワークモデルから複数のパイプラインステージの選択を生じさせ、コントロールフロー及び変数のパイプラインステージ間の伝達を実行できる前記D段のパイプランステージプログラムを形成すべく前記複数のパイプラインステージの変更を生じさせる
請求項26に記載のシステム。 - 前記コンパイラは、前記D段のパイプラインステージプログラムを形成すべく、それぞれのカットがバランスの取れた最小コストカットとなるよう、前記フローネットワークモデルのD−1段の連続する複数のカットを生じさせる
請求項27に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/714,465 US7793276B2 (en) | 2003-11-14 | 2003-11-14 | Apparatus and method for automatically parallelizing network applications through pipelining transformation |
PCT/US2004/037160 WO2005050444A2 (en) | 2003-11-14 | 2004-11-05 | An apparatus and method for automatically parallelizing network applications through pipelining transformation |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007511835A JP2007511835A (ja) | 2007-05-10 |
JP4664923B2 true JP4664923B2 (ja) | 2011-04-06 |
Family
ID=34573995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006539703A Expired - Fee Related JP4664923B2 (ja) | 2003-11-14 | 2004-11-05 | パイプライン変換を通じて自動的にネットワークアプリケーションを並列化する装置及び方法 |
Country Status (7)
Country | Link |
---|---|
US (2) | US7793276B2 (ja) |
EP (1) | EP1685483B1 (ja) |
JP (1) | JP4664923B2 (ja) |
CN (1) | CN1906579B (ja) |
AT (1) | ATE415655T1 (ja) |
DE (1) | DE602004018023D1 (ja) |
WO (1) | WO2005050444A2 (ja) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7793276B2 (en) * | 2003-11-14 | 2010-09-07 | Intel Corporation | Apparatus and method for automatically parallelizing network applications through pipelining transformation |
US8856401B2 (en) * | 2003-11-25 | 2014-10-07 | Lsi Corporation | Universal controller for peripheral devices in a computing system |
US7693690B2 (en) * | 2005-08-09 | 2010-04-06 | Nec Laboratories America, Inc. | Disjunctive image computation for sequential systems |
US7774769B2 (en) * | 2005-09-22 | 2010-08-10 | Intel Corporation | Transmitting trace-specific information in a transformed application |
US8769513B2 (en) * | 2005-11-18 | 2014-07-01 | Intel Corporation | Latency hiding of traces using block coloring |
US8453131B2 (en) * | 2005-12-24 | 2013-05-28 | Intel Corporation | Method and apparatus for ordering code based on critical sections |
US20070237146A1 (en) * | 2006-03-31 | 2007-10-11 | Ilija Hadzic | Methods and apparatus for modeling and synthesizing packet processing pipelines |
US8037466B2 (en) | 2006-12-29 | 2011-10-11 | Intel Corporation | Method and apparatus for merging critical sections |
US20090201817A1 (en) * | 2008-02-08 | 2009-08-13 | International Business Machines Corporation | Method of optimizing a flow of value in a network |
US9043774B2 (en) * | 2008-02-12 | 2015-05-26 | William G. Bently | Systems and methods for information flow analysis |
WO2010060243A1 (en) * | 2008-11-28 | 2010-06-03 | Siemens Aktiengesellschaft | Automatic control system and method for executing control program in parallel |
JP2012510661A (ja) | 2008-12-01 | 2012-05-10 | ケーピーアイティ クミンズ インフォシステムズ リミテッド | 逐次コンピュータプログラムコードを並列処理する方法及びシステム |
US8239866B2 (en) * | 2009-04-24 | 2012-08-07 | Microsoft Corporation | Reduction of memory latencies using fine grained parallelism and FIFO data structures |
US8566801B2 (en) * | 2009-05-22 | 2013-10-22 | International Business Machines Corporation | Concurrent static single assignment for general barrier synchronized parallel programs |
US8448155B2 (en) * | 2009-06-01 | 2013-05-21 | National Instruments Corporation | Automatically creating parallel iterative program code in a graphical data flow program |
JP4931978B2 (ja) * | 2009-10-06 | 2012-05-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 並列化処理方法、システム、及びプログラム |
JP4886838B2 (ja) * | 2009-10-30 | 2012-02-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 並列化方法、システム、及びプログラム |
US8276148B2 (en) | 2009-12-04 | 2012-09-25 | International Business Machines Corporation | Continuous optimization of archive management scheduling by use of integrated content-resource analytic model |
CN101876899B (zh) * | 2009-12-18 | 2014-06-25 | 北京北大众志微系统科技有限责任公司 | 一种计算机程序的优化方法及系统 |
JP5479942B2 (ja) * | 2010-02-22 | 2014-04-23 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 並列化方法、システム、及びプログラム |
US8868470B2 (en) * | 2010-11-09 | 2014-10-21 | Microsoft Corporation | Parallel processing of data sets |
WO2013010159A1 (en) * | 2011-07-14 | 2013-01-17 | Siemens Corporation | Reducing the scan cycle time of control applications through multi-core execution of user programs |
US20130139164A1 (en) * | 2011-11-28 | 2013-05-30 | Sap Ag | Business Process Optimization |
US20130138473A1 (en) * | 2011-11-28 | 2013-05-30 | Sap Ag | Business Process Optimization |
CN105573717B (zh) * | 2014-10-08 | 2018-02-06 | 华为技术有限公司 | 一种面向多核处理器的程序划分方法及装置 |
US9747089B2 (en) * | 2014-10-21 | 2017-08-29 | International Business Machines Corporation | Automatic conversion of sequential array-based programs to parallel map-reduce programs |
US9836568B1 (en) * | 2016-03-14 | 2017-12-05 | Xilinx, Inc. | Programmable integrated circuit design flow using timing-driven pipeline analysis |
US10509634B2 (en) * | 2016-03-30 | 2019-12-17 | International Business Machines Corporation | Data flow analysis for dynamic application, skipping views |
US10785107B2 (en) * | 2018-05-16 | 2020-09-22 | Microsoft Technology Licensing, Llc | Method and apparatus for optimizing legacy network infrastructure |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0644209A (ja) * | 1992-07-27 | 1994-02-18 | Toshiba Corp | 並列シミュレーションモデル分割決定装置 |
JPH09106351A (ja) * | 1995-10-12 | 1997-04-22 | Hitachi Ltd | 変数リネーム方法 |
US6223337B1 (en) * | 1997-12-12 | 2001-04-24 | Hewlett-Packard Company | Random test generation for compiler optimization |
CA2288614C (en) * | 1999-11-08 | 2004-05-11 | Robert J. Blainey | Loop allocation for optimizing compilers |
US7233998B2 (en) * | 2001-03-22 | 2007-06-19 | Sony Computer Entertainment Inc. | Computer architecture and software cells for broadband networks |
US7793276B2 (en) * | 2003-11-14 | 2010-09-07 | Intel Corporation | Apparatus and method for automatically parallelizing network applications through pipelining transformation |
US7581214B2 (en) * | 2004-04-15 | 2009-08-25 | Intel Corporation | Live set transmission in pipelining applications |
US8543992B2 (en) * | 2005-12-17 | 2013-09-24 | Intel Corporation | Method and apparatus for partitioning programs to balance memory latency |
US8261249B2 (en) * | 2008-01-08 | 2012-09-04 | International Business Machines Corporation | Distributed schemes for deploying an application in a large parallel system |
US8122441B2 (en) * | 2008-06-24 | 2012-02-21 | International Business Machines Corporation | Sharing compiler optimizations in a multi-node system |
US8214814B2 (en) * | 2008-06-24 | 2012-07-03 | International Business Machines Corporation | Sharing compiler optimizations in a multi-node system |
JP5479942B2 (ja) * | 2010-02-22 | 2014-04-23 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 並列化方法、システム、及びプログラム |
-
2003
- 2003-11-14 US US10/714,465 patent/US7793276B2/en not_active Expired - Fee Related
-
2004
- 2004-11-05 DE DE602004018023T patent/DE602004018023D1/de active Active
- 2004-11-05 CN CN2004800404781A patent/CN1906579B/zh not_active Expired - Fee Related
- 2004-11-05 JP JP2006539703A patent/JP4664923B2/ja not_active Expired - Fee Related
- 2004-11-05 EP EP04810518A patent/EP1685483B1/en not_active Not-in-force
- 2004-11-05 WO PCT/US2004/037160 patent/WO2005050444A2/en active Application Filing
- 2004-11-05 AT AT04810518T patent/ATE415655T1/de not_active IP Right Cessation
-
2010
- 2010-03-31 US US12/751,929 patent/US8438552B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20050108696A1 (en) | 2005-05-19 |
EP1685483B1 (en) | 2008-11-26 |
US20100223605A1 (en) | 2010-09-02 |
US7793276B2 (en) | 2010-09-07 |
JP2007511835A (ja) | 2007-05-10 |
US8438552B2 (en) | 2013-05-07 |
EP1685483A2 (en) | 2006-08-02 |
DE602004018023D1 (de) | 2009-01-08 |
ATE415655T1 (de) | 2008-12-15 |
WO2005050444A3 (en) | 2005-09-15 |
CN1906579B (zh) | 2010-06-23 |
CN1906579A (zh) | 2007-01-31 |
WO2005050444A2 (en) | 2005-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4664923B2 (ja) | パイプライン変換を通じて自動的にネットワークアプリケーションを並列化する装置及び方法 | |
US8893080B2 (en) | Parallelization of dataflow actors with local state | |
JP2007528059A (ja) | ソフトウェアのモデル化、抽象、および分析のためのシステムと方法 | |
CN113283613B (zh) | 深度学习模型的生成方法、优化方法、装置、设备及介质 | |
JP2016177454A (ja) | 動作合成方法、動作合成プログラムおよび動作合成装置 | |
US11556756B2 (en) | Computation graph mapping in heterogeneous computer system | |
Moreira et al. | Graph partitioning with acyclicity constraints | |
Stulova et al. | Throughput driven transformations of synchronous data flows for mapping to heterogeneous MPSoCs | |
Sittel et al. | ILP-based modulo scheduling and binding for register minimization | |
US8904371B2 (en) | Data handling among actors in a dataflow programming environment | |
Falk et al. | A rule-based quasi-static scheduling approach for static islands in dynamic dataflow graphs | |
Milik | On PLCs Control Program Hardware Implementation Selected Problems of Mapping and Scheduling | |
Corre et al. | Memory accesses management during high level synthesis | |
Ye et al. | HIDA: A Hierarchical Dataflow Compiler for High-Level Synthesis | |
Nawaz et al. | Recursive variable expansion: A loop transformation for reconfigurable systems | |
Kirchhoff et al. | Increasing efficiency in data flow oriented model driven software development for softcore processors | |
Zhuge et al. | Timing optimization via nest-loop pipelining considering code size | |
US11922152B2 (en) | Workload oriented constant propagation for compiler | |
Houshmand et al. | Grafs: Graph analytics fusion and synthesis | |
Azarian et al. | Coarse/fine-grained approaches for pipelining computing stages in FPGA-based multicore architectures | |
Véstias et al. | System-level co-synthesis of dataflow dominated applications on reconfigurable hardware/software architectures | |
GB2597088A (en) | Sharing data structures | |
Renaud et al. | Automated Clustering and Pipelining of Dataflow Actors for Controlled Scheduling Complexity | |
Hashemi et al. | Throughput-Driven Parallel Embedded Software Synthesis from Synchronous Dataflow Models: Caveats and Remedies | |
CN115934094A (zh) | 结构体变量赋值方法、系统、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091020 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100119 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100126 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100219 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100226 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100319 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100329 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100419 |
|
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: 20101221 |
|
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: 20110107 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4664923 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: 20140114 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |