Intel® Cilk™ Plus

status of cilkplus in gcc?

What's going on with cilkplus in gcc? Is it still being actively used and developed? 

This link says it's been "supported" for some time: https://www.cilkplus.org/which-license#gcc-development.

​Yet it doesn't seem to work with some of the simplest code like below which gives an ICE with gcc.

http://melpon.org/wandbox/permlink/PxcBvdYh1nMvUlsZ

Простая методика оптимизации с использованием Intel System Studio (VTune, компилятор C++, Cilk Plus)

Введение:

В этой статье мы описываем простую методику оптимизации с использованием Intel® Cilk™ Plus и компилятора Intel® C++ на основе результатов анализа производительности, проведенного с помощью Intel® VTune Amplifier. Intel® System Studio 2015 содержит упомянутые компоненты, использованные для этой статьи.

  • Partners
  • Professors
  • Students
  • Microsoft Windows* 8.x
  • Business Client
  • Game Development
  • Internet of Things
  • Windows*
  • C/C++
  • Advanced
  • Beginner
  • Intermediate
  • Intel® System Studio
  • Intel® VTune™ Amplifier
  • Intel® Cilk™ Plus
  • Intel® Advanced Vector Extensions (Intel® AVX)
  • Intel® Streaming SIMD Extensions
  • Academic
  • Development Tools
  • Intel® Core™ Processor
  • Optimization
  • Parallel Computing
  • Platform Analysis
  • Threading
  • Vectorization
  • Q about fibonacci example

    //From the examples website: https://www.cilkplus.org/download#block-views-code-samples-block-1
    int fib(int n)
    {
        if (n < 2)
            return n;
        int x = cilk_spawn fib(n-1);
        int y = fib(n-2);
        cilk_sync;
        return x + y;
    }

    This leads to much recalculation of old fib values. A better implementation would store the value, and return it if it has already been computed. However, that also requires critical sections or locks to serialize access to "has_already_been_computed" variable. Does cilk have a mechanism for that?

    why does cilk_spawn give me such bad performance?

    I wrote a simple benchmark that fills two vectors with a sequence of randomly computed numbers. I'm comparing tbb, cilk, and std::async. The results I get are (milliseconds)

    time cilk: 3725
    time async: 2367
    time tbb: 2397
    time serial: 4610
    

    I compiled with (icc 2016)

    icc -std=c++14 -xHost -O3 -tbb -pthread benchmark.cpp

    And I'm running on

    Cilkview Cilkscreen Centos 7

    Issues with Cilktools.  I have compiled and installed gcc 4.9 and gcc 5.2 on Centos 7 and installed them.  The fib.c test code runs fine for both gcc's.  

     

    However when I attempt to use the cilktools provided on: 

    https://www.cilkplus.org/download

    I get the following error:

    ./cilkview: error while loading shared libraries: libstdc++.so.6: wrong ELF class: ELFCLASS64

    Subscribe to Intel® Cilk™ Plus