Professional Documents
Culture Documents
ある Cell/SPE の実装について述べる.
Atom Waiting
処理系と Atom は,どちらも SPE 上で動作し. PPE は単に初期化と終了を行うのみである.
Global Runtime
のプログラムは残りの 186 KB すべてを使うことができる.
update runtime context Lock Context
遅延実行のための待ち行列は LS の小ささに伴って小さくせざるを得ない.待ち行列に空きが
なくなると,処理系を持っている SPE は Atom 処理を行っている SPE が Atom を実行し終
Runtime Atom
え,データ依存が解決し,待ち行列が空くのを待つしかない.これは並列性を阻害する要因で
図 2 各コアの動作 ある.この問題を避けるためには待ち行列をできるだけ大きくするのが良いが,一方で Atom
Fig. 2 Each Core Activities
の処理内容によっては LS を多く使用できればできるほど処理速度が向上するものがあり,ト
レードオフとなることがある.そのためには自動的に待ち行列の大きさを最適な値に調節する,
ド処理においても引数の値が未決定の場合には,そのバイトコード処理を待ち行列に入れて評 5 章で述べるツールでプロファイル情報を提示することでユーザに最適化してもらう,などの
価を先送りにする.すべての引数の値が決定している Atom 呼び出しに到達すると,処理系は 方法が考えられる.
ロックを外し, Atom コードの実行に移る.これは,処理系のロックを獲得しようと待ってい Cell プラットフォームと典型的な x86 によるマルチコア環境との間にある主な違いは, Cell
る他のコアに,処理系の実行を引き継ぐことを意味する.Atom を実行しているコアが処理を では SPE 間でデータのやり取りのために DMA を開発者が明示的に実行する必要があること
完了すると,返り値を格納するために関連づけられている変数に返り値を代入し,処理系のロッ である.処理系の状態とユーザのプログラムは共有メモリに置かれ, SPE は各々が LS にコ
クを獲得するための待ち状態に入る.待ち行列に空きがある限り,データの依存関係が解決し ピーを持つ.ロックはアトミックな DMA 命令を共有メモリに発行することで実現し,処理系
ていない処理を先送りにしつつ,依存関係を解消するための Atom 呼び出しを並行して実行し の状態はアトミックでない DMA を用いる.DMA のコストは Atom の処理量が十分に大き
ていくことで,全体の並列実行性の向上を見込む.高い並列性を獲得するためには,各コアで ければ隠蔽可能であるし,処理系の状態を差分だけ転送することでさらに削減可能である.
Atom の処理が実行されていて,処理系のロックを待つ時間が小さくなるよう, Atom の計算
4. 例
量が十分大きくなるよう設計することが開発者に期待される.
9 クイーン問題を並列に解く例を示す.図 4 に Mol のコード, 図 5 に C で書いた Atom
: value resolved のコードの一部を示す. 図 4 の 1 行目では, Atom を宣言している.10-14 行目で,配列を
: value not resolved yet 用いたデータフローを漸化式のように定義し,16 行目で望む結果を取り出している.16 行目
: executable Atom
の結果を導き出すために,処理系はデータフローのグラフを辿り, Atom を並列実行していく
: pending Atom
ことで計算が進む.
図 3 データフロー データフローの定義で配列の添字に用いるシンボル n, m, q0, q1 は,パターンマッチのため
Fig. 3 Data Flow に用いるもので,予め宣言する必要がない.nq part() と plus int() が,どのような順序で
実行されるかは非決定的である.すなわち, Molatomium の処理系は Mol のバイトコードを
3.2 Cell における実装 順に解釈していくが, Atom をその順で実行するとは限らない.
Molatomium 処理系のポータブルな実装例として,ヘテロジニアスマルチコアプロセッサで
4
5. ツ ー ル
6. 評 価
プロセッサのマルチコア化はユーザに省電力と高性能を約束する一方で,プログラミングモ
デルの未成熟さにより開発者に苦難を強いている.Molatomium は開発者から厄介な同期問題
を解放し,彼らの本当の仕事,すなわちアルゴリズムの開発と高速化に集中するのを助けるも
のである.Molatomium は,PC 上で動く超解像処理の並列処理基盤として既に製品化されて
いるという実績がある.今後の課題としては,処理系自身も並列化することでメニーコアにお
いてもスケーラビリティを確保することが挙げられる.
図 9 スケーラビリティの評価: 14-クイーン 参 考 文 献
Fig. 9 Evaluation of Scalability: 14-Queen
1) Veldhuizen, T. L.: Dynamic Multilevel Graph Visualization, Eprint arXiv: cs.
GR/07121549 (2007).
2) Roy, P. V. and Haridi, S.: Concepts, Techniques, and Models of Computer Pro-
gramming, MIT Press (2004).
3) : Intel (r): Concurrent Collections for C/C++, http://software.intel.com/
en-us/articles/intel-concurrent-collections-for-cc/.
4) Levand, G.: MARS, Multicore Application Runtime System, ftp://ftp.
infradead.org/pub/Sony-PS3/mars/ (2008).
図 10 スケーラビリティの評価: 超解像処理
Fig. 10 Evaluation of Scalability: Super Resolution
7. 関 連 研 究