Intel® Cilk™ Plus

How is the user worker thread returned when returning from cilk runtime?

Hi

In the Binary Interface Specification, it says when the last user thread calls __cilkrts_leave_frame() with a __cilkrts_stack_frame which has CILK_FRAME_LAST set in the flags field, the runtime will suspend all of the worker threads it created."

I have a question about when the stack frame set as CILK_FRAME_LAST gets stolen by the system worker.

gcc 5.1 -mfpmath=387 Floating point exception

It appears that the compiler option -mfpmath=387 immediately causes floating point exceptions on Intel architecture processors in cilk_spawn routines compiled with gcc-5.1 cilk.  This seems to be a regression as gcc-4.9 with the cilk patches works fine.  Note that -mfpmath=sse works on 64-bit machines, however, this option is not available for 32-bit Intel machines.  As far as I can tell, most floating point code is affected.  Does anyone know of patches or workarounds for this, especially as this appears to be a show-stopper on 32-bit Intel.

Cilkplus port to Raspberry Pi 2B

I compiled the new release of gcc-5.1 with the Cilkplus parallel processing extensions and runtime library for ARMv7 architecture on the Raspberry Pi 2B single board computer.  Two changes were needed.

The first change corrects a typo in generic/cilk-abi-vla.c by changing the second to the last line of the file from

vla_internal_heap_free(t, full_size);

to

vla_internal_heap_free(p, full_size);

the second change was to generic/os-fence.c and ARM specific. Comment out the line

COMMON_SYSDEP void __cilkrts_fence(void); ///< MFENCE instruction

changes in CEAN implications re vectorization in next release?

I note that premier.intel.com is open for submissions for the first time in months, so I submitted a ticket.  It still looks like setting up premier for beta 16 has not been completed, as the form requires choosing compiler version 15.0 or earlier from the pull-down.

I'm curious whether Cilk(tm) Plus is under deprecation, in view of the comments at IDF last year that Intel would not sponsor publications on it, and the lack of follow-through to make gcc -fcilkplus viable.

As to changes in behavior in the beta test:

Using Cilk reducer inside Cilker shared function

Hi I am trying to offload some parallel work to MIC using _Cilk_Shared and _Cilk_offload. 

I declare a Cilk shared function:

_Cilk_shared void somefun(int count)

 

In main I call this function using 

_Cilk_offload somefun(12) ;

inside this function everything is expected to be offloaded to MIC;

I want to declare a Cilk reducer inside somefun, so I can then use cilk_for and append to a cilk reducer list, 

but I get error:

Unable to Compile GCC

I was following the instructions from https://www.cilkplus.org/build-gcc-cilkplus, and I consistently got an error saying that "tm.h": no file or directory was found. I'm not sure what tm.h is, or what package it is included with.

I installed the following packages: GNAT (probably doesn't help), GMP, MPFR, MPC, ISL, Flex, Bison.

My configuration options were `./configure --prefix=/usr/lib/gcc/cilkplus --enable-languages="c,c++" --disable-multilib`

On Ubuntu 14.10. 

Is cilk slower on Linux than on Windows?

Currently, I am getting decent results with Intel 15 Cilk on Windows. However, the results is not nearly as good on Linux. My feeling is the overhead of a spawn is bigger on Linux. Any suggestions/comments?

I had expected the opposite results i.e. better results on Linux. 

I am using fairly new hardware and have tried to disable hyperthreading. Disabling hypertreading improves the result a bit but not much.

 

Intel® Cilk™ Plus abonnieren