世界のスーパーコンピュータとそれを動かす人々


1月 30, 2014

インテル、「CornerからLandingへ」の飛躍に注力する

HPCwire Japan

Nicole Hemsoth

MICアーキテクチャに関する最初の詳細が明らかになって以来、Intelはプログラム化の可能性を約束できる電力効率的なパッケージの内部の高度な並列性を提供するという彼らのビジョンへ立ち返ることを継続的に傾聴している。

次世代のXeon Phiの最終的な投入で、その(まだ不明)高いコア数、オンパッケージメモリ、x86の継続性に沿ったコプロセッサからプロセッサへの形態移行の可能性など、Knights CornerからKnights Landingへ飛躍するためにどのような類の計画的能力が必要になるかについて多くの疑問を抱いている。

本質的に、既に触れたように、Knights Landingは単純に高いコア数を持った新しいXeonとして捉えることができ、少なくともそれをコプロセッサとして使う時の多くの複雑さが懸念されることはもはや無いだろう。現在のXeon Phiと異なりLandingは、PCIe間の転送は排除され、メモリはローカルにあり、与えられたワークロードの特定の高次並列部分のために依然コプロセッサとして使用するオプションを提供しながらもプロセッサのフォームファクターでPhiの並列処理と効率性の利点を受け継ぐことができる真のプロセッサとして機能する。なのでこれもXeonにおけるプログラミングと本質的に同様ないずれかのプログラミングをしなければならない・・・理論的には。

プログラミングの拡張に重点を置いたにもかかわらず、間違いなく、それがあたかも並列プログラミングが突然魔法のように単純になるようなことは無いだろう、そして、確実それは依然コプロセッサとして使用する状況では無い、とIntelのソフトウェアディレクター、James Reindersは言う。ただし、移行をよりシームレスにする多くの注目すべき機能がある。

コプロセッサとしてKnights Landingを使用する時、Knights CornerとLandingの間の真のメリットが明らかになるだろう。アクセラレータおよびコプロセッサを使用する多くのプログラマがオフロードモデルを使うが、彼らが書いたプログラムはプロセッサ上で動作するが確実に高並列部分のオフロードを伴う混成(シリアルおよび高並列)コードである。プロセッサの処理能力が高いことの利点は、アクセラレータ/Phiと比較して逐次タスクにはるかに優れていることである。もちろん、プログラマはアムダールの法則を痛感しているし、オフロードを伴うこれらの多くの問題に対処するOpenACCおよびOpenMPディレクティブを探している – Intelがオフロードの仲買人を否定することによって対処する問題であるが。

Reindersの説明として、「この評価でのKnights Landingに関する大きなことのひとつは、アムダールの法則の効果を減らすことが出来るプロセッサであることです。Knights Landingをプロセッサにすることは、その上でプログラムを実行するが、ある意味『それ自体でオフロードする』ことに基づいて私たちはシステムを構築したいと言うことを意味します。あなた自身がオフロードするようなことは決してありません。ちょうど今日、プロッセッサ向けに書いたプログラムの中で行うように若干シリアルであるものと高並列への間をただ切り替えます。しかし、Knights Landingは、今日のその他のプロセッサよりも高並列ワークロードを扱うためのより高い能力があります。」

Knights Landing(またはそのことについて前任者)のためにプログラムする別の方法は、MPIを使って他のXeonまたはPhiと一緒に実行するプロセッサとして扱うだけのことである。Landingは、プロセッサまたはコプロセッサの両方としてそのモデルをサポートしている、とReindersは言った。「今日の多くのユーザーは、彼らのアプリケーションをただ用意して、オフロードの代わりにMPIを使用しています。Knights Landingマシンを構築した時、彼らはすべてのMPIを実行でき、かつそれらは完全なOSが動作しているので、通常プロセッサが行うことは全てできます。」

ところで、OSに関する注釈として、HPCの最前線にいるに多くのユーザーは、OSが自由に振る舞うことを好まず、多くのコア(そして新しいチップ上に間違いなく61以上ある)を消費し、そしてまた、OSがその近くにある高帯域幅メモリを貧欲に消費することを妨げる必要がある。OSが走るコア数とOSがボード上の新しいメモリを貪欲に掴みにいき続けるようなことについては、ユーザー設定ポリシーの問題であり、そのことに関する開発中の回避策がある。

特定のOSの核心部分で、なぜReindersがLandingについて目眩がするのかを知ることは簡単である。「Knights Landingは、確かに極めて多く(しかし、依然コア数は不明)のコアを持つXeonと考えることができます。その大きな違いは、高並列ワークロードにどれだけ向いているかです。それは、高いコア数を持つXeonです。それをプロセッサーにするためにどのようにKnights Landingと最大の互換性を取る方法である – その上で起動するすべてのOSは、ただ強化されたXeonとして見てみると考えられ、そしてそれはどこも違いがあってはいけません。しかし、コアのいずれかでそれを走らせるためのポリシーを再設定できます。」彼は、システムを供給するOEMが、OSを含めて、アプリケーションがその他のコア上で完全な統治があるように進んで維持するこれらの方針でマシン構成を維持し続けることを期待する。

「私たちが、Knights Landingを発表する前に数年以上の経験の元にあり、その時間を使ってハードウェアとソフトウェアを洗練し続けています。しかし全体的に、Knights Landingは、Knights Cornerから極めて率直な移行を提供し、そして第一世代のXeon Phiを使用している誰もが、非常に簡単に移行できます。最もエキサイティングなことは、それは私たちのプログラマビリティの展望により近づけるということです。」

Knights Landingで存在する改良のいくつかの中で、最終的にIntelプロセッサライン全体に渡って拡張される512ビットSIMD機能である。現在、AVX2とその256ビット幅でユーザーは単一クロックで4つの倍精度演算(または8つの単精度)を発行することが出来るが、512ビットが導入されるとその性能は単精度および倍精度で倍になる。現在のXeon Phiに既に512ビット機能は組み込まれているが、コプロセッサで使用するためだけで、そのx86機能のフルセットと完全に同期されていない。人々が、現在のPhiを使用してもスループットの可能性やIntelがKnights Landingで展開すると思われる全ての機能が備わっていない。

Reindersは、ユーザーにXeon Phiを採用する方法を教え、そして彼がKnights Landingに至る概念を紹介するとともに、誰もが「装甲に穴を探している。」 しかし、彼はユーザーがエコシステム、コンパイラを通して取り組むために内部で作業していることについて知っていると主張する。「簡単な答えは、新しい学習がない時から既にKnights Cornerのためのプログラムしている誰もが簡単にLandingへ飛び移れることが分かるでしょう。」

これは、将来的にHPCアプリケーションをはるかに超えるこの高並列アプローチを取るIntelにとってよい兆候である。特に彼らがその考え方を続ける場合、何も「特別な」(すなわち、困難もしくはプログラマにとってアクセラレータのようなもの)ことでは無く、それは単に高いコア数のプロセッサである。美しさは、ユーザーが彼らのワークロードや並列性、性能と電力要求の周囲でこれらの選択肢を継続的にカスタマイズ出来る彼らの一連のプロセッサの選択肢を最終的に完全なものと出来る。