Skip to content

Navodila za uporabo programske opreme LIKWID Tools

LIKWID Tools ("Like I Knew What I'm Doing") je orodje z ukazno vrstico, ki se uporablja za merjenje zmogljivosti. Orodje je preprosto za uporabo in podpira različne arhitekture procesorjev, kot so x86 (Intel/AMD), ARM in POWER[8-9], kot tudi NVIDIA GPUs. Preberite več.

Licenca

LIKWID je brezplačno, odprtokodno orodje, GPL General Public License v3.0

Namestitev

Na HPC Vega je orodje na voljo v obliki modula.

module load likwid/<verzija>

Ukazi LIKWID

Za dodatne informacije o ukazih LIKWID preverite razdelek za pomoč.

likwid-<ukaz> -h

Uporaba LIKWID Tools

likwid-topology

Orodje za prikaz niti procesorjev in topologije predpomnilnika.

likwid-topology

Na primer vstopno vozlišče

--------------------------------------------------------------------------------
CPU name:       AMD EPYC 7452 32-Core Processor                
CPU type:       AMD K17 (Zen2) architecture
CPU stepping:   0
********************************************************************************
Hardware Thread Topology
********************************************************************************
Sockets:                2
Cores per socket:       32
Threads per core:       1
--------------------------------------------------------------------------------

Za prikaz dodatnih informacij o predpomnilniku dodajte stikalo -c.

Preberite več o likwid-topology.

likwid-pin

Orodje LIKWID je namenjeno pripenjanju niti ali skupine niti (npr. node N, socket S#, cache group C#, memory domain M# or cpuset) znotraj sistemske topologije brez dodatnih sprememb kode ali aplikacije. Za aplikacije OpenMP nastavimo okoljsko spremenljivko OMP_NUM_THREADS (npr. SBATCH), tako bo likwid-pin nastavil niti, kot jih določite.

Razpoložljive domene niti, lahko preverite z stikalom -p (npr. S0 in S1 sta dva vtiča).

likwid-pin -p

Primer s pripenjanjem niti, v kolikor uporabnik ne navede števila niti, bo likwid-pin uporabil -c N:0-maximumNuberOfProcessors.

likwid-pin -c 0,3-5,6 ./application
likwid-pin -c S0:0-1,64-65 ./application

Preberite več o likwid-pin.

likwid-mpirun

To orodje omogoča pripenjanje aplikacij MPI in MPI/Hybrid.

Primer MPI brez pripenjanja:

likwid-mpirun -np 4 ./application

Za OpenMP je treba uporabiti dodatno stikalo -omp.

likwid-mpirun -np 4 -omp 2 ./aplikacija

Za pripenjanje dodajte stikalo -nperdomain ali ˙-pin˙ (npr. node, socket, cache ali NUMA domains):

likwid-mpirun -np 16 -nperdomain M:0 ./application
likwid-mpirun -np 16 -pin S0:0-1,64-65 ./application
likwid-mpirun -np 16 -pin S0:0-1,64-65_S1:32-33,98 ./mpibench 

Način za razhroščevanje:

likwid-mpirun -debug -np 16 ./application

Preberite več o likwid-mpirun.

likwid-perfscope

Orodje za merjenje zmogljivosti, treba je naložiti dodaten modul npr. module load gnuplot.

Seznam vnaprej določenih ploskev (eg. FLOPS_DP/SP, MEM, L2, L3, NUMA, TEMP ...):

likwid-perfscope -a

Primer

likwid-perfscope -C S0:0 -g L2_BAND -t 300ms ./output

Preberite več o likwid-perfctr.

likwid-perfctr

Orodje za merjenje zmogljivosti strojne opreme (npr. FLOPS_DP/SP, MEM, L2, L3, NUMA, CACHE ...). Pri prevajanju vaše aplikacije mora biti vključeno nitenje.

Seznam pripravljenih skupin:

likwid-perfctr -a

Primer

likwid-perfctr  -C S0:0-3  -g BRANCH  -t 300ms ./output

Preberite več o likwid-perfctr.

likwid-bench

Ogrodje za preizkusne aplikacije.

Seznam razpoložljivih preizkusnih aplikacij.

likwid-bench -a

Seznam domen niti:

likwid-bench -p

Izberite vrsto preizkusne aplikacije (-p), navedite domeno ter vnos za preizkusno aplikacijo (npr. ::).

likwid-bench  -t copy -w S0:100kB:1

Preberite več o likwid-bench.

Dokumentacija