Università degli Studi di Napoli Federico II - PON

Università degli Studi di Napoli Federico II
Master di I° Livello in
Tecnologie per il CAlcolo Scientifico ad Alte
Prestazioni - CASAP
Tesi di Master
La valutazione delle prestazioni dei datacenter di
nuova generazione
Relatori
Candidato
Prof. G. Laccetti
Dr. Francesco De Bonis
Dr. V. Boccia
matr. Z62000012
Anno Accademico 2012-2013
Table of Contents
1 Introduzione...........................................................................................................4
2 I Benchmark.........................................................................................................5
2.1 Definizione e motivazioni.............................................................................5
2.2 I benchmark: un po' di storia.........................................................................6
3 Suite di benchmark orientate al calcolo.................................................................9
3.1 HPCC.............................................................................................................9
3.2 NAS Parallel Benchmarks (NPB)................................................................10
3.3 I benchmark SPEC......................................................................................12
3.4 HPL benchmark...........................................................................................13
3.5 Benchmark per GPU...................................................................................14
3.5.1 The Scalable HeterOgeneous Computing Benchmark suite (SHOC)....15
3.5.2 HPL utilizzato su GPU..........................................................................16
4 Suite di benchmark orientate ai dati.....................................................................17
Francesco De Bonis Z62000012
Pagina 2 di 25
4.1 IOZONE benchmark...................................................................................17
4.2 Graph500......................................................................................................19
5 La valutazione energetica dei datacenter.............................................................21
Conclusioni .............................................................................................................23
Francesco De Bonis Z62000012
Pagina 3 di 25
1
Introduzione
I datacenter moderni comprendono risorse di ogni tipo: di calcolo (con processori
multicore, eventualmente anche con GPGPU), di storage (NAS, SAN, etc.) e di rete.
Tali risorse sono interconnesse tra loro mediante svariati paradigmi per formare
architetture complesse multilivello che vanno valutate sia in ogni loro singola
componente sia nel modo con il quale tali componenti lavorano insieme. Con
l'aumentare della complessità dei sistemi di calcolo e di storage, sono diventati più
completi e complessi anche gli strumenti per il loro benchmarking. Il presente
lavoro di tesi vuole fornire una panoramica generale sui sistemi di benchmarking
per la valutazione delle prestazioni delle risorse dei datacenter.
Nel cap. 2 viene riportata una panoramica storica sui primi e più noti benchmark,
nei capitoli 3 e 4 vengono introdotte le principali suite di benchmark orientate al
calcolo e ai dati; infine nel capitolo 5 sono riportate alcune osservazioni sul ruolo
oggi ricoperto dai benchmark non solo per la valutazione dell'efficienza
prestazionale relativa alla gestione del calcolo e della memorizzazione, ma anche
per fornire indicazioni relative ai consumi energetici anche al fine di abbattere sia i
costi di gestione dei grandi datacenter, sia per ridurre l'impatto ambientale degli
stessi.
Francesco De Bonis Z62000012
Pagina 4 di 25
2
I Benchmark
2.1
Definizione e motivazioni
Il benchmark[1] è un esame comparativo delle prestazioni hardware o software. Il
suo utilizzo consiste in un insieme di test volti a misurare le prestazioni delle
componenti di un computer, di un computer o di un insieme di computer, nello
svolgimento di diverse operazioni.
I Benchmark si possono classificare in:
•
applicativi che tendono a valutare il sistema nel suo complesso;
•
sintetici che considerano le prestazioni di singoli componenti del computer.
Ogni benchmark, alla fine dell'esecuzione, fornisce un risultato di sintesi che può
essere espresso mediante:
•
Punteggio: viene emesso un punteggio di riferimento, adimensionale, che
deriva da un calcolo interno dei valori misurati durante il test in base ad un
algoritmo del benchmark (ad esempio i 3DMark);
•
Valore: viene emesso un valore, dimensionato, con un preciso significato
fisico (secondi, Frame per secondo, IOPS).
Attraverso le due modalità suddette, i benchmark consentono di valutare le
prestazioni dei calcolatori nell'eseguire calcoli di vario tipo o operazioni di natura
gestionale.
Un'altra classificazione dei benchmark è quella che fa riferimento, invece, a come
sono resi disponibili per il download:
•
Codice sorgente: Il fatto di disporre del codice sorgente della suite di
programmi che
costituiscono il benchmark, da la duplice possibilità di
utilizzare il benchmark su un elevato numero di piattaforme (basta
ricompilarlo per ottenere una versione oggetto del benchmark ottimizzata per
l'architettura) ed è possibile selezionare anche solo una parte dei programmi
Francesco De Bonis Z62000012
Pagina 5 di 25
della suite (perchè magari non si è interessati a tutti)
•
Codice oggetto: in questo caso è possibile il confronto di piattaforme che
possono eseguire il codice oggetto del benchmark e quindi si rivolge ad un
numero limitato di tipi di piattaforme.
In ogni caso, in generale, tutti i benchmark dovrebbero avere le seguenti
caratteristiche:
•
essere facili da utilizzare e non essere troppo complicati nell'attività di report
(l’interpretazione dei risultati diventerebbe troppo ardua);
•
capacità di fornire misure di prestazioni rispetto alle operazioni
fondamentali;
•
capacità di eseguire algoritmi di base consolidati ;
•
possibilità di ripetere la stessa misura al fine di garantirne la veridicità;
•
portabilità da una piattaforma ad un’altra;
•
essere riconosciuti da un'ampia comunità.
Tipicamente l'utilizzo dei benchmark avviene da parte di:
•
utenti finali: per confrontare le prestazioni di differenti sistemi di
elaborazione (ad esempio nelle operazioni di acquisizione di nuovi sistemi
di calcolo da parte di acquirenti presso differenti vendor);
•
progettisti di sistemi informatici: per validare ed eventualmente rettificare
i sistemi di calcolo nelle fasi di progettazione degli stessi;
•
gestori dei sistemi: per valutare le caratteristiche dei sistemi di calcolo
perchè siano utilizzati in modo efficace ed efficiente dagli utenti.
2.2
I benchmark: un po' di storia
Tra gli anni settanta e gli anni ottanta, con la nascita dei primi centri di calcolo,
contenenti sistemi di calcolo e storage interconnessi mediante reti, la comunità
Francesco De Bonis Z62000012
Pagina 6 di 25
scientifica incominciò ad sentire l'esigenza di confrontare le prestazioni dei vari
sistemi disponibili. Proprio per soddisfare questo bisogno nacquero i primi
benchmark. Tra i primi e più rilevanti ricordiamo: Whetstones, Dhrystones,
Khornerstones, ECperf, GPC, RAMP-C e Linpack.
•
Whetstones benchmark[2] è un benchmark sintetico per valutare le
prestazioni dei computer. E' stato scritto in Algol 60 nel 1972 presso il
National Physical Laboratory nel Regno Unito e derivato dalle statistiche sul
comportamento dei programmi, raccolti sul computer KDF9 , utilizzando un
versione modificata del suo compilatore Whetstone Algol 60. Il
comportamento del programma replicava quello di un tipico programma
scientifico KDF9 e misurava principalmente le prestazioni relative alle
operazioni floating-point. Versioni del codice sorgente pre-compilati sono
disponibili in C/C++, Basic, Visual Basic, Java ma, la versione Fortran ha
reso Whetstone il primo benchmark di uso standard per la valutazione delle
prestazioni dei computer;
•
Dhrystones benchmark [3] come Whetstone, è un benchmark sintetico, nel
senso che è un semplice programma accuratamente progettato per imitare
statisticamente l'utilizzo del processore da parte di un insieme di programmi
comuni, i risultati vengono espressi in dhrystones al secondo cioè il numero
di volte che il programma può essere eseguito in un secondo;
•
Khornerstones benchmark [4] è composto da ben 21 test separati e
comprende altri programmi, tra cui anche i benchmark Whetstones e
Dhrystones, consentendo di valutare le prestazioni complessive del sistema.
•
ECPref benchmark [5] è un benchmark Java EE realizzato da Sun per
misurare le prestazioni dei container EJB. È stato progettato per misurare le
funzioni interne come la gestione della memoria, il pool di connessioni e
caching, piuttosto che l'interfaccia grafica o il database di I/O. I risultati sono
misurati in Benchmark Business Operations per minuto (BBops/min), che è
Francesco De Bonis Z62000012
Pagina 7 di 25
la combinazione del numero totale delle transazioni dei client e workorders
processati in un minuto;
•
GPC benchmark [6] è un pacchetto di programmi nato per valutare le
prestazioni grafiche di un sistema ed è formato dai seguenti benchmark
grafici: APC, MBC, OPC, PLB e XPC. Contiene: test delle applicazioni
APC, test multimedia MBC, test OpenGL OPC, test per Window XPC, etc.
•
Ramp-c benchmark [7][8] misura le “capacità limite” di un sistema
informatico. Grazie alla combinazione di un numero crescente di transazioni
e un numero crescente di clienti il benchmark stressa il sistema in esame fino
al raggiungimento del limite fisico di clienti ed operazioni che esso è in
grado di supportare. Tale limite rappresenta la capacità teorica del sistema.
Tipicamente la capacità reale del sistema è circa il 70% della capacita teorica
fornita dal benchmark;
•
Linpack benchmark [9][10] è una libreria software sviluppata per valutare
le prestazioni dei supercomputer rispetto alle operazioni floating point. In
particolare questo benchmark misura quanto rapidamente il computer risolve
un sistema di equazioni lineari di classe N del tipo Ax=b, che richiede
2/3·N3+2·N2 operazioni in virgola mobile. Il risultato del test è mostrato in
operazioni in virgola mobile per secondo “FLOPS”.
Per i moderni supercalcolatori il benchmark linpack di base ormai è ritenuto
obsoleto; al suo posto viene utilizzato l'High Performance Linpack (HPL), una
versione portabile del benchmark LINPACK utilizzata come benchmark di
riferimento per stilare la classifica dei primi 500 supercomputer più potenti del
mondo (Top 500).
Francesco De Bonis Z62000012
Pagina 8 di 25
3
Suite di benchmark orientate al calcolo
Con l'avvento di più moderne tecnologie per il calcolo, le reti e per lo storage e con
la realizzazione di moderni datacenter, l'idea di benchmark si è evoluta arrivando a
comprendere suite complete di software che testano non solo i singoli sistemi ma
anche i datacenter stessi in tutte le loro componenti e funzionalità.
Allo stato attuale, i più noti pacchetti di benchmark per la valutazione delle
prestazioni di calcolo delle risorse dei data center sono i seguenti:
•
HPCC [11][12][13];
•
NAS Parallel Benchmarks (NPB) [14][15][16];
•
SPEC [6];
•
HPL [10].
Per le GPGPU al momento sono disponibili pochi benchmark, generalmente forniti
dalle case produttrici dell'hardware (ATI, NVIDIA, …).
3.1
HPCC
HPC Challenge è il TPP (toward peak performance) del Linpack benchmark; è una
suite di test che mira a testare i sistemi di calcolo da diversi punti di vista in modo
da fornire una stima veritiera della performance reali dei sistemi. E` possibile
contemplare due scenari di esecuzione del benchmark:
1. locale: singolo nodo di calcolo
2. globale:
1. sistema multinodo in cui ogni processore dell'intero sistema sta
eseguendo calcoli, ma non si fanno comunicazioni internodo;
2. sistema multinodo in cui tutti i processori presenti effettuano calcoli e
scambiano dati mediante fasi di comunicazione.
Francesco De Bonis Z62000012
Pagina 9 di 25
HPCC è composto, nella sua versione attuale, da sette test base: HPL, DGEMM,
STREAM, PTRANS, RandomAccess, FFT, Comunication Bandwidth and Latency.
•
HPL è il test di riferimento del sistema e consiste nella risoluzione di un
sistema lineare a matrice densa di reali in doppia precisione;
•
DGEMM misura la velocità di esecuzione delle operazioni floating point in
doppia precisione delle moltiplicazioni matrici-matrici;
•
STREAM è un semplice benchmark sintetico che misura la larghezza di
banda sostenibile dalla memoria (in GB/s)
•
PTRANS Misura la capacità di gestione di un grande array di dati nella
memoria del multiprocessore.
•
RandomAccess misura la velocità di aggiornamenti casuali della memoria
(GUPS).
•
FFT misura il tempo esecuzione della trasformata discreta di Fourier
monodimensionale
•
Comunication bandwidth and latency è un insieme di serie di test volti a
misurare la latenza e larghezza di banda per schemi di comunicazione tra un
numero di nodi via via crescente.
3.2
NAS Parallel Benchmarks (NPB)
Il NAS Parallel Benchmarks (NPB) è un insieme di benchmark, sviluppati e
manutenuti dalla NASA mirati alla valutazione delle prestazioni dei supercomputer
ad alto grado di parallelismo. Cinque kernel (EP, MG, CG, FT, IS), che risolvono
applicazioni di fluidodinamica, e tre pseudo-applicazioni "pencil-and-pape" (LU,
SP, BT), compongono il paccheto NPB1. La suite di benchmark è stata ampliata per
includere la gestione di mesh adattative non strutturate, parallel I/O, multi-zone
Francesco De Bonis Z62000012
Pagina 10 di 25
applications e test per griglie computazionali. In NPB le dimensioni del problema
sono predefinite e indicate come classi. Implementazioni di riferimento sono
disponibili per i paradigmi di calcolo parallelo MPI e OpenMP (NPB 2 e NPB3).
•
EP (Embarrassingly Parallel Benchmark) risolve problemi di tipo
"Embarrassingly parallel” ad es. le applicazioni "Monte Carlo". Dal
momento
che
richiede
quasi
nessuna
comunicazione,
in
un certo senso questo benchmark fornisce una stima delle massime
prestazioni raggiungibili di un particolare sistema nell'esecuzione di
operazioni gloating point;
•
MG (The Multigrid Benchmark) risolve un problema di Poisson alle
derivate parziali;
•
CG (Conjugate Gradient Benchmark) utilizza il metodo del gradiente
coniugato per risolvere sistemi lineari con matrici simmetriche, definite
positive, sparse e di grandi dimensioni. Vengono effettuate comunicazioni tra
i processori, ad intervalli di tempo irregolari che mettono quindi a dura prova
il sistema di calcolo nel suo complesso;
•
FT (FFT PDE Benchmark) Questo benchmark utilizza FFT per risolvere un
equazione differenziale alle derivate parziali in tre dimensioni. Questo è un
buon test per valutare le prestazioni delle fasi di comunicazione. Nelle
specifiche del NAS è consentito l'assemblaggio di codici di routine e di
librerie per il prodotto di matrici e l'esecuzione di FFT unidimensionali,
bidimensionali o tridimensionali;
•
IS (Integer Sort Benchmark) esegue un'operazione di sorting. Questo tipo
di operazione è di uso comune in applicazioni della fisica delle particelle in
cui le varie particelle sono assegnate a delle celle. L'operazione di sorting
viene usata per riassegnare le particelle alle celle appropriate;
•
LU (lower-upper diagonal benchmark) Questo è il primo dei simulatori
Francesco De Bonis Z62000012
Pagina 11 di 25
CDF. Esso non esegue una fattorizzazione LU, ma si avvale invece di un
metodo SSOR per risolvere un sistema lineare sparso a blocchi di
dimensione 5x5;
•
SP (Scalar Pentadiagonal benchmark) è il secondo dei simulatori CDF e
risolve più sistemi indipendenti di equazioni scalari pentadiagonali;
•
BT (Block Tridiagonal benchmark) è l'ultimo dei simulatori CDF e risolve
più sistemi di equazioni indipendenti tridiagonali a blocchi ciascuno di
dimensione 5x5.
3.3
I benchmark SPEC
SPEC (Standard Performance Evaluation Corporation), è un' organizzazione
americana non-profit che si propone di "produrre, creare, mantenere e sostenere una
suite standardizzata" di benchmark. SPEC è stata fondata nel 1988 e, ad oggi, i suoi
benchmark sono ampiamente utilizzati per valutare le prestazioni dei sistemi
informatici. La società si è evoluta in un'organizzazione più ampia che comprende
quattro divisioni: grafica e Workstation Performance Group (GWPG), il gruppo
High Performance (HPG), i sistemi Open Group (OSG) e il più recente, il Gruppo
di Ricerca (RG). Ogni gruppo progetta e realizza propri pacchetti di benchmark. In
particolare, il gruppo HPG sviluppa due pacchetti diversi per il benchmarking di
risorse HPC: uno per architetture parallele a memoria distribuita (SPEC MPI2007)
e l'altro per architetture parallele a memoria condivisa (SPEC OMP2012).
SPEC MPI2007 è una suite di benchmark per la valutazione delle prestazioni di
applicazioni computing intensive che utilizzano il Message Passing Interface (MPI)
Mentre è efficace nel rilevare le prestazioni del sistema rispetto ai componenti
tradizionali (CPU, RAM, …) non fornisce informazioni sulle GPU o sul sistema di
I/O.
SPEC OMP2012 è un benchmark progettato per misurare le prestazioni
Francesco De Bonis Z62000012
di
Pagina 12 di 25
applicazioni basate sullo standard OpenMP 3.1 per architetture a memoria condivisa
ed elaborazione parallela. Il benchmark comprende anche una metrica opzionale per
misurare i consumi di energia. La suite è composta da 14 codici scientifici e
applicativi di ingegneria, che coprono l'intera gamma di possibili applicazioni, dalla
fluidodinamica computazionale (CFD) alla modellazione molecolare e alla
manipolazione delle immagini. Le misurazioni del consumo energetico si basano
sulla metodologia di potenza SPEC Benchmark.
3.4
HPL benchmark
HPL è un pacchetto software per la risoluzione di sistemi lineari densi in doppia
precisione su architetture a memoria distribuita. E` una implementazione portabile e
libera del benchmark High Performance Computing Linpack.
I processi MPI che partecipano alla risoluzione sono organizzati in una griglia
bidimensionale di dimensione P×Q e la matrice A del sistema è distribuita tra
processi secondo una distribuzione ciclica a blocchi bidimensionali
L'algoritmo utilizzato da HPL si basa su una decomposizione LU della matrice A
con l'agoritmo di Gauss con pivoting parziale.
Il pacchetto HPL fornisce un programma di controllo e logging in grado di dare
informazioni sulla precisione della soluzione ottenuta e sul tempo impiegato per
calcolarla. Le migliori prestazioni ottenibili con questo software sul sistema
dipendono da una grande varietà di fattori, motivo per il quale il benchmark va
provato più volte prima al fine di individuare la giusta combinazione dei paramentri
di esecuzione ed avere in tal modo una stima veritiera delle prestazioni del sisyema
esaminato.
Il risultato viene ottenuto attraverso l'esecuzione di una batteria di esecuzioni in
ognuna delle quali si risolve il sistema dato per dimensioni del problema sempre
Francesco De Bonis Z62000012
Pagina 13 di 25
crescenti e schemi di distribuzione dei processi differenti. Il benchmark produce non
solo la massima performance ottenuta Rmax per la dimensione del problema N ma
anche quella ottenuta per la risoluzione del problema di dimensione N/2. Questi
valori, insieme all'Rpeak (prestazioni teoriche massime), sono utilizzati dalla
TOP500 per stilare la lista dei 500 supercalcolatori più veloci al mondo, fornendo
di fatto un sistema che garantisce l'uniformità di rappresentazione dei valori di
performance dei sistemi di calcolo.
3.5
Benchmark per GPU
Negli ultimi anni le schede con acceleratori grafici sono di fatto state considerate
non più solo componenti destinati ad operazioni grafiche ma sono stati fatti molti
sforzi per poterli utilizzare nelle operazioni di calcolo general purpose. Questo
approccio nell'utilizzo degli acceleratori grafici è oggi noto con il nome di
(GPGPU) General Purpose GPU.
Uno dei progressi più importanti nella GPU computing è la soluzione CUDA di
NVIDIA, che fornisce sia il software di supporto, il linguaggio di programmazione
CUDA esteso dal linguaggio popolare C e il motore di calcolo hardware CUDAenabled; un'architettura altamente parallela con centinaia di core e con larghezza di
banda ad elevata di memoria.
Grazie al supporto CUDA, molte applicazioni commerciali (Creative Suite di
Adobe, Mathematica, ecc.) e diverse librerie per il calcolo scientifico (CUBLAS,
CUFFT, CURAND, PETSc, ecc.) sono oggi in grado di essere eseguite su GPGPU.
Il modello di calcolo del GPU Computing prevede l'uso combinato di CPU e GPU
in un modello di elaborazione a co-processing eterogeneo. La parte sequenziale
dell'applicazione viene eseguita sulla CPU, mentre la parte computazionalmente
più onerosa viene eseguita dalla GPU.
Al fine di valutare l’efficienza di tali sistemi ibridi, si sono sviluppati diversi
benchmark la maggior parte dei quali per GPU NVIDIA che utilizzano CUDA. Tra
Francesco De Bonis Z62000012
Pagina 14 di 25
questi possiamo annoverare senz'altro Sbollentare e Rodinia composti da
applicazioni scientifiche e kernel.
Di più ampio utilizzo, in quanto non specificatamente rivolti a GPU NVIDIA sono:
•
SHOC Benchmark suite [17]
•
HPL (adattato alle GPU) [18][19].
3.5.1 The Scalable HeterOgeneous Computing
Benchmark suite (SHOC)
La suite di benchmark SHOC è stata progettata per fornire un modo standardizzato
per misurare le prestazioni e la stabilità di architetture ad alte prestazioni di calcolo
non tradizionali. I benchmark della suite si dividono in due categorie principali:
stress
test
e
test
di
performance.
Gli
stress
test
utilizzano
kernel
computazionalmente impegnativi per identificare i dispositivi OpenCL con cattiva
gestione della memoria, insufficiente raffreddamento, o altre tematiche relative alla
diagnostica hardware del dispositivo. Gli altri test misurano aspetti delle prestazioni
del sistema facendo uso di diversi kernel sintetici, nonché le comuni operazioni che
si effettuano in algoritmi paralleli.
In generale è possibile eseguire ogni benchmark della suite in 3 diverse modalità:
•
Seriale che esegue le versioni sequenziali dei benchmark che vengono
eseguite su un singolo nodo/dispositivo.
•
Embarrassingly Parallel (EP) che esegue il benchmark su più dispositivi o
nodi di un cluster senza alcuna comunicazione tra dispositivi o tra i nodi.
•
True Parallel (TP) che esegue il benchmark su più dispositivi o nodi di un
cluster con fasi di comunicazione tra dispositivi o tra i nodi.
Oltre al benchmark basato su OpenCL, SHOC comprende anche una versione
CUDA, per molte sue routine per garantire la possibilità di confronto con la
Francesco De Bonis Z62000012
Pagina 15 di 25
versione OpenCL.
3.5.2 HPL utilizzato su GPU
Da qualche anno, l'utilizzo delle Graphic Processor Unit (GPU) si è esteso anche a
settori applicativi diversi da quelli in cui generalmente venivano adoperate. In
particolare oggi le GPGPU possono essere impiegate per aumentare le prestazioni
di applicazioni HPC compute-intensive relative ad alcuni settori della scienza.
Centri di ricerca di tutto il mondo stanno quindi studiando le caratteristiche delle
GPU per meglio adattare le proprie applicazioni al fine di renderle più performanti.
Come per tutti gli altri dispositivi di calcolo e di storage, anche per le GPU sono
nati negli anni diversi strumenti di benchmarking, i più noti dei quali sono stati
introdotti nei precedenti capitoli. Gli sviluppatori dell'High Performance Linpack
(HPL), il benchmark di riferimento per i sistemi HPC, oltre alla versione standard
che stressa la CPU e la memoria dei sistemi in esame, ha prodotto negli ultimi anni
anche una versione per valutare le prestazioni delle GPU.
Il lavoro di porting del benchmark HPL è stato effettuato utilizzando
l'implementazione per GPGPU NVIDIA della famiglia Tesla delle librerie di base
per l'algebra lineare BLAS (CUBLAS).
Francesco De Bonis Z62000012
Pagina 16 di 25
4
Suite di benchmark orientate ai dati
4.1
IOZONE benchmark
Iozone [20] è un benchmark per file system. Il benchmark genera test di vario tipo
per stressare il filesystem e misura le prestazioni di svariate operazioni sui file:
read, write, re-read, re-write, read backwards, read strided, fread, fwrite, random
ead/write, pread/pwrite variants, aio_read, aio_write, mmap.
•
Write: Questo test misura la performance di scrittura di un nuovo file.
Quando un nuovo file viene scritto, non devono essere conservati solo dati
ma anche le informazioni di overhead per tenere traccia di dove si trovano i
dati sul supporto di memorizzazione. Tali informazioni aggiuntive si
chiamano “metadati” e sono relative a percorsi, spazio occupato e tutti i dati
associati a un file che non sono propriamente dati contenuti nel file. A causa
di tali dati aggiuntivi, le prestazioni relative alle operazioni di prima scrittura
di un file risultano inferiori a quelle ottenute nei test di ri-scrittura dello
stesso file;
•
Re - Write: Questo test misura le prestazioni di scrittura di un file già
esistente;
•
Read: Questo test misura la performance di lettura di un file esistente.
•
Re - Read: Questo test misura le prestazioni di lettura di un file che è stato
recentemente letto. È normale che la prestazioni siano superiori rispetto a
quelle ottenute nel tesi di lettura poiché il sistema operativo, generalmente,
mantiene nella cache i dati relativi ai file letti di recente. La cache in questo
caso viene utilizzata per soddisfare e migliorare le performance di lettura.
•
Random Read: Questo test misura le prestazioni di lettura di un file con
Francesco De Bonis Z62000012
Pagina 17 di 25
accessi a porzioni casuali del file. Per questo tipo di test, le prestazioni del
sistema dipendono, per questo tipo di attività, da diversi fattori, quali:
dimensioni della cache del sistema operativo, il numero di dischi, tempo di
latenza richiesta e altri.
•
Random Write: Questo test misura le prestazioni di scrittura di un file con
accessi a porzioni casuali del file. Anche in questo caso le prestazioni del
sistema dipendono, per questo tipo di attività, da diversi fattori, quali:
dimensioni della cache del sistema operativo, il numero di dischi, tempo di
latenza richiesta e altri.
•
Random Mix: Questo test misura le prestazioni di lettura e scrittura di un
file con accessi a porzioni casuali del file. Anche in questo caso le
prestazioni del sistema dipendono, per questo tipo di attività, da diversi
fattori, quali: dimensioni della cache del sistema operativo, il numero di
dischi, tempo di latenza richiesta e altri. La scelta della combinazione di test
di lettura/ scrittura è fatta
utilizzando round robin. Per il corretto
funzionamento del test sono necessari più di un thread/processo.
•
Backwards Read: Questo test misura le prestazioni di lettura di un file
all'indietro. Esistono infatti software, come l'applicativo Nastran che
effettuano proprio tali operazioni sui file di input che sono generalmente
anche di dimensioni considerevoli (dell'ordine di Gbyte, Tbyte).
•
Record Rewrite: Questo test misura le prestazioni di scrittura e ri-scrittura
di una determinata porzione all'interno di un file (spot). Se la dimensione
dello spot è abbastanza piccola da entrare nella cache di dati della CPU le
prestazione risultano molto alte.
•
Fwrite: Questo test misura le prestazioni di scrittura di un file utilizzando la
funzione fwrite che esegue operazioni di scrittura nel buffer dello spazio di
indirizzamento dell'utente.
•
Frewrite: Questo test misura le prestazioni di riscrittura di un file
Francesco De Bonis Z62000012
Pagina 18 di 25
utilizzando la funzione di libreria fwrite. Scrivendo in un file esistente il test
di solito ottiene prestazioni maggiori di quelle che si ottengono con il test
Fwrite in quanto non sono richieste operazioni sui metadati.
•
Fread: Questo test misura la performance di lettura di un file utilizzando la
funzione di libreria fread.
•
Frerear: Questo test è uguale al fread eccetto che in questo caso il file è
stato letto di recente. Questo generalmente comporta maggiori prestazioni, in
quanto il sistema operativo dovrebbe avere i dati relativi al file nella cache.
•
Async I/O: Un altro meccanismo che è supportato da molti sistemi operativi
per eseguire l'I/O è POSIX async I/O. L'applicazione utilizza lo standard
POSIX async interface di I/O per effettuare il test.
4.2
Graph500
Oltre alle applicazioni HPC che utilizzano molto intensamente le CPU dei
supercalcolatori, molte altre necessitano di gestire enormi quantità di dati e per tale
ragione vengono classificate come “data intensive”. In tali casi, i parametri e le
metriche di performance esaminate per applicazioni HPC non forniscono
informazioni utili sull'idoneità dei sistemi di super calcolo. Negli ultimi anni,
dunque si stanno prendendo in esame altri parametri di riferimento necessari per
guidare la progettazione di architetture hardware e sistemi software destinati a
supportare in modo adeguato tali applicazioni e molti sono i benchmark nati per la
stima di tali parametri. Uno di essi è la suite di benchmark Graph 500 [21] che in
questi anni è diventato un punto di riferimento per fornire una valutazione dei
sistemi che devono essere utilizzati da applicazioni data intensive.
Graph 500 simula il comportamento di un'applicazione data intensive effettuando
alcune operazioni di base: accesso frequente a dati di grandi dimensioni, ricerca di
dati, processamento dei dati. Le varie fasi (o kernel) si alternano per stressare il
sistema.
Francesco De Bonis Z62000012
Pagina 19 di 25
Il benchmark effettua le seguenti operazioni:
•
genera i dati attraverso un “data generator”
•
a partire dai dati generati genera un grafo strutturato (kernel 1)
•
effettua una ricerca sul grafo ed estrae dei dati di lavoro
•
processa ogni set di dati estratti
•
stampa i dati di performance.
Il benchmark lavora su problemi di 5 dimensioni diverse:
•
toy: input file da 17GB
•
mini: input file da 140GB
•
small: input file da 1TB
•
medium: input file da 17TB
•
large: input file da 140TB
•
huge: input file da 1.1PB.
Francesco De Bonis Z62000012
Pagina 20 di 25
5
La valutazione energetica dei datacenter
Negli ultimi anni è cresciuta notevolmente l'esigenza da parte degli individui di
accedere a risorse digitali ed utilizzare nei modi più disparati. Con essa sono però
cresciuti anche i consumi energetici necessari a “mantenere accese” tali risorse.
Come gia accaduto in settori, dove l'economia mondiale strizza sempre più l'occhio
all'efficienza energetica, anche nell' IT si è cominciato a rendere disponibili servizi
in ottica di efficienza energetica anche per renderdli più sostenibili sia in termini
economici che dal punto di vista ambientale. In quest'ottica, sono e saranno sempre
più necessari strumenti utili per valutare, e quindi migliorare, l'efficienza energetica
dei servizi IT.
Per decenni, benchmark quali il Linpack (HPL) è stato ampiamente utilizzato per
valutare le prestazioni dei sistemi e per per classificare i 500 supercomputer più
veloci al mondo per quanto riguarda la loro efficienza computazionale. L' uso di
HPL per classificare i sistemi ha i suoi limiti infatti HPL sottolinea principalmente
solo le capacità di calcolo senza fornire indicazione su come le risorse siano state
usate in maniera efficiente dal punto di vista energetico. Oggi quindi diventa
importante identificare benchmark in grado di valutare sia l'efficienza prestazionale
che quella energetica. Sono attualmente disponibili alcuni benchmark per misurare
le prestazioni energetiche dei sistemi sotto diversi carichi di lavoro.
•
SPEC: SPEC è una società senza scopo di lucro che si concentra sulla
creazione di benchmark. Un sottocomitato SPEC ha recentemente sviluppato
un protocollo standard per la misurazione e il reporting del consumo
energetico. SPEC ha inoltre rilasciato un primo benchmark in ottica di
consumo energetico (SPECpower_ssj2008) nel 2008 ed una sua evoluzione
Francesco De Bonis Z62000012
Pagina 21 di 25
(SPECweb_2009) nel 2009, e si è impegnato ad aggiornare i suoi benchmark
per comprendere e misurare il consumo di energia nei sistemi IT;
•
Green 500: [22][23] the Green 500 è una classifica mondiale dei più
efficienti (da entrambi i punti di vista sia prestazionale che energetico) super
computer . The Green 500 è basato sul noto Benchmark HPL e misura il
rapporto del numero di operazioni per secondo effettuate e della quantità di
energia consumata durante la sua esecuzione. L'esecuzione del benchmark
utilizzato dalla Green 500 prevede l'esecuzione un rigoroso protocollo di
misurazione
soprattutto
per
quel
che
compete
la
misurazione
dell'assorbimento elettrico prima, durante e dopo l'esecuzione dello HPL
benchmark.
•
Green Graph 500: [24] Il Green graph 500 è basato sul benchmark
utilizzato dalla Graph 500 e ha come obiettivo quello di fornire uno
strumento per valutare l'efficienza sia prestazionale che energetica di sistemi
di calcolo sottoposti a carichi di lavoro data intensive. Come nel caso del
benchmark utilizzato per stilare la Green 500, anche in questo caso viene
seguito un rigoroso protocollo di misurazione dell'assorbimento elettrico che
prevede anche una sorta di riproducibilità della misurazione (le misure
effettuate in due momenti successivi non possono differire per più di una
piccola percentuale, circa il 2% ).
Francesco De Bonis Z62000012
Pagina 22 di 25
Conclusioni
Il lavoro di tesi ha fornito una panoramica esaustiva sull'utilizzo dei benchmark per
la valutazione delle prestazioni dei datacenter di nuova generazione.
I datacenter, infatti, comprendono oggi risorse di ogni tipo: di calcolo (con
processori multicore, eventualmente anche con GPGPU), di storage (NAS, SAN,
etc.) e di rete. Tali risorse sono interconnesse tra loro mediante svariati paradigmi
per formare architetture complesse multilivello che vanno valutate sia in ogni loro
singola componente sia nel modo con il quale tali componenti lavorano insieme.
Pertanto con l'aumentare della complessità delle risorse, sono diventati più completi
e complessi anche gli strumenti per il benchmarking, tanto che oggi comprendono
procedure per la valutazione dell'efficienza energetica.
Francesco De Bonis Z62000012
Pagina 23 di 25
Bibliografia
1: Source Wikipedia, Books LLC, Computer Benchmarks, 2010
2: , Whetstone Benchmark History and Results, ,
http://www.roylongbottom.org.uk/whetstone.htm
3: A. R. Weiss, Dhrystone Benchmark History, Analysis, "Scores"and Recommendations,
2002
4: W. J. Price, benchmark tutorial, 1989
5: Martin Karlsson, Kevin E. Moore, Erik Hagersten, David A.Wood, Memory
Characterization of the ECperf Benchmark,
6: , SPEC, , http://www.spec.org
7: , , , http://www.oxfordreference.com
8: , , , http://oxfordindex.oup.com
9: , , , www.netlib.org
10: , , , www.top500.org
11: , , , http://icl.cs.utk.edu/hpcc/
12: P.Luszczek, D.Bailey,J.Dongarra, J.Kepner,R.Lucas,R.Rabenseifner,D.Takahashi,
TheHPCChallenge(HPCC)BenchmarkSuite , 2006
13: P. Luszczek, J. J. Dongarra, D. Koester, R. Rabenseifner, B. Lucas, J. Kepner, J.
McCalpin, D. Bailey, D. Takahashi, Introduction to the HPC Challenge Benchmark Suite,
14: F. C. Wong, R. P. Martin, R. H. A. Dusseau, D. E. Culler, Architectural Requirements
and Scalability of theNAS Parallel Benchmarks,
15: Michael Frumkin, Haoqiang Jin and Jerry Yan, Implementation of NAS Parallel
Benchmarks in High Performance Fortran,
16: David H Bailey, The NAS Parallel Benchmarks,
17: A. Danaliszy, G. Mariny, C. McCurdyy, J. S. Meredithy, P. C. Rothy, K. Spaffordy, V.
Tipparajuy, J. S. Vettery, The Scalable HeterOgeneous Computing (SHOC)Benchmark
Suite,
18: Feng Wang, Can-Qun Yang, Yun-Fei Du, Juan Chen, Hui-Zhan Yi, Wei-Xia Xu,
Optimizing Linpack Benchmark on GPU-Accelerated PetascaleSupercomputer,
19: T. Endo, S. Matsuoka, A. Nukada, N. Maruyama, Linpack Evaluation on a
Francesco De Bonis Z62000012
Pagina 24 di 25
Supercomputer with Heterogeneous Accelerators,
20: W. D. Norcott, D. Capps, Iozone Filesystem Benchmark,
21: T. Suzumura, K. Ueno, H. Sato, K. Fujisawa, S. Matsuoka, Performance
Characteristics of Graph500on Large-Scale Distributed Environment,
22: A. Fanara, E Haines, A. Howard, The State of Energy and Performance Benchmarking
forEnterprise Servers,
23: B. Subramaniam, Wu-chun Feng, The Green Index: A Metric for Evaluating SystemWideEnergy Efficiency in HPC Systems,
24: Torsten Hoefler, Graph500 Team, GreenGraph500 Submission Rules, 2012
Francesco De Bonis Z62000012
Pagina 25 di 25