SkePU 3 consists of four parts:
- A sequential interface and accompanying implementation for C++ skeleton programming.
- A source-to-source precompiler tool built on top of the Clang C-language compiler front-end, transforming code written for the sequential interface for parallel and heterogeneous execution.
- Minor patches to Clang to support said tool.
- A collection of parallel and/or heterogeneous back-ends targeting various architectures and systems.
This repository should be cloned with git clone --recursive $URL
in
order to also clone the submodules it links to. git submodule update --init
can be used to clone submodules to an existing repository.
To compile SkePU-tool, run the foolowing commands in the project root:
$ mkdir build && cd build
$ cmake -DCMAKE_BUILD_TYPE=Release ..
$ make
To install SkePU into , run the following command from <project_root>/build:
$ make DESTDIR=<path> install
If cmake does not generate Makefiles, use the option -G "Unix Makefiles"
.
For more information about build options, run ´cmake -LAH` in the build
directory. For information about how to configure cmake with compilers,
linkers, flags, and other such options, please refer to the cmake manuals at
the cmake homepage.
SkePU v3 is not compatible with version 2 nor with version 1. Check the user guide for more information.
SkePU 1 code is not compatible with SkePU 2 and vice-versa. SkePU 2 is in large part based on concepts from SkePU 1, and the data structures are the same, so it should be fairly straightworward to port a SkePU 1 project to SkePU 2. It may require some effort to fit the SkePU 2 precompiler into a large project with non-trivial build system, however.
As SkePU 3 is a header library, this directory contains headers and source files for the SkePU runtime. Herafter refered to as .
Contains the serial skeleton interface (headers with inline implementations), along with headers for SkePU containers.
Helpers.
Contains header files for the SkePU skeleton backends.
Contains implementations of the various SkePU skeleton backends and containers.
Containes the implementation of the StarPU MPI backend.
Contains SkePU 3 example programs. Note that the Makefile requires skepu-tool to have been built in /build to find skepu-tool.
Sources for the source-to-source Clang tool. This directory is part of the LLVM
directory tree, and a symlink named
<path_to_llvm>/llvm/tools/clang/tools/skepu
should link here.