Processor Counter Monitor (PCM) is an application programming interface (API) and a set of tools based on the API to monitor performance and energy metrics of Intel® Core™, Xeon®, Atom™ and Xeon Phi™ processors. PCM works on Linux, Windows, Mac OS X, FreeBSD, DragonFlyBSD and ChromeOS operating systems.
Github repository statistics:
PCM provides a number of command-line utilities for real-time monitoring:
Graphical front ends:
There are also utilities for reading/writing model specific registers (pcm-msr), PCI configuration registers (pcm-pcicfg) and memory mapped registers (pcm-mmio) supported on Linux, Windows, Mac OS X and FreeBSD.
And finally a daemon that stores core, memory and QPI counters in shared memory that can be be accessed by non-root users.
Clone PCM repository with submodules:
git clone --recursive https://github.com/opcm/pcm.git
or clone the repository first, and then update submodules with:
git submodule update --init --recursive
Install cmake then:
mkdir build cd build cmake .. cmake --build .
You will get all the utilities (pcm, pcm-memory, etc) in
'--parallel' can be used for faster building:
cmake --build . --parallel
Debug is default on Windows. Specify config to build Release:
cmake --build . --config Release
FreeBSD/DragonFlyBSD-specific details can be found in FREEBSD_HOWTO.txt
sudo zypper install pcm
sudo dnf install pcm
sudo yum install pcm
PCM's frequently asked questions (FAQ) are located here.
PCM API documentation is embedded in the source code and can be generated into html format from source using Doxygen (www.doxygen.org).
The list of PCM environment variables is located here
The list of custom compilation options is located here
Packaging with CPack is supported on Debian and Redhat/SUSE system families. To create DEB of RPM package need to call cpack after building in build folder:
cd build cpack
This creates package: