Intel® Cilk™ Plus

Приводим данные и код в порядок: данные и разметка, часть 2

In this pair of articles on performance and memory covers basic concepts to provide guidance to developers seeking to improve software performance. This paper expands on concepts discussed in Part 1, to consider parallelism, both vectorization (single instruction multiple data SIMD) as well as shared memory parallelism (threading), and distributed memory computing.
  • Students
  • Server
  • Windows*
  • Modern Code
  • C/C++
  • Fortran
  • Intermediate
  • Intel® Advisor
  • Intel® Cilk™ Plus
  • Intel® Threading Building Blocks
  • Intel® Advanced Vector Extensions (Intel® AVX)
  • OpenMP*
  • Intel® Many Integrated Core Architecture
  • Optimization
  • Parallel Computing
  • Threading
  • Vectorization
  • Compiling the runtime on Cygwin

    Hi,

    I tried compiling the runtime on latest Cygwin w/ GCC 5.3, but ran into some errors which are solved with the patch below.

    A few of the code samples do work well under Cygwin (e.g. Fibonacci), but some don't (cilk-reducers-demo never finishes). Unfortunately I'm at the limit of my debugging skills and time to figure out why.
     

    Linking with cilk on OSX

    On MAC OSX I link with

       -lcilkrts

     At runtime it seems to expect

        libcilkrts.5.dylib

    but I had expected it would require

       libcilkrts.dylib

    However, there is versioned and a nonversioned variants:

    compilers_and_libraries_2016.1.111/mac//bin/intel64/libcilkrts.5.dylib

    compilers_and_libraries_2016.1.111/mac//compiler/lib/libcilkrts.5.dylib

    compilers_and_libraries_2016.1.111/mac//compiler/lib/libcilkrts.dylib

    Have I misunderstood something?

     

     

    Putting Your Data and Code in Order: Data and layout - Part 2

    Apply the concepts of parallelism and distributed memory computing to your code to improve software performance. This paper expands on concepts discussed in Part 1, to consider parallelism, both vectorization (single instruction multiple data SIMD) as well as shared memory parallelism (threading), and distributed memory computing.
  • Students
  • Modern Code
  • Server
  • Windows*
  • C/C++
  • Fortran
  • Intermediate
  • Intel® Advisor
  • Intel® Cilk™ Plus
  • Intel® Threading Building Blocks
  • Intel® Advanced Vector Extensions (Intel® AVX)
  • OpenMP*
  • Intel® Many Integrated Core Architecture
  • Optimization
  • Parallel Computing
  • Threading
  • Vectorization
  • A strange behavior in array operations

    Hello,

    When I played with array operations in Cilk Plus, I found the same assignment might return different results with gcc and g++.  For example, in array[0:5] = array[10:5], we expect that five elements 10 to 14 are copied to elements 0 to 4 in order.  There is no overlap in the example.  It works when it is compiled with g++.  However, it goes awry when it is compiled with gcc.  Actually, another five elements 10 to 6 are copied.

    Is it an error or a bug?  Thanks.

    Configuration:

    why spawn helper cannot be inlined

    I am reading the ABI doc and also made fib working using cilk_fake.h using runtime only. One question I have is the requirement for a helper function for spawn since a cilkplus spawn is to call a function, basically, why we cannot inline the helper function. Is this for dealing with stack/frame pointer management or stack memory management (e.g. we cannot surround a spawn with a for/while loop if each spawn needs its own dedicated stack space)? any insightful comments on this for helping my curiosity ;-)

    Thanks

    yanyh

    pretty weird behaviour on using cilk_for and built-in function of arrays

    I was trying to use built-in functions for arrays in cilkplus. Consider the following code as example:

    #include<stdio.h>
    #include<stdlib.h>
    #include<cilk/cilk.h>
    
    
    int main()
    {
    int a[10] = {10,3,14,7,9,5,65,12,6,52};
    
    int t;
    
    t = __sec_reduce_max(a[0:3]);
    
    
    cilk_for(int i=0;i<11;i++)
    {
    printf("something\n");
    }
    
    return 0;
    }

     

    On compiling the above program i got "internal compiler error: Segmentation fault"

    Subscribe to Intel® Cilk™ Plus