Obiettivo. Un overview sul Calcolo Parallelo. Corso di Calcolo Parallelo. Informazioni. Laura Antonelli

Documenti analoghi
Classificazione delle Architetture Parallele

Introduzione al Calcolo Parallelo Algoritmi e Calcolo Parallelo. Daniele Loiacono

SISD - Single Instruction Single Data. MISD- Multiple Instructions Single Data. SIMD Single Instruction Multiple Data. Architetture di processori

ARCHITETTURE MULTIPROCESSORE E CALCOLO PARALLELO (Motivazioni e Classificazioni)

Sistemi a processori multipli

SISD - Single Instruction Single Data. MISD- Multiple Instructions Single Data. SIMD Single Instruction Multiple Data. Architetture di processori

Architetture della memoria

CALCOLATORI ELETTRONICI Lezione n. Arch_Par 3

Architetture parallele

Come aumentare le prestazioni Cenni alle architetture avanzate

Introduzione al Many/Multi-core Computing

Linee di programmazione

Parte VIII. Architetture Parallele

Programmi per calcolo parallelo. Calcolo parallelo. Esempi di calcolo parallelo. Misure di efficienza. Fondamenti di Informatica

CLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico)

Architettura dei calcolatori

Architetture. Paride Dagna. SuperComputing Applications and Innovation Department 18/02/2013

Introduzione al Many/Multi-core Computing

Progettazione di circuiti integrati

Il Processore. Informatica di Base -- R.Gaeta 27

Che cos e l Informatica. Informatica generale. Caratteristiche fondamentali degli algoritmi. Esempi di algoritmi. Introduzione

Sistemi e Tecnologie per l'automazione LS. HW per elaborazione digitale in automazione: Microcontrollori e DSP

Introduzione. Caratteristiche generali. Sistemi e Tecnologie per l'automazione LS. HW per elaborazione digitale in automazione: Microcontrollori e DSP

Fondamenti di Informatica Architettura del Calcolatore Alessandra Volpato

Parte IV Architettura della CPU Central Processing Unit

Evoluzione dei Sistemi. Prof. Giuseppe Pirlo Dipartimento di Informatica Università degli Studi di Bari

Introduzione al Calcolo Scientifico

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Flops. Differenza tra sustained performance, e di picco (cenni a proposito dei metodi di ottimizzazione, il compilatore ed oltre)

Architetture parallele. Architetture parallele. Oltre l ILP. Multithreading. Architetture Avanzate dei Calcolatori. Valeria Cardellini

Calcolatori Elettronici A a.a. 2008/2009

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Informatica. 80 ore divise in 4 UFC. Docente: Michela Bacchin. Contatti: Tramite Ermes Studenti

Studio di tecniche di accesso ai dati dell esperimento CMS a LHC: il caso dell axigluone

Il Processore: l unità di controllo

Informatica. Informazione L Informazione è un dato, o un insieme di dati, interpretati in un determinato contesto.

Modelli di programmazione parallela

L ARCHITETTURA DEI CALCOLATORI. Il processore La memoria centrale La memoria di massa Le periferiche di I/O

Architettura di Von Neumann. Architettura di Von Neumann. Architettura di Von Neumann INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Sottosistemi ed Architetture Memorie

I supercomputer oggi: applicazioni e architettura

Progettazione di circuiti integrati

Programmazione Avanzata

Componenti e connessioni. Capitolo 3

La CPU e la Memoria. Sistemi e Tecnologie Informatiche 1. Struttura del computer. Sistemi e Tecnologie Informatiche 2

Corso di Informatica

Architettura degli Elaboratori, corso A, a.a Appendice A: Caratteristiche di processori esistenti

Generated by Foxit PDF Creator Foxit Software For evaluation only. Il Computer

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica

Componenti di un processore

Non esistono solo i PC! Fortunatamente!

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX

Corso di Informatica

Calcolo parallelo e distribuito mod.b. Metodi dell indagine scientifica. Computational science. Esempio: previsioni meteorologiche

UD2. L insostenibile leggerezza dei circuiti integrati

Architettura hardware

Sistemi a microprocessore

FONDAMENTI DI INFORMATICA FONDAMENTI DI INFORMATICA UN POCO DI STORIA FONDAMENTI DI INFORMATICA. Lezione n. 1 UN POCO DI STORIA UN POCO DI STORIA

Fondamenti: Informatica, Computer, Hardware e Software

Lez. 4 L hardware. Prof. Pasquale De Michele Gruppo 2

Roberto Innocente. 1 dicembre, 2001 R.Innocente - Linux Day Argomenti

Introduzione ai sistemi operativi

Laboratorio di Informatica

Capitolo 1: Introduzione

Calcolo Parallelo e Distribuito II

Un esigenza. Lezione 9. problema. Un problema. Cenni ai sistemi operativi distribuiti 1. introduzione

Massimo Bernaschi Istituto Applicazioni del Calcolo Consiglio Nazionale delle Ricerche

Elementi di base del calcolatore

Le prestazioni di un sistema informatico

MPI. MPI e' il risultato di un notevole sforzo di numerosi individui e gruppi in un periodo di 2 anni, tra il 1992 ed il 1994

Struttura hw del computer

PARTE II PROGRAMMAZIONE PARALLELA

Lezione 2 Chiamate di procedura e risposta alle interruzioni

1: Generalità sulle reti di trasmissione numeriche

Addizionatori: metodo Carry-Lookahead. Costruzione di circuiti combinatori. Standard IEEE754

Un semplice commutatore a pacchetto

Flops. Differenza tra sustained performance, e di picco (cenni a proposito dei metodi di ottimizzazione, il compilatore ed oltre)

Fondamenti di informatica: un po di storia

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

Basi di Dati Parallele

LEZIONE 2 Il processore e la memoria centrale

Lezione 2. Rappresentazione dell informazione

Parte IV. Architettura della CPU Central Processing Unit

Sistemi Operativi. Sistemi I/O SISTEMI DI INPUT/OUTPUT. Hardware di I/O. Interfaccia di I/O per le applicazioni. Sottosistema per l I/O del kernel

La vera difficoltà non è progettare architetture

I.I.S. N. PELLATI Nizza Monferrato - Canelli

Informatica giuridica

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Architettura dei computer

Una interfaccia GA ad alcune routines di ScaLAPACK

Sistemi Operativi. A.M. Fanelli Architettura dei Sistemi a. a Livello di Sistema Operativo. Livello di Linguaggi Applicativi

(SINTESI DELL APPALTO)

La macchina programmata Instruction Set Architecture (1)

Programmazione modulare

Hardware e software. Marco Alberti Programmazione e Laboratorio, A.A

Introduzione. Sistemi Distribuiti. Introduzione. Introduzione. Definizione di sistema distribuito. Introduzione

Sistemi Distribuiti. Introduzione Definizione Vantaggi e svantaggi Architetture hardware e software Problemi di progetto. Sistemi Operativi mod.

Tipi di elaboratori Rappresentazione della informazione Codifica della informazione

Calcolo parallelo, Grid e sistemi ad alta affidabilita'

Esercizio 1.A Aritmetica binaria (nel presentare le soluzione mostrare, almeno nei passaggi piú significativi, i calcoli eseguiti) (3 punti)

Transcript:

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