2010年にリリースされるx86系プロセッサのHPCへの適性を検討します。
| 比較項目 | 機種 | |||||||||
| Core iX | Xeon |
Opteron | ||||||||
| Westmere | Westmere | Nehalem | (Knight X (参考)) | Lisbon | Magny- Cours |
|||||
| i3 | i5 | i7 | UP | DP | MP | (Ferry) | (Corner) | |||
| 搭載CPU数 | 1 | 1 | 2 | 4 | - | - | 1/2 | 2/4 | ||
| メモリチャンネル数 | 2 | 2 | 3 | 3 | 3 | 4 | - | - | 2 | 4 |
| メモリバンド幅 (GB/s) | 21 | 21 | 26 | 32 | 32 | 43 | - | - | 21 | 43 |
| ECC Memory | No | No | No | Yes | Yes | Yes | - | - | Yes | Yes |
| CPU間通信用チャネル | 0 | 0 | 0 | 0 | 1 | 3 | PCIe | QPI | 1 | 3 |
| 外部I/O接続チャネル | 0 | 0 | 1 | 1 | 1 | 1 | - | - | 1 | 1 |
| 搭載コア数 | 2 | 2 | 4 | 6 | 6 | 8 | 32 | 50 | 6 | 12 |
| クロック速度 (GHz) | 3.06 | 3.60 | 3.20 | 3.33 | 3.33 | 2.26 | 1.2 | - | 2.8 | 2.3 |
| TuboBoost | No | Yes | Yes | Yes | Yes | Yes | - | - | No | No |
| キャッシュ (MB) | 4 | 4 | 8 | 12 | 12 | 24 | 8 | - | 6 | 12 |
| 露光線幅 (nm) | 32 | 32 | 32 | 32 | 32 | 45 | - | 22 | 45 | 45 |
| 筺体 | PC | PC | PC | WS | WS/ Server |
Server | PCI Card | (WS/ Serve) |
Server | Server |
| 適性 | - | - | 可 | 良 | 優 | 良 | - | - | 良 | 優 |
Core iX系は、パソコン用の1ソケット型プロセッサです。このプロセッサはメモリにECC機能を搭載していないので、メモリにエラーが発生しても自動訂正することができません。またメモリエラーの発生条件によってはエラーを検出できない場合もあります。そのためHPCサーバとしては推奨されていません。もしCore iX系のプロセッサを利用されるのであれば、Core i7を推奨します。このプロセッサはメモリ帯域が広く、4コアに対応し、TurboBoost機能を搭載するなど、高い演算性能を持っています。
Xeon UPは、サーバ/ワークステーション用の1ソケット型プロセッサです。このプロセッサはECCメモリを搭載しているのでメモリーにエラーが発生しても、エラー検出と訂正が自動的に行われます。さらに、高速なDDR3-1333を採用し、6コアに対応していることで、より高速な演算性能を実現します。
また、サーバ/ワークステーション型の計算機は、業務での使用を前提とした製品設計、品質管理、とサポートレベルを備えており、高負荷状態での長期安定利用を可能としています。すなわち、高品質な筺体、高信頼性の部品、高機能なシステム管理ツール、プロレベルのサポート要員、迅速なオンサイトサポート体制、最長5年間の部品保障など、パソコンとは一線を画した品質とサービスが整備されています。
Xeon DP (Westmere-EP) は、サーバ/ワークステーション用の2ソケット型プロセッサです。このプロセッサは、クロック速度、コア性能、処理効率、並列性能、メモリ帯域、プロセッサ間通信速度など、HPC計算機として大切な機能の多くが最高のレベルをマークしています。
このプロセッサはマルチプロセッサによる平行処理性能と並列処理性能の双方を向上させるため、各プロセッサが独自に高速なCPU間通信機能を備え、さらに高速なメモリコントローラをも搭載しています。そのため、『CPU性能律速型アプリケーション』、『メモリ性能律速型アプリケーション』、『シリアル性能律速型アプリケーション』のどれであっても高い性能発揮します。
この優れたプロセッサの唯一の欠点は競合する4ソケット機に価格で並ばれていることです。しかし、両者は設計思想が異なっているため、直接競合することは少なく、お互いを補完するようなポジショニングにあります。
Xeon MP (Nehakem-EX) は、サーバ用の4ソケット型プロセッサです。このプロセッサは、8個のコアを搭載し、4ソケット構成でのり理論最大演算性能は290GFLOPSに達しています。また、各プロセッサは4チャンネルのメモリ接続ポートを持ち、最大メモリ容量は256GBに達しています。プロセッサの外部インターフェースとして4チャンネルのQPIポートを持ちます。このように4ソケット用プロセッさに相応しい高い接続性能を持っています。
しかし、現在の製品は45nmプロセスで製造されているため、クロック周波数が2.26GHzのものまでしか製品化されていません。このプロセッサが32nmプロセスで製造されるようになると、クロック周波数が高くなり搭載コア数も増えるため、大幅な高速化が期待できます。
ところがその時期になると、競合する4ソケット系プロセッサの方も、性能向上していると考えられます。Xeon MPプロセッサがHPC計算機用のハイエンドプロセッサとして君臨できる領域は限定されものになります。
Opteron 4000番台は、サーバ/ワークステーション用の1/2ソケット型プロセッサです。低価格なプロセッサですが、4コアと6コア搭載を実現し、2基のメモリチャンネルを搭載することでメモリ帯域は21GB/sに達し、メモリ容量は96GBに達しています。この計算機は主にOpteron 6000番台のプロセッサを用いたクラスタに搭載する小型ジョブノードなどに適した計算機を経済的に構築できます。
Opteron 6000番台 (Magny-Cours)は、サーバ専用の2ソケットと4ソケット型に対応するサーバ専用のプロセッサです。このプロセッサの特徴は、12個のコアを搭載することができ、4ソケット機では48コア機を実現できます。しかもメモリバンド幅は43GB/sと非常に広く、4ソケットシステムの総メモリバンド幅は170GB/sに達しています。さらにプロセッサ間の通信速度も速く、プロセッサあたり75GB/s帯域を持っています。
しかしこのプロセッサの素晴らしさは、4ソケット機で最高のスループットを実現しながら、2ソケット機に近い価格で提供されていることです。
またこのプロセッサは今後の高速化も期待できます。現在このプロセッサは45nmプロセスで製造されています。このプロセスを32nmプロセスに更新することで、現在2の.2GHzのクロック周波数が大幅に向上することや、12個のコア数を16個に増やすことが期待できます。その結果、単体コアの性能向上と、スループットの1.7倍の向上が同時に実現される可能性を持っています。
さらにこのプロセッサの長所である総メモリ帯域が高速化する可能性を持っています。現在使用しているメモリはDDR3-1333ですから、これをDDR3-1600に更新することで200GB/s/システムもの総メモリバンド幅を実現すると思われます。
本格的な利用にはまだ時間が必要なMany Coreトレンドにあって、インテルは自家薬籠中のx86開発環境、x86コア、Nehalemアーキテクチャを組み合わせた、実用的なメニーコア環境の製品化に本格的に取り組んでいるようです。公開されている資料をみると、既成の技術を巧みに組み合わせることで、使いやすさと性能を両立させた優れた設計をしているようです。
製品版に先行して、"Knight Ferry"と呼ばれる開発キットがリリースされるようです。これはPCI Expressカードに32コア 128スレッドのメニーコア環境を搭載したものと、"Intel HPC tools"と呼ばれるソフトウェア環境がセットになったものだそうです。
少し開発期間をおいて"Knight Corner"という製品版 (実用版) がリリースされるようです。この製品の特徴は、新開発のx86コアを50個搭載、高速な内部通信ネットワークを備える、QPIインターフェースに対応、高速メモリインターフェースを持つ、インテルコンパイラが利用できる、既存のソースコードと互換性がある、既存のマザーボードに(多分)ソケット互換で搭載できる、低消費電力を実現している、などが予想できます。インテルが満を持してリリースこの製品こそがHPC分野でのメニーコア環境の本命と考えられます。
この製品の実用化は2012年頃と考えておいた方が良いでしょう。まだ急ぐ必要はありません。この時期にインテルが開発途中の製品を披露した理由としては注意喚起の意味が強いように思われます。その真意を推測すると、
「メニーコア環境の実現には、プロセッサの開発だけでなく、システムとの接続方法、既存の開発環境の拡張、アプリケーションレベルのデバックなど総合的な開発作業が必要。これらはインテルが責任を持って遂行する。しかしインテルが自信を持って提供できる製品の開発にはしばらく時間がかかる。申し訳ないですがもうすこし辛抱してください」
というようなニアンスが含まれていると思われます。既存環境の充実と開発環境の整備が大切です。
(参考 : インテルの広報資料 (44頁あるので重い、ホットポイントはp32からp38までの"MIC"の箇所)
http://download.intel.com/pressroom/archive/reference/ISC_2010_Skaugen_keynote.pdf
x86命令を使用しているインテルとAMDのプロセッサはどちらもメニーコアへ向かっています。しかし両者はそのアプローチが異なっています。そこでユーザの側も両者をバランスよく利用することのできる仕組みが必要です。その際に大切なことは、ハードウェアプラットホームが多様化するわけですから、全ての基礎となるソースコードと開発環境の一貫性を高めておくことです。
幸いこれらのハードウェアは、x86命令についての互換性があり、インテルコンパイラを開発の中心に据えることができます。インテルコンパイラを利用することでアプリケーションの可搬性を保つことができます。すなわち同じソースコードをインテルコンパイラでビルドし、インテルプロセッサ、AMDプロセッサ、インテルのメニーコアプロセッサの3種類のアーキテクチャで利用することができます。既存のソースコードもそのまま利用することができます。懸念されていたメニーコア環境への最適化作業も自動化されるため開発の苦労が解消されます。それを受けて対応するアプリケーションの数も急激に増えると予想されます
。
計算機システムを高速化しようとすると、その先には3種類のボトルネックが待ち構えています。それは、メモリ帯域、単体コア性能、並列演算性能の3種類です。もちろんこれらのボトルネックをクリアしている計算機もありますが高価なためコストパフォーマンスが低下してしまいます。とこが最近のx86系の計算機はアーキテクチャの種類が増加し、これらのボトルネックの一部に対して強い機種も現れています。そこで、各計算機の長所を活かすことを目指したハイブリッド型クラスタが注目されようとしています。
○ 4-Way構成により総メモリ帯域が広くプロセッサは、並列処理により『メモリ性能律速ジョブ』を高速処理
○ クロック周波数が高く処理効率も良いプロセッサは、『シリアル計算』を高速処理
○ 多くのコアを搭載したシステムは、並列処理によって『CPU性能律速ジョブ』を高速処理
これらの計算機は相補的な関係にあり、それぞれの計算機に適したジョブをジョブスケジューラによって自動的に投入することで、速度とスループットを低コストで両立させることができるようになります。
ハイブリッド型計算機の設計では、計算センターなど外部の計算機資源の利用も考慮したシステム設計をすることも重要です。アウトソーシングする計算を切り出し、手元の計算機はそれ補完するような計算に特化させることができます。例えば計算センターでは大量の予備計算を行い、手元では大規模計算を中心に行うなどの分散が考えられます。
インテルコンパイラは、インテルが自社開発するx86系プロセッサの性能を最大限に引き出すこと目標として、インテルがプロセッサと平行して自社開発しているコンパイラです。そのため、新しいプロセッサが発売される以前に対応するコンパイラを先行して発売することができます。その結果、新しいプロセッサが発売されると、すぐに最高性能で動作するソフトウェア環境が整っていることになります。例えば最新のWestmere-EPプロセッサをLinpack HPLによって性能テストすると理論性能の96%という処理効率を見せています。また、現在リリースされているインテルコンパイラ Version 11.1には、次世代のCPUアーキテクチャに搭載される256bit命令セットに対応する "AVX" が早くもサポートされています。このようにx86系プロセッサとインテルコンパイラは表裏一体の関係を持っています。
現代の開発コードの多くは長期間に亘って沢山の開発者が協力し合いながら、開発が進められてゆきます。その共同作業の基盤となるものがソフトウェア開発環境です。そのため、ソフトウェア開発環境に一番求められるものは一貫性と信頼性です。
インテルコンパイラが一般化した当初はフリー版であっように記憶しています。しかし、製品についての責任の所在の明確化と、質の高いサポートを実現するため、早い段階から有償化に切り替わったと聞き及んでいます。このことが功を奏し、適切な価格で優れた開発環境と開発ツール群が安定して提供されるようになりました。さらに技術サポートと製品アップグレードも適切に行われる体制が整えられ、安心して利用することのできる優れた開発環境になりました。その結果、多くの科学技術計算用のアプリケーションはインテルコンパイラを標準コンパイラとして採用する状況になっています。
このページにありますように、x86系の計算機環境はメニーコア化の流れのなかで、複数の異なる構成が混在して利用されるような環境が増えてゆきそうです。しかし、ハードウェア環境がハイブリッド化したからといって、開発環境の混乱やソースコードの拡散は許容されません。求められていることは、
○ アプリケーションの高速化はハードウェア階層で実現
○ 開発環境はハードウェアの差異を吸収しソースコードの一貫性を実現
○ アプリケーションは新しいサイエンスの実現に向かう
という階層関係の堅持です。
今後HPC分野はサーバー用プロセッサの大きなマーケットに発展する可能性があります。これまでHPCを主に利用していた各種工学分野や科学分野のみならず、今後は医療、環境、エネルギー、金融、社会など非常に幅広い分野でHPC計算が大活躍すると考えられます。プロセッサメーカーとしてのインテルはソフトウェアの開発環境を整備することでこの流れを促進し、マーケットのさらなる拡大を望んでいることでしょう。その成否を握る片輪がインテルコンパイラであると考えていると思われます。ソフトウェア開発の生産性を最高に高めることができる開発環境を開発することで、優れたアプリケーションソフトの開発にさらに弾みが付きプロセッサマーケットの拡大に直結していると考えているのでしょう。