高性能計算

**高性能計算**、**ハイ・パフォーマンス・コンピューティング**（high-performance computing、**HPC**）は、計算科学のために必要な数理からコンピュータシステム技術までに及ぶ総合的な学問分野である。

## 概要
1980年代以前はベクトル計算機が主流であったが、1990年代以降ではスカラー計算機を超並列にするのが主流になっている。HPC用クラスタをHigh-Performance Computing Cluster、HPCC（:en:HPCC）という。システムの構築や利用には高いレベルの技術的スキルが不可欠であるが、汎用の部品で構成することができる。柔軟性、演算性能の面で優れ、比較的低コストであるため、並列コンピューティングによるHPCはスーパーコンピュータ業界に普及しつつある。

科学研究に使われる数値計算に対して用いられることが多く、関連する用語に**高性能技術計算**（high performance technical computing、**HPTC**）がある。工学的利用（例えば計算流体力学(computational fluid dynamics)や、仮想的なプロトタイプの構築・試験など）を指す。では、クラスタベースの高性能計算機はビジネスにも利用されるようになってきた。例えばデータウェアハウス、LOBアプリケーション(line-of-business application)、トランザクション処理などである。

最も高性能なスーパーコンピュータはTOP500リストで見ることができる。TOP500は世界中の最も高性能なコンピュータシステムで構成された上位500機のリストである。リストは年に2度6月と11月に改訂され、それぞれISC（International Supercomputing Conference）とSC（Supercomputing Conference）で発表される。

なお、Highly Parallel Computing（高並列計算）の頭文字もHPCとなるが、一般にこの分野でHPCはhigh-performance computingの略であり、特に説明などなしにHPCがHighly Parallel Computingの略であることはまずない。

## GPGPU

**GPGPU** (**General-Purpose computing on Graphics Processing Units**) は、「GPU (Graphics Processing Unit) による汎用計算」という意味の頭字語（イニシャリズム）で、**GPU Computing**とも呼ばれることがある。この文脈における*Computing*はグラフィックス処理に限らない計算処理全般を意味している。

GPUはその本来の用途であるグラフィックスパイプラインの要求に由来する高い計算能力とスループットを持つ、SIMDタイプの高性能高並列プロセッサである。GPUにおける演算ユニットの最小単位は「ストリームプロセッサ」あるいは「ストリーミングプロセッサ」と呼ばれることがあるが、このストリームプロセッサ1つ1つは単純な構造であり、オペレーティングシステム (OS)・アプリケーションソフトウェアの実行や周辺機器制御などの汎用処理全般をつかさどるマイクロプロセッサすなわちCPUのように複雑かつ広範な処理をこなすことはできない。しかし、単純な構造であるがゆえに集積度を高くすることができるため、理論演算性能（FLOPS値）に関していえば、GPUは同世代の製造プロセスにおけるCPUと比べて遥かに高い性能を持っている。また、CPUと比較して電力あたりの理論演算性能（ワットパフォーマンス、Performance per Watt）すなわち電力効率が高いのもGPUの特徴である。そのため、HPC分野においても、x86/x64ベースのCPUを多数用いるより、GPUを多数用いたほうが安価かつ効率的なシステムとなることが期待できる。

GPGPUのきっかけとなったプログラマブルシェーダーが登場した当初は、GPUはコンピュータグラフィックスに特化した設計であり、GPGPUプログラムの開発も難しかった。しかし、統合型シェーダーアーキテクチャの登場以降、CUDAやOpenCLのように、GPUを汎用の並列プロセッサとしてアクセス可能なプログラミングインターフェイス (API) およびプログラミング言語拡張の標準化とサポート・普及が始まっており、C言語のようなよく使われている言語も使用可能である。ただしCUDAやOpenCLなど、GPGPUをサポートするAPIにおいてデバイス側のカーネル記述に使われるC/C++は独自拡張が施されており、CPU向けのプログラム記述に使用される汎用C/C++とは異なる。また、CUDAはホスト側のC/C++にも拡張が入っており、専用のコンパイラを使用する必要があるなど、GPGPU対応アプリケーションソフトウェアを開発するためには従来のCPU向けプログラミングとは異なる技術や知識が必要となる。

