LIKWID stands for “Like I Knew What I’m Doing”.
Knowing a little more can never be wrong in HPC. LIKWID is a small set of Linux tools (developed by Jan Treibig) that simplify getting information about a multi-core CPU and the code running on it:
likwid-topology: Show the thread and cache group structure (“topology”) on Intel and AMD processors
likwid-features: Show and Toggle hardware prefetch control bits on Intel Core 2 processors
likwid-perfCtr: Measure hardware performance counters on Intel and AMD processors
likwid-pin: Pin threads and processes to cores from outside an application
These tools can help users a lot with “knowing what they are doing” when looking at code performance on their multi-core CPUs.
perfCtr is meant to be a rough equivalent of the
perfex tool, which was available on SGI Origins as part of the Speedshop performance toolset (ah, sweet memories). It counts a configurable set of hardware performance metrics across the whole runtime of a program, or between markers you can insert into your code (similar to the calipers in Speedshop). It is much simpler and less powerful than things like Oprofile, CodeAnalyst, or VTune, but sometimes an overview is more than sufficient to know what’s going on. Plus, it does not require any kernel patches and works with Intel and AMD processors alike.
LIKWID is under active development. Check out the Google code project, try the tools and provide feedback!