大規模な並列処理をする際、性能向上策には課題をはらむ。スケールアップではコストパフォーマンスが低くなり、スケールアウトではサーバーの設置面積や消費電力がかさむ。そこに登場したのが「サーバー向けコプロセッサー」という新ジャンルの製品だ。
「大規模並列処理システムの性能向上策に、従来とは違う新たな選択肢が加わった」(サーバーの製品企画を担当している、NEC プラットフォームマーケティング戦略本部 商品マーケティング統括グループ マネージャー 多賀 篤氏)。新たな選択肢とは、サーバー向けコプロセッサーによる並列処理である。米Intelが開発した新製品「Xeon Phiコプロセッサー 5110P(以下、Xeon Phi)」が代表的な製品で、この製品にはサーバーメーカーも注目している。先陣を切ってNECがXeon Phiを搭載した新型サーバーの出荷を2013年2月下旬に始めた。
従来の性能向上策の課題を解決
Hadoopなどを使って大量データを処理しようとする場合、これまでは主に二つの方法があった。
一つはスケールアップ。大型サーバーに高性能なプロセッサーを複数搭載し、全体の処理能力を向上させる方法である。この方法は一般に、高い処理能力を求めるとコストパフォーマンスが低くなる傾向があった。そこでよく採られていた方法はスケールアウトである。そこそこの処理能力のサーバーを複数台並べ、全体の処理能力を高める方法だ。コストパフォーマンス面で問題になることはあまりなかったが、この方法にも弱点がある。サーバーの設置面積がかさみ、消費電力も増えるといった点である(図1左)。
そこで注目したいのが、サーバー向けコプロセッサーを搭載したサーバーだ。NECの1Uサイズのサーバー「Express 5800/HR120a-1」には、メインプロセッサー(Xeon)2個のほかに、コプロセッサーXeon Phiを最大2個搭載できる。
Xeon Phiはコアの多さが特徴で、メインプロセッサーのXeonは1プロセッサー当たり8コアだが、Xeon Phiは1個当たり60コアもある。1Uサーバー全体のコア数は最大136個に上り、コア数だけで考えると大規模な並列処理システムになるというわけだ(図1右)。「スケールアップより低コストで性能向上を図れるし、スケールアウトよりも設置面積と消費電力を抑えられる」とNECの多賀氏は話す。
再コンパイルすると並列処理できる
コプロセッサーとは、メインプロセッサーの処理能力を向上させる装置。よく使われるのは画像処理用の「GPU(Graphics Processing Unit)」である。これは画像表示を担当する専用チップを搭載するもので、基本的にはグラフィック能力を拡張させる装置だ。
それに対してXeon Phiを代表とする「サーバー向けコプロセッサー」は、汎用的な数値演算処理ができるだけでなく、ディスクやメモリーへのI/O処理も可能なコアを搭載している。
Xeon Phiで動かすプログラムの開発には、従来の開発環境を流用できる。インテルが提供するコンパイラーを使うと、C/C++とFortranで作成したソースコードに手を加えず再コンパイルするだけで、Xeon Phiでの並列処理ができる。そのほか、ソースコードに手を加えて、範囲を指定するとその部分だけXeon Phiで処理させることもできる。
Xeon Phiは本来、大規模並列処理をPCサーバーで行うことが多い研究機関向けの製品として開発された。ところが従来の開発環境が使えることもあって「企業情報システムの開発に携わるエンジニアから、ビッグデータ処理に活用できないか、という問い合わせを多く受けている」と、インテルの岡崎 覚氏(クラウド・コンピューティング事業本部 事業開発本部 本部長)は話す。