高性能計算
[Wikipedia|▼Menu]

高性能計算、ハイ・パフォーマンス・コンピューティング(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]や、仮想的なプロトタイプの構築・試験など)を指す。@media screen{.mw-parser-output .fix-domain{border-bottom:dashed 1px}}最近[いつ?]では、クラスタベースの高性能計算機はビジネスにも利用されるようになってきた。例えばデータウェアハウス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」を参照

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


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:35 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef