The AllScale API comprises the AllScale Core API and AllScale User API.
The AllScale User API comprises an extendable set of parallel primitives and data constructs to support the effective implementation of efficient HPC applications.
The AllScale Core API defines the interface between the AllScale User API and the underlying implemenations, including the AllScale Compiler and Runtime environment itself.
For more detailed information visit our wiki or project website.
This project requires C++14 features as offered by e.g. GCC >= 4.9 (GCC 5.2.1 is used for development and testing). Furthermore CMake 3.2 (or later) is required for the build and testing process. Simply execute the following commands to build the project and run all tests.
$ mkdir build
$ cd build
$ cmake ../code
$ make -j8
$ ctest -j8
Following options can be supplied to CMake
Option | Values |
---|---|
-DCMAKE_BUILD_TYPE | Release / Debug |
-DBUILD_SHARED_LIBS | ON / OFF |
-DBUILD_TESTS | ON / OFF |
-DBUILD_DOCS | ON / OFF |
-DBUILD_COVERAGE | ON / OFF |
-DUSE_ASSERT | ON / OFF |
-DALLSCALE_CHECK_BOUNDS | ON / OFF |
-DUSE_VALGRIND | ON / OFF |
-DENABLE_PROFILING | ON / OFF |
The files cmake/build_settings.cmake
and code/CMakeLists.txt
state their
default value.
$ mkdir build
$ cd build
$ cmake ../code
$ make -j8
$ ctest -j8
When working on Windows via SMB share, consider setting following Git setting.
$ git config core.filemode false
A script, together with a Git hook, is provided to automatically add a license
header to each source file upon commit. See scripts/license
.
$ cmake -G "Eclipse CDT4 - Unix Makefiles" /path/to/project
$ cmake -G "Visual Studio 15 2017 Win64" -DBUILD_SHARED_LIBS=OFF Z:\path\to\project
Add path for third-party libraries when needed.
Building the coverage us currently only supported on Linux, as Perl and Bash
are required. To build and view the coverage set the corresponding CMake flag
to ON
and run:
$ make
$ make coverage
$ xdg-open coverage/index.html
The dependency installer can setup these required tools for you. Its README
(scripts/dependencies/README.md
) holds the details.
It is preferred to use the operating system's package manager, if applicable.
Make sure your build folder is located outside the source folder. Eclipse is not capable of dealing with such a setup correctly.