このページの本文へ

前へ 1 2 3 次へ

ロードマップでわかる!当世プロセッサー事情 第316回

スーパーコンピューターの系譜 Xeon Phiの今後の展開と狙い

2015年08月10日 12時00分更新

文● 大原雄介(http://www.yusuke-ohara.com/) 編集●北村/ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

適切なプログラミング環境に欠けるも
Cilk Plusの実装でx86互換が功を奏す

 ということで、Xeon Phiの今後の展開についての説明が終わったところで、冒頭に書いた「欠けている要素」の話をしよう。

 それはなにかといえば開発環境である。もともとインテルは自社で長くコンパイラを開発・提供していた。

 x86以外にも多くの8bit CPUを開発していたし、その後はi860やi960、Itaniumなど各種の32/64bitアーキテクチャーに基づく製品をリリースするにあたり、「アセンブラで書け」ともいえず、かといってコンパイラメーカーの対応を待っていたらいつになるかわからないからだ。

 もっとも、PCの市場ならマイクロソフトのCコンパイラ(後のVisual Studio)が有名だし、HPC向けには(現在はNVIDIAに買収された)PGIという会社が提供するコンパイラも広く使われている。

 ただ数値演算に関しては、インテルが2003年から提供を開始したMKL(Math Kernel Library)にあわせてこれをサポートする形で最適化をより高めていった。

 さらにVTuneという最適化分析ツールやTrace Analyzerなどのマルチスレッド化支援ツールなど様々なツールも同時に提供しており、ことx86/x64の最適化に関してはマイクロソフトのVisual Studioよりも充実しているというのが昨今の評判である。

 こうした開発ツール群を抱えているのだから、もちろんXeon Phiに関しても手を打った。2010年頃からKnights Ferryベースの開発ボードを配布した先には評価版をあわせて提供したが、2011年にはIntel Parallel Building Blockという形で開発キットとして提供するようになる。

現在はParallel Studio XE 2015 Professional Editionという名称になっている

 この中で特に大きなのは、Cilk Plusと呼ばれる言語拡張機能である。もともとはMITが開発していたCilkという言語拡張があり、これをベースに拡張したCilk++なるものも登場したが、これらをインテルがまとめて買収、Cilk Plusとして実装した。

 CilkにしてもCilk Plusにしても、骨子はC/C++にマルチスレッドの対応を容易に記述できるものであるが、インテルはこれをMICアーキテクチャーに拡張した。ここで初めて、各コアがx86互換であることが生きてくる状況になった。

 というのはCilk Plusを利用してマルチスレッド化したアプリケーションは、Xeonベースのマルチコア、Xeon+Xeon Phi、あるいは大規模なクラスターであってもそのまま変更せずに走らせられるからだ。

1つのソースコードから、さまざまな環境で動作するアプリケーションをコンパイルオプションの変更だけで作成できる、というものでこれはCUDAやマイクロソフトのDirectComputeのように、CPUコードとGPUコードが完全に分離しており互換性がない方式では真似できない

 イメージ的にはOpenCLの先取りという感じだが、提供されるAPIはOpenCLとなんの互換性もない。OpenCLに対する強みは手厚い開発環境であり、これを早期から提供したことにより、急速にXeon Phi対応アプリケーションが増えることになった。

 なにせCUDAにせよOpenCLにせよ、基本的には書き直しになるのに対し、Cilk Plusでは既存のアプリケーションコードにスレッド制御を追加するだけで対応できるため、移行の手間が大幅に減ることになる。

 チップそのものの性能強化に加え、このソフトウェア環境の厚みがHPC市場におけるXeon Phiの存在を急速に高めた要因の1つであることは間違いないと考えてよいだろう。

前へ 1 2 3 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン