Intel® C++ Compiler 19.0 Developer Guide and Reference
Intel® Cilk™ Plus is a deprecated feature. Use OpenMP* or Intel® Threading Building Blocks instead. For more information see Migrate Your Application to use OpenMP* or Intel® TBB Instead of Intel® Cilk™ Plus.
int __cilkrts_bump_loop_rank(void);
This function ensures that no two loop iterations share a pedigree.
Each iteration of a cilk_for loop should start with a different pedigree. However, because of the way that the runtime breaks cilk_for loops into grains (see cilk_for), the pedigree can remain unchanged over consecutive iterations within a grain. Calling __cilkrts_bump_loop_rank() at the end of each loop iteration ensures that no two loop iterations will share a pedigree.
The following guidelines apply to __cilkrts_bump_loop_rank():
Do not call __cilkrts_bump_loop_rank() unless you intend to read the pedigree during the loop; doing so may inhibit vectorization of the loop.
Do not call __cilkrts_bump_loop_rank() more than once within the loop; doing so will create overlapping pedigrees across grains.