Skip to content

A Fast MPI-based Random Walk Engine for Multi-CPU Systems

License

Notifications You must be signed in to change notification settings

hu-macsy/ScaleRunner

Repository files navigation

ScaleRunner

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.

Build

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 ../
ninja

For installing ScaleRunner (system wide) use:

ninja install

Demo

For building the demo set the CMake option SR_DEMO=On e.g.:

mkdir build;
cd build;
cmake -GNinja -DSR_DEMO=On ../
ninja

Execute the demo using:

./scalerunner_demo

Please see the demo code for details on our demo implementation.

Tests

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 ../
ninja

Then you may either use ctest for running all tests or manually calling the test binary:

./scalerunner_test

Additionally, 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 ../
ninja

For 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

Authors

Name E-Mail Affiliation
Florian Willich [email protected] HU Berlin

The ScaleRunner project was lead by Henning Meyerhenke.

About

A Fast MPI-based Random Walk Engine for Multi-CPU Systems

Topics

Resources

License

Stars

Watchers

Forks