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

インテル® Cilk™ Plus 言語機能の概要

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

インテル® Cilk™ Plus には、キーワード、コマンドライン・オプション、環境変数、プラグマなど一連の関連項目があります。次の表は、これらの関連項目をまとめたものです。

項目 説明
キーワード:

_Cilk_spawn

関数呼び出し文を変更して、関数が呼び出し元と並列に実行すること (ただし、必ずしも並列に実行する必要はないこと) をランタイムシステムに指示します。

cilk_spawn を参照してください。

_Cilk_sync

現在の関数はスポーンされた子タスクが完了するまで現在の位置で待機することを指示します。

cilk_sync を参照してください。

_Cilk_for

指定した通常の C/C++ の for ループを置き換えて、ループの各反復を並列で処理することを指示します。

この文は、ループを 1 つ以上の反復を含むチャンクに分割します。各チャンクはシリアル実行され、ループが実行される間チャンクはスポーンされることで並列に動作します。

cilk_for を参照してください。

プラグマ:

cilk grainsize

cilk_for ループで処理される 1 回あたりの反復のサイズ (粒度サイズ) を指定します。

cilk_for を参照してください。

simd

ハードウェア SIMD 並列化を活用するベクトル並列化を表現します。

詳細は、simd を参照してください。

事前定義済みマクロ:

__cilk

サポートされているインテル® Cilk™ Plus のバージョン番号を指定します。本リリースでは 200 に設定されています。マクロが定義されていない場合、コンパイラーはインテル® Cilk™ Plus をサポートしません。

環境変数:

CILK_NWORKERS

ワーカースレッドの数を指定します。

「ワーカー数の設定」を参照してください。

CILK_VERSION

Cilk ランタイムのバージョン情報が書き込まれるファイルを指定します。CILK_VERSION を "stdout" または "stderr" として定義すると、バージョン情報は指定されたストリームに書き込まれます。

SIMD 対応関数:

__declspec(vector)

__attribute__((vector))

SIMD 対応関数の記述に使用されます。

「SIMD 対応関数」を参照してください。

コンパイラー・オプション:

[Q]cilk-serialize

インテル® Cilk™ Plus プログラムのシリアル化を指示します。

詳細は、「シリアル化」および cilk-serialize/Qcilk-serialize を参照してください。

[Q]intel-extensions

インテルの言語拡張 (インテル® Cilk™ Plus を含む) を有効にします。デフォルトでは、インテルの言語拡張は有効です。無効にするには、このコンパイラー・オプションの否定形を使用します。

詳細は、intel-extensions/Qintel-extensions を参照してください。

ヘッダーファイル (include/cilk):

cilk/cilk.h

簡易版の名称 (cilk_spawn、cilk_sync、および cilk_for) を利用するためのマクロを定義します。

cilk/cilk_api.h

ランタイム関数とクラスを定義します。

cilk/cilk_stub.h

インテル® Cilk™ Plus アプリケーションをシリアル化する場合に使用します。

詳細は、「シリアル化」および cilk-serialize/Qcilk-serialize を参照してください。

cilk/holder.h

cilk::holder テンプレートの定義を含みます。

「ホルダーについて」を参照してください。

cilk/reducer.h

共通のレデューサー定義が含まれています。

「レデューサーについて」を参照してください。

reducer_list.hreducer_max.hreducer_min.hreducer_opadd.hreducer_opand.hreducer_opor.hreducer_opxor.hreducer_ostream.hreducer_string.hreducer_vector.h

レデューサー・ライブラリーを提供します。

「レデューサー・ライブラリー」を参照してください。

関連情報