インタビュー先週、ロンドンで Intel ソフトウェア開発会議が開催され、私たちは並列プログラミングおよび HPC ツールのディレクター兼エバンジェリストである James Reinders 氏にインタビューする機会を得ました。
レインダース氏は、高性能並行プログラミング向けに設計されたインテルの MIC (Many Integrated Core) プロセッサである Xeon Phi の次世代である Knights Landing について語っています。
最初の Xeon Phi である Knights Corner は 2012 年にリリースされ、最大 61 個のコアを持っていました。このチップのうち 48,000 個が、世界で最も強力なスーパーコンピューターである中国の Tianhe-2 に搭載されています。
Knights Landingは最大72コアを搭載していますが、より重要な違いは、新しいXeon Phiがコプロセッサではなくプロセッサである点です。コプロセッサはホスト/デバイス・プログラミング・モデルを採用しており、ホスト(CPU)上で実行されるアプリケーションが、計算負荷の高いタスクをデバイス(コプロセッサ)にオフロードすることで、大幅な高速化が期待できます。NVIDIAのTeslaシリーズのGPUアクセラレータボード(世界第2位のスーパーコンピュータであるTitanに搭載)もこのモデルを採用しています。
インテルのジェームズ・レインダース
プロセッサとコプロセッサ
なぜインテルはKnights Cornerでコプロセッサを採用したにもかかわらず、今になって方針転換を図っているのだろうか?「一つはソフトウェアの問題でした」とレインダース氏は語る。「Knights Cornerは、人々がより受け入れやすい型に収まったコプロセッサでした。もう一つは、少々のレガシーな問題でした。クラスター・オン・チップの設計は、Larabeeという別のプロジェクトから生まれたもので、これは私たちが市場に投入しなかったものです。コプロセッサの方が早く導入できるのです。これはエンジニアリング上のトレードオフでした。」
「コプロセッサでは、エコシステムをより細かく制御できます。つまり、その上で実行されるすべてのものを制御できるのです。ホストは標準でした。512ビットベクトルをプロセッサ上でどのように処理すべきか、まだ理解できていません。」
「個人的には、このコプロセッサとそれが私たちをどこへ導くのかに取り組みたいと思っていますが、Knights Landing が待ちきれません。」
プログラマーの視点から見ると、プロセッサはホストとデバイスの境界を気にする必要がないため、コーディングが容易になります。「コプロセッサには大きな問題があります。制御プログラムは既にデータを持っているにもかかわらず、そのデータをコプロセッサに転送しなければならないのです。メモリを2回購入しなければなりません。ホスト側にはデータを保存するメモリがあり、それをカード上のメモリに転送する必要があるのです」とレインダース氏は言います。
「もう一つは、ファブリックをパッケージに統合することです。Knights Landingは、これを実現する最初のプロセッサになります。そして、ファブリックのレイテンシを削減することで、スケールアウトが可能になります」と彼は付け加えた。
スーパーコンピュータは膨大なデータセットの分析に多くの時間を費やしており、IoT(モノのインターネット)センサーがますます多くのデータを供給するにつれて、この傾向は今後も続くでしょう。「Xeon Phiをコプロセッサではなくプロセッサにすることで、膨大な量のデータを処理する能力が解き放たれます。プロセッサとしての性質により、任意の量のメモリを搭載したマシンを構築できるようになります」とレインダース氏は説明します。
インテルのXeon Phiは、GPUベースの競合製品に比べてコア数ははるかに少ないものの、各コアの性能は向上しています。「これはコンピューターアーキテクチャにおける古典的な問題です。あらゆる処理能力を備えた少数のファットコアを使う方がよいのか、それとも多数の小型コアを使う方がよいのか。私たちは、両者を両立させる方法で実現しています」とレインダース氏は言います。
3年間の開発期間でコア数が61から72に増えたというのは、期待外れに思えるかもしれない。しかし、レインダース氏はコア数だけが重要なのではないと指摘する。「並列処理を3倍にする方法を見つけ出せるだろうか?それとも、プロセッサとして動作させ、クロック周波数を高め、高帯域幅のメモリを搭載し、アウトオブオーダー実行によってスレッドごとの動作を高速化すれば、より優れた結果が得られるだろうか?それが、私たちが行った設計上のトレードオフだ。」
インテルが当初2015年に約束していたKnights Landingは、いつ入手できるのでしょうか?「現在、インテル以外に3つのシステムがあります」とレインダース氏はRegに語りました。「クレイ社、サンディア国立研究所、そしてフランスのCEAです。これらはA0(第一段階レベル)シリコンを使用しています。新年を迎えるにつれて、徐々に供給量が増えていくでしょう。一般提供開始時期についてはまだ言及していません。」
Fortranがスーパーコンピューティングに最適な理由
スーパーコンピューティングと並行プログラミングは、ハードウェアだけの問題ではありません。結果を得るには、高度に最適化されたコードを書く必要があり、それがより困難な課題であることが証明されています。そこで登場するのがFortranです。「コンピュータサイエンスの世界ではFortranは廃れてしまったかもしれませんが、それでも科学界を牽引しています」とレインダース氏は言います。「Fortranは科学プログラミングに非常に適した言語です。Fortranは成長を遂げ、それに対する反対意見もいくつか解消されてきました。」
彼は特に並列処理向けに設計されたCoarray Fortranに熱心です。「これは数少ないPGAS(分割グローバルアドレス空間)技術の一つで、特定の層に非常に人気があります。特に、レイテンシが非常に低いCray Ariesファブリックでは非常に人気があります。プログラマーがデータの移動をしなければならないのは面倒ですが、データの移動が過度にならないようにするための何らかのメカニズムが必要です。Coarray Fortranで書かれた美しいプログラムをいくつか見てきました。Coarray Fortranはすべての人やすべてのアルゴリズムに適しているわけではありませんが、うまく機能すれば、リモートメモリへのアクセスが明確になり、頻繁にアクセスしないようにすることができます。」
Xeon Phiというプロセッサの道を選んだ結果の一つは、Intelの主流ハイエンドプロセッサブランドであるXeonとの差別化が希薄になったことだ。レインダース氏は、最終的にはXeonとXeonが一つになる可能性もあると述べている。「Xeon Phiにとって最大の競合はXeonです。その曖昧さを反映して、意図的に名前を付けました。20年後、30年後もXeonが別々の製品であり続けるとは断言できません。」®