blob: 41e8da9d07d748a50ce751098bb2b8ec061530b2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
This readme describes the gcc port of the Intel(R) Cilk(TM) Plus extensions to
C and C++ languages.
The "cilkplus" GCC branch implements the Intel Cilk Plus language
extensions to C and C++ frontends. For more information about Intel Cilk Plus,
please refer to "Intel(R) Cilk(TM) Plus Language Specification" at
http://www.cilkplus.org.
This release contains a subset of the full Intel Cilk Plus specification.
It includes the following features:
1) Three Cilk Plus keywords: _Cilk_spawn, _Cilk_sync and _Cilk_for and a
pragma to set grainsize.
2) Reducers provide an easy, lock-free way to deal with shared data.
3) Pragmas that communicate SIMD information to the vectorizer to help ensure
that the loops are vectorized correctly/easily.
4) Array notations (including builtin reduction functions) to directly express
high-level parallel vector array operations.
5) Elemental functions to create vector version of a function to help the
vectorizer vectorize loops effectively.
This implementation has been tested on the x86 (both 32 and 64 bit)
architectures. There is very little architecture-specific code and it should
not be too difficult for you to port to other architectures. However, be aware
that the implementation assumes sequential consistency when accessing shared
variables, so architectures using a different memory model may require you to
insert additional memory barriers.
These extensions provide a simple, well-structured and powerful model for
parallel programming. Intel hopes that you will find these extensions to be
useful and a significant enhancement to the GCC C and C++ compilers. We
welcome your support and comments to make this project successful.
If you have comments, suggestions or questions, please contact Balaji V. Iyer
at balaji.v.iyer-AT-intel.com.
---------------------------------------------------------------------------
Intel and Cilk are trademarks of Intel Corporation in the U.S. and/or other
countries.
|