QUO (as in "status quo") is a runtime library that aids in accommodating thread-level heterogeneity in dynamic, phased MPI+X applications comprising single- and multi-threaded libraries.
Distribution tarballs can be found here.
libquo requires an implementation of the message passing interface MPI and hwloc. hwloc is included with libquo, so the only external dependency is an MPI library. libquo has been extensively tested against both Open MPI and MPICH based implementations.
Please see documentation located in docs/builds.
See src/quo.h for more information.
See src/fortran/quof.f90 and src/quo.h for more information.
mpicc myquoapp.c -I[QUO-PREFIX]/include -L[QUO-PREFIX]/lib -o myquoapp -lquo
export LD_LIBRARY_PATH=[QUO-PREFIX]/lib:$LD_LIBRARY_PATH
mpicc myquoapp.c -o myquoapp -I[QUO-PREFIX]/include \
-L[QUO-PREFIX]/lib -lquo -Wl,-rpath=[QUO-PREFIX]/lib
Example 3 (with pkg-config)
mpicc myquoapp.c -o myquoapp `pkg-config --cflags --libs libquo`
QUO_TMPDIR - specifies the base directory where temporary QUO files will be written.
Samuel K. Gutiérrez, Kei Davis, Dorian C. Arnold, Randal S. Baker, Robert W. Robey, Patrick McCormick, Daniel Holladay, Jon A. Dahl, R. Joe Zerr, Florian Weik, Christoph Junghans. Accommodating Thread-Level Heterogeneity in Coupled Parallel Applications. In Proceedings of the IEEE International Parallel and Distributed Processing Symposium (IPDPS 2017), Orlando, FL, May 2017.
@inproceedings{gutierrez:ipdps17:quo,
title={{Accommodating Thread-Level Heterogeneity
in Coupled Parallel Applications}},
author={Samuel K. Guti\'{e}rrez and Kei Davis and Dorian C. Arnold
and Randal S. Baker and Robert W. Robey and Patrick McCormick
and Daniel Holladay and Jon A. Dahl and R. Joe Zerr and Florian Weik
and Christoph Junghans},
booktitle={2017 IEEE International Parallel \& Distributed Processing Symposium (IPDPS)},
year={2017},
address={Orlando, Florida},
}
- The dissertation detailing QUO.
- The slide deck presented at IPDPS 2017.
QUO - LA-CC-13-076