並列化技術「Molatomium」に興味津々
日経エレクトロニクス(2009年12月14日号)に、東芝のCELL REGZAで使われている並列化技術「Molatomium」に関する記事が載っていた。マルチスレッドなど並列動作するソフトウェアの開発は厄介なものだが、この事例では開発現場で容易に使える開発環境として「Molatomium」を用意し、その上で実製品に組み込むソフトの開発を行っている。
当たり前と言えば当たり前のことだけど、既存のC/C++から大きく異なる開発環境では開発者の学習コストが高くなってしまうし、今までの開発資産を生かすことが出来ない。Molatomiumでは、慣れ親しんだ開発言語のC/C++に近い形でコードを記述できるというメリットを生かしつつ、高性能な処理部分はAtomを使って記述して組み合わせるという工夫をしている。これにより高い処理性能を実現し、同時に宣言型を採用することで並列化に伴う厄介な同期化等をクリアしている。
グラフィカルな開発環境で並列処理の実行状態やデータの依存関係を確認できるという支援もあり、開発者は必要な機能の開発に上手く専念できるようだ。CUDAやOpenMP、TBBなど他の並列化技術との比較も載っており、Molatomiumの位置付けがよく分かる。また、手動で並列化を行った場合とのベンチマーク結果も載っており、Molatomiumの能力も一目瞭然。並列処理の性能向上に興味があるのなら一読の価値がある記事だ。
Molatomiumは、並列プログラムを記述して実行するための、並列プログラミング・モデルである。宣言的な並列性の表現を採用したことで、バグが発生しにくい並列プログラムを容易に記述できる。並列性は、C言語に似た独自のプログラム言語である「Mol」で記述する。
論文 「CELL REGZA」が搭載する並列化技術「Molatomium」 | 日経エレクトロニクス | 日経BP記事検索サービス
(中略)
Molを使って高い抽象度で並列性を記述できる一方、C/C++で記述するAtomにより、低レベルな最適化の余地をプログラマーに残している。このバランスがMolatomiumの特色の一つであり、開発現場での使用に耐える実用性を生んでいる。