X10 (プログラミング言語)

X10は、アメリカ国防高等研究計画局(DARPA)のHigh Productivity Computing Systems (HPCS) プロジェクトの一環であるPERCSスーパーコンピュータ・プロジェクトにおいて、IBMトーマス・J・ワトソン研究所で開発された並列処理プログラミング言語です。

概要



X10の主な設計者は、Kemal Ebcioglu、Vijay Saraswat、Vivek Sarkarです。X10はJava言語の拡張されたサブセットであり、多くの点でJavaと似ていますが、配列と並行処理のサポートが追加されています。X10は、区分化大域アドレス空間(PGAS: Partitioned Global Address Space)というメモリモデルを採用しています。このモデルでは、複数のプロセッサがメモリ空間を共有しつつ、各プロセッサがローカルにアクセスできる領域を持つことで、効率的な並列処理を実現します。

また、X10はオブジェクト指向プログラミングと、非オブジェクト指向プログラミングの両方のパラダイムをサポートしています。これにより、開発者は問題に応じて最適なプログラミングスタイルを選択できます。

タスクの親子関係



X10は、複数のプロセッサが互いの処理完了を待ち、結果として処理が進まなくなるロックの膠着状態(デッドロック)を防止するために、タスクの親子関係という概念を使用します。具体的には、あるタスクは1つまたは複数の子タスクを生成でき、子タスクもさらに子タスクを持つことができます。子は親の終了を待つことはできませんが、親は `finish` コマンドを使用してすべての子タスクの終了を待つことができます。この仕組みにより、タスク間の依存関係を管理し、デッドロックを回避しながら効率的な並列処理を実現します。

その他の情報



X10は、大規模な並列処理を必要とする科学技術計算やデータ分析などの分野での利用を想定して設計されています。その設計思想は、現代の並列コンピューティング環境において重要な要素を多く含んでおり、今後の発展が期待される言語の一つです。

関連情報



並列コンピューティング: 複数のプロセッサを用いて同時に計算を行う技術。
並行性: 複数のタスクが同時に進行するように見える状態を実現する技術。
Chapel: クレイ社が開発した並列プログラミング言語
Fortress: サン・マイクロシステムズ(現Oracle)が開発していたプログラミング言語(開発終了)。
Lock-freeとWait-freeアルゴリズム: ロックを使用せずに並行処理を実現するアルゴリズム。
PERCS: DARPAのHigh Productivity Computing Systemsプロジェクト。

外部リンク



x10-lang.org
An Overview of X10 2.0 (David Grove、Igor Peshansky、Vijay Saraswat 共著、PowerPoint ファイル)
X10 Language Specification Version 2.6 (Vijay Saraswatt, Bard Bloom, Igor Peshansky, Olivier Tardieu, and David Grove、PDFファイル)
Mailing list for users of the X10 programming language
Overview of PGAS languages (Tarek El-Ghazawi、PDFファイル)
Language and Virtual Machine Challenges for Large-scale Parallel Systems (Vivek Sarkar 著、PDFファイル)
XTC-X10 (Christian Grothoff)
X10 FFT (Codehaus)
* X10 LU (Codehaus)

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。