Internet

Benchmark: che cos'è? A cosa serve storia, tipi e suggerimenti

Sommario:

Anonim

I benchmark sono una parte essenziale della nostra analisi hardware quotidiana, ci consentono di offrirti una misurazione scientificamente comparabile tra diversi componenti come CPU, schede grafiche, unità di archiviazione, ecc. Oggi dedicheremo alcune linee alla sua storia, ai suoi tipi, come funzionano, cosa misurano, quali sono le misure più comuni e ti daremo anche alcuni consigli su come realizzarli e su quali dovremmo fidarci.

Ciò che sappiamo oggi nel mondo dei PC o dei dispositivi mobili come parametri di riferimento sono tecniche ereditate dall'ambiente industriale che hanno consentito, sin dall'inizio di questa rivoluzione, il processo decisionale basato su dati comparabili in un ambiente controllato.

Il mondo dell'informatica moderna applica queste tecniche a quasi tutti i suoi molti domini diversi e gli utenti domestici le hanno anche adottate come un modo affidabile per conoscere le prestazioni e le capacità dei nostri sistemi, nonché un importante punto di informazione quando prendere decisioni importanti, come l'acquisto del nostro nuovo computer, telefono cellulare, scheda grafica, ecc.

Oggi parleremo della storia dei benchmark per PC, dei tipi di benchmark esistenti e di quali componenti del nostro sistema sono più adatti per questo tipo di test che non sono solo prestazioni.

Indice dei contenuti

storia

Il sistema di riferimento o di misurazione applica un ambiente controllato e misure riconoscibili che sono scientificamente comparabili e verificabili e ha convissuto con il mondo dei computer da quando esiste. Il parametro di riferimento, in quanto tale, è stato democratizzato al punto che una parte della sua essenza fondamentale è andata perduta, ovvero che può essere verificabile e verificabile da terzi. Ora lo usiamo più come un rapido confronto delle prestazioni, ma la tracciabilità della sua veridicità da parte di terzi è stata sicuramente ampiamente persa.

I metodi di benchmark più classici hanno sempre fatto riferimento alla capacità di elaborazione della CPU del sistema, sebbene negli ultimi tempi abbia variato tra i diversi componenti, poiché questi hanno acquisito preponderanza e importanza all'interno di un computer.

Le due unità di misura più classiche che sono ancora applicate sono le Dhrystones e le Whetstones. Entrambi sono diventati, in qualche modo, la base di tutti i parametri sintetici che conosciamo oggi.

La più antica è Whetstones (una località nel Regno Unito dove si trovava la divisione di energia atomica della compagnia elettrica statale del Regno Unito) e Dhrystone arrivò in seguito giocando con il nome del primo (bagnato e asciutto).

Il primo è stato progettato negli anni '70 e il secondo è degli anni '80 ed entrambi sono la base delle prestazioni comparative che abbiamo avuto negli anni successivi. Le pietre per affilare, semplificando, hanno offerto uno spaccato della potenza di calcolo del processore nelle operazioni in virgola mobile, operazioni con un gran numero di decimali.

Il Dhrystone è la sua controparte poiché è dedicato alle istruzioni di base senza decimali, entrambi hanno fornito un quadro chiaro delle prestazioni di un processore da due approcci completamente diversi, ma complementari. Le pietre per affilare e Dhrystone derivano da due concetti che oggi usiamo molto più comunemente, MIPS e FLOP.

Dopo queste misurazioni ne sono arrivati ​​altri come il FLOP (aritmetica a virgola mobile - aritmetica a virgola mobile) che è, in larga misura, ora più importante in un computer di quanto non lo sia mai stato perché è la base del calcolo avanzato in molte tecniche moderne. come algoritmi di intelligenza artificiale, algoritmi medici, previsioni meteorologiche, logica fuzzy, crittografia, ecc.

LINPACK è stato sviluppato dall'ingegnere Jack Dongarra negli anni '80 e continua ad essere utilizzato oggi per misurare la capacità di calcolo in virgola mobile di tutti i tipi di sistemi. Attualmente ci sono versioni ottimizzate per architettura, produttore di CPU, ecc.