### HPC向けGPU製品
NVIDIA TeslaやAMD FirePro Sシリーズといった、HPC分野での汎用計算を主眼において設計されたプロセッサやグラフィックスボードも製造・販売されている。これらはNVIDIA GeForceやAMD Radeonといったコンシューマー向け製品で使われるチップをベースにしてはいるが、グラフィックス出力の機能を持たず、「GPUアクセラレータ」や「コンピューティングプロセッサボード」と呼ばれることもある。また、PCやエントリーモデルワークステーション向けのグラフィックスカードと異なり、HPC向けにECCメモリのサポートも備えている。

### 採用実績
東京工業大学のスーパーコンピュータ「TSUBAME」などが、GPGPUベースの代表的なHPCシステムとして挙げられる。

TOP500の上位には、インテルやAMDの汎用CPUに加えてNVIDIA Tesla GPUを多数搭載したスーパーコンピュータが名を連ねている。

2014年11月度のGreen500においては、AMD FirePro S9150 GPUを搭載したドイツGSI研究所のL-CSCクラスターが首位を獲得した。

## メニーコアシステム
x86アーキテクチャベースのメニーコアシステムとして、インテルはコードネームLarrabeeと呼ばれる製品を開発していたが頓挫している。Larrabeeの思想自体はXeon Phiに受け継がれ、PCI Express接続による独立したアクセラレータ・デバイスとして開発・販売が続けられている。

2015年6月度のGreen500では、PEZY Computingのメニーコアプロセッサ「PEZY-SC」を搭載したスーパーコンピュータが1位から3位までを独占した。PEZY-SCはPCI Express接続によるコプロセッサであり、GPU (GPGPU) と似た点もある。しかし、GPUがSIMT型であるのに対し、PEZY-SCはMIMD型を採用しており、より柔軟性すなわち使いやすさやソフトウェアの開発しやすさを狙った設計となっている。

## 脚注


## 関連項目

* 数値解析
* スーパーコンピュータ
* 高性能技術計算(en)
* 分散コンピューティング(en)
* 並列コンピューティング(en)
* 量子コンピュータ(en)
* メタ演算(en)
* 計算機科学の未解決問題
* グリッド・コンピューティング
* GPGPU
* CUDA
* OpenCL
* OpenMP
* OpenACC

## 外部リンク

*Windows HPC Server
*LinuxHPC.org Linux High Performance Computing and Clustering Portal
*WinHPC.org Windows High Performance Computing and Clustering Portal
*Cluster Builder
*Media Center PC Mach4 site HTPC News and Information.
* inside HPC　※ HPC業界誌
* HPCWire(Tabor Network)　※ HPC業界誌
*  HPCWire Japan ※ HPC業界誌
*一般社団法人HPCIコンソーシアム
*計算科学eラーニングアーカイブチャンネル（理研R-CCS）
* HPCI(High Performance Computing Infrastructure)　※ HPCの利用と応用を推進するための日本の国家的プロジェクト
*情報処理学会ハイパフォーマンスコンピューティング(HPC)研究会（IPSJ SIGHPC） ※ 情報処理学会内の研究会
*日本応用数理学会「行列・固有値問題の解法とその応用」研究部会
*PCクラスタコンソーシアム（PCCC）　※ PCクラスタおよびアクセラレータ技術によるローエンドからハイエンドのHPC市場育成を目指すコンソーシアム。
*プラットフォームコンピューティング株式会社 HPC ソフトウェアベンダの老舗
* ATPESC(Argonne Training Program on Extreme-Scale Computing)
* 書籍：下司雅章 編集:「計算科学のためのHPC技術１」,大阪大学出版会 (2017年)
** Masaaki Geshi(Eds.):"The Art of High Performance Computing for Computational Science", Vol.1, Springer (2019)
* 書籍：下司雅章 編集:「計算科学のためのHPC技術２」，大阪大学出版会（2017年）
** Masaaki Geshi(Eds.):"The Art of High Performance Computing for Computational Science", Vol.2, Springer (2019)