Continuiamo a parlare degli strumenti per la valutazione delle prestazioni della CPU su macchine Linux. Oggi includiamo: temci, uarch-bench, likwid, perf-tools e llvm-mca.
Ulteriori benchmark:
Foto — — Unsplash
Questo è uno strumento per valutare il tempo di esecuzione di due programmi. In sostanza, consente di confrontare il tempo di esecuzione di due applicazioni. L'autore dell'utility è Johannes Bechberger, uno studente tedesco che l'ha sviluppata nell'ambito della sua tesi di laurea nel 2016. Oggi questo strumento è sotto licenza GNU General Public License.
Johannes voleva creare uno strumento che misurasse le prestazioni di un sistema di calcolo in un ambiente controllato. Pertanto, una delle caratteristiche principali di temci è la possibilità di configurare l'ambiente di test. Ad esempio, : modificare le impostazioni del gestore della frequenza della CPU, disattivare e le cache L1 e L2, disattivare la modalità turbo sui processori Intel, e altro ancora. Per il benchmarking, temci utilizza strumenti , e .
Ecco come si presenta il lavoro dell'utilità nel primo caso:
# 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
In base ai risultati del benchmarking, il sistema genera con schemi, tabelle e grafici, che distingue temci dalle soluzioni simili.
Tra i difetti di temci si evidenzia la sua «giovinezza». Per questo motivo, configurazioni hardware e software. Ad esempio, è difficile avviarlo su macOS, e alcune funzionalità non sono disponibili su sistemi con processori ARM. In futuro, la situazione potrebbe cambiare, poiché l'autore sta sviluppando attivamente il progetto, e il numero di stelle su GitHub aumenta gradualmente — di recente, temci è stato persino su Hacker News.
È un'utilità per valutare le prestazioni delle funzionalità a basso livello della CPU, sviluppata dall'ingegnere Travis Downs (). Recentemente, gestisce il suo blog su GitHub Pages, dove parla di strumenti per il benchmarking e altre tematiche correlate. In generale, uarch-bench sta appena iniziando a guadagnare popolarità, ma già viene dagli utenti di Hacker News in thread tematici come strumento di riferimento per il benchmarking.
Uarch-bench consente di valutare le prestazioni della memoria, la velocità di caricamento dei dati in parallelo e il funzionamento della pulizia. . È possibile trovare come appaiono i risultati del benchmarking generati dal programma in fondo alla pagina.
Vale la pena notare che uarch-bench, così come temci, la funzione Intel Turbo Boost (che aumenta automaticamente la frequenza del processore sotto carico) per garantire risultati di test coerenti.
Attualmente il progetto è nelle fasi iniziali di sviluppo, quindi uarch-bench non ha documentazione dettagliata e potrebbero presentarsi bug nel suo funzionamento — ad esempio, nell'avviarlo su Ryzen. Inoltre, sono supportati solo benchmark per architetture x86. L'autore promette di aggiungere più funzionalità in futuro e invita a unirsi allo sviluppo.
Questo è un insieme di strumenti per valutare le prestazioni dei sistemi Linux con processori Intel, AMD e ARMv8. È stato creato sotto l'egida del Ministero Federale per l'Istruzione e la Ricerca Scientifica della Germania nel 2017 ed è stato rilasciato come open source.
Tra gli strumenti di likwid spicca likwid-powermeter, che fornisce informazioni dai registri RAPL sul consumo energetico del sistema, e likwid-setFrequencies, che consente di controllare la frequenza della CPU. Puoi trovare l'elenco completo .
Questo strumento è utilizzato da ingegneri che si occupano di ricerca nel campo dell'HPC. Ad esempio, con likwid un gruppo di specialisti del Centro di Calcolo Regionale dell'Università di Erlangen-Norimberga (RRZE) in Germania. Questo gruppo partecipa attivamente allo sviluppo di questa suite di strumenti.

Foto — — Unsplash
Questo strumento per l'analisi delle prestazioni dei server Linux Brendan Gregg. È uno degli sviluppatori del framework di tracciamento dinamico per il debugging delle applicazioni in tempo reale.
Alla base di perf-tools ci sono i sottosistemi del kernel perf_events e ftrace. Le loro utilità consentono di analizzare la latenza I/O (iosnoop), tracciare gli argomenti delle chiamate di sistema (unccount, funcslower, funcgraph e functrace) e raccogliere statistiche sui "cache hit" (cachestat). In quest'ultimo caso, il comando è il seguente:
# ./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
Attorno a questo strumento si è formato un ampio comunità (). Ci sono aziende che utilizzano attivamente perf-tools, come ad esempio . Tuttavia, lo strumento è in fase di sviluppo e modifica (anche se recentemente gli aggiornamenti sono stati abbastanza rari). Quindi, potrebbero verificarsi errori nel suo funzionamento: l'autore scrive che a volte perf-tools provoca un kernel panic.
è un'utilità che prevede quante risorse computazionali saranno necessarie al codice sorgente su diversi processori. Essa Instructions Per Cycle () e il carico generato sull'hardware da ogni applicazione.
llvm-mca è stato presentato nel 2018 nell'ambito di un progetto , dedicato allo sviluppo di un sistema universale per l'analisi, la trasformazione e l'ottimizzazione dei programmi. È noto che gli autori di llvm-mca sono stati ispirati dalla soluzione di analisi delle prestazioni del software e hanno voluto crearne un'alternativa. Secondo gli utenti, i dati in output dello strumento (la loro formattazione e quantità) ricordano effettivamente IACA — un esempio . Tuttavia, llvm-mca accetta solo , quindi per lavorarci sarà probabilmente necessario utilizzare dei convertitori.
Di cosa trattiamo nei nostri blog e sui social media:
![]()
![]()
![]()
![]()
![]()
Noi di 1cloud.ru offriamo un servizio gratuito «». Puoi gestire i record DNS attraverso un unico pannello personale.
Fonte: habr.com
