並列プログラミングモデルMolatomium

書誌事項

タイトル別名
  • ヘイレツ プログラミングモデル Molatomium
  • Molatomium: A Parallel Programming Model

この論文をさがす

抄録

マルチコア時代に向けた,実行性能の高い並列プログラムを容易に書くための並列プログラミングモデル Molatomium と,その処理系および開発支援ツールを提案する.プログラミング言語としては,並列性を記述する C 言語風の Mol という言語と,実行性能を追求する直列コード Atom を記述する C/C++ を併用する.Mol は,データ並列およびタスク並列を扱う.配列によってデータの依存関係を遅延代入式で表現するとともにメモ化を行い,データ並列を実現する.依存関係のない関数は自動的に並列に実行され,タスク並列を実現する.Mol コードはバイトコードに,Atom コードはネイティブコードにコンパイルされ,1 つのプログラムをなす.Atom を組み上げて Mol を構成するというアナロジである.処理系は仮想マシンとして実装し,プラットフォーム間における差異を吸収する.Mol で記述した依存関係に従って Atom を動的にスケジューリングし,並列に実行する.x86 で動くいくつかの POSIX OS (Linux,Mac,Cygwin) および Cell Broadband EngineTM (以下 Cell/B.E.),SpursEngineTM に処理系を実装し,それぞれでコア数に応じたスケーラビリティを確認した.また,並列プログラミングを支援するためのグラフィカルなエディタ,デバッガ,三次元可視化環境を紹介する.

We propose a parallel programming model Molatomium, its runtime system, and its development tools to create effective parallel program easily for multicore era. We use both a C-like language named Mol that describes concurrency and C/C++ that describes high performance serial code Atom. Mol is responsible for both data and task parallelism. It supports data parallelism by using arrays to represent data dependency flow and to memoize. It also supports task parallelism by parallel execution of functions that has no dependencies. Mol code is compiled into byte code and Atom code is complied into native one, that results in composing a parallel program, as a molecule is composed by atoms. The runtime system is implemented as a virtual machine to achieve cross platform compatibility. It schedules atom executions as described in Mol code, and run them concurrently. We implemented the runtime system on some x86 POSIX platforms (Linux, Mac, Cygwin) and Cell/B.E., SpursEngine. Each implementation scaled as the core count increased. Furthermore, we introduce a graphical editor, debugger, and 3-D visualization to support efficient parallel programming.

収録刊行物

被引用文献 (1)*注記

もっと見る

キーワード

詳細情報 詳細情報について

問題の指摘

ページトップへ