高性能計算
高性能計算、ハイ・パフォーマンス・コンピューティング(high-performance computing、HPC)は、計算科学のために必要な数理からコンピュータシステム技術までに及ぶ総合的な学問分野である[1][2][3][4][5][6]。
概要
1980年代以前はベクトル計算機が主流であったが、1990年代以降ではスカラー計算機を超並列[6]にするのが主流になっている。HPC用クラスタをHigh-Performance Computing Cluster、HPCC(en:HPCC)という。システムの構築や利用には高いレベルの技術的スキルが不可欠であるが、汎用の部品で構成することができる。柔軟性、演算性能の面で優れ、比較的低コストであるため、並列コンピューティングによるHPCはスーパーコンピュータ業界に普及しつつある[2][3][5][6][7]。
科学研究に使われる数値計算に対して用いられることが多く、関連する用語に高性能技術計算(high performance technical computing、HPTC)がある。工学的利用(例えば計算流体力学(computational fluid dynamics)[8]や、仮想的なプロトタイプの構築・試験など)を指す。最近[いつ?]では、クラスタベースの高性能計算機はビジネスにも利用されるようになってきた。例えばデータウェアハウス、LOBアプリケーション(line-of-business application)、トランザクション処理などである。
最も高性能なスーパーコンピュータはTOP500リストで見ることができる。TOP500は世界中の最も高性能なコンピュータシステムで構成された上位500機のリストである。リストは年に2度6月と11月に改訂され、それぞれISC(International Supercomputing Conference)とSC(Supercomputing Conference)で発表される。
なお、Highly Parallel Computing(高並列計算)[9]の頭文字もHPCとなるが、一般にこの分野でHPCはhigh-performance computingの略であり[2][3][5][6][10]、特に説明などなしにHPCがHighly Parallel Computingの略であることはまずない。
GPGPU
GPGPU (General-Purpose computing on Graphics Processing Units) は、「GPU (Graphics Processing Unit) による汎用計算」という意味の頭字語(イニシャリズム)で[5]、GPU Computingとも呼ばれることがある。この文脈におけるComputingはグラフィックス処理に限らない計算処理全般を意味している[11]。
GPUはその本来の用途であるグラフィックスパイプラインの要求に由来する高い計算能力とスループットを持つ、SIMDタイプの高性能高並列プロセッサである。GPUにおける演算ユニットの最小単位は「ストリームプロセッサ」[12]あるいは「ストリーミングプロセッサ」[13]と呼ばれることがあるが、このストリームプロセッサ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アクセラレータ」や「コンピューティングプロセッサボード」と呼ばれることもある[14] [15]。また、PCやエントリーモデルワークステーション向けのグラフィックスカードと異なり、HPC向けにECCメモリのサポートも備えている。
採用実績
東京工業大学のスーパーコンピュータ「TSUBAME」などが、GPGPUベースの代表的なHPCシステムとして挙げられる。
TOP500の上位には、インテルやAMDの汎用CPUに加えてNVIDIA Tesla GPUを多数搭載したスーパーコンピュータが名を連ねている[16] [17]。
2014年11月度のGreen500においては、AMD FirePro S9150 GPUを搭載したドイツGSI研究所のL-CSCクラスターが首位を獲得した[18] [19]。
メニーコアシステム
x86アーキテクチャベースのメニーコアシステムとして、インテルはコードネームLarrabeeと呼ばれる製品を開発していたが頓挫している。Larrabeeの思想自体はXeon Phiに受け継がれ、PCI Express接続による独立したアクセラレータ・デバイスとして開発・販売が続けられている。
2015年6月度のGreen500では、PEZY Computingのメニーコアプロセッサ「PEZY-SC」[20]を搭載したスーパーコンピュータが1位から3位までを独占した[21]。PEZY-SCはPCI Express接続によるコプロセッサであり、GPU (GPGPU) と似た点もある。しかし、GPUがSIMD型 (SIMT型) であるのに対し、PEZY-SCはMIMD型を採用しており、より柔軟性すなわち使いやすさやソフトウェアの開発しやすさを狙った設計となっている[22]。
脚注
- ^ 岩波講座計算科学別巻『スーパーコンピュータ』「はじめに」より
- ^ a b c 数値線形代数の数理とHPC, 櫻井鉄也, 松尾宇泰, 片桐孝洋編(シリーズ応用数理 / 日本応用数理学会監修, 第6巻)共立出版, 2018.8
- ^ a b c The Art of High Performance Computing for Computational Science, Vol. 1, Techniques of Speedup and Parallelization for General Purposes, Edited by Masaaki Geshi (2019), Springer, ISBN 978-981-13-6194-4.
- ^ The Art of High Performance Computing for Computational Science, Vol. 2, Advanced Techniques and Examples for Materials Science, Edited by Masaaki Geshi (2019), Springer, ISBN 978-981-13-9802-5.
- ^ a b c d 計算科学のためのHPC技術1, 下司雅章 編/片桐孝洋,中田真秀,渡辺宙志,山本有作,吉井範行,Jaewoon Jung,杉田有治,石村和也,大石進一,関根晃太,森倉悠介,黒田久泰 著, ISBN 978-4-87259-586-4, 2017年03月, 大阪大学出版会.
- ^ a b c d 計算科学のためのHPC技術2, 下司雅章 編/南一生,高橋大介,尾崎泰助,安藤嘉倫,小林正人,成瀬彰,黒澤一平 著, ISBN 978-4-87259-587-1, 2017年03月, 大阪大学出版会.
- ^ 片桐孝洋. (2015). 並列プログラミング入門: サンプルプログラムで学ぶ OpenMP と OpenACC. 東京大学出版会.
- ^ Computational Fluid Dynamics -Incompressible Turbulent Flows-, Takeo Kajishima & Kunihiko Taira (2017), Springer.
- ^ Gottlieb, A., & Almasi, G. (1989). Highly parallel computing. Redwood City, CA: Benjamin/Cummings.
- ^ 例えばインテル社のXeon Phiのキャッチコピーは「Highly Parallel Computing Engine for HPC」である。
- ^ http://gpgpu.org/about
- ^ エルミタージュ秋葉原 – AMD、ストリームプロセッサ数896基の新ミドルレンジ「Radeon HD 7790」発表
- ^ ホワイトペーパー; NVIDIA の次世代 CUDA™コンピュートアーキテクチャ:Fermi™ (PDF)
- ^ サーバー用 Tesla GPU アクセラレータ | NVIDIA
- ^ NVIDIA Tesla K80 | 株式会社 エルザ ジャパン
- ^ 【PC Watch】 中国のNVIDIA Tesla搭載スパコンがTOP500の2位に
- ^ 【PC Watch】 TOP500でOpteron 6274/Tesla K20X搭載システムが1位
- ^ AMD FirePro S9150搭載マシンが、Green500でNo.1を獲得 - 最新情報 - ニュース - 株式会社エーキューブ
- ^ 「AMD FirePro」搭載スーパーコンピューターが Green500 Listで首位を獲得-Sapphire PGS-プロフェッショナル・グラフィックスソリューション
- ^ PEZY-SCプロセッサ - PEZY Computing
- ^ 国産スパコン“PEZYシステム”がGreen500の1~3位を独占 ~省エネ高性能を競う世界ランキングで - PC Watch
- ^ 100倍高速なメモリーを独自開発、異色ベンチャーの野望 | SAFETY JAPAN [セーフティー・ジャパン] | 日経BP社
関連項目
- スーパーコンピュータ
- 高性能技術計算(en)
- 分散コンピューティング(en)
- 並列コンピューティング(en)
- 量子コンピュータ(en)
- メタ演算(en)
- 計算機科学の未解決問題
- グリッド・コンピューティング
- GPGPU
- CUDA
- OpenCL
- OpenMP
- OpenACC
外部リンク
Clustering Portal
- Windows HPC Server
- LinuxHPC.org Linux High Performance Computing and Clustering Portal
- WinHPC.org Windows High Performance Computing and Clustering Portal
- Cluster Builder
- Top 500 supercomputers ※ 単一のベンチマークHPC Linpack の性能による上位計算機システムの性能ランキング付け。
- Media Center PC Mach4 site HTPC News and Information.
- inside HPC ※ HPC業界誌
- HPCWire(Tabor Network) ※ HPC業界誌
- HPCWire Japan ※ HPC業界誌
- 一般社団法人HPCIコンソーシアム
- HPCI(High Performance Computing Infrastructure) ※ HPCの利用と応用を推進するための日本の国家的プロジェクト
- 情報処理学会ハイパフォーマンスコンピューティング(HPC)研究会(IPSJ SIGHPC) ※ 情報処理学会内の研究会
- 日本応用数理学会「行列・固有値問題の解法とその応用」研究部会
- PCクラスタコンソーシアム(PCCC) ※ PCクラスタおよびアクセラレータ技術によるローエンドからハイエンドのHPC市場育成を目指すコンソーシアム。
- プラットフォームコンピューティング株式会社 HPC ソフトウェアベンダの老舗
- 高性能計算の扉wiki
- The Art of HPC: Texbooks by Victor Eijkhout of TACC
- Vol.1: The Science of Computing
- Vol.2: Parallel Programming for Science Engineering
- Vol.3: Introduction to Scientific Programming in C++17/Fortran2008
- Vol.4: Tutorials for High Performance Scientific Computing
- ATPESC(Argonne Training Program on Extreme-Scale Computing)
- 配信講義 計算科学技術特論A(2021)(4月8日~7月29日)※講義の録画、スライド掲載
- 配信講義 計算科学技術特論B(2022)(2022年4月7日~7月28日・オンライン)※講義の録画、スライド掲載
- 配信講義 計算科学技術特論A(2023)(2023年4月13日~7月27日・オンライン)※講義の録画、スライド掲載予定
- HPCプログラミングセミナー資料公開ページ(HPCI)