260 likes | 376 Views
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”.
E N D
Architettura degli Elaboratoria.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: LOAD RA, Ri, Ra LOAD RB, Ri, Rb ADD Ra, Rb, Ra STORE RC, Ri, Ra INCR Ri IF< Ri, RN, LOOP Esempio for (i = 0; i < N; i++) C[i] = A[i] + B[i] 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
istr istr dato MMU-C P accesso a cache ciclo di clock “utile” ciclo di clock “sprecato” … LOAD RB, Ri, Rb ADD Ra, Rb, Ra … “Domanda-risposta” è inefficiente LOAD RB, Ri, Rb ADD Ra, Rb, Ra Obiettivo: eliminare (minimizzare) i cicli di clock sprecati (P, MMU-C), facendo lavorare le unità della CPU “a pieno regime”
Oggetti di input Oggetti di output Funzione F Parallelismo nell’elaborazione Casi tratti dalla vita di tutti i giorni T = TF Tc = m TF Elaborazione sequenziale Come eseguirla in parallelo?
F Oggetti di input Oggetti di output F . . . F F Parallelismo nell’elaborazione Casi tratti dalla vita di tutti i giorni: “tutti uguali, un po’ per uno” T = TF/ n Tc~ m TF/ n es: n = 4 • Elaborazione parallela : “farm” • Replicazione in n copie
F1 Oggetti di input Oggetti di output F2 F3 F4 Parallelismo nell’elaborazione Casi tratti dalla vita di tutti i giorni : “catena di montaggio” • 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
3 4 1 2 Memoria intelligente: genera un flusso continuo di istruzioni in sequenza CPU pipeline • Stadi del pipeline = fasi dell’interprete firmware: • Chiamata istruzioni • Decodifica e preparazione operandi in registri • Eventuale lettura di valori in memoria • Esecuzione o eventuale scrittura in memoria Cache Istruzioni (IC) Unità Istruzioni (IU) Cache Dati (DC) Unità Esecutiva (EU)
LOAD LOAD ADD 3 4 1 2 Tc m T, per m (num. istr. eseguite) >> num. stadi pipeline T P = 1/T = 1/tc = 1/2t Es : t = 0,5 nsec P = 1 GIPS Le stesse MMU+Cache sono realizzate in pipeline. Si può ottenere: P 1/t = fclock LOAD RA, Ri, Ra LOAD RB, Ri, Rb ADD Ra, Rb, Ra … … CPU pipeline 1. Cache Istruzioni … 2. Unità Istruzioni 3. Cache Dati 4. Unità Esecutiva 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
M CPU CPU CPU CPU CPU Multiprocessor a memoria condivisa 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.
L2 cache L1 cache L1 cache P P P P P P P P Multiprocessor su singolo chip ! Anche su singolo chip (4 – 8 –16 processori) Es: tecnologia Ithanium Architettura SMP(Symmetric MultiProcessor)
2100 2100 2100 2100 2100 2100 2100 2100 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) Sistemi distribuiti ad alte prestazioni Cluster di PC o di Workstation • 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
Reti ad alta banda Esempio su Pisa: una MAN con tecnologia fotonica, banda complessiva: 320 Gbit/sec, da 1 a 32 canali.
Web-object Cache 5 1-6 Back-end Server 3-4 2 Internet Stato delle transazioni in corso Dispatcher Web Farm Esempio di “farm”: Web Server ad alte prestazioni Esempio di Caching sullo stato delle transazioni
2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 2100 Dominio amministrativo Dom. amm. Dom. amm. Linux / Pentium Power PC / MacOS Middleware SUN / Solaris 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
Valore aggiunto: Quality of Service (QoS) Distributed/Web Computing: Objects / Component Software Technology High-performance Computing, Cluster Computing Knowledge Management and Data Intensive Computing Cooperation and Virtual Organizations, Pervasive Computing Aree che confluiscono nel Grid 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
TRENTO MILANO TORINO PADOVA TRIESTE BOLOGNA GENOVA PISA PERUGIA ROMA BARI NAPOLI MATERA LECCE COSENZA PALERMO 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 Larga partecipazione di Università • Costo di Grid.it : 11.1 M€ • 8.1 M€ finanziamento, • > 60% per contratti a giovani ricercatori • + altre sinergie CNR, INFN, CNIT, ASI Nov. 2002 – 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
Department of Computer Science, University of Pisa ASSISTA Programming Environment for High-performance Portable Applications on Clusters, Large-scale Platforms, and Grids 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-performanceComponent-based Grid-aware ASSIST
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