Loading article…
Unified Parallel C ( UPC ) は、大規模並列マシン上での高性能コンピューティング向けに設計されたC 言語の拡張です。これには、共通のグローバルアドレス空間を持つマシン( SMPおよびNUMA ) や、分散メモリを持つマシン(クラスタなど) が含まれます。プログラマには、単一のパーティション化されたグローバル アドレス空間が提供されます。この空間では、共有変数はどのプロセッサでも直接読み書きできますが、各変数は物理的には単一のプロセッサに関連付けられています。UPC は、単一プログラム、複数データ( SPMD ) 計算モデルを使用します。このモデルでは、並列処理の量はプログラム起動時に固定され、通常はプロセッサごとに単一の実行スレッドが割り当てられます。
並列処理を表現するために、UPCはISO C 99を拡張し、以下の構成要素を導入しています。
sharedスレッドローカル部分(通常の変数)を持つ共有アドレス空間(ストレージ修飾子)upc_memputUPC言語は、ISO C 99への並列拡張を提案した3つの先行言語、AC、Split-C、およびParallel Cプリプロセッサ(PCP)の経験から発展しました。UPCはこれら3つの言語の上位互換ではなく、それぞれの優れた特性を抽出した試みです。UPCは、共有メモリプログラミングパラダイムのプログラマビリティの利点と、メッセージパッシングプログラミングパラダイムのデータレイアウトとパフォーマンスの制御性を兼ね備えています。