Software Archive
Read-only legacy content
17061 Discussions

Where do we migrate to from Cilk Plus?

roger567
New Contributor I
754 Views

Disappointed to see that Cilk Plus is deprecated in compiler 18.0.

Now we need to find suitable alternatives to migrate to.

Can anyone suggest suitable alternatives to the array notation (other than brute-force loops) , which I use extensively for conciseness and readability?

Also is there an alternative in TBB or OpenMP for /Qcilk-serialize, which I often set for the Debug build?
Something that can be set and left (like compiler options in a Debug build) and which doesn't require frequent code changes.

Thanks

0 Kudos
3 Replies
TimP
Honored Contributor III
754 Views
In any threading model, setting 1 thread is an important debug tool. Intel openmp offers the option of linking openmp stubs library. A properly set up openmp application using #if _OPENMP will build and run with openmp disabled. Some developers use mpi or some other timerin place of omp_wtime for this purpose. Openmp is oriented toward dedicating an entire node to a single job in which case it often offers better scaling than cilkplus.
0 Kudos
Jeffrey_H_Intel
Employee
754 Views

Please see https://software.intel.com/en-us/articles/migration-from-intelr-cilktm-plus-to-openmp-or-intelr-threading-building-blocks-intelr-tbb for how to migrate to OpenMP or TBB.  If your code is C not C++, you'll need to use OpenMP.  The Intel compiler supports -qopenmp-stubs if you need to run OpenMP-enabled code in serial.

Edit: Someone kindly pointed out that the above link is broken.  Please see https://software.intel.com/en-us/articles/migrate-your-application-to-use-openmp-or-intelr-tbb-instead-of-intelr-cilktm-plus instead.

0 Kudos
roger567
New Contributor I
754 Views

Thanks Jeff,

That sounds what I was looking for and my code is C++.
TBB is looking favourite to switch to.

Unfortunately your link just gives "Access denied. You are not authorized to access this page", despite being apparently logged in.

0 Kudos
Reply