Software Archive
Read-only legacy content
17061 Discussions

cilkpub with icc 16.0.0

Bradley_K_
New Contributor I
358 Views

There's a minor compile-time problem with cilkpub when compiling with icc 16.0.0.  Here's the compile-time error:

$ icpc -DCILKPUB_DETRED_DBG_LEVEL=0  -Wall  -g -O3 -I../include_dev -I../include test_sort.cpp -o tmp/test_sort 
In file included from test_sort.cpp(54):
cilktest_timing.h(77): error: argument of type "void *" is incompatible with parameter of type "const char *"
      __notify_zc_intrinsic((void*) "CILKTEST_GETTICKS_START", 0);
                            ^

In file included from test_sort.cpp(54):
cilktest_timing.h(97): error: argument of type "void *" is incompatible with parameter of type "const char *"
      __notify_zc_intrinsic((void*) "CILKTEST_GETTICKS_END", 0);
                            ^

, which is fixed by this diff:

[bradley@30-87-232 cilkpub_v105]$ diff ~/cilkplub/cilkpub_v105/test/cilktest_timing.h.~1~ ~/cilkplub/cilkpub_v105/test/cilktest_timing.h
77c77
<     __notify_zc_intrinsic((void*) "CILKTEST_GETTICKS_START", 0);
---
>     __notify_zc_intrinsic((char*) "CILKTEST_GETTICKS_START", 0);
97c97
<     __notify_zc_intrinsic((void*) "CILKTEST_GETTICKS_END", 0);
---
>     __notify_zc_intrinsic((char*) "CILKTEST_GETTICKS_END", 0);

 

0 Kudos
3 Replies
Bradley_K_
New Contributor I
358 Views

There are some other compile-time errors in cilkpub under icc 16.  It might be better for you to test it rather than for me to list the problems here.

0 Kudos
Jim_S_Intel
Employee
358 Views

Bradley,

 Thanks for the bug reports.  I will take a look and see if I can update Cilkpub to work with 16.0.0, or come up with a temporary workaround for some of the compiler issues that I am seeing.

So far, the only fatal issue I haven't been able to diagnose is with the "test_dotmix_pi" example.  It seems to compile for me with -O1, but dies on higher optimization levels.   I can find other ways to work around the problem, but getting a good fix may take a bit more time.  
There are two other issues I've found so far --- the one with the intrinsic you described above, and warnings about C++11 extended friend declarations, which I think are easier to fix.

Also, I don't know if this is causing bugs, but the reducer_vector.h header comes with the default Cilk Plus reducers now (I think as of 15.0).   Thus, there isn't a need for the old Cilkpub version of the reducer_vector.h file any more (and it is no longer compatible with the latest reducer headers).
Cheers,

Jim

 

0 Kudos
Jim_S_Intel
Employee
358 Views

Version 1.06 of Cilkpub has been posted, which should ideally have either fixed or worked around problems with the 16.0 compiler.   If you are still encountering issues with Cilkpub using the new compiler, please let me know.

The main issue I found that required a workaround due to a compiler bug is the "test_dotmix_pi" example.    There seems to be a compiler bug related to exception handling in a cilk_for loop when more than a certain number of C++ objects are declared on the stack; a new bug report has been submitted.   In that test case, I worked around the issue by eliminating one of the unnecessary objects.     But compiling with the "-fno-exceptions" flag also seems avoid the issue.

Cheers,

Jim

 



 

0 Kudos
Reply