Vai al contenuto

Benchmark (informatica)

Da Wikipedia, l'enciclopedia libera.

Con il termine benchmark si intende un insieme di test (collaudo o prova) del software volti a fornire una misura delle prestazioni di un computer per quanto riguarda diverse operazioni. Vi è in realtà una seconda definizione, relativa ai test di particolari software: in questo caso il benchmark è la determinazione della capacità di detto software di svolgere più o meno velocemente, precisamente o accuratamente, un particolare compito per cui è stato progettato.

Esistono software di benchmark appositamente studiati per misurare la velocità di un computer nell'eseguire calcoli di natura grafica, o altri che privilegiano la capacità nell'eseguire calcoli di natura gestionale.

Si possono distinguere due tipologie fondamentali di programmi per il benchmark:

  • sintetici, mirano a misurare le prestazioni del sistema riguardo specifiche operazioni
  • applicativi, si riferiscono all'esecuzione di software applicativo

In entrambi i casi il programma di test restituisce un indice che dovrebbe rappresentare le prestazioni del sistema.

I benchmark sintetici possono essere raggruppamenti di semplici test (microbenchmark) e fornire un risultato per ogni test eseguito. Spesso un'analisi di ciascun risultato risulta più affidabile dell'indice complessivo.

La validità delle misurazioni delle prestazioni di un computer mediante benchmark è fonte di dibattiti perché l'interpretazione dei risultati è spesso complessa. Nel caso di benchmark sintetici che restituiscono un indice, vi è un'inevitabile perdita di informazione nel considerare il risultato complessivo, cosa che può portare ad un'errata interpretazione di esso.

Un problema che affligge i test di benchmark condotti dai produttori è che i programmi di test potrebbero essere scelti o costruiti in modo da privilegiare le caratteristiche dei propri prodotti.

Nel 2014 Intel chiude una class action decennale, ripagando alcuni degli utenti che fra novembre 2000 e giugno 2002 comprarono un Pentium 4 di prima generazione (Willamette) invece che un AMD Athlon, in quanto i test benchmark restituivano valori migliori per il Pentium 4, in quanto i test si basavano su operazioni in cui i Pentium andavano meglio, evitando quelle in cui gli Athlon avrebbero primeggiato. Alla fine il punteggio era calcolato correttamente, ma non era necessariamente veritiero.[1]

Principi di benchmarking

[modifica | modifica wikitesto]

Ci sono sette caratteristiche fondamentali per i benchmark[2]. Queste proprietà chiave sono:

  1. Rilevanza: i benchmark dovrebbero misurare caratteristiche relativamente vitali.
  2. Rappresentatività: le metriche delle prestazioni di riferimento dovrebbero essere ampiamente accettate dall'industria e dal mondo accademico.
  3. Equità: tutti i sistemi dovrebbero essere paragonati in modo equo.
  4. Ripetibilità: è possibile verificare i risultati del benchmark.
  5. Rapporto costo-efficacia: i test di benchmark sono economici.
  6. Scalabilità: i test di benchmark dovrebbero funzionare su sistemi che possiedono una gamma di risorse da bassa ad alta.
  7. Trasparenza: le metriche di benchmark dovrebbero essere facili da capire.

Tipi di benchmark

[modifica | modifica wikitesto]
  1. Programma reale
    • software di elaborazione testi
    • software strumento di CAD
    • software applicativo dell'utente (es .: MIS)
  2. Component Benchmark / Microbenchmark
    • La routine principale consiste in una parte di codice relativamente piccola e specifica.
    • misurare le prestazioni dei componenti di base di un computer[3]
    • può essere utilizzato per il rilevamento automatico dei parametri hardware del computer come il numero di registri, la dimensione della cache, la latenza della memoria, ecc.
  3. Kernel
    • contiene codici chiave
    • normalmente astratto dal programma reale
    • kernel popolare: Livermore loop
    • benchmark linpack (contiene una subroutine di algebra lineare di base scritta in linguaggio FORTRAN)
    • i risultati sono rappresentati in Mflop / s.
  4. Benchmark sintetico
    • Procedura per la programmazione di benchmark sintetici:
      • acquisire statistiche di tutti i tipi di operazioni da molti programmi applicativi
      • ottenere proporzione di ciascuna operazione
      • scrivere il programma in base alla proporzione di cui sopra
    • I tipi di benchmark sintetici sono:
      • Cote
      • Dhrystone
    • Questi sono stati i primi benchmark per computer standard del settore generici. Non ottengono necessariamente punteggi più alti sui moderni computer in pipeline.
  5. Benchmark I/O
  6. Benchmark di database
    • misurare il throughput e i tempi di risposta dei sistemi di gestione dei database (DBMS)
  7. Benchmark paralleli
    • utilizzato su macchine con più core e / o processori, o sistemi costituiti da più macchine

