インテル Parallel Composerの新機能――並列プログラムを容易に実装できる「インテル Cilk Plus」入門 2ページ

Cilk Plusを利用する設定

 Cilk Plusは、Parallel Composerに含まれるインテル コンパイラーでのみ利用できる。Cilk Plusを利用したプログラムをVisual Studioでコンパイルする場合、プロジェクトを選択した状態でParallel Compserツールバーの「Use Intel C++」ボタンをクリックし、インテル コンパイラーでプロジェクトをビルドするように設定しておく必要がある(図1)。

図1 Parallel Compserツールバーの「Use Intel C++」ボタン
図1 Parallel Compserツールバーの「Use Intel C++」ボタン

 「Use Intel C++」ボタンをクリックすると確認ダイアログが表示されるので「OK」をクリックし、続いてプロジェクトのリビルドを行っておこう(図2

図2 「Use Intel C++」ボタンをクリックすると確認ダイアログが表示される
図2 「Use Intel C++」ボタンをクリックすると確認ダイアログが表示される

 なお、Cilk Plusを使用したプログラムはVisual StudioのC/C++コンパイラではコンパイルできない。もしソースコードをインテル コンパイラー以外のコンパイラでもコンパイルできるようにしたい場合、次のように「#ifdef」プリプロセッサなどを使い、インテル コンパイラーでのコンパイル時に自動設定される「__cilk」マクロの有無でコードを切り替えるようにしておけば良い。

#ifdef __cilk  /* Cilk Plusが利用できる場合 */
 :
(Cilk Plusを利用するコードを記述)
 :
#else  /* Cilk Plusが利用できない場合 */
 :
(Cilk Plusを利用しないコードを記述)
 :
#endif

Cilk Plusに関するドキュメント

 Cilk Plusに関する情報は、Parallel Stduioヘルプ内の次の個所にまとめられている(図3)。

Intel(R) Parallel Studio 2011
→ Intel(R) Parallel Composer 2011
→Intel(R) C++ Compiler 12.0 User and Reference Guides
→Creating Parallel Applications
→Using Intel(R) Cilk(TM) Plus
図3 Parallel Studioヘルプ内の「Using Intel(R) Cilk(TM) Plus」にCilk Plusの情報がまとめられている
図3 Parallel Studioヘルプ内の「Using Intel(R) Cilk(TM) Plus」にCilk Plusの情報がまとめられている

 ここにはCilkの機能やリファレンスなど、Cilkを利用するに当たって必要な情報が一通り揃っている。また、インテルWebサイトのCilk Plusページにもサンプルコードや簡単なドキュメントが用意されている。ここにはCilk++からCilk Plusへのマイグレーションに関するドキュメントも用意されているので、Cilk++に関する知識があるユーザーは確認しておくと良いだろう。

 Cilk Plusはリリースされてから日が浅いこともあってか、Web上で公開されている資料などは多くないが、ベースとなっているCilkに関する情報の多くはCilk Plusでも有用だ。たとえばMITのCilk Projectページ内「Documentation」にある、Cilk ProjectのリーダーCharles E. Leiserson氏らによるレクチャー資料は、Cilk Plusの考え方や実装方法を把握するのに有用だろう。