You can find most of our tools as code repositories in our GitHub page.
PMCTrack
An OS-oriented performance monitoring tool for Linux
PMCTrack is an open-source OS-oriented performance monitoring tool for GNU/Linux. This performance tool has been specifically designed to aid kernel developers in implementing scheduling algorithms in Linux that leverage data from performance monitoring counters (PMCs) to perform optimizations at run time. Unlike other monitoring tools, PMCTrack features and in-kernel API enabling the OS scheduler to access per-thread PMC data in an architecture-independent fashion.
Despite being an OS-oriented tool, PMCTrack still allows gathering PMC values from user space, enabling kernel developers to carry out the necessary offline analysis and debugging to assist them during the scheduler design process. In addition, the tool provides both the scheduler and the userspace PMCTrack components with other insightful metrics available in modern processors that are not directly exposed as PMCs, such as cache occupancy or energy consumption.
AccelPower CAPE
AccelPower CAPE is a low-cost device that allows measuring energy consumption of different components of HPC servers and desktop computers, specifically focused (but not limited to) PCIe accelerators.
AccelPower CAPE is actually divided into two main components:
- The CAPE. Designed as a CAPE (extension shield) for the BeagleBone Black, it supports up to 8 channels per level.
- The PCIe extensor. We provide a design for a low-profile PCIe extensor that exposes the 12V and 3.3V lines that supply power to PCIe devices.
At a glance, the main features of AccelPower CAPE are:
- It is affordable, and designed from scratch as a low-cost CAPE for the BeagleBone Black.
- It is stackable, supporting monitoring up to 16 channels.
- It is precise, relying on INA219 sensors.
- It is versatile, as it can be used for monitoring PCIe devices or other DC lines in computing nodes.
- It is non-intrusive, both from the hardware and software side, and can be deployed on existing computing nodes at a high scale.