Obiettivo Corso di Calcolo Parallelo Laura Antonelli 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 Istituto di Calcolo e Reti ad Alte Prestazioni Consiglio Nazionale delle Ricerche (ICAR-CNR) Attività di laboratorio Lezioni teoriche 2 Informazioni e-mail: laura.antonelli@cnr.it Avvisi e Materiale: www.na.icar.cnr.it/ ~ antonelli.l Riferimenti: 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 Un overview sul Calcolo Parallelo Blaise Barney, Introduction to Parallel Computing, Lawrence Livermore National Laboratory https://computing.llnl.gov/tutorials/parallel_comp/ 4 1
Memoria Calcolo Definizione Che cos è un calcolatore parallelo o ad alte prestazioni o anche un supercomputer? 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 5 Velocità/Capacità dei calcolatori 1 Mflop/s 1 Megaflop/s 10 6 (1961) 1 Gflop/s 1 Gigaflop/s 10 9 (1984) 1 Tflop/s 1 Teraflop/s 10 12 (1997) 1 Pflop/s 1 Petaflop/s 10 15 (2008) 1 Eflop/s 1 Exaflop/s 10 18 (?) 1 MB 1 Megabyte 10 6 1 GB 1 Gigabyte 10 9 1 TB 1 Terabyte 10 12 1 PB 1 Petabyte 10 15 1 EB 1 Exabyte 10 18 6 www.top500.org www.top500.org 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
Performance (Rmax) L Italia nella TOP500 Novembre 2014 L Italia nella TOP500 Giugno2014 9 10 www.top500.org 1 Eflop/s Novembre 2014 308,9 Pflop/s 33,9 Pflop/s System Share TOP 500 Vendors: System vs Performance 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 mondo è parallelo! Il Metodo Scientifico Natura osservazione Simulazione sperimentazioni teoria 15 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: Scienza e tecnica 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 Business modellazione di eventi economici e finanziari gestione di transazioni, web service e motori di ricerca Difesa molto grandi, molto piccoli, molto complessi, molto costosi, molto pericolosi,. simulazione degli effetti di armi nucleari crittografia 17 Quali applicazioni (IERI)? Storicamente il calcolo parallelo è stato visto come un paradigma costoso e di alto livello È stato quindi utilizzato principalmente per risolvere problemi scientifici ed ingegneristici di alto livello Esempi 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 18 Quali applicazioni (OGGI)? Le applicazioni commerciali forniscono le motivazioni principali per lo sviluppo di calcolatori sempre più veloci È necessario processare grandi quantità di dati con tecniche sofisticate e veloci Sfruttare al meglio le potenzialità dei computer attuali Alcuni esempi 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... E domani? 19 Le grandi Sfide del Calcolo Una grande sfida (grand challenge) è un problema fondamentale (oggi ) delle scienze e dell ingegneria che ha vaste applicazioni e la cui risoluzione sarà possibile solo attraverso l uso di tecnologie di Calcolo ad Alte Prestazioni che diverranno disponibili nell immediato futuro (domani) NASA, High Performance Computing and Communication Program, 1993 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 Come ridurre i tempi di calcolo (turnaround time) di una simulazione computazionale tempo richiesto dalla risoluzione di un problema su un computer t = k T(n)? T(n)= complessità di tempo dell algoritmo Dipendenza dall algoritmo =tempo di esecuzione di 1 flop Dipendenza dal calcolatore 23 24 6
Come ridurre t? t = k T(n) Risposta A: riducendo, cioè migliorando la tecnologia Come ridurre t? Risposta A Consideriamo un calcolatore con una potenza di calcolo di 1 Teraflops (10 12 flop/s) : d = c = tempo di esecuzione di 1 flop = 10-12 s d Memoria d = 10-12 3 10 9 = 3x10-3 m I dati percorrono la distanza d alla velocità della luce (c=3 10 9 m/s) d = c 25 Notevoli problemi di packaging e raffreddamento LIMITI TECNOLOGICI 26 Come ridurre t? Come ridurre t? t = k T(n) Risposta B: riducendo 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) Esempio 3 Problema: prodotto di 2 matrici T ( n) = n 7 Algoritmo ottimale: Strassen ( log 2 T ( n) = n ) min 27 C:? t = k T(n) B: riducendo T(n) (migliorando l efficienza dell algoritmo) A: riducendo (migliorando la tecnologia) 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 29 Distribuzione delle fasi di UN lavoro 30 Primo tipo di parallelismo Tecnica della catena di montaggio (pipeline) Parallelismo Temporale Come è realizzato il parallelismo temporale in un calcolatore? I tre operai eseguono contemporaneamente fasi consecutive dello stesso lavoro PARALLELISMO TEMPORALE Schema di Von Neuman (1966) unita Unità di input unita Unità di di controllo controllo dati e istruzioni MEMORIA Unità unita logico- aritmeticā aritmetica Unità unita di di output output controllo 31 Parallelismo on-chip 32 8
Parallelismo Temporale L unità funzionale per le operazioni floating point è divisa in segmenti Ciascun segmento esegue una fase di un operazione aritmetica. Ad es. per la somma: Esecuzione tradizionale di N somme f.p. 1 2 3 4 Solo un segmento alla volta è attivo mentre gli altri rimangono inattivi 1 2 3 4 CONFRONTO DEGLI ESPONENTI SHIFT DELLA MANTISSA SOMMA DELLE MANTISSE NORMALIZZAZIONE 1 2 3 4 t u 1 2 3 4 t 2t Nt T=Nt=4Nt u 33 34 Esecuzione pipelined di N somme f.p. 1 2 3 4 t u 1 2 3 4 t A regime sono attivi tutti i segmenti contemporaneamente 1 2 3 4 1 2 3 4 T=[4+(N-1)]t u <4 N t u Numero di segmenti del pipe 35 Schema di un processore vettoriale memoria Dati scalari UC scalare UC vettoriale Dati vettoriali COMPUTAZIONE SINCRONA reg reg Unità scalare Unità vettoriale 36 9
Calcolatori con unità funzionali pipelined Processori Vettoriali Una Unità di Controllo ed una per gli scalari Una Unità di Controllo ed una per i vettori di dati: istruzioni che agiscono direttamente sui vettori unità funzionali pipelined Esempi: registri vettoriali (registri atti a contenere vettori) 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?? operano efficientemente su dati strutturati sotto forma di vettori CRAY-1 37 Esecuzione della stesso lavoro su posti diversi (distribuzione dello spazio) 38 Secondo tipo di parallelismo Schema di un array processor memoria Dati Processore di controllo I tre operai eseguono contemporaneamente la stessa azione su mattoni diversi PARALLELISMO SPAZIALE COMPUTAZIONE SINCRONA : Unità Processanti Elementari 39 40 10
Calcolatori con unità funzionali parallele Array Processor Un solo Processore di Controllo che può eseguire operazioni scalari Un insieme di elementi processanti elementari () interconnessi secondo un opportuna geometria I possono avere una memoria Eseguono la stessa operazione su dati strutturati sotto forma di vettori Esempi: Thinking Machines CM-1, CM 2, 1980 Maspar MP-1, MP-2, 1990 Quadrics Apemille, 1999 Connection Machine (CM) 41 Calcolatori SIMD (Single Instruction Multiple Data) Una o Più unità aritmetico-logiche () Opportunamente segmentate operano sotto un comune controllo () (computazione sincrona) eseguendo in parallelo la stessa istruzione o una fase di essa su dati diversi 42 Problema: costruzione di una casa Oppure Come introdurre il parallelismo?? Un terzo tipo di parallelismo I tre operai eseguono contemporaneamente azioni diverse su parti diverse Esecuzione di lavori diversi su posti diversi (distribuzione delle operazioni e dello spazio) 43 PARALLELISMO ASINCRONO 44 11
Parallelismo asincrono Come è realizzato il parallelismo asincrono in un calcolatore? Più unità centrali di elaborazione () esegueno in parallelo istruzioni diverse su dati diversi (computazione asincrona) 1 1 2 2 N N 1 2 N MIMD: collegamento -memoria Come sono collegate e memorie in un calcolatore MIMD? Calcolatori MIMD (Multiple Instruction Multiple Data) 45 46 MIMD Architetture MIMD Calcolatori MIMD a memoria condivisa (shared-memory) 1 2 N MEMORIA 1 Calcolatori MIMD a memoria distribuita (distributed-memory) MEM MEM MEM 2 N 47 MIMD Shared Memory o multiprocessore MIMD Distributed Memory o multicomputer L architettura MIMD si è imposta come prescelta sia nello sviluppo di supercomputer sia in altri ambiti (ricerca, industria,..) perché: è flessibile; è economica, si può realizzare come un insieme di PC opportunamente connessi 48 12
MIMD shared memory MEMORIA MEMORIA bus singolo bus multiplo MIMD-SM: multiprocessori 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ò essere ad accesso uniforme o non uniforme 1 2 N crossbar switch network collegamento -memoria 49 MEMORIA 50 MIMD Distributed Memory MIMD-DM: multicomputer bus 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) reticolo 2d (eventualm. toro) ipercubo albero MEM MEM MEM anello 1 2 N collegamento -memoria 51 52 13
Calcolatori MIMD-DM: MPP vs cluster Cluster di PC di classe Beowulf Nodi costituiti da e memoria sono collegati mediante una rete di interconnessione Massively Parallel Processor (MPP): nodi fortemente integrati, unica immagine dell intero sistema Cluster Of Workstation (COW): più computer stand-alone connessi mediante LAN/SAN 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 VANTAGGI: buon rapporto costo-prestazioni scalabilità indipendenza dalle case costruttrici aggiornamento rapido e poco costoso 53 54 Tassonomia di FLYNN (dal 1966) 1/2 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 Ma come evolveranno i calcolatori nel futuro? 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 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 57 58 validità della legge di Moore reinterpretazioni della legge di Moore transistor Clock speed power ILP Oggi, 2015 Questioni odierne (2015): la legge di Moore è/sarà ancora valida? C è bisogno di una nuova reinterpretazione? 59 il numero di core per chip raddoppierà ogni 18 mesi Un processore single-core montato su di un singolo chip possiede una munita di una unità di esecuzione e una Un processore multi-core montato su di un singolo chip possiede fino a OTTO munite di una unità di esecuzione e (eventualmente) una -single core Multicore Se un calcolatore possiede più di otto core si parla di architettura manycore 60 15
L avvento dei multicore -single core Multiprocessor Fine Hyper-Threading Technology Multicore Multicore with Hyper-Threading Technology 61 62 16