Benchmark comuni

[modifica | modifica wikitesto]

Standard di settore (verificato e verificabile)

[modifica | modifica wikitesto]
  • Business Applications Performance Corporation (BAPCo)
  • Embedded Microprocessor Benchmark Consortium (EEMBC)
  • Linked Data Benchmark Council (LDBC)
    • Semantic Publishing Benchmark (SPB) : un benchmark LDBC ispirato all'industria dei media / editoria per testare le prestazioni dei motori RDF[4]
    • Social Network Benchmark (SNB) : un benchmark LDBC per testare le prestazioni dei motori RDF costituito da tre benchmark distinti (Interactive Workload, Business Intelligence Workload, Graph Analytics Workload) su un set di dati comune[5]
  • Standard Performance Evaluation Corporation (SPEC), in particolare SPECint e SPECfp
  • Transaction Processing Performance Council (TPC): benchmark DBMS
    • TPC-A : misura le prestazioni in ambienti di database ad alta intensità di aggiornamento tipici delle applicazioni di elaborazione delle transazioni in linea (OLTP)[6]
    • TPC-C : un benchmark di elaborazione delle transazioni in linea (OLTP)[7]
    • TPC-H : un benchmark di supporto decisionale[8]

Benchmark open source

[modifica | modifica wikitesto]
  • Benchmark multiutente AIM : composto da un elenco di test che possono essere combinati per creare un "mix di carico" che simuli una funzione specifica del computer su qualsiasi sistema operativo di tipo UNIX.
  • Bonnie ++ - benchmark del file system e del disco rigido
  • BRL-CAD - suite di benchmark indipendente dall'architettura multipiattaforma basata su prestazioni di ray tracing multithread; baseline contro un VAX-11/780; e utilizzato dal 1984 per valutare le prestazioni relative della CPU, le differenze del compilatore, i livelli di ottimizzazione, la coerenza, le differenze di architettura e le differenze del sistema operativo.
  • Collective Knowledge (Conoscenza collettiva) : framework personalizzabile e multipiattaforma per il crowdsourcing di benchmark e ottimizzazione dei carichi di lavoro degli utenti (come il deep learning) su hardware fornito da volontari
  • Coremark : benchmark di elaborazione integrata
  • Data Storage Benchmark - una continuazione RDF del LDBC Social Network Benchmark, dal progetto Hobbit[9]
  • DEISA Benchmark Suite - benchmark di applicazioni scientifiche HPC
  • Dhrystone : prestazioni aritmetiche di interi, spesso riportate in DMIPS (Dhrystone milioni di istruzioni al secondo)
  • DiskSpd : strumento da riga di comando per il benchmarking dello storage che genera una varietà di richieste su file , partizioni o dispositivi di archiviazione del computer
  • Embench™: benchmark portatili e open source, per il benchmarking di sistemi profondamente integrati; presuppongono la presenza di nessun sistema operativo, supporto minimo per le librerie C e, in particolare, nessun flusso di output. Embench è un progetto della Free and Open Source Silicon Foundation .
  • Faceted Browsing Benchmark (Benchmark di navigazione sfaccettata): sistemi di benchmark che supportano la navigazione attraverso i dati collegati tramite transizioni iterative eseguite da un utente intelligente, dal progetto Hobbit[10]
  • Fhourstones : un benchmark intero
  • HINT : progettato per misurare le prestazioni complessive della CPU e della memoria
  • Iometer - Strumento di misurazione e caratterizzazione del sottosistema I / O per sistemi singoli e cluster.
  • IOzone - Benchmark del filesystem
  • Kubestone - Operatore di benchmarking per Kubernetes e OpenShift
  • Benchmark LINPACK - tradizionalmente utilizzati per misurare i FLOPS
  • Livermore loop
  • Benchmark paralleli NAS
  • NBench - suite di benchmark sintetici che misura prestazioni aritmetiche di interi
  • PAL : un punto di riferimento per i motori fisici in tempo reale
  • PerfKitBenchmarker : una serie di benchmark per misurare e confrontare le offerte cloud.
  • Phoronix Test Suite - suite di benchmarking multipiattaforma open source per Linux, OpenSolaris, FreeBSD, OSX e Windows. Include una serie di altri benchmark per semplificare l'esecuzione.
  • POV-Ray - rendering 3D
  • Tak (funzione) : un semplice benchmark utilizzato per testare le prestazioni di ricorsione
  • Benchmark TATP - Benchmark elaborazione transazioni di applicazioni di telecomunicazione
  • TPoX - Un benchmark di elaborazione delle transazioni XML per i database XML
  • VUP (VAX unit of performance) - chiamato anche VAX MIPS
  • Whetstone : prestazioni aritmetiche in virgola mobile, spesso riportate in milioni di istruzioni Whetstone al secondo (MWIPS)

