インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
インテル® Cilk™ Plus は古い機能 (非推奨) です。代わりに、OpenMP* またはインテル® TBB を使用してください。詳細は、「インテル® Cilk™ Plus の代わりに OpenMP* またはインテル® TBB を使用するためのアプリケーションの移行」を参照してください。
int __cilkrts_bump_loop_rank(void);
この関数は、ループの 2 つの反復がペディグリー (系図) を共有しないことを保証します。
cilk_for ループの各反復は、異なるペディグリーで開始すべきです。しかし、ランタイムの cilk_for ループの分割方法 (cilk_for を参照) により、チャンク内の連続する反復でもペディグリーが変わらないことがあります。各反復の最後で __cilkrts_bump_loop_rank() を呼び出すことで、2 つの反復がペディグリーを共有しないことを保証できます。
以下は __cilkrts_bump_loop_rank() のガイドラインです。
ループでペディグリーの読み取りを行わない限り、__cilkrts_bump_loop_rank() を呼び出さないでください。さもないと、ループのベクトル化を妨げることがあります。
ループ内で複数回 __cilkrts_bump_loop_rank() を呼び出さないでください。さもないと、チャンクを超えてオーバーラップ・ペディグリーが作成されます。