Architettura degli Elaboratori a.a. 2005 - 06 (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 LOOP: Esempio LOAD RA, Ri, Ra LOAD RB, Ri, Rb ADD Ra, Rb, Ra for (i = 0; i < N; i++) STORE RC, Ri, Ra C[i] = A[i] + B[i] INCR Ri IF< Ri, RN, LOOP CPU “tradizionale” (accessi in memoria a domanda-risposta) Cache “perfetta” (prefetching); tc = 2t (caso ottimistico, come se tutta la cache fosse realizzata con il metodo diretto) Tc = N (22t + 9tc) = 43Nt T = Tc/6N ~ 7t P = 1/T = 1/(7t) Es: t = 0,5 nsec ; P ~ 286 MIPS “Domanda-risposta” è inefficiente … LOAD RB, Ri, Rb ADD Ra, Rb, Ra MMU-C istr dato istr … P LOAD RB, Ri, Rb accesso a cache ciclo di clock “utile” ciclo di clock “sprecato” ADD Ra, Rb, Ra Obiettivo: eliminare (minimizzare) i cicli di clock sprecati (P, MMU-C), facendo lavorare le unità della CPU “a pieno regime” Parallelismo nell’elaborazione Casi tratti dalla vita di tutti i giorni Oggetti di input Oggetti di output Funzione F Elaborazione sequenziale Come eseguirla in parallelo? T = TF Tc = m TF Parallelismo nell’elaborazione Casi tratti dalla vita di tutti i giorni: “tutti uguali, un po’ per uno” Oggetti di input F Oggetti di output F ... F F T = TF / n Elaborazione parallela : “farm” Replicazione in n copie Tc ~ m TF / n es: n = 4 Parallelismo nell’elaborazione Casi tratti dalla vita di tutti i giorni : “catena di montaggio” Oggetti di input F1 Oggetti di output F2 F3 F4 Elaborazione parallela : “pipeline” Decomposizione in n stadi F = F4(F3(F2F1(…))) T = TF / n Tc ~ m TF / n es: n = 4 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 1 2 3 4 Cache Istruzioni (IC) Unità Istruzioni (IU) Cache Dati (DC) Unità Esecutiva (EU) Memoria intelligente: genera un flusso continuo di istruzioni in sequenza CPU pipeline 1 LOAD RA, Ri, Ra 2 1. Cache Istruzioni LOAD LOAD ADD 3 4 LOAD=RB, Rb1/2t P = 1/T 1/tRi,c = ADD Ra, Rb, Ra … 2. Unità Istruzioni Es : t = 0,5 nsec …… P = 1 GIPS Le stesse MMU+Cache sono realizzate in pipeline. 3. Cache Dati Si può ottenere: 4. Unità Esecutiva P 1/t = fclock T Tc m T, per m (num. istr. eseguite) >> num. stadi pipeline Ora il Risc ha senso: la riduzione di T prevale sull’aumento di m 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 Pid • 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/t !!! Es: Pid 4 – 16 GISP, con t = 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 CPU CPU CPU ... CPU 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 ! L2 cache L1 cache P P P L1 cache P P P P P 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 2100 2100 2100 • Configurazioni da 10 a 1000 nodi • S.O. Linux, Mac, Windows, Solaris • Performance da decine di GIPS fino ai 1000 GIPS ed oltre 2100 2100 2100 2100 • 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: 100 - 1000 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 5 1-6 3-4 2 Back-end Server Internet Dispatcher Stato delle transazioni in corso Web Farm Esempio di Caching sullo stato delle transazioni Piattaforme abilitanti ad alte prestazioni Cluster omogenei, in generale con nodi multiprocessor (SMP) Cluster eterogenei Virtual Private Networks (VPN), su scala LAN, MAN, WAN Grid Dom. amm. Dominio amministrativo 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 Dom. amm. Linux / Pentium Power PC / MacOS 2100 2100 2100 2100 2100 2100 2100 2100 2100 SUN / Solaris Middleware Aree che confluiscono nel Grid Computing Valore aggiunto: Quality of Service (QoS) Distributed/Web Computing: Objects / Component Software Technology Cooperation and Virtual Organizations, Pervasive Computing High-performance Computing, Cluster Computing Knowledge Management and Data Intensive Computing 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 GRID.IT - Coordinamento Nazionale TRENTO Ente proponente: CNR Coordinatore scientifico: M. Vanneschi MILANO TORINO PADOVA TRIESTE BOLOGNA GENOVA 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 BARI PISA PERUGIA ROMA NAPOLI MATERA Larga partecipazione di Università LECCE COSENZA • 8.1 M€ finanziamento, PALERMO CATANIA Nov. 2002 – Nov. 2005 Costo di Grid.it : 11.1 M€ • > 60% per contratti a giovani ricercatori + altre sinergie CNR, INFN, CNIT, ASI 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 Department of Computer Science, University of Pisa ASSIST A Programming Environment for High-performance Portable Applications on Clusters, Large-scale Platforms, and Grids Projects: Implementations: • ASI-PQE2000 • CNR Agenzia 2000 • Heterogeneous Cluster/Beowulf (on top of ACE) • MIUR-CNR Strategic Programme L449/97, 1999 and 2000 • CORBA interoperability • MIUR-FIRB Grid.it • SAIB – Atos Origin • On-going: High-performance Componentbased Grid-aware ASSIST • First Grid version for Grid – AssistConf (on top of Globus) ASSIST Group Gruppo “Piattaforme Abilitanti ad Alte Prestazioni” Dipartimento di Informatica, Università di Pisa 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