computing、HPC)は、計算科学のために必要な数理からコンピュータシステム技術までに及ぶ総合的な学問分野である[1][2][3][4][5]。外部リンク概要[編集]1980年代以前はベクトル計算機が主流であったが、近年[いつ?]ではスカラー計算機を超並列[5]にする方向が盛んである。Cluster、HPCC(en:HPCC)という。面で優れ、比較的低コストであるため、並列コンピューティングによるHPCはスーパーコンピュータ業界に普及しつつある[2][3][4][5][6]。computing、HPTC)がある。dynamics)[7]や、仮想的なプロトタイプの構築・試験など)を指す。最近[いつ?]では、クラスタベースの高性能計算機はビジネスにも利用されるようになってきた。application)、トランザクション処理などである。高性能なスーパーコンピュータはTOP500リストで見ることができる。TOP500は世界中の最も高性能なコンピュータシステムで構成された上位500機のリストである。Conference)で発表される。Computingの略であることはまずない。Computingとも呼ばれることがある。この文脈におけるComputingはグラフィックス処理に限らない計算処理全般を意味している[10]。GPUはその本来の用途であるグラフィックスパイプラインの要求に由来する高い計算能力とスループットを持つ、SIMDタイプの高性能高並列プロセッサである。(OS)・アプリケーションソフトウェアの実行や周辺機器制御などの汎用処理全般をつかさどるマイクロプロセッサすなわちCPUのように複雑かつ広範な処理をこなすことはできない。単純な構造であるがゆえに集積度を高くすることができるため、理論演算性能(FLOPS値)に関していえば、GPUは同世代の製造プロセスにおけるCPUと比べて遥かに高い性能を持っている。Watt)すなわち電力効率が高いのもGPUの特徴である。そのため、HPC分野においても、x86/x64ベースのCPUを多数用いるより、GPUを多数用いたほうが安価かつ効率的なシステムとなることが期待できる。GPGPUのきっかけとなったプログラマブルシェーダーが登場した当初は、GPUはコンピュータグラフィックスに特化した設計であり、GPGPUプログラムの開発も難しかった。プログラミング言語拡張の標準化とサポート・普及が始まっており、C言語のようなよく使われている言語も使用可能である。CUDAやOpenCLなど、GPGPUをサポートするAPIにおいてデバイス側のカーネル記述に使われるC/C++は独自拡張が施されており、CPU向けのプログラム記述に使用される汎用C/C++とは異なる。CUDAはホスト側のC/C++にも拡張が入っており、専用のコンパイラを使用する必要があるなど、GPGPU対応アプリケーションソフトウェアを開発するためには従来のCPU向けプログラミングとは異なる技術や知識が必要となる。Sシリーズといった、HPC分野での汎用計算を主眼において設計されたプロセッサやグラフィックスボードも製造・販売されている。PCやエントリーモデルワークステーション向けのグラフィックスカードと異なり、HPC向けにECCメモリのサポートも備えている。採用実績[編集]東京工業大学のスーパーコンピュータ「TSUBAME」などが、GPGPUベースの代表的なHPCシステムとして挙げられる。