ScaleRunner, a modular C++ library with full CMake integration using hybrid parallelism (MPI+OpenMP) to execute first- and second-order random walks on multi-CPU systems. Our neighborhood sampling API provides functionality for both unweighted and weighted graphs.
You will need to install the following libraries, provide the path during the configure step, or you install them system wide:
Once installed you can build ScaleRunner
mkdir build;
cd build;
cmake -GNinja ../
ninjaFor installing ScaleRunner (system wide) use:
ninja installFor building the demo set the CMake option SR_DEMO=On e.g.:
mkdir build;
cd build;
cmake -GNinja -DSR_DEMO=On ../
ninjaExecute the demo using:
./scalerunner_demo
Please see the demo code for details on our demo implementation.
To build and run tests you will need:
Catch2 is pulled in as a submodule and
must not be installed. Instead, if you forgot to clone this repository
recursively, you can use git submodule init to use the defined git submodule.
GDSB must be installed.
Once all dependencies are installed you can build ScaleRunner with tests using:
mkdir build;
cd build;
cmake -GNinja -DSR_BUILD_TESTS=On ../
ninjaThen you may either use ctest for running all tests or manually calling the
test binary:
./scalerunner_testAdditionally, we provide MPI tests of ScaleRunner. To enable these you must set
SR_BUILD_MPI_TESTS=On e.g.:
mkdir build;
cd build;
cmake -GNinja -DSR_BUILD_TESTS=On -DSR_BUILD_MPI_TESTS=On ../
ninjaFor all the tests to compile successfully, as already done in this git project
one must checkout/switch to commit hash
fa43b77429ba76c462b1898d6cd2f2d7a9416b14 within the Catch2 submodule.
Execute the tests using an MPI runtime:
mpiexec -n 2 ./scalerunner_mpi_test| Name | Affiliation | |
|---|---|---|
| Florian Willich | [email protected] | HU Berlin |
The ScaleRunner project was lead by Henning Meyerhenke.