"Unified Parallel C" で書かれたコードの例はどこにありますか?
また、この言語に関する規範的なドキュメント (標準、リファレンス マニュアル、オンラインでアクセス可能な書籍やコース) にも興味があります。UPC を取得するために C に追加された拡張機能は?
この方言は生きているのか、それとも死んでいるのか?
"Unified Parallel C" で書かれたコードの例はどこにありますか?
また、この言語に関する規範的なドキュメント (標準、リファレンス マニュアル、オンラインでアクセス可能な書籍やコース) にも興味があります。UPC を取得するために C に追加された拡張機能は?
この方言は生きているのか、それとも死んでいるのか?
UPC は、カリフォルニア大学バークレー校の研究プロジェクトとして現在も存続しており、研究グループに関連する高性能コンピューティング施設や国立研究所で使用されている可能性があります。2009 年 11 月にリリースされた最新バージョンは、こちらから入手できます。ドキュメント、サンプル コードなどは、こちらから入手できます。言語仕様はこちらです。C99 構文の上には、スレッドとスレッド間通信をファーストクラスのエンティティとしてサポートするための多くの拡張機能があります (おそらく「ファースト クラス」の厳密な意味ではありませんが、不透明なライブラリを呼び出す C よりも確かにそうです)。同期と通信を行うため)。
一部の地域では、UPC がまだ使用されています。私は専門家ではありませんが、UPC を使用して言えることは、GCC ベースのコンパイラ、ランタイム、およびネットワーク スタック上で実行されるメッセージング層 GASNet で構成されていることです。これらは、 UPC のようなものが必要なタイプのマシンで比較的よくサポートされているようです。大規模な開発者コミュニティとは言えませんが、大規模な並列マシンを管理している場合は、試してみる価値があります。ラップトップ、デスクトップ、またはサーバー ボックスで動作するものだけが必要な場合は、商用サポートやツールなどを備えたさまざまな並列プログラミング モデルがあります。
バークレーUPCランタイムベースのUPC実装以外:
BerkleyUPC -to-Cトランスレータhttp://upc.lbl.gov/download/source.shtml およびgcc-upchttp ://www.gccupc.org)
HPh30097.www3.hp.com/upc/およびCrayによる独自のコンパイラもあります。
CrayバージョンとHPUPCバージョンの両方に進捗保証があると思いますが、Berkleyから派生したバージョンにはありません(つまり、スピンロックスタイルのコードを作成する場合は、bupc_relaxを明示的に呼び出して、ランタイムを歳差運動させる必要があります。あなたはループから外れています)
UPC は、HPC コミュニティで今も健在です。
言語/ライブラリ仕様の新しい 1.3 バージョンは 2013 年 11 月にリリースされ、次の場所から入手できます。
https://upc-lang.org/upc-documentation
主要な UPC コンパイラには、1.3 準拠のバージョンが既に (またはまもなく) リリースされています。
UPC 仕様は C99 との「差分」として記述されているため、何が追加されたかを簡単に確認できます。大まかに言えば、PGAS メモリ モデルと言語レベルの SPMD スレッド化に対応するために、言語的にはいくつかの新しいキーワードと型システムへのいくつかの拡張です。また、UPC アプリケーションで一般的な HPC のニーズをサポートするための大規模な (そして増加している) ライブラリ セットもあります。
UPC に関する詳細情報は、次の場所にあります。
ここでは、さまざまなシステムで動作する無料のオープン ソース コンパイラをダウンロードできます。ランタイム ソースのダウンロードには、UPC サンプル プログラム、ベンチマーク、およびテスト スイートのライブラリが含まれています。