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 Thomas Röhl and Jan Eitzinger) 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 processorslikwid-features
: Show and Toggle hardware prefetch control bits on Intel Core 2 processorslikwid-perfctr
: Measure hardware performance counters on Intel and AMD processorslikwid-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. likwid-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 project, try the tools and provide feedback!