Unified Parallel C
表示
パラダイム | 並列計算、メッセージパッシング、命令形(手続き型言語)、構造化プログラミング |
---|---|
登場時期 | 2002年5月15日 |
設計者 | UPC協会 |
最新リリース | 2021.4.0/ 2021年4月16日 |
型付け | 弱い静的型付け |
主な処理系 | GNU UPC、IBM XL UPC Compilers、HP UPC、Berkeley UPC、Michigan Tech MuPC、Cray UPC |
影響を受けた言語 | C言語、AC[要曖昧さ回避]、Split-C、Parallel C Preprocessor |
プラットフォーム | クロスプラットフォーム |
ウェブサイト |
upc-lang |
Unified Parallel C、UPC は大規模な並列計算機上での高性能計算向けにC言語を拡張して作られたプログラミング言語である。これには、共有大域アドレス空間(対称型マルチプロセッシング、NUMA)を伴うものと、クラスターなどの分散メモリーを伴うものが含まれる。プログラマーには共有された単一の区分化アドレス空間を割り当てられる。変数はどのプロセッサーからでも直接に読み書きできるが、いずれの変数も物理的にはどれかひとつのプロセッサーに関連づいている。UPC は SPMD モデルを使う。このモデルでは全ての並列性がプログラム実行開始時点で固定化される。大抵は一つのプロセッサーに一つのスレッドを割り当てられる。
並列性を表現するために、UPC は C99 を以下の機構について拡張してある。
- 明示的な並列実行モデル
- 共有アドレス空間
- 同期の基本動作とメモリー整合モデル
- メモリー管理の基本動作
UPC 言語は並列性の機構について C99 を拡張してつくられた先行する3つの言語(AC、Split-C、Parallel C Preprocessor)で得られた知見をもとに進化させた言語である。UPC 言語はこれら3つの言語の上位言語ではないが、 それぞれの優れた特徴を抽出して作られた。UPC 言語には、共有メモリーパラダイムのプログラミング上の利点や、メッセージパッシングパラダイムによるデータレイアウトの制御と性能の制御に関するプログラミング上の利点も生かされている。
関連項目
[編集]- Co-array Fortran
- Chapel
- X10 (プログラミング言語)
- High Performance Fortran
- OpenMP
- 区分化大域アドレス空間
- 並列計算
- ソフトウェアトランザクショナルメモリ
外部リンク
[編集]- upc-lang
.org - UPC at GWU
- Programming in the Partitioned Global Address Space Model (ビル・カールソン、タレク・エルガザウィ、ロベルト・ヌームリヒ、カシー・イェーリック 共著、PDFファイル)
- ParC