A prototype implementation of the AllScale runtime system providing a foundation for the development of the data item manager, data migration, inter node load balancing and resilience.
This project is a development project, results will be integrated in the actual AllScale runtime system. Thus, no installation supported.
See scripts/dependencies/README.md
for more details. Otherwise do
$ scripts/dependencies/installer boost
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 |
-DUSE_VALGRIND | ON / OFF |
-DTHIRD_PARTY_DIR | <path> |
The files cmake/build_settings.cmake
and code/CMakeLists.txt
state their
default value.
$ mkdir build
$ cd build
$ ../scripts/dependencies/third_party_linker
$ cmake ../code
$ make -j8
$ ctest -j8
The setup script can be run again to add new modules, just provide the same project name.
$ scripts/setup/run allscale_runtime_prototype frontend backend utils
There is a utility script to add new parts to an existing module. The project name and module name must be provided followed by a list of parts to generate. Folders will be created along the way.
$ scripts/setup/add_part allscale_runtime_prototype frontend sema extensions/malloc_extension
This will add the files sema.h
, sema.cpp
and sema_test.cc
to the
frontend module. Furthermore new subfolders extensions
will be created
containing malloc_extension.h
, malloc_extension.cpp
and
malloc_extension_test.cc
in their respective subdirectories.
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 "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