2016-12-01 15:48:49 +01:00
|
|
|
Intel(R) Cilk(TM) Plus Runtime Library
|
2013-10-29 19:37:47 +01:00
|
|
|
|
|
|
|
Index:
|
2016-12-01 15:48:49 +01:00
|
|
|
1. BUILDING WITH AUTOMAKE
|
|
|
|
2. BUILDING WITH CMAKE
|
|
|
|
3. INSTALLING TO VXWORKS
|
|
|
|
4. USING
|
|
|
|
5. DOXYGEN DOCUMENTATION
|
|
|
|
6. QUESTIONS OR BUGS
|
|
|
|
7. CONTRIBUTIONS
|
2013-10-29 19:37:47 +01:00
|
|
|
|
|
|
|
#
|
2016-12-01 15:48:49 +01:00
|
|
|
# 1. BUILDING WITH AUTOMAKE:
|
2013-10-29 19:37:47 +01:00
|
|
|
#
|
|
|
|
|
|
|
|
To distribute applications that use the Intel Cilk Plus language
|
|
|
|
extensions to non-development systems, you need to build the Intel
|
|
|
|
Cilk Plus runtime library and distribute it with your application.
|
|
|
|
|
|
|
|
To build the libcilkrts.so runtime library component, you need the
|
|
|
|
autoconf and automake packages, which are available through your
|
|
|
|
favorite package manager. You also need a C/C++ compiler that
|
|
|
|
supports the Intel Cilk Plus language extensions, since the runtime
|
|
|
|
uses Intel Cilk Plus features internally. Use either the Intel(R)
|
|
|
|
C++ Compiler (icc command) v12.1 or later, or in GCC 4.9 or later
|
|
|
|
(gcc command).
|
|
|
|
|
|
|
|
Once you have the necessary prerequisites installed, you can use the
|
|
|
|
following commands to create the library:
|
|
|
|
|
|
|
|
% libtoolize
|
|
|
|
% aclocal
|
|
|
|
% automake --add-missing
|
|
|
|
% autoconf
|
|
|
|
% ./configure
|
|
|
|
% make
|
|
|
|
% make install
|
|
|
|
|
|
|
|
This will produce the libcilkrts.so shared object. To install the
|
|
|
|
library in a custom location, set the prefix while running the
|
|
|
|
configure script:
|
|
|
|
|
|
|
|
% ./configure --prefix=/your/path/to/lib
|
|
|
|
|
2016-12-01 15:48:49 +01:00
|
|
|
#
|
|
|
|
# 2. BUILDING WITH CMAKE:
|
|
|
|
#
|
|
|
|
|
|
|
|
To distribute applications that use the Intel Cilk Plus language
|
|
|
|
extensions to non-development systems, you need to build the Intel
|
|
|
|
Cilk Plus runtime library and distribute it with your application.
|
|
|
|
This instruction describes the build process using CMake*, which
|
|
|
|
supports Linux*, Windows*, and OS X*. It is fine to use this process
|
|
|
|
to build a Linux library, but it is highly recommended to use the
|
|
|
|
more mature build process described above when building on Linux.
|
|
|
|
|
|
|
|
You need the CMake tool and a C/C++ compiler that supports the Intel
|
|
|
|
Cilk Plus language extensions, and the requirements for each operating
|
|
|
|
systems are:
|
|
|
|
|
|
|
|
Common:
|
|
|
|
CMake 3.0.0 or later
|
|
|
|
Make tools such as make (Linux, OS X) or nmake (Windows)
|
|
|
|
Linux:
|
|
|
|
GCC* 4.9.2 or later, or Intel(R) C++ Compiler v12.1 or later
|
|
|
|
Windows:
|
|
|
|
Intel C++ Compiler v12.1 or later
|
|
|
|
Visual Studio* 2010 or later
|
|
|
|
OS X:
|
|
|
|
Cilk-enabled branch of Clang*/LLVM* (http://cilkplus.github.io),
|
|
|
|
or Intel C++ Compiler v12.1 or later
|
|
|
|
|
|
|
|
The common steps to build the libraries are 1) invoke cmake with
|
|
|
|
appropriate options, 2) invoke a make tool available on the system.
|
|
|
|
The following examples show build processes on OS X and Windows.
|
|
|
|
|
|
|
|
OS X:
|
|
|
|
% mkdir ./build && cd ./build
|
|
|
|
% cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ \
|
|
|
|
-DCMAKE_INSTALL_PREFIX=./install ..
|
|
|
|
% make && make install
|
|
|
|
|
|
|
|
Windows:
|
|
|
|
% mkdir .\build && cd .\build
|
|
|
|
% cmake -G "NMake Makefiles" -DCMAKE_C_COMPILER=icl \
|
|
|
|
-DCMAKE_CXX_COMPILER=icl -DCMAKE_INSTALL_PREFIX=.\install ..
|
|
|
|
% nmake && nmake install
|
|
|
|
|
|
|
|
#
|
|
|
|
# 3. INSTALLING TO VXWORKS OS
|
|
|
|
#
|
|
|
|
|
|
|
|
For Windows host, run VxWorks_Install.bat.
|
|
|
|
For Linux host, run VxWorks_Install.sh.
|
|
|
|
|
|
|
|
You may need to give environment variable WIND_BASE to indicate VxWorks
|
|
|
|
installation path.
|
|
|
|
|
|
|
|
Create a VSB project, and you will see a layer named "CILKPLUS_KERNEL".
|
|
|
|
Enable it and build the project.
|
|
|
|
|
|
|
|
Create a VIP project with ICC and add component INCLUDE_CILKPLUS, then you
|
|
|
|
will get support of Intel Cilk Plus features in VxWorks.
|
2016-05-04 14:29:14 +02:00
|
|
|
|
2013-10-29 19:37:47 +01:00
|
|
|
#
|
2016-12-01 15:48:49 +01:00
|
|
|
# 4. USING:
|
2013-10-29 19:37:47 +01:00
|
|
|
#
|
|
|
|
|
|
|
|
The Intel(R) C++ Compiler will automatically try to bring in the
|
|
|
|
Intel Cilk Plus runtime in any program that uses the relevant
|
2016-12-01 15:48:49 +01:00
|
|
|
features. GCC and Clang requires an explicit compiler option,
|
|
|
|
-fcilkplus, to enable Intel Cilk Plus language extensions.
|
|
|
|
For example,
|
|
|
|
|
|
|
|
% gcc -fcilkplus -o foo.exe foo.c
|
|
|
|
% clang -fcilkplus -o foo.exe foo.c
|
|
|
|
|
|
|
|
Older GCC versions (e.g., 4.8 cilkplus branch) requires explicit linking
|
|
|
|
of both the library and its dependencies (libpthread, libdl).
|
|
|
|
For example:
|
2013-10-29 19:37:47 +01:00
|
|
|
|
|
|
|
% gcc foo.c -lcilkrts -lpthread -ldl
|
|
|
|
|
|
|
|
#
|
2016-12-01 15:48:49 +01:00
|
|
|
# 5. DOXYGEN DOCUMENTATION:
|
2013-10-29 19:37:47 +01:00
|
|
|
#
|
|
|
|
|
|
|
|
The library source has Doxygen markup. Generate HTML documentation
|
|
|
|
based on the markup by changing directory into runtime and running:
|
|
|
|
|
|
|
|
% doxygen doxygen.cfg
|
|
|
|
|
|
|
|
#
|
2016-12-01 15:48:49 +01:00
|
|
|
# 6. QUESTIONS OR BUGS:
|
2013-10-29 19:37:47 +01:00
|
|
|
#
|
|
|
|
|
|
|
|
Issues with the Intel Cilk Plus runtime can be addressed in the Intel
|
|
|
|
Cilk Plus forums:
|
|
|
|
http://software.intel.com/en-us/forums/intel-cilk-plus/
|
|
|
|
|
|
|
|
#
|
2016-12-01 15:48:49 +01:00
|
|
|
# 7. CONTRIBUTIONS:
|
2013-10-29 19:37:47 +01:00
|
|
|
#
|
|
|
|
|
|
|
|
The Intel Cilk Plus runtime library is dual licensed. The upstream copy
|
|
|
|
of the library is maintained via the BSD-licensed version available at:
|
|
|
|
http://cilkplus.org/
|
|
|
|
|
|
|
|
Changes to the Intel Cilk Plus runtime are welcome and should be
|
|
|
|
contributed to the upstream version via http://cilkplus.org/.
|
|
|
|
|
2016-05-04 14:29:14 +02:00
|
|
|
Thanks to Tobias Burnus for showing us the magic to make gcc and g++
|
|
|
|
automatically include the Cilk Plus runtime.
|
|
|
|
|
2016-12-01 15:48:49 +01:00
|
|
|
Thanks to Eric Olson for sharing his patch for Raspberry Pi* with us.
|
|
|
|
|
|
|
|
Thanks to Rainer Orth for submitting patches for exception handling and
|
|
|
|
enabling Cilk Plus on the SPARC* architecture.
|
|
|
|
|
2013-10-29 19:37:47 +01:00
|
|
|
------------------------
|
|
|
|
Intel and Cilk are trademarks of Intel Corporation in the U.S. and/or
|
|
|
|
other countries.
|
2016-12-01 15:48:49 +01:00
|
|
|
|
|
|
|
*Other names and brands may be claimed as the property of others.
|