JP2009230764A - マルチプロセッサシステム - Google Patents
マルチプロセッサシステム Download PDFInfo
- Publication number
- JP2009230764A JP2009230764A JP2009159744A JP2009159744A JP2009230764A JP 2009230764 A JP2009230764 A JP 2009230764A JP 2009159744 A JP2009159744 A JP 2009159744A JP 2009159744 A JP2009159744 A JP 2009159744A JP 2009230764 A JP2009230764 A JP 2009230764A
- Authority
- JP
- Japan
- Prior art keywords
- data
- shared memory
- processing
- memory
- processing element
- 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.)
- Pending
Links
Images
Landscapes
- Multi Processors (AREA)
Abstract
【解決手段】CPUと、分散共有メモリと、ローカルデータメモリと、を備える複数のプロセッシングエレメントと、前記各プロセッシングエレメントに接続される集中共有メモリと、を備えるマルチプロセッサであって、前記各プロセッシングエレメントに割り当てられたタスク間で共通に使用されるデータが、前記各タスクで必要とされるとき以前に、データの消費先の前記プロセッシングエレメントの前記分散共有メモリへ転送され、前記集中共有メモリは、粗粒度並列処理において条件分岐に対応するために使用されるダイナミックスケジューリングにおいて、プログラムの実行時までどのCPUにより使用されるかが決まっていないデータを格納する。
【選択図】図1
Description
単一プログラム中のサブルーチン、ループ、基本ブロック間の並列性を利用する粗粒度並列処理は、マクロデータフロー処理とも呼ばれる。ソースとなる例えばフォートランプログラムを、粗粒度タスク(マクロタスク)として、繰り返しブロック(RB:repetition block)、サブルーチンブロック(SB:subroutine block)、疑似代入文ブロック(BPA:block of pseudo assignment statements)の3種類のマクロタスク(MT)に分解する。RBは、各階層での最も外側のナチュラルループであり、SBはサブルーチン、BPAはスケジューリングオーバヘッドあるいは並列性を考慮し融合あるいは分割された基本ブロックである。ここで、BPAは、基本的には通常の基本ブロックであるが、並列性抽出のために単一の基本ブロックを複数に分割したり、逆に一つのBPAの処理時間が短く、ダイナミックスケジューリング時のオーバヘッドが無視できない場合には、複数のBPAを融合し得一つのBPAを生成する。最外側ループであるRBがDoallループであるときは、ループインデクスを分割することにより複数の部分Doallループに分割し、分割後の部分Doallループを新たにRBと定義する。また、サブルーチンSBは、可能な限りインライン展開するが、コード長を考慮し効果的にインライン展開ができないサブルーチンはそのままSBとして定義する。さらに、SBやDoall不可能なRBの場合、これらの内部の並列性に対し、階層的マクロデータフロー処理を適用する。
マルチグレイン並列化では、マクロデータフロー処理によりプロセッサクラスタ(PC)に割り当てられるループ(RB)は、そのRBがDoallあるいはDoacrossループの場合、PC内のプロセッシングエレメント(PE)に対してイタレーションレベルで並列化処理(分割)される。
(a)ステートメントの実行順序の変更
(b)ループディストリビューション
(c)ノードスプリッティングスカラエクスパンション
(d)ループインターチェンジ
(e)ループアンローリング
(f)ストリップマイニング
(g)アレイプライベタイゼーション
(h)ユニモジュラー変換(ループリバーサル、パーミュテーション、スキューイング)
また、ループ並列化処理が適用できないループに関しては、図4のようにループボディ部を次に述べる(近)細粒度並列処理か、ボディ部を階層的にマクロタスクに分割しマクロデータフロー処理(粗粒度タスク並列処理)を適用する。
PCに割り当てられるMTがBPAまたはループ並列化或いは階層的にマクロデータフロー処理を適用できないRB等の場合には、BPA内部のステートメント或いは命令を近細粒度タスクとしてPC内プロセッサで並列処理する。
12 チップ間接続ネットワーク
14 集中共有メモリ(チップ)
16 プロセッシングエレメント
20 CPU
22 分散共有メモリ
24 アジャスタブルプリフェッチ命令キャッシュ
26 ローカルデータメモリ
28 集中共有メモリ
30 データ転送コントローラ
32 ネットワークインタフェース
34 チップ内接続ネットワーク
Claims (1)
- CPUと、前記CPUに接続されているネットワークインタフェースと、コンパイラによりスタティックスケジューリングされたプログラムの実行時に転送されるデータを格納し、他のプロセッシングエレメントからアクセス可能な分散共有メモリと、当該プロセッシングエレメントだけからアクセス可能なローカルデータメモリと、を備える複数のプロセッシングエレメントと、
前記各プロセッシングエレメントに接続され、前記各プロセッシングエレメントによって共有され、コンパイラによりダイナミックスケジューリングされたプログラムの実行時に使用されるデータを格納する集中共有メモリと、を備えるマルチプロセッサであって、
前記分散共有メモリは、スタティックスケジューリングされたプログラムの実行時に、プロセシングエレメント間のデータ転送に使用され、
前記ローカルデータメモリは、当該プロセッシングエレメントに割り当てられたタスクにおいて使用されるローカルデータを保持するために使用され、
前記各プロセッシングエレメントに割り当てられたタスク間で共通に使用されるデータが、前記各タスクで必要とされるとき以前に、データの消費先の前記プロセッシングエレメントの前記分散共有メモリへ転送され、
前記集中共有メモリは、粗粒度並列処理において条件分岐に対応するために使用されるダイナミックスケジューリングにおいて、プログラムの実行時までどのCPUにより使用されるかが決まっていないデータを格納することを特徴とするマルチプロセッサ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009159744A JP2009230764A (ja) | 2009-07-06 | 2009-07-06 | マルチプロセッサシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009159744A JP2009230764A (ja) | 2009-07-06 | 2009-07-06 | マルチプロセッサシステム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP36370299A Division JP4784792B2 (ja) | 1999-12-22 | 1999-12-22 | マルチプロセッサ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009230764A true JP2009230764A (ja) | 2009-10-08 |
Family
ID=41245997
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009159744A Pending JP2009230764A (ja) | 2009-07-06 | 2009-07-06 | マルチプロセッサシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009230764A (ja) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02244253A (ja) * | 1989-03-17 | 1990-09-28 | Hitachi Ltd | 分散共有メモリを持つマルチプロセッサシステム |
JPH04123234A (ja) * | 1990-09-14 | 1992-04-23 | Hitachi Ltd | マルチプロセッサのプロセススケジューリング方式及びメモリ管理方式 |
JPH04333955A (ja) * | 1990-11-30 | 1992-11-20 | Xerox Corp | バスの競合を解決するための裁定手段 |
JPH06266683A (ja) * | 1993-03-12 | 1994-09-22 | Toshiba Corp | 並列処理装置 |
JPH07509085A (ja) * | 1992-07-10 | 1995-10-05 | クレイ・リサーチ・インコーポレイテッド | 統一されたパラレル処理アーキテクチャのための方法と装置 |
-
2009
- 2009-07-06 JP JP2009159744A patent/JP2009230764A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02244253A (ja) * | 1989-03-17 | 1990-09-28 | Hitachi Ltd | 分散共有メモリを持つマルチプロセッサシステム |
JPH04123234A (ja) * | 1990-09-14 | 1992-04-23 | Hitachi Ltd | マルチプロセッサのプロセススケジューリング方式及びメモリ管理方式 |
JPH04333955A (ja) * | 1990-11-30 | 1992-11-20 | Xerox Corp | バスの競合を解決するための裁定手段 |
JPH07509085A (ja) * | 1992-07-10 | 1995-10-05 | クレイ・リサーチ・インコーポレイテッド | 統一されたパラレル処理アーキテクチャのための方法と装置 |
JPH06266683A (ja) * | 1993-03-12 | 1994-09-22 | Toshiba Corp | 並列処理装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3449359B1 (en) | Out-of-order block-based processors and instruction schedulers | |
Etsion et al. | Task superscalar: An out-of-order task pipeline | |
EP3314401B1 (en) | Block-based architecture with parallel execution of successive blocks | |
Burger et al. | Scaling to the end of silicon with EDGE architectures | |
US7490218B2 (en) | Building a wavecache | |
JP5224498B2 (ja) | メモリ管理方法、情報処理装置、プログラムの作成方法及びプログラム | |
Yazdanpanah et al. | Hybrid dataflow/von-Neumann architectures | |
US20170083338A1 (en) | Prefetching associated with predicated load instructions | |
Keckler et al. | Multicore processors and systems | |
US20170083339A1 (en) | Prefetching associated with predicated store instructions | |
WO2017223006A1 (en) | Load-store queue for multiple processor cores | |
Sohi et al. | Speculative multithreaded processors | |
JP4784792B2 (ja) | マルチプロセッサ | |
JP4304347B2 (ja) | マルチプロセッサ | |
EP3746883B1 (en) | Processor having multiple execution lanes and coupling of wide memory interface via writeback circuit | |
Bousias et al. | Instruction level parallelism through microthreading—a scalable approach to chip multiprocessors | |
Owaida et al. | Massively parallel programming models used as hardware description languages: The OpenCL case | |
JP4784842B2 (ja) | マルチプロセッサ及びマルチプロセッサシステム | |
Etsion et al. | Task superscalar: Using processors as functional units | |
Leback et al. | Tesla vs. xeon phi vs. radeon a compiler writer’s perspective | |
JP2009230764A (ja) | マルチプロセッサシステム | |
Tsai | Superthreading: Integrating compilation technology and processor architecture for cost-effective concurrent multithreading | |
Arandi | The data-driven multithreading virtual machine | |
Brownell | Architectural Implications of Automatic Parallelization With HELIX-RC | |
Bernard et al. | A microthreaded architecture and its compiler |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090805 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090811 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20090811 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20090828 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090908 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091109 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100209 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100720 |