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


11月 14, 2013

PhiとKeplerがモンテカルロレースを走る

HPCwire Japan

Nicole Hemsoth

複数の機関が業界固有のアルゴリズムに応じたベンチマークを行い、新しいXeon Phiコプロセッサに勝るGPUの性能、移植性及び機能性の違いを描き出すために多くの活動が最近行われた。

我々は、金融サービス主導型ソフトウェア会社、Xceleritの共同設立者でCTOのJörg Lotzeと、どのようにIntel Xeon PhiコプロセッサにGPUが対抗できるか具体的に強調するためのベンチマーキング・アクセラレータ、コプロセッサ、およびマルチコアアーキテクチャについて話をした。 Lotzeは、実世界でのモンテカルロの実例の状況の中でのそれぞれの課題と可能性について議論した。

Jörg Lotze : Xceleritを創業する前、私には電気通信工学研究の経験があります。 それは全く別のフィールドのように聞こえますが、私たちは金融業界が今見ているものに類似した問題に直面していました。それはハードウェアの様々な断片で高速リアルタイム処理を行うことに全て関係しています。 その類いの研究中に、私たちはその状況で高速ソフトウェア無線の実装を行うために、IBM Cellプロセッサや、GPU、そして様々な種類の組み込みプロセッサさえも使い廻しました。そして、現在のすべてはこの経験から来たのです。 それがまた、この会社とこのツールが生まれるための発想方法でもありました。

これら全ての技術と物事をそこで学び、私たちは直ぐに全く異なる分野の産業コンテキストに適用できることに気づきました。そしてそれは私たちが今焦点を当てているものです。 私たちは、定量アナリストが彼らのアルゴリズムを実装し、そのアルゴリズムに注力でき、ユーザがこれらの低レベル実装の詳細を気にすることなく、自動的にすべての高性能ハードウェアの恩恵を受ける事ができるように支援しています。ある意味、定量分析の専門家がメンテナンスが容易で高速なソフトウェアを書き、実際に興味深い新しいハードウェアから恩恵を得ることを可能にします。

HPCwireそのため私たちはその比較についてのあなたの知見を得るつもりですが、まず異なるタイプのアルゴリズムのを横断して、あなたがテストしたことに注目することが重要だと思います。 あなたは、何故これがこのベンチマークにとって重要であるか、私たちに説明して頂けますか?

Lotze :はい、どのベンチマークにとっても、まずコンテキストで見ることが常に重要です。それはちょうど、どれが一般的に優れているかの質問に答えることができないようなことです。 私たちの顧客は殆ど金融関係であるため、ここではしばしば金融の世界で発生しているアルゴリズムから異なる特性を持っている2つのものを選び、それらに注目しました。

最初のものは、価格スワップション・ポートフォリオのためのエンバラシングリィ・パラレル・モンテカルロです。 ある意味、エンバラシングリィ・パラレルは、すべてのモンテカルロ部分が完全に並列で、文字通り少しも逐次的なところがありません。

次は、同様にモンテカルロ法を使用してのアメリカンオプションを処理するためのものですが、ここではそれらのパスは独立ではありません。 各時間ステップは、以前のものに戻って行くために、パス全体にわたって計算された、いくつかの回帰を必要とします。 私たちは、独立したパスをここに持っておらず、異なる特性の反復コンポーネント(それは一般的に並列処理に向かない)を持っていて、それは現実的に異なる特性です。 それがこれらふたつの異なるアプリケーションを選んだ理由です。

HPCwireこれらは、金融サービス全般にわたる代表的なアルゴリズムですか?

Lotze :はい、金融価格算定では、モンテカルロは、最も優位なアメリカの技法です。アメリカンスタイルのオプションは周りに多くあります。またもう一つのものは同様で、モンテカルロは一般的な価格算定方法の大規模なセットを表します。

HPCwireそれはここでは極めて現実世界的なコンテキストですね。 これのハードウェア的側面を得るために、あなたは比較ポイントとしてXeon Phi、NVIDIAのTesla K20-XとSandy Bridgeを使用してテストを行なっています。 あなたは今、ハードウェア的側面について私たちに説明して頂けますか?

