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