Unified Parallel CUPC は大規模な並列計算機上での高性能計算向けにC言語を拡張して作られたプログラミング言語である。これには、共有大域アドレス空間(対称型マルチプロセッシングNUMA)を伴うものと、クラスターなどの分散メモリーを伴うものが含まれる。プログラマーには共有された単一の区分化アドレス空間を割り当てられる。変数はどのプロセッサーからでも直接に読み書きできるが、いずれの変数も物理的にはどれかひとつのプロセッサーに関連づいている。UPC は SPMD モデルを使う。このモデルでは全ての並列性がプログラム実行開始時点で固定化される。大抵は一つのプロセッサーに一つのスレッドを割り当てられる。

Unified Parallel C (UPC)
パラダイム 並列計算メッセージパッシング命令形手続き型言語)、構造化プログラミング
登場時期 2002年5月15日 (21年前) (2002-05-15)
設計者 UPC協会
最新リリース 2021.4.0/ 2021年4月16日 (2年前) (2021-04-16)
型付け 弱い静的型付け
主な処理系 GNU UPCIBM XL UPC CompilersHP UPCBerkeley UPCMichigan Tech MuPCCray UPC
影響を受けた言語 C言語AC[要曖昧さ回避]Split-CParallel C Preprocessor
プラットフォーム クロスプラットフォーム
ウェブサイト upc-lang.org
テンプレートを表示

並列性を表現するために、UPC は C99 を以下の機構について拡張してある。

  • 明示的な並列実行モデル
  • 共有アドレス空間
  • 同期の基本動作とメモリー整合モデル
  • メモリー管理の基本動作

UPC 言語は並列性の機構について C99 を拡張してつくられた先行する3つの言語(AC、Split-CParallel C Preprocessor)で得られた知見をもとに進化させた言語である。UPC 言語はこれら3つの言語の上位言語ではないが、 それぞれの優れた特徴を抽出して作られた。UPC 言語には、共有メモリーパラダイムのプログラミング上の利点や、メッセージパッシングパラダイムによるデータレイアウトの制御と性能の制御に関するプログラミング上の利点も生かされている。

関連項目 編集

外部リンク 編集