Benchmark di Microsoft Windows

[modifica | modifica wikitesto]
  • BAPCo : MobileMark, SYSmark, WebMark
  • CrystalDiskMark
  • Futuremark : 3DMark , PCMark
  • PiFast
  • SuperPrime
  • Super PI
  • Cote
  • Windows System Assessment Tool, incluso con Windows Vista e versioni successive, che fornisce un indice ai consumatori per valutare facilmente i propri sistemi
  • Worldbench (fuori produzione)
  • InfinityBench[11]
  1. ^ AMD aveva ragione: i benchmark favorirono i Pentium 4: http://www.tomshw.it/cont/news/amd-aveva-ragione-i-benchmark-favorirono-i-pentium-4/60336/1.html Archiviato il 28 dicembre 2014 in Internet Archive.
  2. ^ Wei Dai e Daniel Berleant, Benchmarking Contemporary Deep Learning Hardware and Frameworks: a Survey of Qualitative Metrics (PDF), 2019 IEEE First International Conference on Cognitive Machine Intelligence (CogMI), Los Angeles, CA, USA, IEEE, dicembre 12–14, 2019, pp. 148–155, DOI:10.1109/CogMI48466.2019.00029.
  3. ^ Andreas Ehliar e Dake Liu, Benchmarking network processors (PDF).
  4. ^ LDBC, LDBC Semantic Publishing Benchmark, in LDBC SPB, LDBC. URL consultato il 2 luglio 2018.
  5. ^ LDBC, LDBC Social Network Benchmark, in LDBC SNB, LDBC. URL consultato il 2 luglio 2018.
  6. ^ Transaction Processing Performance Council, TPC-A, su tpc.org, Transaction Processing Performance Council. URL consultato il 2 luglio 2018 (archiviato dall'url originale il 2 luglio 2018).
  7. ^ Transaction Processing Performance Council, TPC-C, su tpc.org, Transaction Processing Performance Council. URL consultato il 2 luglio 2018 (archiviato dall'url originale il 5 dicembre 2008).
  8. ^ Transaction Processing Performance Council, TPC-H, su tpc.org, Transaction Processing Performance Council. URL consultato il 2 luglio 2018 (archiviato dall'url originale il 18 dicembre 2008).
  9. ^ Data Storage Benchmark, su github.com, 28 luglio 2017. URL consultato il 2 luglio 2018.
  10. ^ Faceted Browsing Benchmark, su github.com, 27 luglio 2017. URL consultato il 2 luglio 2018.
  11. ^ InfinityBench, su infinitysoftwarehouse.com. URL consultato il 17 ottobre 2021.

Altri progetti

[modifica | modifica wikitesto]

Collegamenti esterni

[modifica | modifica wikitesto]
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy