インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

はじめに

インテル® Cilk™ Plus は古い機能 (非推奨) です。代わりに、OpenMP* またはインテル® TBB を使用してください。詳細は、「インテル® Cilk™ Plus の代わりに OpenMP* またはインテル® TBB を使用するためのアプリケーションの移行」を参照してください。

インテル® Cilk™ Plus を使用することで、C/C++ プログラムに細粒度のタスクを実装し、新規および既存のソフトウェアを簡単に並列化して、マルチプロセッサーおよび新しい CPU で利用可能なベクトル命令を効率良く活用できます。インテル® C++ コンパイラーにより実装される C および C++ 言語にデータとタスクの並列化を表現する簡単な言語拡張を提供します。

インテル® Cilk™ Plus には、3 つの主要な機能があります。

インテル® Cilk™ Plus は、さまざまなアルゴリズムに利用できますが、特に「分割統治」アルゴリズムに適しています。この手法では、問題を独立して処理することができる小さな問題 (タスク) に分割し、結果を結合します。再帰関数は分割統治アルゴリズムでよく使用され、多くの場合良い結果をもたらします。

タスクは独立した関数やループの反復に実装することができ、キーワードにより並列に実行できる関数呼び出しやループを指示します。タスクは効率よく実行するために、ランタイムに利用可能なプロセッサーにスケジュールされます。

以降のセクションで、ワーカーという用語は、オペレーティング・システムのスレッドがプログラムにおけるタスクを実行する、という意味で利用されています。