I FLOPS riempiono i nostri articoli su schede grafiche (sicuramente la precisione singola o doppia suona familiare), i processori e sono la base per calcolare i requisiti di alimentazione e lo sviluppo hardware per qualsiasi supercomputer in funzione o in sviluppo.

Il FLOP è oggi l'unità di misurazione delle prestazioni più richiesta nel settore, ma è sempre stata combinata con il MIPS (milioni di istruzioni al secondo) che è una misura di misurazione interessante, poiché ci fornisce il numero di istruzioni Aritmetica di base che un processore può eseguire al secondo, ma che dipende più dall'architettura del processore (ARM, RISC, x86, ecc.) E dal linguaggio di programmazione rispetto ad altre unità di misura.

Con l'avanzare delle prestazioni, si sono verificati moltiplicatori. Ora misuriamo le prestazioni delle CPU domestiche in GIPS e GFLOPS. La base rimane la stessa, operazioni aritmetiche classiche. Sisoft Sandra continua a offrirci questo tipo di misura in alcuni dei suoi parametri sintetici.

Il MIPS è stato anche più relegato nella CPU come elemento classico e il FLOP si è esteso ad altre aree fiorenti come la capacità di processo o il calcolo generale di ex processori molto orientati a compiti specifici come le GPU che tutti montiamo sui nostri processori o su le nostre schede di espansione dedicate.

A questi concetti di base, il tempo ha aggiunto nuove unità di misura tanto o più importanti di queste in un moderno computer o supercomputer. Il transito dei dati è una di queste misure che è diventata molto importante ed è attualmente misurata negli IOP (operazioni di input e output al secondo) e anche in altre forme come le misure di archiviazione MB / GB / TB rispetto al tempo necessario per transito da un punto all'altro (MBps - Megabyte al secondo).

AS-SSD può misurare le prestazioni di un disco rigido in MBps o IOP.

Attualmente utilizziamo anche la misura di trasferimento, nei suoi diversi moltiplicatori, come modo di interpretare la velocità di transito delle informazioni tra due punti quando per emettere determinate informazioni dobbiamo effettivamente aver generato un po 'più di informazioni. Ciò dipende dal protocollo utilizzato per il trasferimento di informazioni.

Un chiaro esempio e che usiamo molto è nell'interfaccia PCI Express. In base a questo protocollo, per ogni 8 bit di informazioni che vogliamo spostare (0 o 1s) dobbiamo generare 10 bit di informazioni poiché tali informazioni extra servono per il controllo della comunicazione inviata per la correzione degli errori, l'integrità dei dati, ecc.

Altri protocolli ben noti che introducono anche questa "perdita" di informazioni reali sono l'IP, quello che stai usando per leggere questo articolo e che rende la tua connessione 300MT / s in realtà offre una velocità di poco inferiore a 300 Mbps.

Pertanto, utilizziamo il Gigatransfer o il trasferimento quando ci riferiamo alle informazioni non elaborate inviate dall'interfaccia e non alle informazioni effettivamente elaborate nel ricevitore. Un bus dati PCI Express 3.0 8GT / s sta effettivamente inviando 6, 4 GBps di informazioni per ogni linea collegata tra i punti. Il trasferimento è diventato molto importante con l'integrazione del protocollo PCI Express in tutti i principali bus di un computer domestico e professionale.

In tempi recenti abbiamo anche iniziato a combinare le misure come un modo per mettere in relazione la potenza di elaborazione con altri fattori molto importanti nel calcolo moderno, con il consumo come una di queste misure che viene introdotta come una scala comparativa tra le prestazioni di due sistemi. L'efficienza energetica è oggi tanto o più importante della potenza di processo e quindi è facile vedere parametri di riferimento che confrontano la potenza di processo in base ai watt di consumo dell'elemento in misurazione.

