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
- Dokumentacija: https://hpc.fau.de/research/tools/likwid/
- Github: https://github.com/RRZE-HPC/likwid)
- Wiki: https://github.com/RRZE-HPC/likwid/wiki