お問い合わせ | 導入事例 | HPC計算機 | 管理サーバ/ファイルサーバ | オプション | OS/開発環境 | アプリ | システム構築 | サポート | FAQ | ベンチ | 技術情報 | 購入案内

基礎情報

計算機本体

ストレージ

ネットワーク

OS環境

開発環境

ジョブ管理

システム管理

設置環境


プロセッサ番号一覧へ

Linpack HPL定点観測テストへ

Core(TM) i7 (Nehalem Microarchitecture) の基本性能調査をSPEC CFP2006結果により実施

Core(TM) i7データ一覧 | 単体コア | i7対Xeon (R) | i7対AMD Opteron(TM) | Xeon (R) 対AMD Opteron(TM)
クロック速度 | メモリクロック | メモリ | QPI | 並列の階層

並列処理の階層性 (09.3.18)

 HPC計算機の性能向上は並列処理を階層的に組み合わせることで実現されています。並列処理の階層としては、コア階層でのスーパースカラー並列、CPU階層でのマルチコア並列、システム階層でのマルチプロセッサ並列、クラスタ階層でのネットワーク並列の4階層に区分できます。これら階層別の特性を理解しておくことで最適な計算機を設計できます。最初にこれらを整理してみます。(なお、ハイパースレッド並列はHPCの方向とは逆向きなので取り扱いません。)

スーパースカラー : コア階層での並列処理

 各CPUコア上で実行されるスレッド処理において複数命令を並列処理することで、クロック周波数以上の実効性能を実現する技術が「スーパースカラー」です。XeonではCoreマイクロアーキテクチャや最新のNehalemマイクロアーキテクチャでは4命令同時実行が可能とされています。その実効性能をLinpack HPLの結果で確認すると、2.93GHzで動作するNehalem CPUコアは約10.8GFLOPSの実効性能を発揮しており、クロック速度の約3.7倍の実効速度を実現しています。「スーパースカラー」はコンパイラの自動最適化や数値演算ライブラリを用いることで利用することができます。特に最適化が進んだ数値演算ライブラリを利用すると理論値に近い実効性能が期待できます。Linpack HPLでも数値演算ライブラリを使うことで非常に高速な計算が実現されるようになりました。

マルチコア : CPU階層での並列処理

 CPU内部のコア数を増加させ複数スレッドを並列処理することで実現される高速化です。現在は4コアが一般的ですが、近い将来には6コアから8コアのプロセッサも予定されています。

 CPUがマルチコア化するとメモリボトルネックが懸念されます。その対策として、メモリシステムやキャッシュシステムも改良が進んでいます。最新の「Nehalemマイクロアーキテクチャ」では、メモリシステムのデータ転送帯域が従来の約3倍、メモリレイテンシーが従来の60%と大きく改善されています。キャッシュシステムも大容量化と共有化が進んでいます。

マルチプロセッサ : システム階層での並列処理

 現在のX86系CPUアーキテクチャはCPU上にメモリコントローラを搭載する仕組みを採用しており、高速かつ低レンテンシーなメモリI/Oを実現しています。さらに「CPU上にメモリコントローラを搭載する」という仕組みによりCPU数が増加するのに比例してメモリ帯域も高速化されます。CPU間通信についても30GB/s〜50GB/s級の高速通信ポートがCPU上に実装されており高効率な通信を可能としています。(なお、将来メニーコア化されたGPUがCPUに直接接続されるようになる場合は、このCPU間通信ポートを用いての通信が期待できます。)

クラスタ計算機 : ネットワーク階層での並列処理

 単体計算機の高速化に準じて並列計算機で利用するネットワーク機器の高速化も進んでいます。既に40Gbpsの性能を持つQDR規格のInfiniBandや、レイテンシーの低いConnectX HCAが標準的に用いられるようになっています。

まとめ

 このように階層化された並列処理が処理性能向上の基本です。理論演算性能は各要素は掛け算で求められます。

【参考】ハイパースレッドはHPCでは使わない

 1個のコアは1個のスレッドしか同時処理できません。しかし、ハードウェアを改良し2個のスレッドを同時処理できるようにする技術が「ハイパースレッディング」です。この「ハイパースレッディング」は初期のNetBurstアーキテクチャで採用されていましたが、すぐに採用されなくなりました。ところが、Nehalemマイクロアーキテクチャでは改良版の「ハイパースレッディング」が再び採用されました。

 Nehalemに搭載されるコア数は4個ですが、「ハイパースレッディング」をオンすると、システムからは8個のコアが動作しているように認識され、8スレッドの同時処理が可能となります。その動作メカニズムの特長は、並行処理されている各スレッドがアイドル状態となり利用していないコア内部のリソースを寄せ集め無駄なく利用するような仕組です。そのため条件が整えばスループットを20%から30%向上させることができるとされています。

 しかし良く考えるとHPCでの並列処理とは、複数のスレッドを並列処理させてより高速なジョブの実現を目指していますから、これは「ハイパースレッディング」とは正反対の処理です。