Nastavljamo pričati o alatima za procjenu performansi CPU-a na Linux strojevima. Danas u materijalu: temci, uarch-bench, likwid, perf-tools i llvm-mca.
Više benchmarka:
Fotografija – – Unsplash
To je alat za procjenu vremena izvršavanja dviju aplikacija. U suštini, omogućava usporedbu vremena izvršavanja dvaju programa. Autor ovog alata je student iz Njemačke, Johannes Bechberger, koji ga je razvio u okviru svog diplomskog rada 2016. godine. Danas je alat pod licencom GNU General Public License.
Johannes je želio stvoriti alat koji bi omogućio mjerenje performansi računalnog sustava u kontroliranom okruženju. Stoga je jedna od glavnih značajki temci mogućnost prilagodbe testnog okruženja. Na primjer, : promijeniti postavke upravitelja frekvencije CPU-a, onemogućiti i L1 i L2 cache, isključiti turbo mod na Intelovim procesorima i druge opcije. Za benchmarking temci koristi alate , i .
Evo kako izgleda rad alata u prvom slučaju:
# compare the run times of two programs, running them each 20 times
> temci short exec "sleep 0.1" "sleep 0.2" --runs 20
Benchmark 20 times [####################################] 100%
Report for single runs
sleep 0.1 ( 20 single benchmarks)
avg_mem_usage mean = 0.000, deviation = 0.0
avg_res_set mean = 0.000, deviation = 0.0
etime mean = 100.00000m, deviation = 0.00000%
max_res_set mean = 2.1800k, deviation = 3.86455%
stime mean = 0.000, deviation = 0.0
utime mean = 0.000, deviation = 0.0
sleep 0.2 ( 20 single benchmarks)
avg_mem_usage mean = 0.000, deviation = 0.0
avg_res_set mean = 0.000, deviation = 0.0
etime mean = 200.00000m, deviation = 0.00000%
max_res_set mean = 2.1968k, deviation = 3.82530%
stime mean = 0.000, deviation = 0.0
utime mean = 0.000, deviation = 0.0
Na temelju rezultata benchmarka, sustav generira s shemama, tablicama i grafikonima, što temci razlikuje od sličnih rješenja.
Među nedostacima temci ističe se njegova "mladost". Zbog toga konfiguracije hardvera i softvera. Na primjer, teško ga je pokrenuti na macOS-u, a na sustavima s ARM procesorima nedostupne su neke funkcije. U budućnosti bi se situacija mogla promijeniti, jer autor aktivno razvija projekt, a broj zvjezdica na GitHubu postupno raste - nedavno se čak na Hacker News.
Alat za procjenu performansi niskonivojskih funkcija CPU-a, koji je razvio inženjer Travis Downs. Od nedavno vodi svoj blogna GitHub Pages, gdje govori o alatima za benchmarking i srodnim temama. U cjelini, uarch-bench tek počinje stjecati popularnost, ali se već prilično često Uarch-bench omogućuje procjenu performansi memorije, brzinu paralelnog učitavanja podataka i rad s čišćenjem YMM registara.
Uarch-bench omogućuje procjenu performansi memorije, brzine paralelnog učitavanja podataka i rada na čišćenju . Kako izgledaju rezultati benchmarkinga koje generira program, možete pronaći na dnu stranice.
Valja napomenuti da uarch-bench, kao i temci, funkciju Intel Turbo Boost (koja automatski povećava taktnu frekvenciju procesora pod opterećenjem) kako bi rezultati testiranja bili konzistentni.
Projekt je još uvijek u ranoj fazi razvoja, pa uarch-bench nema detaljnu dokumentaciju i u njegovom radu se mogu pojaviti greške — na primjer, s pokretanjem na Ryzen. Također podržani su samo benchmarkovi za x86 arhitekture. Autor obećava dodati više funkcionalnosti u budućnosti i poziva da se pridružite razvoju.
Ovo je skup alata za procjenu performansi Linux strojeva s Intel, AMD i ARMv8 procesorima. Stvoren je pod okriljem Saveznog ministarstva obrazovanja i istraživanja Njemačke 2017. godine i predan je u open source.
Među alatima likwid može se istaknuti likwid-powermeter, koji isporučuje informacije iz RAPL registara o potrošnji snage sustava, kao i likwid-setFrequencies — koji omogućuje kontrolu frekvencije procesora. Potpuni popis možete .
Alat koriste inženjeri koji se bave istraživanjem u području HPC-a. Na primjer, s likwidom grupa stručnjaka iz Regionalnog računalnog centra Sveučilišta Erlangen — Nuremberg (RRZE) u Njemačkoj. Također aktivno sudjeluje u razvoju ovog skupa alata.

Fotografija – – Unsplash
Ovaj alat za analizu performansi Linux servera Brendan Gregg. On je jedan od razvijača — okvira dinamičkog praćenja za otklanjanje grešaka u aplikacijama u stvarnom vremenu.
U srcu perf-tools su podsustavi jezgre perf_events i ftrace. Njihove alatke omogućuju analizu latencije ulaza/izlaza (iosnoop), praćenje argumenata sistemskih poziva (unccount, funcslower, funcgraph i functrace) i prikupljanje statistike „pogađanja“ u datotečnom kešu (cachestat). U ovom slučaju, naredba izgleda ovako:
# ./cachestat -t
Counting cache functions... Output every 1 seconds.
TIME HITS MISSES DIRTIES RATIO BUFFERS_MB CACHE_MB
08:28:57 415 0 0 100.0% 1 191
08:28:58 411 0 0 100.0% 1 191
08:28:59 362 97 0 78.9% 0 8
08:29:00 411 0 0 100.0% 0 9
Oko alata se formirala prilično opsežna zajednica (). I postoje tvrtke koje aktivno koriste perf-tools, na primjer . No alat se ažurira i modificira (iako su ažuriranja posljednjih nekoliko mjeseci prilično rijetka). Stoga se tijekom rada mogu pojaviti greške - autor piše da ponekad perf-tools uzrokuje kernel panic.
Alat koji predviđa koliko će računalnih resursa biti potrebno strojnom kodu na različitim CPU-ima. On Instructions Per Cycle () i opterećenje na hardveru koje generira određena aplikacija.
llvm-mca predstavljen je 2018. godine unutar projekta , koji se bavi razvojem univerzalnog sustava analize, transformacije i optimizacije programa. Poznato je da su autori llvm-mca bili inspirirani rješenjem za analizu performansi softvera i nastojali su stvoriti njegovu alternativu. Prema riječima korisnika, izlazni podaci alata (njihov format i količina) doista podsjećaju na IACA - primjer . Međutim, llvm-mca prihvaća samo , stoga će za rad s njim vjerojatno biti potrebno koristiti konvertere.
O čemu pišemo na našim blogovima i društvenim mrežama:
![]()
![]()
![]()
![]()
![]()
U 1cloud.ru nudimo besplatnu uslugu „“. Upravljanje DNS zapisima kod nas može se obaviti u jedinstvenoj korisničkoj ploči.
Izvor: habr.com
