160スレッドのCPU能力を活用するには
日本ヒューレット・パッカードの伊藤章一氏が、セミナー冒頭で紹介したのが講談社でのデータウェアハウス/BIの事例。Microsoft SQL ServerとHP ProLiant DL980、そしてフラッシュメモリーだけで構成されたストレージ「VMAシリーズ」という組み合わせだ。
この組み合わせが採用されたポイントは「実機検証を行ったこと」。5年分の実データを用いた実機による検証の結果、現行の5倍以上の処理速度が確認できた。そのうえ、コストは他社アプライアンス製品の1/4だったことが採用の決め手となった。
この事例でも活用されているHP ProLiant DL980 G7とは、いったいどんなサーバーなのか。
最新のハイエンドCPUである、インテルのXeonプロセッサE7ファミリーを搭載するハイエンドサーバー。搭載するプロセッサは10コアで、これを8個搭載できる。つまり80コア、スレッド数はなんと160にもなるのだ。
「これに4TBのメモリが搭載可能で、もっともスケールアップされたサーバーです。HP独自のチップセットとの組み合わせで、業界標準のベンチマークテストでも、世界最高性能を発揮しています」(伊藤氏)
単純に80コア160スレッドで動くとは言っても、これはじつは簡単なことではない。80コア160スレッドのCPUの能力を均等かつ効率的に利用するには、ソフトウェアがまずこれに対応できなければならない。
「SQL Server 2008 R2では、NUMA(Non-Uniform Memory Access)に対応しています。当然、OSであるWindows ServerもNUMA対応しているので、80コアをフルに使うことができるのです。とはいえ、ソフトウェアが対応しているだけでも十分ではない。その上で、高速なデータの読み取りができなければいけません」(伊藤氏)
そのために活用されたのが、フラッシュメモリストレージだったというわけだ。
CPUコアがたくさんあっても、そこで処理するためのデータがなければCPUは結局処理待ち状態になってしまう。そうなれば、パフォーマンスメータのグラフの線は、処理ゼロのところで横一直線の状態になってしまう。この図のように160スレッドすべてが、処理待ち状態ではなくきちんと個別に処理を行っているグラフ状態となるためには、十分なデータを160スレッドすべてに渡せなければならないのだ。これができるからこそ、前述の検証結果のように高い処理性能が発揮できる。