Install
The AllScale runtime uses CMake as underlying build tool, being familiar with the basic usage CMake is recommended.
The AllScale Runtime requires C++14 features, if you use GCC you need GCC >= 4.9 (GCC 6.2.0 and Clang are used for development and testing). CMake 3.5 (or later) is required for the build and testing process of the Runtime.
The AllScale runtime is built on HPX. In order to build HPX as the necessary requirement, please refer to either:
HPX Wiki: https://github.com/STEllAR-GROUP/hpx/wiki/HPX-Resource-Guide
HPX Documentation: https://stellar-group.github.io/hpx/docs/html/hpx.html
The AllScale runtime requires a build of the AllScale API as well, please refer to it's wiki:
https://github.com/allscale/allscale_api/wiki
Fork the AllScale Runtime source on GitHub, or clone/download the sources.
git clone https://github.com/allscale/allscale_runtime.git`
The SDK comes with a setup utility that performs the initial setup of the CMake infrastructure.
cd name-of-your-repo
scripts/setup/run project-name
Afterwards, the following example source files have been generated
./code/app/include/project-name/app/answer.h # <- header
./code/app/src/answer.cpp # <- source
./code/app/src/project-name.cxx # <- executable source
./code/app/test/answer_test.cc # <- unit test source
along with a few CMake files for building and testing.
To test whether the environment is set up properly, build everything and run the tests
mkdir build
cd build
cmake ../code
make -j4
ctest -j4
Optionally change the compiler for cmake if necessary. Note: When changing compilers or compiler flags, we recommend clearing the build directory completely before rebuilding.
CXX="g++-6" CC="gcc-6" cmake ../code
The build directory structure resembles the source directory structure.
build/app/project-name # <- executable
build/app/ut_answer_test # <- unit test
Once HPX has been built, you need to checkout the current master of the AllScale runtime:
Then, create a build directory
cd allscale_runtime
mkdir build
cd build
Let CMAKE handle configuration of the build: