インテルは、2012年12月7日、マルチコア・プロセッサ向けにアプリケーションの並列化・最適化に取り組むソフトウェア開発者を対象に、4回目を迎えるソフトウェア・カンファレンスを東京都内で開催した。基調講演に登場した米インテルのジェームス・レインダース チーフ・ソフトウェア・エバンジェリストに、同社の戦略をたずねた。(取材・文/信澤健太)
プログラミングを容易にする
──インテルの「Xeon Phi(ファイ)」コプロセッサ(副処理装置)を含む新しいハードウェアを容易に活用するツール群への取り組みで、力を入れている分野は何か。 レインダース 現在、世界で複雑な課題が山積みになっているが、コンピューティングパワーを使ってそれらの解決策を見出すことができるようになったといえる。インテルは、何年にもわたってハードウェアをパワフルにするという面で最先端を走ってきた。
だが、ハードがパワフルになるに従って、プログラミングが難しくなるという課題を抱えていた。つまり、ソフトウェアの開発者にとって、使い勝手が必ずしもよくないものになってきたわけだ。とくに、GPUコンピューティングに関しては、プログラミングがどうもやりにくいという話がある。
そこで、インテルの戦略は、ハードの設計は複雑化するなかでもプログラミングを容易にするというものだ。「Xeon Phi」コプロセッサでは、開発者がよく知っているプログラミング言語、プログラミングモデル、そしてプログラミングツールを使えるようにした。
──開発者向けの総合開発ツールである「Parallel Studio XE 2013」はどのような製品か。 レインダース 「Parallel Studio XE」には、開発者が必要としている複数言語のコンパイラ、ライブラリ、さらにはパフォーマンスを分析するためのツールなどが含まれており、ハードウェアのメリットを完全に引き出せるように設計されている。
──クラスター環境向けの総合開発ツールである「Cluster Studio XE 2013」についてはどうか。 レインダース 「Parallel Studio XE」プラスMPIサポートという位置づけだ。「Parallel Studio XE」では、大規模なスーパーコンピュータを一つのノードとし、その共有メモリを扱えるようにする。「Cluster Studio XE」では、それに加えてMPIがサポートされるので、複数のノードをコントロールできるようになった。つまり、より大きなクラスターを扱うことができる。MPIのライブラリや一時に数十万レベルのコア数を分析できる機能が役に立つ。
開発者には三つのメリットがある
──開発者にとってのメリットは何か。 レインダース 三つある。まず、第一に「Xeon Phi」といった最先端のハードを最大限に生かすことができる。第二に、標準に準拠している。新たに「C++11」や「Fortran 2008」が登場し、あるいはMPI-2.2という標準が公開され、この業界はずいぶんと進化している。インテルは、常にこうした最新の標準に準拠してきた。第三に、開発者が抱える未解決の課題に対する支援だ。新しいテンプレート関数で、より再現性のある結果を取得できる。開発者にはとても好感をもって受け入れられた。それ以外にも、さまざまなイノベーションが製品に組み込まれている。
──実際にアプリケーションの並列化に取り組んでいる開発者に向けたアドバイスは? レインダース いったいどこに並列化のチャンスがあるのか、ということを理解するのがまず難しい。まずは、徹底的に問題そのものを精査することによって、どこでデータ処理がたくさん発生していて、どうやって並列化できるのかを勉強しなければならない。どんな問題があるのかをしっかり考えて、並列化の着地点を見据えたうえでコードを書き始めるとよい。
──そもそも、並列化は広まっているのか。 レインダース 広く受け入れられてきたといってよい。ただ、実際に並列化プログラミングしなくてはならないほどのハイパフォーマンスのコードを書かなくてはいけないケースは、一部に限られている。それでも広く使われているというのには理由がある。
映画業界やオイル、ガスなどのエネルギー業界や金融業界はかなりのヘビーユーザーだ。このほか、ソーシャルメディアのサーバー上での並列化も行われている。例えば、携帯電話で友達が何をしているのかがわかるのは、クラウド上にあるサーバーで並列処理をしているからだ。携帯用のFacebookアプリを開発する人は並列化を気にしないが、サーバー側で並列化を最大限に活用しているからアプリを利用できる。
つまり、並列化プログラムを書かなければならない開発者は少なくても、実はそれによって恩恵を受けている人はたくさん存在する。