2014.7.23
Timothy Prickett Morgan著

Power8のパフォーマンス

私は今日まで新しいPower8システムと過去のPowerマシーンとの対価格性能比を比較していましたが此処で一息入れて、少し観点を変えてみます。しかしながらやはりこの新OSに期待できるパフォーマンスについて触れることになります。なぜなら顧客は最新のIBM i OSを新しいハードウエア上だけでなく従来のPower7あるいはPower7+マシーン上でも稼働させるからです。
IBMは、このオペレーティングシステムとプロセッサーにいっそう多くの作業を操作させるべく、またスループットを上げるためにいくつかの極めて賢明なことを行いました。

最新のプロセッサーはある種の同時マルチスレッド(SMT)を有しています。
SMTによって、プロセッサーのパイプラインはふたつあるいはそれ以上の仮想化されたインストラクションのパイプラインに分けられ、このルック・アンド・フィールはまさしくオペレーティングシステムとアプリケーションへの現実のパイプラインです。これにより、データベース管理システムやJavaアプリケーションサーバーといったマルチスレッドを稼働させるアプリケーションのパフォーマンスを著しく向上させることができます。単一スレッドのジョブは他のスレッドを見ず、またSMTによるマシーン上のパフォーマンスを下げるので、常にバランスを取るアクションが行われます。幸いに、ほとんどの最新のSMTインプリメンテーションはユーザーがそれを断続でき、Powewr8チップによって、アプリケーション、ミドルウエア、データベースが要求すればダイナミックに変更できます。古い世代のPowerプロセッサーはひとつのコアにふたつのスレッドを持っていました。1990年代後期のAS/400e [NorthStar]プロセッサーは、SMTが導入された最初のRISCプロセッサーでした。Power7チップはひとつのコアに4スレッドを有しており、IBMはこれをSMT4と呼び、Power8はひとつのコアに8スレッドを持っていてSMT8と呼ばれています。したがって、Power7+より50パーセント多くのコアを有しているだけでなく、ひとつのコアに2倍の数のスレッドを持っています。このふたつの組み合わせがPower8ソケットのパフォーマンスをPower7チップより約2.5倍高めている理由です。

SMTのフィーチャーにさらに少し深く触れましょう。しかしながら疑問なのは、このシステムにはどれくらいの数のスレッドまでが必要か、ということです。なぜなら、このボックスのプロセッサーのなかのスレッドをこのオペレーティングシステムが必ずしもフルに使うことはないからです。

初期のi5/OSとIBM iオペレーティングシステムがPower Systemsハードウエアを最大限にまで稼働させることはできなかったことを思い出してください。4年前、Power7システムとIBM i 6.Xでこのことが起きたとき、私はスレッドがショートシーツされていると言いました。読者の記憶をリフレッシュするために、4年前のPower6 とPower7上のIBM i 6.1と7.1がどのようであったかを以下に示します。

図1

Power6及びPower6+のチップ上で稼働しているIBM i 6.1の最大スパン数は32コア及び64スレッドで、古い大規模ボックスが、すべて単一のシステムイメージのなかで、数百のコア、数千にも及ぶスレッドを持っていることを考えると決して最新の標準ではありません。(すべてのプロセッサーを共有している単一のメモリースペースを意味しています。)もしPower7チップ上でIBM i 6.1を欲するとスレッドは倍の128になりましたが、コアの数は変わりませんでした。Power7チップで稼働しているIBM i 7.1は、最大32コア、128スレッドでしたがIBMの特別RPQサポートによって64コア、256スレッドまで押し上げることができました。AIX 7.1は最大のPower 795で、256コア、1,024スレッドの単一イメージを作ることができます。ユーザーはIBM i 7.1で基本的にそのようなマシーンの8分の1に制限され、IBMの特別な援助によって4分の1になりました。IBMは顧客がオペレーティングシステムのコアとスレッドを増やすとき、期待できるパフォーマンスに関して決して保証しませんでした。

次に、IBM i 7.1 テクノロジー・リフレッシュ8とIBM i 7.2に目を向けます。下記の表をご覧ください。

