英特尔® 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 содержит упомянутые компоненты, использованные для этой статьи.

  • 合作伙伴
  • 教授
  • 学生
  • Microsoft Windows* 8.x
  • 企业客户端
  • 游戏开发
  • 物联网
  • Windows*
  • C/C++
  • 高级
  • 入门级
  • 中级
  • 英特尔® System Studio
  • 英特尔® VTune™ 放大器
  • 英特尔® Cilk™ Plus
  • 英特尔® 高级矢量扩展指令集
  • 英特尔® SIMD 流指令扩展
  • 学术
  • 开发工具
  • 英特尔® 酷睿™ 处理器
  • 优化
  • 并行计算
  • 平台分析
  • 线程
  • 矢量化
  • 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

    订阅 英特尔® Cilk™ Plus