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 ..
make
To install, run with proper privileges:
make install
On 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 uninstall
Get linker information (including transitive dependencies) with pkg-config
:
pkg-config --libs --static copper-eval
Or 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-eval
See 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.