JP3938387B2 - コンパイラ、制御方法、およびコンパイラ・プログラム - Google Patents
コンパイラ、制御方法、およびコンパイラ・プログラム Download PDFInfo
- Publication number
- JP3938387B2 JP3938387B2 JP2005232085A JP2005232085A JP3938387B2 JP 3938387 B2 JP3938387 B2 JP 3938387B2 JP 2005232085 A JP2005232085 A JP 2005232085A JP 2005232085 A JP2005232085 A JP 2005232085A JP 3938387 B2 JP3938387 B2 JP 3938387B2
- Authority
- JP
- Japan
- Prior art keywords
- processor
- task
- execution
- cluster
- memory
- 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
Y. Kwok and I. Ashmad, "Static Scheduling Algorithms for Allocating Directed Task Graphs to Multiprocessors," ACM Computing Surveys, Vol. 31, No. 4, December 1999. A. Gonzalez Escribano, A.J.C. van Gemund, and V. Cardenoso-Payo, "Mapping Unstructured Applications into Nested Parallelism," Proceedings of VECPAR 2002 - 5th International Conference on High Performance Computing for Computational Science, LNCS 2565, 2003, pp. 407-420. P. Chretienne and C. Picouleau, "Scheduling with communication delays: a survey," In P. Chretienne, E.G. Coffman Jr., J.K. Lenstra, and Z. Liu, editors, Scheduling Theory and its Applications, chapter 4, pp. 65-90, John Wiley & Sons, 1995. MPICH, http://www-unix.mcs.anl.gov/mpi/mpich/ LAM-MPI, http://www.lam-mpi.org PVM, http://www.csm.ornl.gov/pvm/pvm_home.html H. Ogawa and S. Matsuoka, "OMPI: optimizing MPI programs using partial evaluation," Proceedings of the 1996 ACM/IEEE conference on Supercomputing, November 1996.
(1)支配的パスの検出処理について
図10は、パス関連処理部500の機能構成を示す。パス関連処理部500は、タスク選択部600と、短縮量算出部610と、パス検出部620とを有する。タスク選択部600は、対象プログラム15中の第1タスクについて、その第1タスクの処理結果に依存する少なくとも1つの第2タスク(例えばその処理結果に依存する全てのタスク)を選択する。短縮量算出部610は、第1タスクおよび選択されたその第2タスクを異なるプロセッサ・コアで実行した場合のタスク切替時間と比較して、第2タスクを第1タスクの次に同一のプロセッサ・コアで実行した場合に短縮されるタスク切替時間の短縮量を算出する。
図12は、支配的パスを検出する処理の具体例を示す。本図において関数Save()は、タスク切替時間の短縮量を算出するための関数を示す。詳細には、Save(T,S)は、タスクTの次にタスクSを同一のプロセッサ・コアで連続して実行させることによって短縮されるタスク切替時間の短縮幅を示す。
図13は、クラスタ関連処理部510の機能構成を示す。クラスタ関連処理部510は、クラスタ生成部515と、循環性依存検出部1300と、隣接パス選択部1310とを有する。循環性依存検出部1300は、検出された支配的パスの各々について循環性依存を検出する。ある支配的パスにおける循環性依存とは、その支配的パス中の何れかのタスクの処理に依存する他の実行パス中のタスクの処理に、その支配的パス中の他のタスクが更に依存することをいう。
続いて、各々のクラスタの実行のために割り当てるプロセッサ・コアの個数を選択する処理を、図4とは異なる対象プログラムを例として説明する。
図19は、クラスタ間の依存関係を定めるシリーズパラレル・グラフを、それに含まれるタスクのスケジューリング結果と共に示す。図19(a)は、クラスタ生成部515により生成されたクラスタを、それらの間の依存関係と共に示す。具体的には、クラスタ関連処理部510は、タスク11、12、15および16を選択して1つのクラスタを生成している。これをクラスタ1とする。
なお、シリーズパラレル・グラフの詳細については、上述の非特許文献2および3に説明されている。
20 コンパイラ
30 情報処理システム
10 プロセッサ
100 プロセッサ・コア
110 局所メモリ
120 DMAエンジン
130 サポートプロセッサ
140 オンチップバス
150 オフチップバス
500 パス関連処理部
505 性能情報記録部
510 クラスタ関連処理部
515 クラスタ生成部
520 実行時間算出部
530 コア数選択部
600 タスク選択部
610 短縮量算出部
620 パス検出部
1020 メイン・メモリ
1300 循環性依存検出部
1310 隣接パス選択部
1320 候補選択部
1330 パス数算出部
1340 タスク追加部
1350 通信量算出部
1360 アイドル割合算出部
Claims (13)
- マイクロプロセッサ・チップ上に、それぞれが他のプロセッサ・コアとは独立にかつ並列に演算処理を行うことができる、複数のプロセッサ・コアを設けたマルチコア・プロセッサによる、コンパイルの対象プログラムの実行を、最適化するコンパイラ装置であって、
前記対象プログラムを記憶するメモリと、
前記マルチコア・プロセッサが有するプロセッサ・コアのうち、前記対象プログラムを実行するプロセッサ・コアの個数である実行コア数を記録している、記録部と、
前記メモリを当該コンパイラ装置のプロセッサの動作によりアクセスして、前記対象プログラムの中から、それぞれが前記対象プログラムの処理の一部に対応する命令群である複数のタスクによる、処理の流れを示す実行パスのうち、第1タスクの処理結果に依存する複数の第2タスクの中から前記第1タスクと異なるプロセッサ・コアで実行した場合に対する同一のプロセッサ・コアで連続して実行した場合のタスク切替時間の短縮量を最大化する第2のタスクを選択して第1タスクと共に含めて構成した実行パスである支配的パスを、当該コンパイラ装置のプロセッサの動作により検出する、パス検出部と、
前記記録部に記録された前記実行コア数に基づき、前記実行コア数以下の数の支配的パスを選択することにより前記マルチコア・プロセッサにおいて並列にまたは連続して実行すべき少なくとも1つのタスクをクラスタとして当該コンパイラ装置のプロセッサの動作により生成して、前記メモリに格納する、クラスタ生成部と、
前記メモリを当該コンパイラ装置のプロセッサの動作によりアクセスして、前記メモリに格納されたクラスタ毎に、前記実行コア数以下の自然数の中から選択した1つまたは複数の自然数の各々について、当該クラスタを当該自然数に等しい個数のプロセッサ・コアで実行した場合の実行時間を当該コンパイラ装置のプロセッサの動作により算出して、前記メモリに格納する、時間算出部と、
前記メモリを当該コンパイラ装置のプロセッサの動作によりアクセスして、前記メモリに格納された前記実行時間に基づいて、前記対象プログラムの実行時間を短縮するべく各クラスタの実行のために割り当てるべきプロセッサ・コアの個数を当該コンパイラ装置のプロセッサの動作により選択して、前記メモリに格納する、コア数選択部と
を備えるコンパイラ装置。 - 前記時間算出部は、前記メモリを当該コンパイラ装置のプロセッサの動作によりアクセスして、前記メモリに格納されたクラスタ毎に、当該クラスタを1から前記実行コア数までの各々の自然数に等しい個数のプロセッサ・コアで実行した場合の実行時間を当該コンパイラ装置のプロセッサの動作により算出して、前記メモリに格納し、
前記コア数選択部は、前記メモリを当該コンパイラ装置のプロセッサの動作によりアクセスして、前記メモリに格納された前記実行時間に基づいて、各クラスタの実行のために割り当てるべきプロセッサ・コアの個数を、当該コンパイラ装置のプロセッサの動作により選択して、前記メモリに格納する
請求項1に記載のコンパイラ装置。 - 前記クラスタ生成部は、前記記録部に記録された前記実行コア数に基づき、逐次に実行されまたは並列に実行できる、2以上の前記クラスタを前記クラスタの上位階層のクラスタ群とし、逐次に実行されまたは並列に実行できる、2以上の前記クラスタ群を更に上位階層のクラスタ群としていくことにより、前記複数のクラスタについての階層化された実行順序の依存関係を示すシリーズパラレル・グラフを当該コンパイラ装置のプロセッサの動作により生成して、前記メモリに格納し、
前記コア数選択部は、前記メモリを当該コンパイラ装置のプロセッサの動作によりアクセスして、前記メモリに格納された前記実行時間に基づいて、下位階層の前記クラスタ群から順に、前記プロセッサ・コアの個数以下の自然数の中から選択した1つまたは複数の自然数の各々について、前記下位階層のクラスタ群を当該自然数に等しい個数のプロセッサ・コアで実行した場合の実行時間を当該コンパイラ装置のプロセッサの動作により算出し、算出された当該実行時間に基づいて前記下位階層のクラスタ群の実行時間を短縮すべく、前記下位階層のクラスタ群の更に下位階層に位置する並列実行可能な2以上の前記クラスタに、または前記クラスタ群に、割り当てるべきプロセッサ・コアの個数を選択していくことにより、各々の前記クラスタに割り当てるプロセッサ・コアの個数を選択して、前記メモリに格納する
請求項1に記載のコンパイラ装置。 - 前記クラスタ生成部は、前記記録部に記録された前記実行コア数に基づき、複数の前記クラスタの各々をノードとし、実行順序に依存関係を有する複数のクラスタに対応する複数のノードの上位階層に、当該複数のクラスタが逐次に実行すべき逐次実行部分である旨を示すノードを当該コンパイラ装置のプロセッサの動作により生成し、並列に実行可能な複数のクラスタに対応する複数のノードの上位階層に、当該複数のクラスタが並列に実行可能な並列実行部分である旨を示すノードを当該コンパイラ装置のプロセッサの動作により生成し、更に、
実行順序に依存関係を有する複数の並列実行部分または逐次実行部分に対応する複数のノードの上位階層に、当該複数の並列実行部分または逐次実行部分が更に逐次実行部分である旨を示すノードを当該コンパイラ装置のプロセッサの動作により生成し、または、並列に実行可能な複数の並列実行部分または逐次実行部分に対応する複数のノードの上位階層に、当該複数の並列実行部分または逐次実行部分が更に並列実行部分である旨を示すノードを当該コンパイラ装置のプロセッサの動作により生成することによりシリーズパラレル・グラフを当該コンパイラ装置のプロセッサの動作により生成して、前記メモリに格納し、
前記コア数選択部は、前記メモリを当該コンパイラ装置のプロセッサの動作によりアクセスして、前記メモリに格納された前記実行時間に基づいて、逐次実行部分および並列実行部分の各々の実行時間を最適にするように当該部分を構成するクラスタ、逐次実行部分または並列実行部分の各々に割り当てるプロセッサ・コアの個数を選択する問題を部分問題とし、各々の部分問題を動的計画法によって解くことにより、前記対象プログラムの実行時間を最適にするために各々のクラスタに割り当てるプロセッサ・コアの個数を当該コンパイラ装置のプロセッサの動作により選択して、前記メモリに格納する
請求項1に記載のコンパイラ装置。 - 検出された前記支配的パスの各々について、前記メモリを当該コンパイラ装置のプロセッサの動作によりアクセスして、前記対象プログラムにおいて、当該支配的パス中の何れかのタスクの処理に依存する他の実行パス中のタスクの処理に、当該支配的パス中の他のタスクが更に依存する循環性依存を当該コンパイラ装置のプロセッサの動作により検出する、循環性依存検出部を更に備え、
前記クラスタ生成部は、検出された前記循環性依存の数がより少ない支配的パスを、他の支配的パスよりも優先して当該コンパイラ装置のプロセッサの動作により選択し、選択した当該支配的パスおよび他のタスクを含めたクラスタを当該コンパイラ装置のプロセッサの動作により生成して、前記メモリに格納する
請求項1に記載のコンパイラ装置。 - 前記支配的パスの各々について、前記メモリを当該コンパイラ装置のプロセッサの動作によりアクセスして、前記対象プログラムにおいて、当該支配的パス中の何れかのタスクと直接データ転送するタスクを含む他の支配的パスである隣接パスを当該コンパイラ装置のプロセッサの動作により選択する、隣接パス選択部を更に備え、
前記クラスタ生成部は、検出された前記循環性依存の数が各支配的パスについて同一であることを条件に、前記隣接パスの数がより少ない支配的パスを、他の支配的パスよりも優先して当該コンパイラ装置のプロセッサの動作により選択し、選択した当該支配的パスおよび他のタスクを含めたクラスタを当該コンパイラ装置のプロセッサの動作により生成して、前記メモリに格納する
請求項5に記載のコンパイラ装置。 - 前記クラスタ生成部は、
少なくとも1つの前記支配的パスについて、当該支配的パスと共にクラスタに含めるべきタスクの候補である候補タスクを当該コンパイラ装置のプロセッサの動作により選択する、候補選択部と、
前記候補タスクを当該支配的パスと共にクラスタに含めた場合において、前記クラスタに含まれる支配的パスの総数を当該コンパイラ装置のプロセッサの動作により算出する、パス数算出部と、
前記記録部に記録された前記実行コア数に基づき、算出された支配的パスの前記総数が前記実行コア数以下であることを条件に、前記候補タスクを含めて前記クラスタを当該コンパイラ装置のプロセッサの動作により生成して、前記メモリに格納するタスク追加部と
を有し、
前記候補選択部は、前記候補タスクが前記クラスタに追加されたことを条件に、更に他のタスクを前記クラスタに含めるべき他の候補タスクとして当該コンパイラ装置のプロセッサの動作により選択する
請求項1に記載のコンパイラ装置。 - 前記メモリを当該コンパイラ装置のプロセッサの動作によりアクセスして、前記対象プログラムに基づき、選択された前記候補タスクが、前記クラスタ中の複数のタスクの各々と通信する通信量の和を当該コンパイラ装置のプロセッサの動作により算出する通信量算出部を更に備え、
前記タスク追加部は、予め定められた基準値よりも前記通信量の和が大きいことを更に条件として、選択された前記候補タスクを含めて当該コンパイラ装置のプロセッサの動作により前記クラスタを生成する
請求項7に記載のコンパイラ装置。 - 前記メモリを当該コンパイラ装置のプロセッサの動作によりアクセスして、前記対象プログラムに基づき、選択された前記候補タスクを当該支配的パスと共に前記クラスタに含めた場合において前記クラスタ中のタスクを前記実行コア数のプロセッサ・コアで実行した場合に前記マルチコア・プロセッサがアイドル状態となる時間の割合を当該コンパイラ装置のプロセッサの動作により算出する、アイドル割合算出部を更に備え、
前記タスク追加部は、予め定められた基準値よりも前記アイドル状態となる時間の割合が小さいことを更に条件として、選択された前記候補タスクを含めて前記クラスタを当該コンパイラ装置のプロセッサの動作により生成して、前記メモリに格納する
請求項7に記載のコンパイラ装置。 - 前記時間算出部は、前記メモリを当該コンパイラ装置のプロセッサの動作によりアクセスして、前記メモリに格納されたクラスタ毎に、当該クラスタの実行時間を、当該クラスタ内から当該クラスタ外へのタスク切替、または、当該クラスタ外から当該クラスタ内へのタスク切替に、予め見積もられた最大所要時間を要すると見積もることによって当該コンパイラ装置のプロセッサの動作により算出し、前記メモリに格納する
請求項1に記載のコンパイラ装置。 - 前記メモリを当該コンパイラ装置のプロセッサの動作によりアクセスして、前記メモリに格納された前記対象プログラム中の第1タスクについて、前記第1タスクの処理結果に依存する少なくとも1つの第2タスクを当該コンパイラ装置のプロセッサの動作により選択する、タスク選択部と、
前記第1タスクおよび選択された前記第2タスクを異なるプロセッサ・コアで実行した場合のタスク切替時間と比較して、前記第2タスクを前記第1タスクの次に同一のプロセッサ・コアで実行した場合に短縮される前記タスク切替時間の短縮量を当該コンパイラ装置のプロセッサの動作により算出して、前記メモリに格納する短縮量算出部と
を更に備え、
前記パス検出部は、前記メモリに格納された前記短縮量に基づき、前記短縮量が最大となる第2タスクを前記第1タスクと共に前記支配的パスに含めて当該コンパイラ装置のプロセッサの動作により検出する
請求項1に記載のコンパイラ装置。 - マイクロプロセッサ・チップ上に、それぞれが他のプロセッサ・コアとは独立にかつ並列に演算処理を行うことができる、複数のプロセッサ・コアを設けたマルチコア・プロセッサによる、コンパイルの対象プログラムの実行を、コンパイラ装置により最適化するコンパイル方法であって、
前記コンパイラ装置が、前記マルチコア・プロセッサの有するプロセッサ・コアのうちで前記対象プログラムを実行するプロセッサ・コアの個数である実行コア数を記録している記録部と、前記対象プログラムを記憶するメモリとを有し、
プロセッサが、前記メモリをアクセスして、前記対象プログラムの中から、それぞれが前記対象プログラムの処理の一部に対応する命令群である複数のタスクによる、処理の流れを示す実行パスのうち、第1タスクの処理結果に依存する複数の第2タスクの中から前記第1タスクと異なるプロセッサ・コアで実行した場合に対する同一のプロセッサ・コアで連続して実行した場合のタスク切替時間の短縮量を最大化する第2のタスクを選択して第1タスクと共に含めて構成した実行パスである支配的パスを検出するステップと、
プロセッサが、前記記録部に記録された前記実行コア数に基づき、前記実行コア数以下の数の支配的パスを選択することにより前記マルチコア・プロセッサにおいて並列にまたは連続して実行すべき少なくとも1つのタスクをクラスタとして生成して、前記メモリに格納するステップと、
プロセッサが、前記メモリをアクセスして、前記メモリに格納されたクラスタ毎に、前記実行コア数以下の自然数の中から選択した1つまたは複数の自然数の各々について、当該クラスタを当該自然数に等しい個数のプロセッサ・コアで実行した場合の実行時間を算出して、前記メモリに格納するステップと、
プロセッサが、前記メモリをアクセスして、前記メモリに格納された前記実行時間に基づいて、前記対象プログラムの実行時間を短縮するべく各クラスタの実行のために割り当てるべきプロセッサ・コアの個数を選択して、前記メモリに格納するステップと
を備える方法。 - マイクロプロセッサ・チップ上に、それぞれが他のプロセッサ・コアとは独立にかつ並列に演算処理を行うことができる、複数のプロセッサ・コアを設けたマルチコア・プロセッサによる、コンパイルの対象プログラムの実行を、最適化するコンパイラ装置として、情報処理システムを機能させるコンパイラ・プログラムであって、
前記情報処理システムを、
前記対象プログラムを記憶するメモリと、
前記マルチコア・プロセッサが有するプロセッサ・コアのうち、前記対象プログラムを実行するプロセッサ・コアの個数である実行コア数を記録している、記録部と、
前記メモリを当該コンパイラ装置のプロセッサの動作によりアクセスして、前記対象プログラムの中から、それぞれが前記対象プログラムの処理の一部に対応する命令群である複数のタスクによる、処理の流れを示す実行パスのうち、第1タスクの処理結果に依存する複数の第2タスクの中から前記第1タスクと異なるプロセッサ・コアで実行した場合に対する同一のプロセッサ・コアで連続して実行した場合のタスク切替時間の短縮量を最大化する第2のタスクを選択して第1タスクと共に含めて構成した実行パスである支配的パスを当該コンパイラ装置のプロセッサの動作により検出する、パス検出部と、
前記記録部に記録された前記実行コア数に基づき、前記実行コア数以下の数の支配的パスを選択することにより前記マルチコア・プロセッサにおいて並列にまたは連続して実行すべき少なくとも1つのタスクをクラスタとして当該コンパイラ装置のプロセッサの動作により生成して、前記メモリに格納する、クラスタ生成部と、
前記メモリを当該コンパイラ装置のプロセッサの動作によりアクセスして、前記メモリに格納されたクラスタ毎に、前記実行コア数以下の自然数の中から選択した1つまたは複数の自然数の各々について、当該クラスタを当該自然数に等しい個数のプロセッサ・コアで実行した場合の実行時間を当該コンパイラ装置のプロセッサの動作により算出して、前記メモリに格納する、時間算出部と、
前記メモリを当該コンパイラ装置のプロセッサの動作によりアクセスして、前記メモリに格納された前記実行時間に基づいて、前記対象プログラムの実行時間を短縮するべく各クラスタの実行のために割り当てるべきプロセッサ・コアの個数を当該コンパイラ装置のプロセッサの動作により選択して、前記メモリに格納する、コア数選択部と
して機能させるコンパイラ・プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005232085A JP3938387B2 (ja) | 2005-08-10 | 2005-08-10 | コンパイラ、制御方法、およびコンパイラ・プログラム |
US11/463,496 US7503039B2 (en) | 2005-08-10 | 2006-08-09 | Preprocessor to improve the performance of message-passing-based parallel programs on virtualized multi-core processors |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005232085A JP3938387B2 (ja) | 2005-08-10 | 2005-08-10 | コンパイラ、制御方法、およびコンパイラ・プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007048052A JP2007048052A (ja) | 2007-02-22 |
JP3938387B2 true JP3938387B2 (ja) | 2007-06-27 |
Family
ID=37743998
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005232085A Expired - Fee Related JP3938387B2 (ja) | 2005-08-10 | 2005-08-10 | コンパイラ、制御方法、およびコンパイラ・プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US7503039B2 (ja) |
JP (1) | JP3938387B2 (ja) |
Families Citing this family (141)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050132367A1 (en) * | 2003-12-16 | 2005-06-16 | Vijay Tewari | Method, apparatus and system for proxying, aggregating and optimizing virtual machine information for network-based management |
US20050132363A1 (en) * | 2003-12-16 | 2005-06-16 | Vijay Tewari | Method, apparatus and system for optimizing context switching between virtual machines |
US7735081B2 (en) * | 2004-12-17 | 2010-06-08 | Intel Corporation | Method, apparatus and system for transparent unification of virtual machines |
US9606821B2 (en) * | 2004-12-17 | 2017-03-28 | Intel Corporation | Virtual environment manager for creating and managing virtual machine environments |
US20060143617A1 (en) * | 2004-12-29 | 2006-06-29 | Knauerhase Robert C | Method, apparatus and system for dynamic allocation of virtual platform resources |
JP4784827B2 (ja) * | 2006-06-06 | 2011-10-05 | 学校法人早稲田大学 | ヘテロジニアスマルチプロセッサ向けグローバルコンパイラ |
US8332925B2 (en) | 2006-08-08 | 2012-12-11 | A10 Networks, Inc. | System and method for distributed multi-processing security gateway |
US8079077B2 (en) | 2006-08-08 | 2011-12-13 | A10 Networks, Inc. | System and method for distributed multi-processing security gateway |
US7954095B2 (en) * | 2006-11-01 | 2011-05-31 | International Business Machines Corporation | Analysis and selection of optimal function implementations in massively parallel computer |
US20080147221A1 (en) * | 2006-12-13 | 2008-06-19 | Garg Sukesh | Grid modeling tool |
US20080244222A1 (en) * | 2007-03-30 | 2008-10-02 | Intel Corporation | Many-core processing using virtual processors |
US8166479B2 (en) | 2007-06-26 | 2012-04-24 | Softlife Projects Limited As Applied Cytometry Systems | Optimizing data analysis through directional dependencies of a graph including plurality of nodes and attributing threading models and setting status to each of the nodes |
US8140731B2 (en) | 2007-08-27 | 2012-03-20 | International Business Machines Corporation | System for data processing using a multi-tiered full-graph interconnect architecture |
US7958183B2 (en) | 2007-08-27 | 2011-06-07 | International Business Machines Corporation | Performing collective operations using software setup and partial software execution at leaf nodes in a multi-tiered full-graph interconnect architecture |
US7822889B2 (en) * | 2007-08-27 | 2010-10-26 | International Business Machines Corporation | Direct/indirect transmission of information using a multi-tiered full-graph interconnect architecture |
US8185896B2 (en) * | 2007-08-27 | 2012-05-22 | International Business Machines Corporation | Method for data processing using a multi-tiered full-graph interconnect architecture |
US7769891B2 (en) * | 2007-08-27 | 2010-08-03 | International Business Machines Corporation | System and method for providing multiple redundant direct routes between supernodes of a multi-tiered full-graph interconnect architecture |
US8014387B2 (en) * | 2007-08-27 | 2011-09-06 | International Business Machines Corporation | Providing a fully non-blocking switch in a supernode of a multi-tiered full-graph interconnect architecture |
US8108545B2 (en) | 2007-08-27 | 2012-01-31 | International Business Machines Corporation | Packet coalescing in virtual channels of a data processing system in a multi-tiered full-graph interconnect architecture |
US7793158B2 (en) * | 2007-08-27 | 2010-09-07 | International Business Machines Corporation | Providing reliability of communication between supernodes of a multi-tiered full-graph interconnect architecture |
US7958182B2 (en) | 2007-08-27 | 2011-06-07 | International Business Machines Corporation | Providing full hardware support of collective operations in a multi-tiered full-graph interconnect architecture |
US7769892B2 (en) | 2007-08-27 | 2010-08-03 | International Business Machines Corporation | System and method for handling indirect routing of information between supernodes of a multi-tiered full-graph interconnect architecture |
US7840703B2 (en) * | 2007-08-27 | 2010-11-23 | International Business Machines Corporation | System and method for dynamically supporting indirect routing within a multi-tiered full-graph interconnect architecture |
US7904590B2 (en) | 2007-08-27 | 2011-03-08 | International Business Machines Corporation | Routing information through a data processing system implementing a multi-tiered full-graph interconnect architecture |
US7809970B2 (en) * | 2007-08-27 | 2010-10-05 | International Business Machines Corporation | System and method for providing a high-speed message passing interface for barrier operations in a multi-tiered full-graph interconnect architecture |
US7827428B2 (en) | 2007-08-31 | 2010-11-02 | International Business Machines Corporation | System for providing a cluster-wide system clock in a multi-tiered full-graph interconnect architecture |
US7921316B2 (en) | 2007-09-11 | 2011-04-05 | International Business Machines Corporation | Cluster-wide system clock in a multi-tiered full-graph interconnect architecture |
US8789031B2 (en) * | 2007-09-18 | 2014-07-22 | Intel Corporation | Software constructed strands for execution on a multi-core architecture |
JP5036523B2 (ja) * | 2007-12-21 | 2012-09-26 | 三菱電機株式会社 | プログラム並列化装置 |
US7779148B2 (en) | 2008-02-01 | 2010-08-17 | International Business Machines Corporation | Dynamic routing based on information of not responded active source requests quantity received in broadcast heartbeat signal and stored in local data structure for other processor chips |
US20090198956A1 (en) * | 2008-02-01 | 2009-08-06 | Arimilli Lakshminarayana B | System and Method for Data Processing Using a Low-Cost Two-Tier Full-Graph Interconnect Architecture |
US8077602B2 (en) * | 2008-02-01 | 2011-12-13 | International Business Machines Corporation | Performing dynamic request routing based on broadcast queue depths |
US8751211B2 (en) | 2008-03-27 | 2014-06-10 | Rocketick Technologies Ltd. | Simulation using parallel processors |
US9678775B1 (en) * | 2008-04-09 | 2017-06-13 | Nvidia Corporation | Allocating memory for local variables of a multi-threaded program for execution in a single-threaded environment |
KR101118321B1 (ko) | 2008-04-09 | 2012-03-09 | 엔비디아 코포레이션 | 리타게팅된 그래픽 프로세서 가속 코드의 범용 프로세서에 의한 실행 |
US8776030B2 (en) * | 2008-04-09 | 2014-07-08 | Nvidia Corporation | Partitioning CUDA code for execution by a general purpose processor |
US8386664B2 (en) * | 2008-05-22 | 2013-02-26 | International Business Machines Corporation | Reducing runtime coherency checking with global data flow analysis |
US8281295B2 (en) * | 2008-05-23 | 2012-10-02 | International Business Machines Corporation | Computer analysis and runtime coherency checking |
US9032377B2 (en) | 2008-07-10 | 2015-05-12 | Rocketick Technologies Ltd. | Efficient parallel computation of dependency problems |
US8516454B2 (en) * | 2008-07-10 | 2013-08-20 | Rocketick Technologies Ltd. | Efficient parallel computation of dependency problems |
US8285670B2 (en) | 2008-07-22 | 2012-10-09 | International Business Machines Corporation | Dynamically maintaining coherency within live ranges of direct buffers |
EP2352087A4 (en) | 2008-10-24 | 2012-08-08 | Ibm | PROCESS, SYSTEM AND PROGRAM FOR SOURCE COD PROCESSING |
JP2010113482A (ja) * | 2008-11-05 | 2010-05-20 | Panasonic Corp | 資源割付方法、プログラム、及び資源割付装置 |
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 |
US10621092B2 (en) | 2008-11-24 | 2020-04-14 | Intel Corporation | Merging level cache and data cache units having indicator bits related to speculative execution |
JP4629768B2 (ja) | 2008-12-03 | 2011-02-09 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 並列化処理方法、システム、及びプログラム |
JP2012511204A (ja) * | 2008-12-08 | 2012-05-17 | ケーピーアイティ クミンズ インフォシステムズ リミテッド | リソースを最適化するためのタスク再編成方法 |
US9250973B2 (en) | 2009-03-12 | 2016-02-02 | Polycore Software, Inc. | Apparatus and associated methodology of generating a multi-core communications topology |
KR101610828B1 (ko) * | 2009-09-23 | 2016-04-08 | 삼성전자주식회사 | 멀티코어 프로세서의 인터럽트 온/오프 관리 장치와 방법 |
JP4931978B2 (ja) * | 2009-10-06 | 2012-05-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 並列化処理方法、システム、及びプログラム |
US9274851B2 (en) * | 2009-11-25 | 2016-03-01 | Brocade Communications Systems, Inc. | Core-trunking across cores on physically separated processors allocated to a virtual machine based on configuration information including context information for virtual machines |
US8417778B2 (en) * | 2009-12-17 | 2013-04-09 | International Business Machines Corporation | Collective acceleration unit tree flow control and retransmit |
KR101814221B1 (ko) | 2010-01-21 | 2018-01-02 | 스비랄 인크 | 스트림 기반 계산을 구현하기 위한 범용 다중 코어 시스템을 위한 방법 및 장치 |
US8503289B2 (en) | 2010-03-19 | 2013-08-06 | Brocade Communications Systems, Inc. | Synchronizing multicast information for linecards |
US8516453B2 (en) * | 2010-05-10 | 2013-08-20 | International Business Machines Corporation | Partition-based static analysis of computer software applications |
US9104619B2 (en) | 2010-07-23 | 2015-08-11 | Brocade Communications Systems, Inc. | Persisting data across warm boots |
US8495418B2 (en) | 2010-07-23 | 2013-07-23 | Brocade Communications Systems, Inc. | Achieving ultra-high availability using a single CPU |
WO2012019111A2 (en) * | 2010-08-06 | 2012-02-09 | Frederick Furtek | A method and apparatus for a compiler and related components for stream-based computations for a general-purpose, multiple-core system |
US8863128B2 (en) * | 2010-09-30 | 2014-10-14 | Autodesk, Inc | System and method for optimizing the evaluation of task dependency graphs |
US8484642B2 (en) * | 2010-11-17 | 2013-07-09 | Intel Corporation | Processor core selection based at least in part upon at least one inter-dependency |
KR101738641B1 (ko) * | 2010-12-17 | 2017-05-23 | 삼성전자주식회사 | 멀티 코어 시스템의 프로그램 컴파일 장치 및 방법 |
JP5178852B2 (ja) * | 2011-01-12 | 2013-04-10 | 株式会社東芝 | 情報処理装置およびプログラム |
CN102622208B (zh) * | 2011-01-27 | 2015-06-10 | 中兴通讯股份有限公司 | 一种多核可重构处理器簇及其实现重构的方法 |
US9128748B2 (en) | 2011-04-12 | 2015-09-08 | Rocketick Technologies Ltd. | Parallel simulation using multiple co-simulators |
JP5737057B2 (ja) * | 2011-08-19 | 2015-06-17 | 富士通株式会社 | プログラム、ジョブスケジューリング方法、および情報処理装置 |
US9143335B2 (en) | 2011-09-16 | 2015-09-22 | Brocade Communications Systems, Inc. | Multicast route cache system |
WO2013048468A1 (en) | 2011-09-30 | 2013-04-04 | Intel Corporation | Instruction and logic to perform dynamic binary translation |
US20130125099A1 (en) * | 2011-11-14 | 2013-05-16 | Microsoft Corporation | Modular compilation using partial compilers |
US9118618B2 (en) | 2012-03-29 | 2015-08-25 | A10 Networks, Inc. | Hardware-based packet editor |
KR20130115574A (ko) * | 2012-04-12 | 2013-10-22 | 삼성전자주식회사 | 단말기에서 태스크 스케줄링을 수행하는 방법 및 장치 |
JP2013235386A (ja) * | 2012-05-08 | 2013-11-21 | Internatl Business Mach Corp <Ibm> | 最適化装置、最適化方法、及び最適化プログラム |
US9596286B2 (en) | 2012-05-25 | 2017-03-14 | A10 Networks, Inc. | Method to process HTTP header with hardware assistance |
KR101975288B1 (ko) | 2012-06-15 | 2019-05-07 | 삼성전자 주식회사 | 멀티 클러스터 프로세싱 시스템 및 그 구동 방법 |
US8793669B2 (en) * | 2012-07-17 | 2014-07-29 | Concurix Corporation | Pattern extraction from executable code in message passing environments |
US9244880B2 (en) * | 2012-08-30 | 2016-01-26 | Netspeed Systems | Automatic construction of deadlock free interconnects |
US10581763B2 (en) | 2012-09-21 | 2020-03-03 | Avago Technologies International Sales Pte. Limited | High availability application messaging layer |
US9203690B2 (en) | 2012-09-24 | 2015-12-01 | Brocade Communications Systems, Inc. | Role based multicast messaging infrastructure |
US9967106B2 (en) | 2012-09-24 | 2018-05-08 | Brocade Communications Systems LLC | Role based multicast messaging infrastructure |
US10021174B2 (en) | 2012-09-25 | 2018-07-10 | A10 Networks, Inc. | Distributing service sessions |
EP2901308B1 (en) | 2012-09-25 | 2021-11-03 | A10 Networks, Inc. | Load distribution in data networks |
US10467681B2 (en) * | 2012-10-04 | 2019-11-05 | Sap Se | System, method, and medium for matching orders with incoming shipments |
US8885510B2 (en) | 2012-10-09 | 2014-11-11 | Netspeed Systems | Heterogeneous channel capacities in an interconnect |
JP5714622B2 (ja) * | 2013-02-21 | 2015-05-07 | トヨタ自動車株式会社 | 制御装置 |
EP2960727B1 (en) | 2013-02-21 | 2018-05-30 | Toyota Jidosha Kabushiki Kaisha | Control device design method and control device |
US9582256B2 (en) * | 2013-03-14 | 2017-02-28 | Sas Institute Inc. | Automated cooperative concurrency with minimal syntax |
US9880842B2 (en) | 2013-03-15 | 2018-01-30 | Intel Corporation | Using control flow data structures to direct and track instruction execution |
US10027761B2 (en) | 2013-05-03 | 2018-07-17 | A10 Networks, Inc. | Facilitating a secure 3 party network session by a network device |
JP6303300B2 (ja) * | 2013-06-25 | 2018-04-04 | 富士通株式会社 | 制御依頼方法、情報処理装置、システム、およびプログラム |
US9471726B2 (en) | 2013-07-25 | 2016-10-18 | Netspeed Systems | System level simulation in network on chip architecture |
US9473388B2 (en) | 2013-08-07 | 2016-10-18 | Netspeed Systems | Supporting multicast in NOC interconnect |
US9652297B2 (en) * | 2013-09-19 | 2017-05-16 | Intel Corporation | Techniques for distributed processing task portion assignment |
US9891936B2 (en) | 2013-09-27 | 2018-02-13 | Intel Corporation | Method and apparatus for page-level monitoring |
US9195436B2 (en) * | 2013-10-14 | 2015-11-24 | Microsoft Technology Licensing, Llc | Parallel dynamic programming through rank convergence |
GB2521367A (en) * | 2013-12-17 | 2015-06-24 | Ibm | Adaptable and extensible runtime and system for heterogeneous computer systems |
US9699079B2 (en) | 2013-12-30 | 2017-07-04 | Netspeed Systems | Streaming bridge design with host interfaces and network on chip (NoC) layers |
US9473415B2 (en) | 2014-02-20 | 2016-10-18 | Netspeed Systems | QoS in a system with end-to-end flow control and QoS aware buffer allocation |
US10014940B2 (en) | 2014-02-21 | 2018-07-03 | 3M Innovative Properties Company | Method, apparatus and system for visible light communication |
US10020979B1 (en) | 2014-03-25 | 2018-07-10 | A10 Networks, Inc. | Allocating resources in multi-core computing environments |
US9806943B2 (en) | 2014-04-24 | 2017-10-31 | A10 Networks, Inc. | Enabling planned upgrade/downgrade of network devices without impacting network sessions |
WO2015163506A1 (ko) * | 2014-04-25 | 2015-10-29 | 전자부품연구원 | 그래픽 처리 장치의 동작을 위한 작업 할당 시스템 및 방법 |
US9742630B2 (en) | 2014-09-22 | 2017-08-22 | Netspeed Systems | Configurable router for a network on chip (NoC) |
US9571341B1 (en) | 2014-10-01 | 2017-02-14 | Netspeed Systems | Clock gating for system-on-chip elements |
US9619349B2 (en) | 2014-10-14 | 2017-04-11 | Brocade Communications Systems, Inc. | Biasing active-standby determination |
US9400683B2 (en) * | 2014-10-16 | 2016-07-26 | Sap Se | Optimizing execution of processes |
US9916187B2 (en) | 2014-10-27 | 2018-03-13 | Oracle International Corporation | Graph database system that dynamically compiles and executes custom graph analytic programs written in high-level, imperative programming language |
CN109471812B (zh) * | 2015-01-19 | 2023-09-05 | 铠侠股份有限公司 | 存储装置及非易失性存储器的控制方法 |
US10175885B2 (en) | 2015-01-19 | 2019-01-08 | Toshiba Memory Corporation | Memory device managing data in accordance with command and non-transitory computer readable recording medium |
US9529643B2 (en) | 2015-01-26 | 2016-12-27 | Qualcomm Incorporated | Method and system for accelerating task control flow |
US9660942B2 (en) | 2015-02-03 | 2017-05-23 | Netspeed Systems | Automatic buffer sizing for optimal network-on-chip design |
US9444702B1 (en) | 2015-02-06 | 2016-09-13 | Netspeed Systems | System and method for visualization of NoC performance based on simulation output |
US9928204B2 (en) | 2015-02-12 | 2018-03-27 | Netspeed Systems, Inc. | Transaction expansion for NoC simulation and NoC design |
US9568970B1 (en) | 2015-02-12 | 2017-02-14 | Netspeed Systems, Inc. | Hardware and software enabled implementation of power profile management instructions in system on chip |
US10348563B2 (en) | 2015-02-18 | 2019-07-09 | Netspeed Systems, Inc. | System-on-chip (SoC) optimization through transformation and generation of a network-on-chip (NoC) topology |
US10050843B2 (en) | 2015-02-18 | 2018-08-14 | Netspeed Systems | Generation of network-on-chip layout based on user specified topological constraints |
JP6427054B2 (ja) * | 2015-03-31 | 2018-11-21 | 株式会社デンソー | 並列化コンパイル方法、及び並列化コンパイラ |
EP3082038A1 (en) * | 2015-04-15 | 2016-10-19 | Hybridserver Tec AG | Method, device and system for creating a massively parallelized executable object |
US9825809B2 (en) | 2015-05-29 | 2017-11-21 | Netspeed Systems | Dynamically configuring store-and-forward channels and cut-through channels in a network-on-chip |
US9864728B2 (en) | 2015-05-29 | 2018-01-09 | Netspeed Systems, Inc. | Automatic generation of physically aware aggregation/distribution networks |
US10218580B2 (en) | 2015-06-18 | 2019-02-26 | Netspeed Systems | Generating physically aware network-on-chip design from a physical system-on-chip specification |
CN106325967B (zh) | 2015-06-30 | 2019-10-25 | 华为技术有限公司 | 一种硬件加速方法、编译器以及设备 |
WO2017163592A1 (ja) * | 2016-03-24 | 2017-09-28 | 富士フイルム株式会社 | 画像処理装置、画像処理方法、及び画像処理プログラム |
US10506016B2 (en) | 2016-05-19 | 2019-12-10 | Oracle International Corporation | Graph analytic engine that implements efficient transparent remote access over representational state transfer |
US10592279B2 (en) * | 2016-06-23 | 2020-03-17 | Advanced Micro Devices, Inc. | Multi-processor apparatus and method of detection and acceleration of lagging tasks |
US10452124B2 (en) | 2016-09-12 | 2019-10-22 | Netspeed Systems, Inc. | Systems and methods for facilitating low power on a network-on-chip |
US20180159786A1 (en) | 2016-12-02 | 2018-06-07 | Netspeed Systems, Inc. | Interface virtualization and fast path for network on chip |
US10313269B2 (en) | 2016-12-26 | 2019-06-04 | Netspeed Systems, Inc. | System and method for network on chip construction through machine learning |
US10063496B2 (en) | 2017-01-10 | 2018-08-28 | Netspeed Systems Inc. | Buffer sizing of a NoC through machine learning |
US10084725B2 (en) | 2017-01-11 | 2018-09-25 | Netspeed Systems, Inc. | Extracting features from a NoC for machine learning construction |
US10469337B2 (en) | 2017-02-01 | 2019-11-05 | Netspeed Systems, Inc. | Cost management against requirements for the generation of a NoC |
US10298485B2 (en) | 2017-02-06 | 2019-05-21 | Netspeed Systems, Inc. | Systems and methods for NoC construction |
US10983910B2 (en) | 2018-02-22 | 2021-04-20 | Netspeed Systems, Inc. | Bandwidth weighting mechanism based network-on-chip (NoC) configuration |
US10896476B2 (en) | 2018-02-22 | 2021-01-19 | Netspeed Systems, Inc. | Repository of integration description of hardware intellectual property for NoC construction and SoC integration |
US11144457B2 (en) | 2018-02-22 | 2021-10-12 | Netspeed Systems, Inc. | Enhanced page locality in network-on-chip (NoC) architectures |
US10547514B2 (en) | 2018-02-22 | 2020-01-28 | Netspeed Systems, Inc. | Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation |
US11176302B2 (en) | 2018-02-23 | 2021-11-16 | Netspeed Systems, Inc. | System on chip (SoC) builder |
KR102485935B1 (ko) | 2018-02-23 | 2023-01-10 | 삼성전자주식회사 | 전자 장치 및 그의 동작 방법 |
US11023377B2 (en) | 2018-02-23 | 2021-06-01 | Netspeed Systems, Inc. | Application mapping on hardened network-on-chip (NoC) of field-programmable gate array (FPGA) |
CN108613681A (zh) * | 2018-05-14 | 2018-10-02 | 河海大学常州校区 | 大数据环境下基于迭代计算的路径规划分布式计算方法 |
CN109828837B (zh) * | 2019-01-25 | 2022-10-21 | 桂林电子科技大学 | 基于最长路径优先的关联性任务调度方法 |
CN113439256A (zh) * | 2019-02-26 | 2021-09-24 | 三菱电机株式会社 | 信息处理装置、信息处理方法和信息处理程序 |
CN111752700B (zh) * | 2019-03-27 | 2023-08-25 | 杭州海康威视数字技术股份有限公司 | 一种处理器上的硬件选择方法和装置 |
-
2005
- 2005-08-10 JP JP2005232085A patent/JP3938387B2/ja not_active Expired - Fee Related
-
2006
- 2006-08-09 US US11/463,496 patent/US7503039B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2007048052A (ja) | 2007-02-22 |
US20070038987A1 (en) | 2007-02-15 |
US7503039B2 (en) | 2009-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3938387B2 (ja) | コンパイラ、制御方法、およびコンパイラ・プログラム | |
JP5711853B2 (ja) | 異種コアの自動カーネル移行 | |
Ozdal et al. | Energy efficient architecture for graph analytics accelerators | |
JP5859639B2 (ja) | 異種コア用の自動負荷バランシング | |
JP5658365B2 (ja) | ハイブリッド・コンピューティング環境における高スループット・コンピューティングの方法、システム及びプログラム | |
US8214814B2 (en) | Sharing compiler optimizations in a multi-node system | |
JP7039631B2 (ja) | アクセスリクエストを管理するための方法、装置、デバイス、および記憶媒体 | |
TWI564810B (zh) | 多核心處理器之晶粒內差異特性化技術 | |
JP5966509B2 (ja) | プログラム、コード生成方法および情報処理装置 | |
Clemente-Castelló et al. | Performance model of mapreduce iterative applications for hybrid cloud bursting | |
Makrani et al. | A comprehensive memory analysis of data intensive workloads on server class architecture | |
JP5321691B2 (ja) | 並列計算装置、並列計算方法、および並列計算プログラム | |
JP4908363B2 (ja) | 情報処理装置、並列処理最適化方法およびプログラム | |
TW201435576A (zh) | 陷阱處理期間的協作執行緒陣列粒化內文切換 | |
JP6763411B2 (ja) | 設計支援装置、設計支援方法、および設計支援プログラム | |
JP6051733B2 (ja) | 制御システム、制御方法、及び、制御プログラム | |
US8732721B2 (en) | Method for reducing trap overhead when executing a guest in a virtual machine | |
CN113407114A (zh) | 一种基于热数据和删除重复操作的在线扩容io调度方法 | |
JP7131005B2 (ja) | 情報処理装置、情報処理方法、及び情報処理プログラム | |
KR102365261B1 (ko) | 전자시스템, 그 동작방법 및 그 메모리 장치의 동작방법 | |
JP7397179B2 (ja) | 階層化オブジェクトメモリ配置のためのランタイム装置の管理 | |
CN111861860B (zh) | 一种面向ai智能soc芯片的图像加速处理系统 | |
CN117076116A (zh) | 一种基于嵌入式产品的内存优化方法及相关装置 | |
Minglani et al. | Design space exploration for efficient computing in solid state drives with the storage processing unit | |
CN118838855A (zh) | 一种物联网传感器数据分析方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061107 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070111 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20070111 |
|
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: 20070306 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20070307 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070320 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |