Architettura degli Elaboratori a.a (Appendice B) Introduzione ai Sistemi ad Alte Prestazioni
“High Performance Computing”: motivi “Technology Push”: competitività e spinta tecnologica “Technology Pull”: requisiti di applicazioni “computation-intensive” e “data-intensive” Controllo ambientale e prevenzione di disastri Chimica, biotecnologie, medicina, ed altre scienze Controlli real-time Finanza, e-business, e-government … Data Mining, motori di ricerca, … Necessità di performance superiori di più ordini di grandezza rispetto al tradizionale
Vediamo prima come si possono aumentare le prestazioni di un singolo processore, poi daremo un cenno alle architetture parallele e distribuite con più processori
Esempio LOOP: LOAD RA, Ri, Ra LOAD RB, Ri, Rb ADD Ra, Rb, Ra STORE RC, Ri, Ra INCR Ri IF< Ri, RN, LOOP CPU “tradizionale” (accessi in memoria a domanda-risposta) Cache “perfetta” (prefetching); t c = (caso ottimistico, come se tutta la cache fosse realizzata con il metodo diretto) T c = N (22 + 9t c ) = 43N T = T c /6N ~ 7 P = 1/T = 1/(7 Es: = 0,5 nsec ; P ~ 286 MIPS for (i = 0; i < N; i++) C[i] = A[i] + B[i]
“Domanda-risposta” è inefficiente P MMU-C LOAD RB, Ri, RbADD Ra, Rb, Ra Obiettivo: eliminare (minimizzare) i cicli di clock sprecati (P, MMU-C), facendo lavorare le unità della CPU “a pieno regime” istr … LOAD RB, Ri, Rb ADD Ra, Rb, Ra … accesso a cache ciclo di clock “utile” ciclo di clock “sprecato” dato
Parallelismo nell’elaborazione Oggetti di inputOggetti di output F Funzione Casi tratti dalla vita di tutti i giorni Elaborazione sequenziale T = T F T c = m T F Come eseguirla in parallelo?
Oggetti di output Parallelismo nell’elaborazione Oggetti di input Casi tratti dalla vita di tutti i giorni: “tutti uguali, un po’ per uno” Elaborazione parallela : “farm” Replicazione in n copie T = T F / n T c ~ m T F / n es: n = 4 F F F F...
Parallelismo nell’elaborazione Oggetti di inputOggetti di output Casi tratti dalla vita di tutti i giorni : “catena di montaggio” Elaborazione parallela : “pipeline” Decomposizione in n stadi F = F 4 (F 3 (F 2 F 1 (…))) T = T F / n T c ~ m T F / n es: n = 4 F1F1 F2F2 F3F3 F4F4
Applicazioni del parallelismo Livello dei processi Applicazioni Sistema Operativo Architettura firmware del singolo processore CPU pipeline CPU superscalare Entrambi i livelli: architettura firmware e processi Multiprocessor Cluster di PC/Workstation Sistemi distribuiti e Reti Grid Computing
CPU pipeline Stadi del pipeline = fasi dell’interprete firmware: 1.Chiamata istruzioni 2.Decodifica e preparazione operandi in registri 3.Eventuale lettura di valori in memoria 4.Esecuzione o eventuale scrittura in memoria Cache Istruzioni (IC) Unità Istruzioni (IU) Cache Dati (DC) Unità Esecutiva (EU) Memoria intelligente: genera un flusso continuo di istruzioni in sequenza
CPU pipeline LOAD RA, Ri, Ra LOAD RB, Ri, Rb ADD Ra, Rb, Ra … 1. Cache Istruzioni T T c m T, per m (num. istr. eseguite) >> num. stadi pipeline 2. Unità Istruzioni 3. Cache Dati 4. Unità Esecutiva Ora il Risc ha senso: la riduzione di T prevale sull’aumento di m LOAD ADD … P = 1/T = 1/t c = 1/ Es : = 0,5 nsec P = 1 GIPS Le stesse MMU+Cache sono realizzate in pipeline. Si può ottenere: P 1/ f clock
CPU pipeline e superscalare I valori di P precedenti sono IDEALI In realtà, ci sono degradazioni di P dovute a dipendenze sui dati, istruzioni di salto, ecc P 60% – 95% rispetto a P id Importanza dei COMPILATORI OTTIMIZZANTI Per aumentare ancora P in modo significativo: CPU SUPERSCALARE Cache Istruzioni legge più di una istruzione in un solo tempo di accesso (es: da 4 a 16): interleaving e/o parola lunga tutte attraversano insieme il pipeline P > (>>) 1/ !!! Es: P id 4 – 16 GISP, con = 0,5 nsec
CPU superscalare: tecnologie in evoluzione Multi-Threading Hyper-Threading Very Long Instruction Word (VLIW) … Come “interallacciare” l’esecuzione di “thread” distinti su uno stesso processore
Prestazioni superiori di uno o più ordini di grandezza : processori multipli Livello dei processi Applicazioni Sistema Operativo Architettura firmware del singolo processore CPU pipeline CPU superscalare Entrambi i livelli: architettura firmware e processi Multiprocessor Cluster di PC/Workstation Sistemi distribuiti e Reti Grid Computing
Multiprocessor a memoria condivisa M CPU M... Aumenti di performance (speed-up) di un ordine di grandezza: P qualche GIPS a decine/centinaia di GIPS Degradazione di performance dovuta a conflitti sulla memoria, sincronizzazioni, ecc.
Multiprocessor su singolo chip ! L1 cache PPPP PPPP L2 cache Anche su singolo chip (4 – 8 –16 processori) Es: tecnologia Ithanium Architettura SMP (Symmetric MultiProcessor)
Sistemi distribuiti ad alte prestazioni Cluster di PC o di Workstation 2100 Configurazioni da 10 a 1000 nodi S.O. Linux, Mac, Windows, Solaris Performance da decine di GIPS fino ai 1000 GIPS ed oltre Costo contenuto Rapporto P /costo molto favorevole Rete ad alta banda: 100 Mbit/sec – 1Gbit/sec su scala LAN (Fast Ethernet, Gigabit Ethernet, Myrinet, …) Entro pochi anni: Gbit/sec, anche su scala MAN (ottica)
Reti ad alta banda Esempio su Pisa: una MAN con tecnologia fotonica, banda complessiva: 320 Gbit/sec, da 1 a 32 canali.
Esempio di “farm”: Web Server ad alte prestazioni Web-object Cache Web Farm Internet Dispatcher Back-end Server 3-4 Stato delle transazioni in corso Esempio di Caching sullo stato delle transazioni
Piattaforme abilitanti ad alte prestazioni Cluster eterogenei Virtual Private Networks (VPN), su scala LAN, MAN, WAN Grid 2100 Linux / Pentium 2100 Power PC / MacOS 2100 SUN / Solaris Dominio amministrativoDom. amm Dom. amm. Middleware Cluster omogenei, in generale con nodi multiprocessor (SMP)
Aree che confluiscono nel Grid Computing Distributed/Web Computing: Objects / Component Software Technology High-performance Computing, Cluster Computing Cooperation and Virtual Organizations, Pervasive Computing Knowledge Management and Data Intensive Computing Valore aggiunto: Quality of Service (QoS)
Grid Computing Condivisione di risorse distribuite DATI, CALCOLO, CONOSCENZA in nodi di elaborazione e data-server ad alte prestazioni Visione di una “macchina unica” a livello rete (“next generation Web”) Controllo della Qualità del Servizio (QoS): utilizzare dinamicamente molte risorse disponibili su Grid, per garantire determinati livelli di performance, tolleranza ai guasti, ecc
PISA NAPOLI COSENZA PERUGIA PADOVA GENOVA LECCE MILANO PALERMO ROMA TORINO MATERA BARI BOLOGNA TRENTO TRIESTE CATANIA GRID.IT - Coordinamento Nazionale Ente proponente: CNR Coordinatore scientifico: M. Vanneschi CNR – ISTI, Pisa – D. Laforenza CNR – ISTM, Perugia – M. Rosi CNR – ICAR, Napoli – A. Murli INFN, Padova – M. Mazzucato CNIT, Pisa – G. Prati ASI, Matera – G. Milillo Costo di Grid.it : 11.1 M€ 8.1 M€ finanziamento, > 60% per contratti a giovani ricercatori + altre sinergie CNR, INFN, CNIT, ASI Larga partecipazione di Università Nov – Nov. 2005
Problemi tecnologici e di ricerca nel calcolo ad alte prestazioni Tecnologia software, strumenti e ambienti di programmazione ad alto livello Sviluppo di applicazioni indipendente dall’architettura parallela o distribuita, come nella programmazione su architetture tradizionali Il problema di fondo: Interoperabilità e Portabilità da coniugare con la Performance Indirizzo didattico nella Laurea Specialistica in Tecnologie Informatiche
Ambiente di programmazione ad alto livello per lo sviluppo di applicazioni ad alte prestazioni Projects: ASI-PQE2000 CNR Agenzia 2000 MIUR-CNR Strategic Programme L449/97, 1999 and 2000 MIUR-FIRB Grid.it SAIB – Atos Origin Implementations: Heterogeneous Cluster/Beowulf (on top of ACE) CORBA interoperability First Grid version for Grid – AssistConf (on top of Globus) On-going: High-performance Component- based Grid-aware ASSIST Department of Computer Science, University of Pisa ASSIST A Programming Environment for High-performance Portable Applications on Clusters, Large-scale Platforms, and Grids Department of Computer Science, University of Pisa ASSIST A Programming Environment for High-performance Portable Applications on Clusters, Large-scale Platforms, and Grids
Gruppo “Piattaforme Abilitanti ad Alte Prestazioni” Dipartimento di Informatica, Università di Pisa ASSIST Group Professori: M. Danelutto, M. Vanneschi Ricercatori: M. Aldinucci, M. Coppola Studenti di Dottorato: C. Bertolli, S. Campa, L. Scarponi, C. Zoccolo Contrattisti/assegnisti: P. Ciullo, L. Dazi, G. Giaccherini, S. Magini, A. Paternesi, P. Pesciullesi, A. Petrocelli, E. Pistoletti, L. Potiti, R. Ravazzolo, M. Torquati, L. Veraldi, G. Virdis, P. Vitale Segretaria del gruppo: Simona Moi