LIKWID-PERFSCOPE(1)
๐ธ LIKWID-PERFSCOPE ๐
okay so bestie, welcome to likwid-perfscope(1) from the General Commands Manual โ she's a frontend for the timeline mode of likwid-perfctr(1) that literally generates pictures on-the-fly from the measurements. iconic behaviour, no cap. ๐
โจ NAME โจ
likwid-perfscope โ frontend for the timeline mode of likwid-perfctr(1) that makes pictures on-the-fly from the measurements ๐ฆ
๐ SYNOPSIS ๐
likwid-perfscope [-hvadp] [-c <cpu_list>] [-C <cpu_list>] [-t <frequency>] [-r <value>] [-g <eventset_and_plotconfig>] [--host <hostname>] <executable>
๐ DESCRIPTION ๐
likwid-perfscope is a command line application written in Lua that uses the timeline daemon mode of likwid-perfctr(1) to create on-the-fly pictures with the current measurements. it's giving "live dashboard but make it terminal" ๐โจ
she uses the feedGnuplot(1) script to send the current data to gnuplot. and here's the tea: since the plot windows are normally closed directly after the execution of the monitored applications, likwid-perfscope waits until you press Ctrl+c. so don't panic when it just sits there vibing, that's on purpose ๐ซถ
๐ OPTIONS ๐
-h,--helpโ prints a help message to standard output, then exits. short and sweet, we love her ๐-v,--versionโ prints version information to standard output, then exits. mwah, identity confirmed โจ-C<cpu_list>โ measures on given CPUs in<cpu_list>. seelikwid-pin(1)for further information about the syntax. ๐ง-C<cpu_list>โ measures the given group on given CPUs in<cpu_list>. seelikwid-pin(1)for further information about the syntax. the application is pinned to those hardware threads. (yes bestie,-Cshows up twice on this page in the original โ I'm not gaslighting you, both entries are real ๐)-a,--allโ list preconfigured event and plot configurations. window shopping, but for perf groups ๐๏ธ-d,--dumpโ print the measurements oflikwid-perfctr(1)to standard output. raw data to stdout, slay ๐ธ-t,--time<frequency>โ reads the current performance values every<frequency>. available suffixes are's','ms'or'us, e.g.500ms. default value is1s. โฑ๏ธ-g,--group<eventset_and_plotconfig>โ defines the events and counters that should be read. possible values can be gathered fromlikwid-perfctr(1). you can give multiple-goptions on the commandline. they will be measured in a round-robin fashion and one plot generated per option. moreover, the-goption accepts config options forfeedGnuplot(1), see section EVENTSETS. ๐ฅ-r,--range<value>โ plot only the last<value>values. often referred to as a sliding window. keep it tight, keep it recent ๐ซ-p,--plotdumpโ use the dumping feature offeedGnuplotto print out the plot configuration and its data at each timestep. can be used to create file-based plots afterwards. ๐--host<hostname>โ instead of performinglikwid-perfctron the local machine, execute it on a remote machine and plot data locally. usessshand you probably need to enter the password before starting. you can also give something likeuser@host. bestie going long distance ๐ฐ๏ธ
๐ฆ EVENTSETS ๐ฆ
okay so here's the glow-up: in contrast to the -g option for likwid-perfctr, the -g option for likwid-perfscope is extended to accept configuration options for feedGnuplot. ๐
there are some predefined plot configurations embedded into likwid-perfscope which can be listed with the -a command line option. they are filtered to show only configs that are available for your current system. filtered, periodt โ your machine only, no phantom configs โจ
if you need to measure and plot custom events you can set the plotting options as the last entry in your eventset. the plotting config options can be set as a ':' separated list. if you select a preconfigured group, you can overwrite single fields in the config, like changing the title or the matching. the following options are available:
title=<string>,TITLE=<string>
use the given title for the plot, use "" to enclose text with spaces and escape characters which could be interpreted by the shell. ':' are not allowed! โ ๏ธ
xtitle=<string>,XTITLE=<string>
use the given title for the x-axis of the plot, use "" to enclose text with spaces and escape characters which could be interpreted by the shell. ':' are not allowed! โ ๏ธ
ytitle=<string>,YTITLE=<string>
use the given title for the left y-axis of the plot, use "" to enclose text with spaces and escape characters which could be interpreted by the shell. ':' are not allowed! โ ๏ธ
<string>=<string>
all option string items that is not recognized as a keyword like TITLE are used as formulas for the output. you can set multiple of those items in one option string. each is calculated and integrated in the output plot. the first <string> is used as legend entry. the second <string> is the formula for the function. ๐งฎ
y2title=<string>,Y2TITLE=<string>,y2title=<id-string>,Y2TITLE=<id-string>
use the given title for the right y-axis of the plot. if no id is set, the last y2-axis is related to the last formula. if id is set, the formula with the id is used for the y2-axis. the id starts with index 1 for the first formula. use "" to enclose text with spaces and escape characters which could be interpreted by the shell with 'ยด. ':' are not allowed! โ ๏ธ
๐ EXAMPLE ๐
1. measure and print a preconfigured plotting configuration:
likwid-perfscope -g L3 -C 0-2 -t 1s ./a.out
this measures the L3 bandwidth with likwid-perfctr every second on hardware threads 0,1,2 and use the plotting configuration L3. the plot will have a title and the axes are labeled properly. ๐
2. measure and print a preconfigured plotting configuration:
likwid-perfscope -g L2:TITLE="My Title" -C 0 -t 1s ./a.out
this measures the L2 bandwidth with likwid-perfctr every second on hardware thread 0 and use the plotting configuration L2. the title of the output plot is changed to the custom title "My Title". custom AND cute ๐
3. custom event set with plotting configuration:
likwid-perfscope -g INSTR_RETIRED_ANY:FIXC0,CPU_CLK_UNHALTED_CORE:FIXC1,
CPI=FIXC0/FIXC1:YTITLE="Cycles per Instruction" -C 0 --time 500ms
./a.out
executes likwid-perfctr on the first hardware thread. the values for the events INSTR_RETIRED_ANY and CPU_CLK_UNHALTED_CORE are read every 500ms. the raw values are transformed using the formula FIXC0/FIXC1 and forwarded to gnuplot using the feedGnuplot(1) script with the curve name 'CPI' in the legend. the y-axis is labeled with the string "Cycles per Instruction".
not me pointing out that the original page has a strayIPsitting right there before the4.๐ซ I'm leaving it acknowledged, not reworded, because the facts stay the facts. ๐
4. custom event set with plotting configuration:
likwid-perfscope -g L3,CPI=FIXC0/FIXC1:Y2TITLE="2-Cycles per
Instruction" -C 0 --time 500ms ./a.out
this measures the L3 bandwidth for CPU 0 every 500 ms. additionally, a second curve is plotted with the function FIXC0/FIXC1 with the legend entry CPI. the right y-axis is labeled with 'Cycles per Instruction' and is associated to the second formula. the first formula is hidden in the L3 plot group. since the CPI formula is the last in the list, the curve id is not needed in the Y2TITLE as this is the default behavior. โ
๐ซถ AUTHOR ๐ซถ
written by Thomas Gruber <thomas.roehl@googlemail.com>. king behaviour, honestly ๐
๐ BUGS ๐
report bugs on <https://github.com/RRZE-HPC/likwid/issues>. tell them everything bestie, they wanna know ๐
๐ SEE ALSO ๐
likwid-perfctr(1), feedGnuplot(1)
and that's the whole page, diva โจ this one's from likwid-5, dated 23.12.2025 โ go measure something and make it pretty ๐๐
๐ฆ where this page comes from
- nixos 26.05: likwid 5.5.1
- ubuntu stonking: likwid 5.5.1+dfsg-2 ยท GPL-3.0-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms