Mes ir toliau kalbame apie įrankius, skirtus procesoriaus našumui įvertinti „Linux“ įrenginiuose. Šiandien medžiagoje: temci, uarch-bench, likwid, perf-tools ir llvm-mca.
Tai įrankis, skirtas dviejų programų vykdymo laikui įvertinti. Iš esmės tai leidžia palyginti dviejų programų vykdymo laiką. Priemonės autorius buvo studentas iš Vokietijos Johannesas Bechbergeris, kuris ją sukūrė kaip savo bakalauro baigiamąjį darbą 2016 m. Šios dienos įrankis išplatino licencijuota pagal GNU bendrąją viešąją licenciją.
Johannesas norėjo sukurti įrankį, kuris leistų jam išmatuoti skaičiavimo sistemos našumą kontroliuojamoje aplinkoje. Todėl viena iš pagrindinių temci savybių yra galimybė nustatyti testavimo aplinką. Pavyzdžiui, vienas gali: pakeisti procesoriaus dažnio tvarkyklės nustatymus, išjungti hipergijos ir L1 ir L2 talpyklos, išjunkite turbo režimą „Intel“ procesoriuose ir kt. „Temci“ naudoja įrankius palyginimui laikas, perf_stat и pasikalbėjimas.
Štai kaip programa atrodo pirmuoju atveju:
# 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
Remiantis lyginamosios analizės rezultatais, sistema sukuria patogi ataskaita su diagramomis, lentelėmis ir grafikais, kurie išskiria temci iš panašių sprendimų.
Tarp temci trūkumų išsiskiria jo „jaunystė“. Dėl to jis ne viskas palaikoma aparatinės ir programinės įrangos konfigūracijos. Pavyzdžiui, sunku paleisti „macOS“, o kai kurios funkcijos nepasiekiamos ARM pagrįstoje sistemoje. Ateityje situacija gali pasikeisti, nes autorius aktyviai vysto projektą, o žvaigždžių skaičius GitHube po truputį didėja – dar ne taip seniai temci net aptarta komentaruose per „Hacker News“.
Žemo lygio procesoriaus funkcijų našumo įvertinimo įrankis, kurį sukūrė inžinierius Travisas Downsas (Travisas Daunas). Pastaruoju metu jis rašo tinklaraštį Spektaklio klausimai GitHub puslapiuose, kuriuose kalbama apie lyginamosios analizės įrankius ir kitus susijusius dalykus. Apskritai, uarch-bench dar tik pradeda populiarėti, tačiau tai jau gana įprasta minimas „Hacker News“ gyventojams teminėse gijose kaip įrankį lyginamajai analizei atlikti.
Uarch-bench leidžia įvertinti atminties našumą, lygiagretų duomenų įkėlimo greitį ir valymo darbus YMM registrai. Kaip atrodo programos sugeneruoti lyginamosios analizės rezultatai, galite sužinoti oficialioje saugykloje puslapio apačioje.
Verta paminėti, kad uarch-suolas, kaip ir temci, atsijungia „Intel Turbo Boost“ funkcija (ji automatiškai padidina procesoriaus taktinį dažnį esant apkrovai), kad bandymo rezultatai būtų nuoseklūs.
Kol kas projektas yra pradiniame kūrimo etape, todėl uarch-bench neturi išsamios dokumentacijos, o jo veikime gali būti klaidų, pvz. sunkumai žinomi su paleidimu Ryzen. Be to, palaikomi tik x86 architektūrų etalonai. Autorius žada ateityje pridėti daugiau funkcionalumo ir kviečia prisijungti prie kūrimo.
Tai įrankių rinkinys, skirtas įvertinti Linux mašinų su Intel, AMD ir ARMv8 procesoriais našumą. Jis buvo sukurtas 2017 m., globojant Vokietijos federalinei švietimo ir tyrimų ministerijai, ir išleistas į atvirą kodą.
Iš likwid įrankių galime išskirti likwid-powermeter, rodantį informaciją iš RAPL registrų apie sistemos sunaudotą galią, taip pat likwid-setFrequencies, leidžiantį valdyti procesoriaus dažnį. Galite pamatyti visą sąrašą rasti saugykloje.
Įrankį naudoja HPC tyrimuose dalyvaujantys inžinieriai. Pavyzdžiui, su likwid kūryba specialistų grupė iš Erlangeno-Niurnbergo universiteto (RRZE) regioninio skaičiavimo centro Vokietijoje. Ji taip pat aktyviai dalyvauja kuriant šį priemonių rinkinį.
Šis įrankis skirtas Linux serverių našumui analizuoti pristatė Brendanas Gregas. Jis yra vienas iš kūrėjų DTrace — dinaminė sekimo sistema, skirta taikomųjų programų derinimui realiuoju laiku.
perf-tools yra pagrįsta perf_events ir ftrace branduolio posistemiais. Jų paslaugos leidžia analizuoti įvesties / išvesties delsą (iosnoop), sekti sistemos iškvietimo argumentus (unccount, funcslower, funcgraph ir functrace) ir rinkti statistiką apie „patikimus“ failo talpykloje (cachestat). Pastaruoju atveju komanda atrodo taip:
Aplink instrumentą susiformavo gana didelė bendruomenė (beveik 6 tūkstančiai žvaigždžių „GitHub“.). Ir yra įmonių, kurios, pavyzdžiui, aktyviai naudoja perf-įrankius "Netflix". Tačiau įrankis toliau tobulinamas ir modifikuojamas (nors pastaruoju metu atnaujinimai išleidžiami gana retai). Todėl jo veikime gali atsirasti klaidų – autorius rašo, kad kartais perf-tools sukelia branduolio paniką.
Priemonė, numatanti, kiek skaičiavimo resursų mašinos kodui reikės skirtinguose procesoriuose. Ji įvertina Instrukcijos per ciklą (IPC) ir aparatinės įrangos apkrovą, kurią sukuria tam tikra programa.
llvm-mca buvo pristatyta 2018 m. kaip projekto dalis LLVM, kurianti universalią programų analizės, transformavimo ir optimizavimo sistemą. Yra žinoma, kad llvm-mca autorius įkvėpė programinės įrangos našumo analizės sprendimas IACA iš „Intel“. ir siekė sukurti alternatyvą. Ir, pasak vartotojų, įrankio išvestis (jų išdėstymas ir kiekis) tikrai primena IACA – pvz. rasite čia. Tačiau llvm-mca priima tik AT&T sintaksė, todėl greičiausiai turėsite naudoti keitiklius, kad galėtumėte dirbti su juo.
Apie ką rašome savo tinklaraščiuose ir socialiniuose tinkluose: