Stima FLOPS in Linux?

Sto cercando un programma veloce e facile per stimare FLOPS sul mio sistema Linux. Ho trovato HPL , ma ottenendo compilato sta provando ad essere irritante. Tutto quello di cui avevo bisogno è una stima del FLAPS, senza necessità di trascorrere una giornata alla ricerca di pacchetti di riferimento e all'installazione di software dipendenti. Esiste un tale programma? Sarebbe sufficiente scrivere un programma C che moltiplica due galleggianti in un ciclo?

6 Solutions collect form web for “Stima FLOPS in Linux?”

La domanda è che cosa intendi per flop? Se tutto quello che ti interessa è quante delle operazioni più semplici a virgola mobile per orologio, è probabilmente 3x la velocità dell'orologio, ma è quasi inutile come il bogomips. Alcuni ops a virgola mobile richiedono molto tempo (divide, per i primi), aggiungere e moltiplicare sono tipicamente veloci (uno per each unità fp per orologio). Il prossimo numero è la prestazione di memory, c'è un motivo per cui l'ultimo classico CRAY dispone di 31 banche di memory, in definitiva le performance della CPU sono limitate da quanto velocemente è ansible leggere e scrivere in memory, quindi qual è il livello di cache che il tuo problema si inserisce? Linpack è stato un vero punto di riferimento una volta, ora si inserisce nella cache (L2 se non L1) ed è più un benchmark puro teorico della CPU. E, naturalmente, le unità SSE (ecc.) Possono aggiungere performance a virgola mobile.

Quale distro fai?

Questo sembrava un buon puntatore: http://linuxtoolkit.blogspot.com/2009/04/intel-optimized-linpack-benchmark-for.html

http://onemansjourneyintolinux.blogspot.com/2008/12/show-us-yer-flops.html

http://www.phoronix-test-suite.com/ potrebbe essere un modo più semplice per installare un benchmark di flop.

Ancora mi chiedo perché ti import, per quello che stai usando? Se vuoi solo un numero senza senso, i tuoi sisthemes bogomips sono ancora lì in dmesg.

apparentemente c'è un pacchetto di benchmark "sysbench" e un command:

sudo apt-get install sysbench (o brew install sysbench OS X)

eseguire così:

sysbench --test=cpu --cpu-max-prime=20000 --num-threads=2 run

output per confronti:

  total time: 15.3047s 

ref: http://www.midwesternmac.com/blogs/jeff-geerling/2013-vps-benchmarks-linode

Un benchmark tradizionalmente utilizzato per misurare FLOPS è Linpack. Un altro benchmark comune di FLOPS è Whetstone.

Altre letture: la voce di Wikipedia "FLOPS" , voce di Whetstone , voce di Linpack

Vi consiglio vivamente di build la linea pronta da eseguire da Intel: http://software.intel.com/en-us/articles/intel-math-kernel-library-linpack-download/

Come si parla di cluster, abbiamo utilizzato la suite HPCC . Ci vuole un po 'di sforzi per impostare e sintonizzarsi, ma nel nostro caso il punto non è stato vantarsi di per sé, faceva parte dei criteri di accettazione per il cluster; alcuni benchmarking delle performance è IMHO vitale per assicurare che l'hardware funziona come pubblicizzato, tutto è collegato correttamente insieme ecc.

Ora, se vuoi solo un numero teorico di FLOPS, quello è facile. Basta controllare qualche articolo sulla CPU (ad esempio, su realworldtech.com o qualche volta) per get informazioni su quanti DP FLOPS un core CPU può fare per ciclo di clock (con CPU correnti x86 che è tipicamente 4). Quindi il picco totale FLOPS è giusto

numero di nuclei * FLOPS / ciclo * frequenza

Quindi, per un cluster con la networking IB si dovrebbe essere in grado di colpire l'80% del picco FLOPS su HPL (che BTW è uno dei benchmark in HPCC).

Per le previsioni di ballpark:

  • Lampone Pi 2 : 299,93 * 10 ^ 6 FLOPS ( sorgente )

  • Lampone Pi 3: 462.07 * 10 ^ 6 FLOPS ( sorgente )

  • GTX Titan Black GPU : 5.1 * 10 ^ 12 FLOPS ( sorgente )
  • Sunway TaihuLight : 93 * 10 ^ 15 FLOPS ( fonte , titolare record del 2016)

Linpack

  1. Scarica ( link )
  2. Estrarla
  3. cd benchmarks_2017/linux/mkl/benchmarks/linpack
  4. ./runme_xeon64
  5. Attendere un bel po '(più di un'ora)

Su una Thinkpad T460p ( CPU Intel i7-6700HQ ), fornisce:

 This is a SAMPLE run script for SMP LINPACK. Change it to reflect the correct number of CPUs/threads, problem input files, etc.. ./runme_xeon64: 33: [: -gt: unexpected operator Mi 21. Dez 11:50:29 CET 2016 Intel(R) Optimized LINPACK Benchmark data Current date/time: Wed Dec 21 11:50:29 2016 CPU frequency: 3.491 GHz Number of CPUs: 1 Number of cores: 4 Number of threads: 4 Parameters are set to: Number of tests: 15 Number of equations to solve (problem size) : 1000 2000 5000 10000 15000 18000 20000 22000 25000 26000 27000 30000 35000 40000 45000 Leading dimension of arrays : 1000 2000 5008 10000 15000 18008 20016 22008 25000 26000 27000 30000 35000 40000 45000 Number of trials to run : 4 2 2 2 2 2 2 2 2 2 1 1 1 1 1 Data alignment value (in Kbytes) : 4 4 4 4 4 4 4 4 4 4 4 1 1 1 1 Maximum memory requested that can be used=9800701024, at the size=35000 =================== Timing linear equation system solver =================== Size LDA Align. Time(s) GFlops Residual Residual(norm) Check 1000 1000 4 0.014 46.5838 1.165068e-12 3.973181e-02 pass 1000 1000 4 0.010 64.7319 1.165068e-12 3.973181e-02 pass 1000 1000 4 0.009 77.3583 1.165068e-12 3.973181e-02 pass 1000 1000 4 0.010 67.0096 1.165068e-12 3.973181e-02 pass 2000 2000 4 0.064 83.6177 5.001027e-12 4.350281e-02 pass 2000 2000 4 0.063 84.5568 5.001027e-12 4.350281e-02 pass 5000 5008 4 0.709 117.6800 2.474679e-11 3.450740e-02 pass 5000 5008 4 0.699 119.2350 2.474679e-11 3.450740e-02 pass 10000 10000 4 4.895 136.2439 9.069137e-11 3.197870e-02 pass 10000 10000 4 4.904 135.9888 9.069137e-11 3.197870e-02 pass 15000 15000 4 17.260 130.3870 2.052533e-10 3.232773e-02 pass 15000 15000 4 18.159 123.9303 2.052533e-10 3.232773e-02 pass 18000 18008 4 31.091 125.0738 2.611497e-10 2.859910e-02 pass 18000 18008 4 31.869 122.0215 2.611497e-10 2.859910e-02 pass 20000 20016 4 44.877 118.8622 3.442628e-10 3.047480e-02 pass 20000 20016 4 44.646 119.4762 3.442628e-10 3.047480e-02 pass 22000 22008 4 57.918 122.5811 4.714135e-10 3.452918e-02 pass 22000 22008 4 57.171 124.1816 4.714135e-10 3.452918e-02 pass 25000 25000 4 86.259 120.7747 5.797896e-10 3.297056e-02 pass 25000 25000 4 83.721 124.4356 5.797896e-10 3.297056e-02 pass 26000 26000 4 97.420 120.2906 5.615238e-10 2.952660e-02 pass 26000 26000 4 96.061 121.9924 5.615238e-10 2.952660e-02 pass 27000 27000 4 109.479 119.8722 5.956148e-10 2.904520e-02 pass 30000 30000 1 315.697 57.0225 8.015488e-10 3.159714e-02 pass 35000 35000 1 2421.281 11.8061 1.161127e-09 3.370575e-02 pass Performance Summary (GFlops) Size LDA Align. Average Maximal 1000 1000 4 63.9209 77.3583 2000 2000 4 84.0872 84.5568 5000 5008 4 118.4575 119.2350 10000 10000 4 136.1164 136.2439 15000 15000 4 127.1586 130.3870 18000 18008 4 123.5477 125.0738 20000 20016 4 119.1692 119.4762 22000 22008 4 123.3813 124.1816 25000 25000 4 122.6052 124.4356 26000 26000 4 121.1415 121.9924 27000 27000 4 119.8722 119.8722 30000 30000 1 57.0225 57.0225 35000 35000 1 11.8061 11.8061 Residual checks PASSED End of tests Done: Mi 21. Dez 12:58:23 CET 2016 
Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.