Appunti sulle architetture multiprocessore a memo

1
Appunti sulle architetture multiprocessore a memoria distribuita
Quando bisogna realizzare una architettura multiprocessore che prevede
un elevato numero di processori non è possibile adottare una configurazione di tipo CSM (Centralized Shared Memory). Infatti dal momento che la memoria e il mezzo di comunicazione (Bus) sono condiviso da
tutti i processori, nel caso in cui il numero di processori supera una certa
dimensione (poche decine con la tecnologia attuale):
• la memoria non riesce a gestire in maniera efficiente le richieste provenienti da tutti i processori
• sul bus si genera un traffico eccessivo che:
- limita il tasso di traferimento di istruzioni dalla memoria ai processori
- aumenta la latenze di accesso al bus per tutti i dispositivi che vi
sono connessi (memoria e processori).
Pertanto la realizzazione di architetture con un elevato numero di processori prevede di impiego di tecniche di implementazione basate sul concetto di memoria distribuita. In questa configurazione una architettura
è composta da una serie di nodi ciascuno dei quali è composto da un
processore(con la relative cache) e una memoria.
Nonostante la memoria sia distribuita (cioè composta da dispositivi
fisicamente distinti), essa può essere condivisa oppure esclusiva.
Nel primo caso ogni processore può accedere dati che risiedono nelle
memorie associate ad altri processori; questo vuol dire che tutti i processori hanno il medesimo spazio degli indirizzi. Le architetture che ricadono
in questa categoria sono le così dette DSM (Distributed Shared Memory)
oppure NUMA (Non Uniform Memory Access) perchè l’accesso in memoria avrà tempi e modalità differenti a seconda del dispositivo di memoria
che si sta accedendo.
2
Figura 1: Rete di tipo Array.
Figura 2: Rete completamente connessa.
Nel secondo caso ad ogni processore è fisicamente e anche logicamente
associata una memoria; ciò vuol dire che ogni processore può accedere
esclusivamente alla memoria che gli è associata per mezzo di uno spazio
degli indirizzi proprio. In questa categoria ricadono le architetture di tipo
Multicomputer (perchè ciascun nodo si comporta come una unità distinta
dalle altre) oppure Cluster (cioè più computer fisicamente distinti collegati
tra di loro per mezzo di una rete LAN).
La più semplice topologia di interconnessione delle architetture a memoria distribuita è il Linear Array Questo topologia è estremamente semplice
da realizzare ma è anche poco performante perchè la comunicazione tra
due nodi coinvolge tutti gli altri nodi che si trovano sul percorso che li
unisce.
All’altro estremo si trova la topologia definita da una rete completamente connessa in cui ogni nodo è direttamente connesso a tutti gli altri. Questa è una topologia estremamente performante perchè ciascun nodo può raggiungere tutti gli altri attraverso un link dedicato ma è anche
estremamente costosa.
Ciò che rende una topologia differente da un’altra, sono i seguenti
parametri:
3
• Costo: il costo di una rete è influenzato dal numero di link che essa
prevede, dal numero di switch, dalla capacità e dalla lunghezza di
ogni link
• Prestazioni: le prestazioni di una rete sono definite dal numero di
link (connettività della rete), capacità e lunghezza dei link, pattern
di comunicazione
• Fault Tolerance: la capacità di una rete di funzionare anche in presenza di guasti
La qualità di una topologia è definita da i seguenti parametri:
• Network Size (N): è il numero di nodi della rete
• Node Degree (d): il numero di link incidenti su ciascun nodo
• Diameter (D): il più lungo tra i percorsi di lunghezza minima che
collegano tutte le possibili coppie di nodi (presi due nodi qualsiasi, possono esistere più percorsi che li colleghino; di questi percorsi si considera quello di lunghezza minima. Una volta definito
l’insieme di percorsi di lunghezza minima per tutte le possibili coppie di nodi, il diametro è definito come il più lungo dei percorsi che
appartengono a questo insieme)
• Link Number (l): il numero totale di link della rete. Questa grandezza (che esprime una proprietà della topologia) definisce anche una
caratteristica della rete chiamata Total Network Bandwidth pari a
l × C se si assume che tutti i link abbiano la stessa capacità C
• Bisection Width (b): il minimo numero di archi che attraversano
una bisezione del grafo. Un bisezione è un taglio che divide il grafo
in due insiemi ciascuno dei quali contiene la metà dei nodi (o la metà
più uno se il numero di nodi è dispari). Questo taglio sarà attraversato da un determinato numero di archi. Di tutte le bisezioni possibili si considera solo quella in cui il taglio è attraversato dal minor
4
numero di archi (caso peggiore) e questo numero definisce la b della
rete. Questa grandezza definisce anche una proprietà della rete che
è la Bisection Bandwidth pari a b × C (analoga alla definizione della
Total Network Bandwidth).
• Simmetry: si dice che una rete è simmetrica se è esattamente uguale
dal punto di vista di tutti i nodi.
• Data Routing: è la politica di trasmissione dei dati e può essere statica o dinamica. Infatti per ogni coppia di nodi possono esistere diversi percorsi che li colleghino. La politica di routing stabilisce quale
percorso debba essere seguito nella trasmissione delle informazioni
da un nodo ad un’altro. Una politica statica è determinata a livello di progettazione della rete e idntifica sempre lo stesso percorso
per unire due nodi (ad esempio una politica statica potrebbe essere
quella che stabilisce che il percorso utilizzato debba essere sempre il
più breve) mentre una politica dinamica decide il percorso migliore
in base allo stato attuale della rete (ad esempio una politica dinamica potrebbe selezionare un percorso più lungo se quello più breve è
interrotto o congestionato).
Le reti possono essere raggruppate in due ifferenti categorie: reti statiche
e dinamiche.
Le reti satiche sono quelle in cui il percorsi che collegano un processore
ad un altro sono staticamente definiti a livello di progettazione della rete.
Esempi di reti statiche: Una rete completamente connessa ha un node degree d pari a N − 1, un diametro D = 1, un numero di link l = N (N − 1)/2
e una larghezza di bisezione b = (N/2)2 . Una rete di tipo ring ha un node
degree d pari a 2, un diametro D = bN/2c, un numero di link l = N e una
larghezza di bisezione b = 2. Una rete di tipo ipercubo (nella figura () è
riportato un ipercubo di dimensione tre cioè un cubo) ha un node degree
d pari a log2 N , un diametro D = log2 N , un numero di link l = N/2log2 N e
una larghezza di bisezione b = N/2.
5
Figura 3: Rete completamente connessa.
Figura 4: Rete ad anello.
Figura 5: Rete ipercubo-3.
6
Straight
Upper Bcast
Cross Over
Lower Bcast
Figura 6: Configurazioni di funzionamento degli switch.
Nelle reti dinamiche il percorso di comunicazione tra due (o più) nodi
è dimanicamente definito in base allo stato della rete stessa per mezzo
di switch. Si tratta di dispoditivi in grado di connettere due input a due
output in base a diverse configurazioni riportate in figura ().
7
p1
p1
p2
p2
p3
p3
p4
p4
p5
p5
p6
p6
p7
p7
p8
p8
Figura 7: Rete dinamica di tipo baseline.
8
p1
p1
p2
p2
p3
p3
p4
p4
p5
p5
p6
p6
p7
p7
p8
p8
Figura 8: Rete dinamica di tipo omega.