図2

この表はパーティションごとのコアを示していますが、Power Systemsマシーンは常にPowerVMハイパーバイザーと一台のマシーンを稼働させています。この一台のマシーンは論理区画と仮想化を有していないと感じさせますが実際はただ1個だけ論理区画を稼働させているボックスでハイパーバイザーを有しています。ご覧のとおり、Power7 (及びPower7+)プロセッサーは同一のST、SMT2、SMT4スレッドのサポート、及び同一ベースの32コア及び128スレッドをIBM i 7.1 TR8への最大数として有しています。ユーザーはIBM Lab ServicesのRPQによって最大64コア、256スレッドまで持ち上げることができます。Power8に関しては、IBM i 7.1 TR8が各コア上にSMT8スレッディングのサポートを加えています。市場で最大のPower8は24コア、192スレッドによる2ソケットのマシーンです。IBM i 7.1 TR8に向けたスレッドの論理的な最大数は1パーティション256スレッドです。

現在、IBM i 7.1はテクノロジー・リフレッシュを有していませんが、IBMはPower7マシーンのスケーラビリティーを向上させました。いま、Lab ServicesのRPQによって96コア、384スレッドまで拡げることができます。それは各ソケットにすべて8コアを有した12ソケットのPower7マシーンです。Power 780のゾーンまで上げることができます。Power8マシーンについて、IBMは現在2ソケットのシステムで最大24コアまでサポートしており、必要があれば48コアまですでに可能になっていると説明しています。したがって、将来4ソケットによるPower8マシーンが現れます。スレッドの数は現在のマシーンで最大192に達していますが、IBMはSMT8モードによってIBM i 7.2 を最大768スレッドまで稼働させることができると説明しています。これはSMT8による8ソケット全般に96コアを意味し、8コアで12ソケットが可能ということです。

IBM i 7.2は、テクノロジー・リフレッシュにより、微調整が施されてさらに大規模なハードウエアへの拡張が予測されます。

此処で少しSMTに戻ります。パフォーマンスに影響を与えるスレッドの他の要素です。
以下は、概念的に何が進んでいるか、また論理的に、達成可能なパフォーマンスのスケーリングです。

図3

重要なのは、マルチスレッドのモード間でダイナミックに切り替えができ、アプリケーションとシステムのコードベースの異なる部分に向けて論理区画内の異なるモードをミックスできることです。これは賢明であり役に立ちます。以下は、トランザクションのワークロード上におけるSMTの効果です。IBMが名称の無いベンチマークテストを使って公表したものです。

図4

上図のとおり、漸進的にきめ細かく仮想化スレッドを起動させることにより、Power8プロセッサーはいっそう多くの作業をやり遂げることができます。OS/400、i5/OS、及びIBM iマシーンのパフォーマンスを測るのに使われるCommercial Performance Workload (CPW)テストが、SMT8モードのPower8システム上で行われ、IBMはSMT4モードに落とすとオンライン・トランザクションにおける処理作業のパフォーマンスは低下すると警告しています。IBMはPower8マシーン上のIBM i のワークロードについてSMTの効果を示す表は提供していません。しかしながらAIXのワークロードをRelative Performance (rPerf)テストを使って作成しています。

図5

各々の連続的なSMTレベルのアップグレードからのエクストラ・スループットという点に関しては、CPWとrPerf間の相対的差異が異なっているとは私は考えません。しかしながら、当然自分自身のアプリケーションでこのテストを行うのがベストです。

上図のとおり、スレッドが各コアに追加されるとSMTのゲインは減少します。これはPower8プロセッサーに限ったことではなく、すべてのチップに当てはまります。IBMは、SMT4からSMT8モードにジャンプする以上にこのマシーンのパフォーマンスを高めることができない限り、Power9チップでコア上のスレッドの数を増やすことは無いでしょう。IBMがPower8+及びPower9で何をするかを予測するのは困難なことで、別の日の話題にしましょう。

ページトップ

ボタン