In effetti, una delle grandi liste di supercomputer non si riferisce tanto alla potenza lorda del computer tra tutti i suoi nodi di elaborazione, ma allo sviluppo di quella potenza basata sui watt o sull'energia consumata dall'intero sistema. L'elenco Green500 (FLOPS per watt - FLOPS per watt) è un chiaro esempio di come il consumo sia ora fondamentale per qualsiasi benchmark che si rispetti, anche se senza dubbio continuiamo a guardare da vicino l'elenco TOP500 che non ha questo fattore come fattore di condizionamento.

Tipi di parametri di riferimento

Anche se possiamo parlare di molte più famiglie o tipi di benchmark, semplificherò l'elenco nelle due classi più comuni di quelle che sono più vicine a tutti noi come utenti più o meno avanzati.

Da un lato, abbiamo i parametri sintetici che sono in gran parte quelli che ci offrono misure di cui abbiamo già parlato. I benchmark sintetici sono programmi che eseguono test controllati con un codice di programma più o meno stabile orientato per una piattaforma e un'architettura specifiche. Sono programmi che eseguono test molto specifici che possono integrare uno o più dei nostri componenti, ma in cui vengono sempre eseguiti gli stessi test o test, senza modifiche.

Il rendering delle immagini è sempre stato un buon metodo per conoscere le prestazioni di una CPU in un sistema moderno poiché è un compito impegnativo. Cinebench R15 ha anche diversi test, uno per GPU e due per CPU, in cui possiamo conoscere le prestazioni di sistemi con più core e thread di processo.

Offrono un ambiente di test controllato, in cui non vi sono modifiche ad eccezione delle versioni e in cui tali modifiche sono adeguatamente documentate in modo che l'utente sappia quali versioni possono essere confrontate tra loro. Questi tipi di programmi possono testare diversi sottosistemi del nostro computer separatamente, con altri pezzi di codice o benchmark specifici per eseguire un certo tipo di test o combinati che possono essere influenzati dalle prestazioni di uno, due o più componenti del sistema. Il benchmark integrato in un gioco o programmi come Cinebench, Sisoft Sandra, SuperPI, 3DMark,… sono chiari esempi di benchmark sintetici.

Altri benchmark sintetici che non dovremmo confondere con benchmark reali sono quelli che simulano l'esecuzione di programmi reali o che eseguono script di azione in programmi reali, sono anche sintetici poiché non vi è casualità nel test, PC Mark è un chiaro esempio di programma di benchmark sintetico che possiamo confondere con un vero benchmark.

Il benchmark effettivo è un metodo di prova molto diverso perché accetta la casualità dell'utilizzo di un programma per misurarne le prestazioni. I giocatori sono abituati a eseguire questo tipo di benchmark o test delle prestazioni quando adattiamo i parametri di qualità di un gioco alle possibilità del nostro hardware.

Misurare le prestazioni di un gioco mentre giochi è un vero punto di riferimento.

Quando apri l'FPS offerto dal gioco e provi a raggiungere continuamente i 60FPS desiderati, stanno eseguendo un vero benchmark. Lo stesso può essere estrapolato a qualsiasi altro tipo di programma e se sei uno sviluppatore, quando ottimizzi il codice del tuo programma, stai anche facendo veri test di riferimento in cui ciò che cambia è il tuo codice, o il modo di eseguirlo, su una piattaforma di hardware stabile o variabile.

Entrambi i tipi di benchmark sono importanti, i primi ci consentono di confrontare il nostro sistema con gli altri in un ambiente controllato e i secondi sono un modo per ottimizzare il nostro funzionamento in cui vengono aggiunti anche due importanti fattori, la casualità nell'esecuzione e il fattore umano. Entrambi i fattori offrono un ulteriore punto di vista sulle prestazioni del componente o dei componenti che vogliamo testare.

Considerazioni sul benchmarking

Perché un benchmark sia utile ed efficace, dobbiamo tenere conto di alcuni fattori che sono veramente importanti. Il confronto tra diverse piattaforme e architetture introduce un importante fattore di incertezza, quindi questo tipo di benchmark che ti dà la possibilità di confrontare i telefoni cellulari iOS con i computer Windows x86, per fare un esempio, devi portarli con le pinzette poiché non cambia solo kernel del sistema operativo, ma le architetture del processore sono molto diverse. Gli sviluppatori di questo tipo di benchmark (ad esempio Geekbench) introducono tra le diverse versioni fattori di correzione difficilmente controllabili.

