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
© Copyright 2024 ExpyDoc