Obiettivo Corso di Calcolo Parallelo Laura Antonelli Istituto di Calcolo e Reti ad Alte Prestazioni Consiglio Nazionale delle Ricerche (ICAR-CNR) Studio di: metodologie e algoritmi supportati da strumenti software e hardware per la risoluzione computazionale di un problema mediante un calcolatore parallelo o ad alte prestazioni Attività di laboratorio Lezioni teoriche 2 Informazioni e-mail: [email protected] Avvisi e Materiale: www.na.icar.cnr.it/~antonelli.l Riferimenti: Un overview sul Calcolo Parallelo A. Murli, Lezioni di Calcolo Parallelo J. Dongarra et al., The Sourcebook of Parallel Computing, Morgan Kaufmann Publishers, 2003 (capitoli 1, 2). A.J. van der Steen, J.J. Dongarra, Overview of Recent Supercomputers, 2013 http://www.top500.org S. Akhter, Jason Roberts, Multi-Core Programming, Intel Press Blaise Barney, Introduction to Parallel Computing, Lawrence Livermore National Laboratory https://computing.llnl.gov/tutorials/parallel_comp/ 4 1 Definizione Velocità/Capacità dei calcolatori ? Un “supercomputer” è il più potente sistema (hardware + software) per la computazione in un determinato periodo di tempo. potenza di un calcolatore = velocità di esecuzione + capacità di memoria + precisione macchina Memoria Calcolo Che cos’è un calcolatore parallelo o ad alte prestazioni o anche un supercomputer 1 Mflop/s 1 Megaflop/s 1 Gflop/s 1 Gigaflop/s 1 Tflop/s 1 Teraflop/s 1 Pflop/s 1 Petaflop/s 1 Eflop/s 1 Exaflop/s 1 MB 1 Megabyte 1 GB 1 Gigabyte 1 TB 1 Terabyte 1 PB 1 Petabyte 1 EB 1 Exabyte 106 109 1012 1015 1018 (1984) (1997) (2008) (?) 106 109 1012 1015 1018 5 6 www.top500.org www.top500.org (1961) Novembre 2014 Dal 1993 la TOP500 è la lista dei primi 500 calcolatori più potenti del mondo La TOP500 viene ordinata rispetto ad un benchmark basato su LINPACK (LINear algebra PACKage): High Perfomance LINPACK I benchmark misurano la velocità dei supercomputer nella risoluzione di un sistema lineare con termine noto multiplo AX=B mediante algoritmo di Gauss con Pivoting Parziale http://www.netlib.org/benchmark/hpl/ 7 2 L’Italia nella TOP500 Novembre 2014 L’Italia nella TOP500 9 www.top500.org Novembre 2014 1 Eflop/s 308,9 Pflop/s Performance (Rmax) 33,9 Pflop/s Giugno2014 10 TOP 500 Vendors: System vs Performance System Share Performance Share 153,4 Tflop/s 1 Gflop/s La TOP 500 registra una crescita esponenziale della potenza dei supercomputer 11 12 3 TOP 500 Countries: System vs Performance System Share Performance Share Ma … il calcolo ad alte prestazioni è davvero necessario ? Others: Italia compresa… 13 14 Il Metodo Scientifico Il mondo è parallelo! Natura osservazione Simulazione 15 sperimentazioni teoria L’ Indagine Scientifica (Galileo Galilei, 1564-1626) si basa su: Osservazione, Teoria ed Esperimenti. L’avvento dei computer conduce alla nascita di un quarto pilastro del metodo scientifico: la Simulazione 4 La Simulazione mediante il Calcolo Parallelo permette OGGI di studiare ed analizzare in tempo “utile” fenomeni alla base di sistemi fisici, economici e sociali, caratterizzati dall’essere: molto grandi, molto piccoli, molto complessi, molto costosi, molto pericolosi,… Quali applicazioni (IERI)? • Storicamente il calcolo parallelo è stato visto come un paradigma costoso e di alto livello . Scienza e tecnica • È stato quindi utilizzato principalmente per risolvere problemi scientifici ed ingegneristici di alto livello genomica, protein folding, progettazione di farmaci modellazione di fenomeni astrofisici: evoluzione delle galassie previsione di eventi eccezionali: terremoti, uragani, … modellazione di crash automobilistico studio di nuovi materiali, nanotecnologie progettazione di semiconduttori • Esempi • • Business • modellazione di eventi economici e finanziari gestione di transazioni, web service e motori di ricerca • • Difesa • • simulazione degli effetti di armi nucleari crittografia 17 Quali applicazioni (OGGI)? • È necessario processare grandi quantità di dati con tecniche sofisticate e veloci è un problema fondamentale (oggi ) e la cui risoluzione sarà possibile solo attraverso l’uso di tecnologie di Calcolo ad Alte Prestazioni • Alcuni esempi • • ... • • • • • “Una grande sfida (grand challenge) delle scienze e dell’ingegneria che ha vaste applicazioni • Sfruttare al meglio le potenzialità dei computer attuali Database, data mining Oil exploration Motori di Ricerca Web Elaborazione immagini medicali e diagnosi Design farmaceutico Modelli finanziari ed economici Grafica avanzata e realtà virtuale 18 Le grandi Sfide del Calcolo • Le applicazioni commerciali forniscono le motivazioni principali per lo sviluppo di calcolatori sempre più veloci • Orbite planetarie e galattiche Modelli del tempo e oceanografici Deriva della piastra tettonica Il traffico nell’ora di punta Linea di assemblaggio di automobili Operazioni giornaliere all'interno di un'azienda Costruzione di un centro commerciale che diverranno disponibili nell’immediato futuro (domani)” NASA, High Performance Computing and Communication Program, 1993 E… domani? 19 20 5 Big Data • Caratteristiche: paradigma delle 4 V, Volume, Varietà, Velocità, Valore • Necessità: Big Computation, ovvero calcolo parallelo Calcolo Parallelo: Concetti, Terminologie ed Architetture 21 22 Turnaround Time I calcolatori ad Alte Prestazioni hanno dato una risposta al seguente quesito tempo richiesto dalla risoluzione di un problema su un computer Come ridurre i tempi di calcolo t = k·T(n) · (turnaround time) di una simulazione computazionale ? T(n)= complessità di tempo dell’algoritmo Dipendenza dall’algoritmo 23 =tempo di esecuzione di 1 flop Dipendenza dal calcolatore 24 6 Come ridurre t? Come ridurre t = k· T(n) · Risposta A: riducendo , t ? Risposta A Consideriamo un calcolatore con una potenza di calcolo di 1 Teraflops (1012 flop/s) : d=c cioè migliorando la tecnologia = tempo di esecuzione di 1 flop = 10-12 s d CPU d = 10-12 · 3 · 109 = 3x10-3 m Memoria I dati percorrono la distanza d alla velocità della luce (c=3×109 m/s) d= c Come ridurre Notevoli problemi di packaging e raffreddamento LIMITI TECNOLOGICI 25 26 t? Come ridurre t = k·T(n) · Risposta B: riducendo T(n), t? t = k·T(n) · cioè riorganizzare l’algoritmo Dalla teoria della complessità degli algoritmi è deducibile che per alcune classi di problemi esistono algoritmi con complessità di tempo minima (algoritmi ottimali) C: ? Esempio 3 Problema: prodotto di 2 matrici T (n) = n Algoritmo ottimale: Strassen ( Tmin (n) = nlog 7 ) B: riducendo T(n) (migliorando l’efficienza dell’algoritmo) A: riducendo (migliorando la tecnologia) 2 27 28 7 Risposta C: CALCOLO PARALLELO Problema: costruzione di una casa Come introdurre il parallelismo? ? Calcolo Sequenziale vs Calcolo Parallelo Sviluppo di nuovi strumenti computazionali hardware / software/ algoritmi Distribuzione delle fasi di UN lavoro 29 30 Primo tipo di parallelismo Tecnica della catena Parallelismo Temporale Come è realizzato il parallelismo temporale in un calcolatore ? di montaggio (pipeline) Schema di Von Neuman (1966) MEMORIA MEMORIA Unità unita’ di input input unita’ Unità di di output output unita’ Unità di di controllo I tre operai eseguono contemporaneamente fasi consecutive dello stesso lavoro controllo unita’ Unità logico logicoaritmetica aritmetica CPU CPU PARALLELISMO TEMPORALE dati ee istruzioni istruzioni 31 controllo Parallelismo on-chip 32 8 Parallelismo Temporale Esecuzione tradizionale di N somme f.p. Solo un segmento alla volta è attivo mentre gli altri rimangono inattivi L’unità funzionale per le operazioni floating point è divisa in segmenti 1 2 3 4 Ciascun segmento esegue una fase di un’operazione aritmetica. Ad es. per la somma: 1 2 3 4 CONFRONTO DEGLI ESPONENTI 1 SHIFT DELLA MANTISSA 2 SOMMA DELLE MANTISSE 3 NORMALIZZAZIONE 4 1 2 3 4 tu t Nt 2t T=Nt=4Ntu 33 34 Schema di un processore vettoriale Esecuzione pipelined di N somme f.p. A regime sono attivi tutti i segmenti contemporaneamente Dati scalari reg UC scalare 1 2 3 4 1 2 3 4 memoria 1 2 3 4 Unità scalare UC vettoriale reg 1 2 3 4 tu ALU ALU Dati vettoriali t Unità vettoriale T=[4+(N-1)]tu<4 N tu Numero di “segmenti” del pipe 35 COMPUTAZIONE SINCRONA 36 9 Calcolatori con unità funzionali pipelined Esempi: Processori Vettoriali • • • • • CRAY-1 (primo “supercomputer”, 1976) • CDC Cyber 205 , 1981 • ETA-10, 1986 • Cray X2, 2007 Problema: costruzione di una casa Oppure… Come introdurre il parallelismo? ? Una Unità di Controllo ed una ALU per gli scalari Una Unità di Controllo ed una ALU per i vettori di dati: istruzioni che agiscono direttamente sui vettori unità funzionali pipelined registri vettoriali (registri atti a contenere vettori) operano efficientemente su dati strutturati sotto forma di vettori CRAY-1 37 Secondo tipo di parallelismo Esecuzione della stesso lavoro su posti diversi (distribuzione dello spazio) 38 Schema di un array processor memoria Dati Processore di controllo I tre operai eseguono contemporaneamente la stessa azione su mattoni diversi PARALLELISMO SPAZIALE PE PE PE PE PE PE PE PE PE PE PE PE PE: Unità Processanti Elementari COMPUTAZIONE SINCRONA 39 40 10 Calcolatori con unità funzionali parallele Esempi: Array Processor •Thinking Machines CM-1, CM 2, 1980 •Maspar MP-1, MP-2, 1990 •Quadrics Apemille , 1999 • • • Un solo Processore di Controllo che può eseguire operazioni scalari Un insieme di elementi processanti elementari (PE) interconnessi secondo un’opportuna geometria I PE possono avere una memoria Eseguono la stessa operazione su dati strutturati sotto forma di vettori Connection Machine (CM) Calcolatori SIMD (Single Instruction Multiple Data) Una o Più unità aritmetico-logiche (ALU) Opportunamente segmentate operano sotto un comune controllo (CU) (computazione sincrona) eseguendo in parallelo la stessa istruzione o una fase di essa su dati diversi 41 Problema: costruzione di una casa 42 Un terzo tipo di parallelismo Oppure… Come introdurre il parallelismo? ? I tre operai eseguono contemporaneamente azioni diverse su parti diverse Esecuzione di lavori diversi su posti diversi (distribuzione delle operazioni e dello spazio) PARALLELISMO ASINCRONO 43 44 11 Parallelismo asincrono MIMD: collegamento CPU-memoria Come è realizzato il parallelismo asincrono in un calcolatore ? Più unità centrali di elaborazione (CPU) esegueno in parallelo istruzioni diverse su dati diversi (computazione asincrona) CU 1 CU 2 CU N ALU 1 ALU 2 ALU N CPU 1 CPU 2 CPU N Come sono collegate CPU e memorie in un calcolatore MIMD? Calcolatori MIMD (Multiple Instruction Multiple Data) 45 MIMD Calcolatori MIMD a memoria condivisa (shared-memory) CPU CPU 11 CPU CPU 22 46 Architetture MIMD Calcolatori MIMD a memoria distribuita (distributed-memory) CPU CPU N N L’architettura MIMD si è imposta come prescelta sia nello sviluppo di supercomputer sia in altri ambiti (ricerca, industria,..) perché: MEM MEM MEM CPU 1 CPU 2 CPU N • è flessibile; è economica, si può •realizzare come un insieme di PC opportunamente connessi MIMD Shared Memory o multiprocessore MEMORIA MEMORIA MIMD Distributed Memory o multicomputer 47 48 12 MIMD shared memory CPU ……… CPU CPU CPU CPU MIMD-SM: multiprocessori ……… • CPU • MEMORIA MEMORIA bus singolo • bus multiplo • • La memoria ha un unico spazio di indirizzamento condiviso da tutti i processori I processori possono comunicare tramite variabili condivise Le operazioni che coinvolgono più processori devono essere gestite da un opportuno meccanismo di sincronizzazione La memoria può essere condivisa e centralizzata o condivisa e distribuita (distribuita in senso fisico e condivisa in senso logico). La memoria condivisa può CPU CPU CPU 1 2 N essere ad accesso uniforme o non uniforme network crossbar switch collegamento CPU-memoria MEMORIA 49 MIMD-DM: multicomputer MIMD Distributed Memory • • bus • reticolo 2d (eventualm. toro) ipercubo Ogni processore ha una propria memoria di indirizzamento Lo spazio di indirizzamento è costituito da più spazi privati logicamente disgiunti I processori possono comunicare tramite messaggi (message passing) albero anello collegamento CPU-memoria 50 51 MEM MEM MEM CPU 1 CPU 2 CPU N 52 13 Calcolatori MIMD-DM: MPP vs cluster Nodi costituiti da CPU e memoria sono collegati mediante una rete di interconnessione Cluster di PC di classe Beowulf Nodi: Commodity-Off-The-Shelf (COTS) PC Pentium, Alpha, PowerPC, SMP Interconnessione: COTS LAN/SAN Ethernet, Fast Ethernet, Gigabit Ethernet, Myrinet, Infiniband, … Open Source Unix Linux, BSD Software “standard” MPI, PVM, HPF Massively Parallel Processor (MPP): nodi fortemente integrati, unica immagine dell’intero sistema Cluster Of Workstation (COW): più computer stand-alone connessi mediante LAN/SAN VANTAGGI: buon rapporto costo-prestazioni scalabilità indipendenza dalle case costruttrici aggiornamento rapido e poco costoso 53 Tassonomia di FLYNN (dal 1966) • • • • • 1/2 54 Tassonomia di FLYNN (dal 1966) 2/2 I calcolatori paralleli possono essere classificati in modi differenti a seconda delle loro funzionalità La classificazione maggiormente usata è la classificazione di Flynn, utilizzata dal 1966 Si basa sulla nozione di flusso di "informazione", dove per "informazione" si intende una istruzione o un dato. Classifica le diverse architetture multiprocessore rispetto a due dimensioni: quella delle istruzioni e quella dei dati Ognuna di queste dimensioni può avere due possibili valori • • Single Multiple 55 56 14 Evoluzione dei supercalcolatori Gordon Moore (co-fondatore di Intel) nel 1965 predisse che la densità dei transistor sui chip di semiconduttori sarebbe raddoppiata ogni 18 mesi almeno fino al 1975… “Legge” di Moore Ma come evolveranno i calcolatori nel futuro ? La previsione è stata corretta ben oltre il 1975, infatti finora il numero dei transistor è aumentato con un fattore di crescita di circa il 60% ogni anno, con corrispondente aumento delle velocità delle CPU 57 58 …reinterpretazioni della legge di Moore …validità della legge di Moore …il numero di core per chip raddoppierà ogni 18 mesi… transistor Clock speed Un processore single-core montato su di un singolo chip possiede una CPU munita di una unità di esecuzione e una cache Oggi, 2015 CU cache ALU CPU-single core power Questioni odierne (2015): ILP • la legge di Moore è/sarà ancora valida ? • C’è bisogno di una nuova reinterpretazione ? 59 Un processore multi-core montato su di un singolo chip possiede fino a OTTO CPU munite di una unità di esecuzione e (eventualmente) una cache CU ALU CU cache ALU cache Multicore Se un calcolatore possiede più di otto core si parla di architettura manycore 60 15 L’avvento dei multicore CU ALU CU cache ALU CPU-single core CU ALU CU cache cache ALU Multiprocessor CU CU cache ALU ALU cache ALU cache Fine Multicore Hyper-Threading Technology CU CU CU cache CU ALU CU cache Multicore with Hyper-Threading Technology 61 62 16