Pertanto, la prima chiave per un benchmark da confrontare tra diversi hardware è che l'ecosistema di test è il più simile possibile alla piattaforma di benchmark, al sistema operativo, ai driver e alla versione del software. Ci saranno sicuramente degli elementi che non possiamo controllare omogeneizzare, come il controller grafico se testiamo la grafica AMD contro la grafica Nvidia, ma il resto dobbiamo cercare di renderlo il più stabile possibile. In questo caso includeremo anche l'hardware poiché per confrontare le schede grafiche, il loro è usare lo stesso sistema operativo, lo stesso processore, le stesse memorie e tutti i parametri operativi, mantenendoli uguali, compresi i parametri di qualità, risoluzione e test nel benchmark. Più stabile è il nostro ecosistema di test, più affidabili e comparabili saranno i nostri risultati.

Ti consigliamo di leggere Come sapere se il mio processore ha un collo di bottiglia?

Un'altra cosa che dobbiamo prendere in considerazione è che i test di benchmark normalmente hanno un fattore di stress sull'hardware che stiamo per testare e normalmente sottopongono questo hardware a situazioni che normalmente non si verificano nel normale utilizzo del sistema. Ogni benchmark che rimuoviamo dal nostro disco rigido, scheda grafica o processore, li sottopone a situazioni che possono essere pericolose per l'hardware, quindi dobbiamo stabilire le misure appropriate in modo che il punto di stress non diventi un punto di frattura o anche in un elemento di riduzione delle prestazioni poiché molti componenti dispongono di sistemi di protezione con i quali riducono le prestazioni nel caso, ad esempio, di temperature al di fuori del loro campo di utilizzo. Raffreddamento adeguato, periodi di riposo tra i test, corretta alimentazione dei componenti in prova… tutto dovrebbe essere in una situazione ideale per il corretto svolgimento del test.

D'altra parte, utilizziamo anche esattamente questo tipo di parametri di riferimento al fine di sottoporre il sistema a stress per vedere la sua stabilità in questo tipo di situazione, è un modo diverso di applicare un valore di riferimento poiché non sta solo cercando di conoscere le prestazioni ma anche se il sistema è stabile e ancora di più, se il sistema funziona come dovrebbe in queste situazioni stressanti.

conclusione

Per quelli di noi impegnati a testare professionalmente l'hardware del computer, il benchmark è uno strumento funzionante e grazie ad esso, gli utenti hanno un modo scientifico e verificabile di confrontare o conoscere con precisione le prestazioni del nostro prossimo computer in ciascuno dei suoi sottosistemi. paragonabile agli strumenti utilizzati a livello industriale.

Una tabella di test, come quella che vedi nell'immagine, cerca di standardizzare con precisione il metodo di test, in modo che il benchmark comparativo sia il più affidabile possibile e sia testabile quando si introducono variazioni che modificano i risultati.

Ma come qualsiasi test di "laboratorio", affinché sia ​​affidabile, devono essere predisposte le giuste condizioni per essere eseguito, e ancora di più affinché sia ​​comparabile tra sistemi diversi.

Oggi vi abbiamo parlato un po 'della storia di questo tipo di programma, dei suoi diversi tipi, di come funzionano e di come ottenere informazioni affidabili da loro. Sono utili, ma per me sono solo un'altra informazione da tenere a mente e la metterei sempre dietro l'esperienza personale e i test attivi con programmi reali che useremo ogni giorno.

Un benchmark va bene per inserire un dato minimo sulle prestazioni nel nostro processo decisionale, ma non dovrebbero definire tali decisioni e, come ultimo consiglio, evitare benchmark sintetici che affermano di essere in grado di confrontare le prestazioni tra architetture, sistemi operativi, ecc.

Internet

Scelta dell'editore

Back to top button