XMTC ( explicit multi-threading C の略) は、共有メモリ並列プログラミング言語です。これは、明示的なマルチスレッドパラダイムに基づいて、PRAM のようなプログラミングを容易に実現することを目指したC プログラミング言語の拡張です。これは、メリーランド大学カレッジパーク校のUzi Vishkin博士率いる研究チームによって、XMT PRAM-On-Chip ビジョンの一環として開発されました。
XMTC と XMT プロジェクト全体の哲学は、並列プログラミングは難しい知的作業であり、最初にハードウェア システムを構築してからプログラミング方法を考えるというアプローチはあまり成功していないというものです。そのため、堅牢なアルゴリズム理論と適度に簡単なハードウェア抽象化が、新しい並列アーキテクチャとプログラミング言語の構築方法を導く仕様になるはずです。並列アルゴリズムの場合、最も多くの文献があるアルゴリズム理論は PRAM (並列ランダム アクセス マシン) と呼ばれています。これは偶然ではありません。PRAM はアルゴリズムを並列に考える自然な方法だからです。1990 年代初頭、PRAM モデルは、そのベースとなるハードウェア抽象化を実装できなかったため (チップ間の帯域幅が低く、レイテンシが高いため)、非現実的であると見なされました。現在では、複数のプロセッサを 1 つのチップに搭載できるため、これらの制限はなくなりました。XMT アーキテクチャは、この余剰のオンチップ領域を利用して PRAM 抽象化を実装します。
XMTC 言語は C 言語の控えめな拡張であり、現在も開発中です。基本的な前提は、プログラマーが利用可能なすべての並列処理を公開する責任を負っていることです。これは単純に聞こえ、多くの以前のアプローチがこの理想を共有していますが、実際には、プログラマーが定義する並列タスクの数が多く、タスクが短い場合、プログラムのパフォーマンスは非常に低くなります。これを回避するには、短い並列タスクを 1 つの長いタスクに結合することですが、これは通常プログラマーの責任です。XMTC では、言語が自動的にこれを実行し、プログラマーの負担を軽減できます。
XMTC のソフトウェア リリース: PRAM のようなプログラミングにより、標準のコンピューターで XMTC プログラミングを試すことができます。
