This library is mostly glue, providing a framework to more easily evaluate CoPPer and compare against other controllers. It wraps various other utilities and provides a common interface for initialization and teardown, configured through environment variables. See inc/copper-eval.h for environment variables and, when relevant, valid values.
Note that these utilities only work on UNIX-like systems. Testing was performed on Linux: Ubuntu 14.04 (Trusty Tahr) and Ubuntu 16.04 (Xenial Xerus).
For details, please see the following and reference as appropriate:
- Connor Imes, Huazhe Zhang, Kevin Zhao, Henry Hoffmann. "CoPPer: Soft Real-time Application Performance Using Hardware Power Capping". In: IEEE International Conference on Autonomic Computing (ICAC). 2019. DOI: https://doi.org/10.1109/ICAC.2019.00015
This project uses pkg-config (through CMake) to locate and link with the following libraries; see each project for their transitive dependencies:
- CoPPer - the primary controller being evaluated
- RAPLCap - power capping actuation mechanism
- heartbeats-simple-classic - instrumentation for performance and power behavior
- POET - an advanced DVFS controller
- Linux cpufreq bindings - DVFS actuation mechanism
This project uses CMake.
To build, run:
mkdir _build
cd _build
cmake ..
makeTo install, run with proper privileges:
make installOn Linux, installation typically places libraries in /usr/local/lib and header files in /usr/local/include.
Install must be run before uninstalling in order to have a manifest. To uninstall, run with proper privileges:
make uninstallGet linker information (including transitive dependencies) with pkg-config:
pkg-config --libs --static copper-evalOr in your Makefile, add to your linker flags with:
$(shell pkg-config --libs --static copper-eval)You may leave off the --static option if you built shared object libraries.
Depending on your install location, you may also need to augment your compiler flags with:
pkg-config --cflags copper-evalSee the benchmarks subdirectory for the benchmark patches used in CoPPer's evaluation.
Find this and related project sources at the powercap organization on GitHub.
This project originates at: https://github.com/powercap/copper-eval
Bug reports and pull requests are welcome.