Continuăm să discutăm despre instrumentele pentru evaluarea performanței CPU pe mașinile Linux. Astăzi, în acest material: temci, uarch-bench, likwid, perf-tools și llvm-mca.
Mai multe benchmark-uri:
Fotografie — — Unsplash
Acesta este un instrument pentru evaluarea timpului de execuție a două programe. Practic, permite compararea timpului de execuție pentru două aplicații. Autorul utilitarului este un student din Germania, Johannes Bechberger, care l-a dezvoltat în cadrul lucrării de licență în 2016. Astăzi, instrumentul este disponibil sub licența GNU General Public License.
Johannes a dorit să creeze un instrument care să permită măsurarea performanței sistemului de calcul într-un mediu controlat. Prin urmare, una dintre caracteristicile principale ale temci este posibilitatea de a configura mediul de testare. De exemplu, : modificarea setărilor controlerului frecvenței CPU, dezactivarea și a cache-urilor L1 și L2, dezactivarea modului turbo pe procesoarele Intel și altele. Pentru benchmarking, temci folosește instrumentele , și .
Iată cum arată funcționarea utilitarului în prima situație:
# 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
Pe baza rezultatelor benchmarking-ului, sistemul generează cu scheme, tabele și grafice, ceea ce diferențiază temci de soluțiile analogice.
Printre dezavantajele temci se numără «tinerețea» sa. Din acest motiv, acesta configurațiile hardware și software. De exemplu, este greu de rulat pe macOS, iar pe un sistem cu procesor ARM, unele funcții nu sunt disponibile. În viitor, situația s-ar putea schimba, deoarece autorul dezvoltă activ proiectul, iar numărul de stele pe GitHub crește treptat – nu cu mult timp în urmă, temci a fost chiar pe Hacker News.
Un utilitar pentru evaluarea performanței funcțiilor de nivel jos ale CPU, dezvoltat de inginerul Travis Downs (). De curând, el își desfășoară blogul pe GitHub Pages, în care discută despre instrumente de benchmarking și alte subiecte conexe. În general, uarch-bench abia începe să câștige popularitate, dar este deja menționat destul de des de rezidenții Hacker News în discuții tematice ca un instrument de bază pentru benchmarking.
uarch-bench permite evaluarea performanței memoriei, vitezei de încărcare paralelă a datelor și a procesului de curățare a Cum arată rezultatele benchmarking-ului generate de program, pot fi găsite în partea de jos a paginii.
Merită menționat că uarch-bench, la fel ca temci, funcția Intel Turbo Boost (care crește automat frecvența procesorului sub sarcină), astfel încât rezultatele testării să fie consistente.
Până acum, proiectul se află în stadii incipiente de dezvoltare, așa că uarch-bench nu are documentație detaliată, iar în funcționarea sa pot apărea bug-uri — de exemplu, cu rularea pe Ryzen. De asemenea, sunt suportate doar benchmarking-uri pentru arhitecturile x86. Autorul promite că va adăuga mai multe funcționalități în viitor și invită să se alăture dezvoltării.
Acesta este un set de instrumente pentru evaluarea performanței mașinilor Linux cu procesoare Intel, AMD și ARMv8. A fost creat sub egida Ministerului Federal al Educației și Cercetării din Germania în 2017 și a fost transmis în open source.
Printre instrumentele likwid se remarcă likwid-powermeter, care oferă informații din registrele RAPL despre puterea consumată de sistem, precum și likwid-setFrequencies — care permite controlul frecvenței procesorului. Lista completă o puteți .
Instrumentul este utilizat de inginerii care se ocupă cu cercetările în domeniul HPC. De exemplu, cu likwid un grup de specialiști de la Centrul Regional de Calcul al Universității Erlangen-Nürnberg (RRZE) din Germania. Aceștia participă activ la dezvoltarea acestui set de instrumente.

Fotografie — — Unsplash
Acest instrument pentru analiza performanței serverelor Linux Brendan Gregg. El este unul dintre dezvoltatorii — framework-ului de urmărire dinamică pentru depanarea aplicațiilor în timp real.
Perf-tools se bazează pe subsistemele nucleului perf_events și ftrace. Utilitarele acestora permit analizarea întârzierii de intrare/ieșire (iosnoop), urmărirea argumentelor apelurilor de sistem (unccount, funcslower, funcgraph și functrace) și colectarea statisticilor despre "loviturile" în cache-ul de fișiere (cachestat). În acest ultim caz, comanda arată astfel:
# ./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
În jurul instrumentului s-a format o comunitate destul de extinsă (). Și există companii care utilizează activ perf-tools, de exemplu . Instrumentul este în continuă dezvoltare și modificare (deși, în ultima vreme, actualizările apar destul de rar). De aceea, pot apărea erori în funcționarea sa — autorul menționează că uneori perf-tools provoacă panică în kernel.
O utilitate care prezice câte resurse de calcul va necesita codul mașină pe diferite CPU. Aceasta Instructions Per Cycle () și încărcătura pe hardware generată de aplicațiile respective.
llvm-mca a fost prezentat în 2018 ca parte a proiectului , care se ocupă cu dezvoltarea unui sistem universal de analiză, transformare și optimizare a programelor. Este cunoscut faptul că autorii llvm-mca s-au inspirat din soluția pentru analiza performanței software-ului și și-au propus să creeze o alternativă. Și, potrivit utilizatorilor, rezultatele instrumentului (structura și cantitatea acestora) sunt, într-adevăr, asemănătoare cu IACA — un exemplu . Totuși, llvm-mca acceptă doar , așa că, pentru a lucra cu el, va fi necesar să folosești convertere.
Despre ce scriem pe blogurile și rețelele noastre sociale:
![]()
![]()
![]()
![]()
![]()
Noi la 1cloud.ru oferim un serviciu gratuit de „“. Gestionați înregistrările DNS în biroul nostru unic.
Sursa: habr.com
