111
|
1 Intel(R) Cilk(TM) Plus Runtime Library
|
|
2
|
|
3 Index:
|
|
4 1. BUILDING WITH AUTOMAKE
|
|
5 2. BUILDING WITH CMAKE
|
|
6 3. INSTALLING TO VXWORKS
|
|
7 4. USING
|
|
8 5. DOXYGEN DOCUMENTATION
|
|
9 6. QUESTIONS OR BUGS
|
|
10 7. CONTRIBUTIONS
|
|
11
|
|
12 #
|
|
13 # 1. BUILDING WITH AUTOMAKE:
|
|
14 #
|
|
15
|
|
16 To distribute applications that use the Intel Cilk Plus language
|
|
17 extensions to non-development systems, you need to build the Intel
|
|
18 Cilk Plus runtime library and distribute it with your application.
|
|
19
|
|
20 To build the libcilkrts.so runtime library component, you need the
|
|
21 autoconf and automake packages, which are available through your
|
|
22 favorite package manager. You also need a C/C++ compiler that
|
|
23 supports the Intel Cilk Plus language extensions, since the runtime
|
|
24 uses Intel Cilk Plus features internally. Use either the Intel(R)
|
|
25 C++ Compiler (icc command) v12.1 or later, or in GCC 4.9 or later
|
|
26 (gcc command).
|
|
27
|
|
28 Once you have the necessary prerequisites installed, you can use the
|
|
29 following commands to create the library:
|
|
30
|
|
31 % libtoolize
|
|
32 % aclocal
|
|
33 % automake --add-missing
|
|
34 % autoconf
|
|
35 % ./configure
|
|
36 % make
|
|
37 % make install
|
|
38
|
|
39 This will produce the libcilkrts.so shared object. To install the
|
|
40 library in a custom location, set the prefix while running the
|
|
41 configure script:
|
|
42
|
|
43 % ./configure --prefix=/your/path/to/lib
|
|
44
|
|
45 #
|
|
46 # 2. BUILDING WITH CMAKE:
|
|
47 #
|
|
48
|
|
49 To distribute applications that use the Intel Cilk Plus language
|
|
50 extensions to non-development systems, you need to build the Intel
|
|
51 Cilk Plus runtime library and distribute it with your application.
|
|
52 This instruction describes the build process using CMake*, which
|
|
53 supports Linux*, Windows*, and OS X*. It is fine to use this process
|
|
54 to build a Linux library, but it is highly recommended to use the
|
|
55 more mature build process described above when building on Linux.
|
|
56
|
|
57 You need the CMake tool and a C/C++ compiler that supports the Intel
|
|
58 Cilk Plus language extensions, and the requirements for each operating
|
|
59 systems are:
|
|
60
|
|
61 Common:
|
|
62 CMake 3.0.0 or later
|
|
63 Make tools such as make (Linux, OS X) or nmake (Windows)
|
|
64 Linux:
|
|
65 GCC* 4.9.2 or later, or Intel(R) C++ Compiler v12.1 or later
|
|
66 Windows:
|
|
67 Intel C++ Compiler v12.1 or later
|
|
68 Visual Studio* 2010 or later
|
|
69 OS X:
|
|
70 Cilk-enabled branch of Clang*/LLVM* (http://cilkplus.github.io),
|
|
71 or Intel C++ Compiler v12.1 or later
|
|
72
|
|
73 The common steps to build the libraries are 1) invoke cmake with
|
|
74 appropriate options, 2) invoke a make tool available on the system.
|
|
75 The following examples show build processes on OS X and Windows.
|
|
76
|
|
77 OS X:
|
|
78 % mkdir ./build && cd ./build
|
|
79 % cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ \
|
|
80 -DCMAKE_INSTALL_PREFIX=./install ..
|
|
81 % make && make install
|
|
82
|
|
83 Windows:
|
|
84 % mkdir .\build && cd .\build
|
|
85 % cmake -G "NMake Makefiles" -DCMAKE_C_COMPILER=icl \
|
|
86 -DCMAKE_CXX_COMPILER=icl -DCMAKE_INSTALL_PREFIX=.\install ..
|
|
87 % nmake && nmake install
|
|
88
|
|
89 #
|
|
90 # 3. INSTALLING TO VXWORKS OS
|
|
91 #
|
|
92
|
|
93 For Windows host, run VxWorks_Install.bat.
|
|
94 For Linux host, run VxWorks_Install.sh.
|
|
95
|
|
96 You may need to give environment variable WIND_BASE to indicate VxWorks
|
|
97 installation path.
|
|
98
|
|
99 Create a VSB project, and you will see a layer named "CILKPLUS_KERNEL".
|
|
100 Enable it and build the project.
|
|
101
|
|
102 Create a VIP project with ICC and add component INCLUDE_CILKPLUS, then you
|
|
103 will get support of Intel Cilk Plus features in VxWorks.
|
|
104
|
|
105 #
|
|
106 # 4. USING:
|
|
107 #
|
|
108
|
|
109 The Intel(R) C++ Compiler will automatically try to bring in the
|
|
110 Intel Cilk Plus runtime in any program that uses the relevant
|
|
111 features. GCC and Clang requires an explicit compiler option,
|
|
112 -fcilkplus, to enable Intel Cilk Plus language extensions.
|
|
113 For example,
|
|
114
|
|
115 % gcc -fcilkplus -o foo.exe foo.c
|
|
116 % clang -fcilkplus -o foo.exe foo.c
|
|
117
|
|
118 Older GCC versions (e.g., 4.8 cilkplus branch) requires explicit linking
|
|
119 of both the library and its dependencies (libpthread, libdl).
|
|
120 For example:
|
|
121
|
|
122 % gcc foo.c -lcilkrts -lpthread -ldl
|
|
123
|
|
124 #
|
|
125 # 5. DOXYGEN DOCUMENTATION:
|
|
126 #
|
|
127
|
|
128 The library source has Doxygen markup. Generate HTML documentation
|
|
129 based on the markup by changing directory into runtime and running:
|
|
130
|
|
131 % doxygen doxygen.cfg
|
|
132
|
|
133 #
|
|
134 # 6. QUESTIONS OR BUGS:
|
|
135 #
|
|
136
|
|
137 Issues with the Intel Cilk Plus runtime can be addressed in the Intel
|
|
138 Cilk Plus forums:
|
|
139 http://software.intel.com/en-us/forums/intel-cilk-plus/
|
|
140
|
|
141 #
|
|
142 # 7. CONTRIBUTIONS:
|
|
143 #
|
|
144
|
|
145 The Intel Cilk Plus runtime library is dual licensed. The upstream copy
|
|
146 of the library is maintained via the BSD-licensed version available at:
|
|
147 http://cilkplus.org/
|
|
148
|
|
149 Changes to the Intel Cilk Plus runtime are welcome and should be
|
|
150 contributed to the upstream version via http://cilkplus.org/.
|
|
151
|
|
152 Thanks to Tobias Burnus for showing us the magic to make gcc and g++
|
|
153 automatically include the Cilk Plus runtime.
|
|
154
|
|
155 Thanks to Eric Olson for sharing his patch for Raspberry Pi* with us.
|
|
156
|
|
157 Thanks to Rainer Orth for submitting patches for exception handling and
|
|
158 enabling Cilk Plus on the SPARC* architecture.
|
|
159
|
|
160 ------------------------
|
|
161 Intel and Cilk are trademarks of Intel Corporation in the U.S. and/or
|
|
162 other countries.
|
|
163
|
|
164 *Other names and brands may be claimed as the property of others.
|