ハイパフォーマンスコンピューティング(HPC)の世界
ハイパフォーマンスコンピューティング(HPC)は、科学技術計算、特に大規模な数値計算を高速に行うためのコンピューティング技術、システム、そしてその周辺の学問分野を包括的に指します。1980年代までは
ベクトル計算機が主流でしたが、1990年代以降は、複数のプロセッサを並列に動作させることで処理能力を高める並列計算機が主流となりました。近年では、汎用的な部品から構築できるクラスタシステムが広く用いられており、柔軟性とコストパフォーマンスの高さから、
スーパーコンピュータ業界に浸透しています。
HPCは、科学研究における数値シミュレーション、特に計算流体力学のような工学分野での活用が盛んです。近年では、データウェアハウス、
ビジネスアプリケーション、オンライン
トランザクション処理など、
ビジネス用途への応用も広がりを見せています。
HPCシステムの性能を測る指標として、
TOP500リストが広く知られています。これは、世界で最も計算能力の高い
スーパーコンピュータ上位500システムのランキングで、年に2回(6月と11月)更新され、ISC(International Supercomputing Conference)とSC(Supercomputing Conference)で発表されます。このリストは、HPC技術の進歩を測る重要な指標となっています。
GPUによる汎用計算:GPGPU
GPGPU(General-Purpose computing on
Graphics Processing Units)は、GPU(
Graphics Processing Unit、画像処理装置)を、グラフィックス処理以外の汎用計算に利用する技術です。GPUは、もともとグラフィックス処理のために設計されたプロセッサですが、並列処理に適したアーキテクチャを持つため、大規模計算に高い効率を発揮します。
GPUは、多数の単純な演算ユニット(ストリームプロセッサ)を備えており、
CPUと比較して高い計算能力と電力効率を誇ります。そのため、HPC分野では、
CPUベースのシステムよりも、GPUベースのシステムが、より低コストで高い性能を実現できる可能性があります。
GPGPUの普及を促進した要因の一つに、CUDAやOpenCLといった、GPUを汎用並列プロセッサとしてアクセスするためのプログラミングインターフェースの標準化があります。これにより、
C言語などの一般的な
プログラミング言語を用いて、GPU上で並列計算を行うプログラムを開発することが容易になりました。ただし、GPUプログラミングは
CPUプログラミングとは異なる技術・知識を必要とするため、学習コストは依然として高いと言えます。
HPC向けGPU製品
NVIDIA TeslaやAMD FirePro Sシリーズなどは、HPC分野での利用を目的として設計・製造されたGPU製品です。これらの製品は、コンシューマー向けGPUとは異なり、グラフィックス出力機能を持たず、ECCメモリ(誤り訂正符号付きメモリ)をサポートするなど、高い信頼性と安定性が求められるHPC環境に適した仕様になっています。
メニーコアシステム
メニーコアシステムは、多数の演算コアを搭載したプロセッサを用いることで、高性能な並列計算を実現するシステムです。
インテルは、かつてLarrabeeというメニーコアプロセッサを開発していましたが、現在はXeon Phiという製品として、PCI Express接続のアクセラレータとして提供しています。
PEZY ComputingのPEZY-SCなども、メニーコアプロセッサの代表的な例として挙げられます。PEZY-SCは、GPUとは異なりMIMD(Multiple Instruction, Multiple Data)型アーキテクチャを採用しており、より柔軟なプログラミングモデルを提供しています。
まとめ
HPCは、科学技術計算から
ビジネスアプリケーションまで、幅広い分野で活用されている重要な技術です。
ベクトル計算機から始まり、並列計算機、
GPGPU、メニーコアシステムなど、技術革新は続いており、今後も更なる性能向上と応用範囲の拡大が期待されます。
TOP500リストは、その進歩を測る上で重要な指標となっています。