Lotze :私たちは、加速プロセッサである新型のXeon Phiを使っていて、それはまさに今年出荷されたばかりで、基本的に大規模並列なアクセラレータプロセッサです。60個のコアを持ち、4重のハイパースレッド機能があるので、結局240多重のハードウェアスレッドとして活用できます。そして、これは高次並列計算処理のため幅広いベクトルユニットです。同じことがTesla GPUでも言うことができますが、こちらはより長いものです。極めて多数の並列ユニットは、高度な並列処理のためには常に動作している状態を保つ必要があります。Phiはコプロセッサでもあります。そしてもちろん、比較のために、私たちは実質的に全てのサーバにある、マルチコアで、非常に強力でもあるXeonの「Sandy Bridge」世代の標準的なCPUも検証しました。そしてPhiとTeslaだけでなく、関係するこれら3つのすべてを検証する事は常に理にかなっています。

これらのプラットフォームを見た時、誰もがただTeraflops値と計算能力としてどのくらい速いのかを考えますが、同様にどれだけ速くメモリへアクセスでき、どのくらいの時間でそのメモリからデータを獲得できるかが重要です。計算処理とメモリ間の適切なバランスを見いだすことは常に良いことであり、もしアプリケーションが計算に拘束されるようになると、そう、あなたはここに示されるTeraflops値に近い性能を得る事が出来るでしょう。しかし、それは、通常、その処理を行うための多くの命令が1つのメモリアクセスによることを意味しています。つまり、常にメモリと計算命令との間のバランスであり、そして直ぐに(明らかにこれらすべてのプラットフォームに入っている)キャッシングが機能し始めるようになると、これは少し予測不能になります。テストを実施する前にアプリケーションが本当に計算依存か、メモリ依存か、知ることはありません。

HPCwireそれで、これらアプリケーションのコンテキストおよび設定したハードウェア構成で何を見つけたのですか?

Lotze :まず、モンテカルロもまた非常に計算が重く、比較的少ないメモリを使用していますので、すべてのプラットフォームで強い計算依存となり、PhiやGPUのような並列プロセッサのために理想的なものです。それは、ここで明確に見ることができます。 私たちは、逐次型と比較してKepler GPUで96倍のスピードアップ、そしてPhiは同様に45倍、並列の「Sandy Bridge」もより速く、ほぼ20倍速くなりました。

それが高次並列アーキテクチャの条件変数であることを明確に見ることができます。

HPCwire結びのセクションでは、言葉通りに読むと、あなたは本当に良い主張をしています:

私たちは、 絵に追加する必要があるひとつのプロセッサ、汎用マルチコアCPU、があることを見てきました。 これは、既に多くのサーバ構成の一部であり、いくつかのアプリケーションのため、例えばアメリカンオプションのモンテカルロ価格は、それが正しく最適化された時、アクセラレータプロセッサよりも優れた、または同等の性能を得ることができます。 NVIDIAのKepler GPUとXeon Phiの間で、GPUは私たちのテスト・アプリケーションの両方で勝利します。

Lotze :多くの人が彼ら自身でそれら加速度的プロセッサをすぐ考えますが、彼らは常に並列CPUを同様に考慮する必要があります。 そこでここでは、16コアの「Sandy Bridge」システムを持って、それが深く最適化された場合、それはXeon Phiより約2.5倍だけ遅く、そしてTesla GPUよりも約5倍遅いです。私は、ただこれらすべての大規模なスピードアップに関して、逐次実行と比較し言ってきましたが、高度並列に最適化された「Sandy Bridge」もかなり速くできるようになっています。今、このアプリケーションのため、エンバラシングリィ・パラレルである最初のものは、依然GPUとXeon Phiを使用することに極めて大きな利点があります。 私たちの結論における主なポイントは、繰り返しステップが内部にある完全並列ではないアメリカンモンテカルロでは、実際「Sandy Bridge」が最速、もしくはGPUと同程度の速度であるということです。私は、ここでのそのような興味深い発見は、特定のアルゴリズムを比較する時、全てのプラットフォームを考慮すべきことを示していると思います。

HPCwireあなたは、ここでやっている事と遠距離通信の間に多くの関連性があると言及しています。あなたは、調査結果のこの同じセットが非常によく似た方法で、他の幾つかの主要な市場のために本当であるとすれば、それらは何だと考えますか? 金融サービス以外のどこが最も妥当ですか?

Lotze :私は、一般的に妥当だと思います。ただGPUとPhiを比較すべきではありません。「Sandy Bridge」も視野に置く必要があります。それは確かです。その他の事は、これらすべての理論的なTeraflops値とメモリ帯域幅は実際のアプリケーションのために多くを意味するわけではないので、実際にテストする前に最良であろうことを事前に判断する事は難しいです。 一般的に、石油・天然ガス、生化学、および高性能コンピューティングが使用されているこれら全てのフィールドでこの作業を見ることができます。

