This project is under active development and is currently not stable.
A next-generation, machine-independent coordination layer to arbitrate access among multiple runtime components and map tasks efficiently to heterogeneous architectures.
mkdir build && cd build && cmake .. && make
Or, using ninja, perform the following:
mkdir build && cd build && cmake -G Ninja .. && ninja
Below is a table of build options for quo-vadis. Options can be specified in a
variety of ways using cmake
or ccmake
. For example,
cmake -DQV_GPU_SUPPORT=OFF -DQV_FORTRAN_SUPPORT=OFF ..
Option | Default | Comment |
---|---|---|
QV_FORTRAN_SUPPORT | ON | Toggle Fortran support |
QV_GPU_SUPPORT | ON | Toggle GPU support |
QV_MPI_SUPPORT | ON | Toggle MPI support |
QV_OMP_SUPPORT | ON | Toggle OpenMP support |
Below is a table of build options for quo-vadis developers. Options can be
specified in a variety of ways using cmake
or ccmake
. For example,
cmake -DQV_SANITIZE=address ..
Option | Default | Comment |
---|---|---|
QV_SANITIZE | none | Available: address;thread;undefined |
ctest
# Or target a specific suite of tests
ctest -L core
QV_PORT # The port number used for client/server communication.
QV_TMPDIR # Directory used for temporary files.
QV_VEXCEPT # When set provides verbose exception output.
For developers and debugging:
HWLOC_XMLFILE # Path to system topology XML file.
# Launch the daemon with specified port.
build/src/quo-vadisd --port 55996
# Run a test.
./build/tests/test-process-scopes
# Set the communication port via environment variable.
export QV_PORT=55996
# Launch the daemon.
build/src/quo-vadisd
# Run a test.
mpiexec -n 2 build/tests/test-mpi-scopes
- hwloc (https://github.com/open-mpi/hwloc)
- cereal (https://github.com/USCiLab/cereal)
- spdlog (https://github.com/gabime/spdlog)
- Required
- ZeroMQ (https://github.com/zeromq/libzmq)
- Optional
- An MPI-3 implementation (https://www.open-mpi.org, https://www.mpich.org)
# To generate source distributions, run the following:
cd build
make package_source
LA-CC-21-084