Skip to content

powercap/copper-eval

Repository files navigation

CoPPer - Evaluation Utilities

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

Prerequisities

This project uses pkg-config (through CMake) to locate and link with the following libraries; see each project for their transitive dependencies:

Building

This project uses CMake.

To build, run:

mkdir _build
cd _build
cmake ..
make

Installing

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.

Uninstalling

Install must be run before uninstalling in order to have a manifest. To uninstall, run with proper privileges:

make uninstall

Linking

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

Benchmarks

See the benchmarks subdirectory for the benchmark patches used in CoPPer's evaluation.

Project Source

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.