HPCwire金融サービス会社は、実際に何をしているのですか? あなたが行っている仕事の多くは、極めて簡素な構成、多数のサーバ、多くないアクセラレータが含まれるということでしょうか? どのくらいの頻度で、あなたがこれらの企業の幾つかで超高性能な加速システムを見つけることがありますか?

Lotze :特に金融危機の後、監察官が入ってくると、彼らは皆、たいへん高性能なシステムを探しています。例えば、リスク計算に追加された多くの複雑さがありましたので、現在、彼らはさらにより多くのリスクシナリオを想定する必要があり、そして新しい基準を計算しなければなりません。そして、銀行が持っている器具のポートフォリオ全体に渡るものです。あなたは、幾千ものシナリオ、異なる文脈のために価格をつける必要のある膨大な量のデータについて話しています。そして、それはモンテカルロの設定では普通です。あなたは、何百台ものマシンのグリッドを見ていて、夜通し6~7時間で動作させて、かろうじて仕事が終わる、これは明らかにハイパフォーマンス・コンピューティングの設定です。何が金融と異なるかですが、これは石油・天然ガスや物理学に比べてそれらは比較的新しいということだと私は思います。 そこで、彼らはちょうど学習していて、これらすべての異なるプラットフォームでその馬鹿げたハードウェアの専門知識がありません。そして、これが実際に私たちがそこにいる理由です。

HPCwireですので、GPUとコプロセッサは依然として金融サービス企業の多くでは実験段階であると言っているのですか?

Lotze :いいえ、私はそうは言っていません。それが主流になって来ています。銀行の多くは、彼らの日々の現実の生産工程でGPUの大量使用について、例えばGPモルガンが実際に公表しました。それはもはや実験的なものではありません。それは実際にそこでの主流となってしまいました。

HPCwireひとつ最後の質問です。あなたは、技術が発展するにつれて変化する真の勝者であるGPUで行ったベンチマークで、この傾向がわかりますか? プロセッサの面では、もうすぐのところにいくつか興味深いものがあります。

Lotze :これらは、ちょうど2つの特定なアプリケーションです。 私はこの絵が変化し、異なる絵となる他のものがあるだろうと確信しています。それはアプリケーションの全体の大きな空間の中で本当にただの2点です。 ですので、これは一般的な答えではなく、そして私は、Phiは他のアプリケーションのためにより良くなると思います。また、Phiは今年出てきたばかりで、一方Tesla GPUは、2007年以来活躍しているので、絵が少し変わる可能性があります。 だから私は、一般的な答えがあるとは思いません。 これらのすべてのプラットフォームでは、何かに対し優れているか、そしてあなただけのために最善であるかを見つけ出す必要があります。 何をまた考慮する必要があるかは、これに使われた最適化がたくさんあります。 実世界のコンテキストでの多くのユーザは、彼らが最適化を行う時間無い一方、それらの性能を得るようなチューンする仕事に一週間分の価値があります。

HPCwireGPU向けの最適化とXeon Phi向けのものとの間での最適化の比較について、非常に簡潔に話すと、おそらく起動して実行するのは簡単ですが、最適化へはまだ遠いと思います。 あなたもその経験ありますか?

Lotze :はい、一般的には、そうです。 しかし、両方のプラットフォーム上で、GPUですらも何かを実行させるだけは比較的早いのですが、これらすべてで高速に実行し、「Sandy Bridge」を最適化したい場合にもそれが含まれますが、実際にハードウェアを最大限活用することは容易ではありません。 これらの最適化は本当に極めて専門的であり、そして彼らはその事について心配する必要が無いように、当社のソフトウェア開発キットでは、ユーザのためのそれらの最適化を自動化するように試みるものでもあります。 彼らは、すべてのプラットフォーム上で実行可能な単一ソースコードによる移植性を確保することができますので、どれもハンドチューニングすることなく、ひとつで最良な仕事をすることを確認することができます。 それら全ての最適化が特定のハードウェアに極めて特化したコードを作ることは、移植性が完全に無視されたと言われる必要もあることで、そして、それは典型的な、特に銀行が望まない、現実世界の文脈の何かで、それは他の分野でも同じであると確信しています。移植性は彼らにとって非常に重要なことなので、私は、彼らが私たちがここで見る最適化レベルまで下げることは疑問です。

HPCwireこれは魅力的でした。 実世界のアプリケーションのコンテキストでこれらの両方を比較するための労力を入れていただき、ありがとうございます。

Lotze :ありがとうございます。