Capitolo 1
Cluster, l’idea di base
1.1 Cos’ e´ un cluster?
Un cluster e´ una struttura hardware e software atta a creare una forma
di cooperazione tra piu´ computer interconnessi tra loro. Questo fa si che
computazioni molto lunghe e che richiedono molto tempo possano essere
suddivise in sezioni piu´ piccole e distribuite in maniera parallela. Il risultato
che ne deriva e´ una diminuzione totale del tempo di computazione.
1.1.1 Esempio di calcolo
Un esempio molto semplice per capire come puo´ funzionare un cluster e´
nel calcolo di una media partendo da una lista di n valori. Un computer
da solo procederebbe facendo la somma di tutti i valori e poi dividendo il
risultato per il numero di valori. In questa procedura il tempo risultante
di computazione e´ il tempo che occorre a sommare tutti i valori, essendo
il numero di operazioni da fare uguale al numero di valori. L’istruzione di
divisione finale e´ poco influente ai fini del tempo totale, essendo unica per
qualsiasi quantita´ di valori.
Prendiamo adesso il caso che si voglia calcolare sempre la media di una
lista di n valori con un cluster formato da x macchine. Prima di cominciare
il calcolo vero e proprio si divide la lista dei valori in tante parti quante
sono le macchine e si delega contemporaneamente ogni macchina a fare la
somma della propria porzione di lista. Fatto questo, una macchina tra tutte
riceve i risultati parziali dagli altri computers e ne fa la somma e divide il
risultato ottenuto per il numero di valori. Operando in questa maniera si
riduce il tempo di computazione per fare la somma tra i valori infatti, con un
computer solo, avremmo l’esecuzione di una unica istruzione di somma alla
volta mentre con x macchine abbiamo, in maniera parallela, x istruzioni di
13
14 CAPITOLO 1. CLUSTER, L’IDEA DI BASE
somma contemporanee quindi, praticamente, il tempo che occorre a fare la
somma totale e´ solo quello che ci mette una macchina a sommare la propria
parte di lista di valori.
1.2 Perche´ usare un cluster
Storicamente, la comunita´ scientifica ha sempre avuto bisogno di grandi ri-
sorse di calcolo per trattazioni di dati sperimentali, simulazione e quant’altro
e per soddisfare queste esigenze venivano impiegati grandi calcolatori.
Per poter avere risorse di calcolo ad un costo relativamente basso e con
una forte scalabilita´ si e´ deciso di sviluppare sistemi formati da piu´ computers
con potenza di calcolo inferiore rispetto un grande calcolatore, ma che nella
totalita´ delle risorse si ottenga circa lo stesso livello di potenza di calcolo.
Questo ha permesso, anche per piccole comunita´ scientifiche, di avere la
propria farm e di lavorare in modo indipendente dai grossi centri di calcolo.
La scelta tra cluster e supercalcolatore ha vantaggi e svantaggi. L’hard-
ware di un supercomputer permette una strettissima intercomunicazione tra
i vari processi grazie, per esempio, alla memoria condivisa per i processori,
oppure alla precisa sincronizzazione di tutte le procedure avendo un clock di
sistema unico per tutto l’hardware; il supercomputer puo´ essere una valida
risorsa per il calcolo parallelo, ma purtroppo non presenta solo pregi.
Come detto in precedenza un grande calcolatore, avendo un hardware
particolare, ha costi molto alti sia di acquisto sia di manutenzione. Bisogna
anche considerare che un calcolatore monolitico offre una modesta scalabi-
lita´ hardware e quindi, nel caso si voglia radicalmente aggiornare la risorsa,
bisogna riaffrontare la spesa di acquisto.
Un cluster cerca di sopperire ai difetti intrinsechi di un supercomputer.
Come prima cosa essendo di solito formato da computers adibiti a desktop
o da piccole workstation, nella totalita´ ha un costo inferiore rispetto ad un
supercalcolatore e ogni macchina essendo costituita da hardware standard,
reperibile in qualsiasi negozio di informatica, ha costi di manutenzione molto
bassi. La scalabilita´ di un cluster dipende quasi solamente dalla spesa che si
vuole affrontare per crearlo: piu´ si hanno risorse economiche, piu´ macchine
si riescono ad acquistare per formare la risorsa di calcolo.
1.3 Caratteristiche generali
Un cluster e´ ‘in principio” un insieme di computers conessi da un rete loca-
le. Normalmente esistono moltissime variazioni di questo concetto base. La
1.3. CARATTERISTICHE GENERALI 15
struttura hardware dei nodi di un cluster puo´ essere principalmente eteroge-
nea o omogenea. Un cluster omogeneo presenta nell’hardware dei vari nodi
lo stesso set di componenti: stessi processori, stesse schede madri, stessi hard
disks, stessa quantita´ di memoria RAM, ecc. Quest’uniformita´ dell’hardware
semplifica le varie configurazioni per tutti i nodi, essendo sempre le stesse,
e quindi velocizza la realizzazione di tutto il sistema. Un cluster omogeneo
dal punto di vista dell’hardware e´ anche omogeneo dal punto di vista delle
prestazioni di ogni singolo nodo e quindi il bilanciamento dei carichi di lavoro
per i vari nodi e´ piu´ semplice ed intuitivo.
D’altro canto non sempre si puo´ affrontare la spesa di un consistente
numero di macchine tutte identiche. A volte conviene utilizzare computers
gia´ operativi e riciclarli per costituire un cluster. Oppure se all’interno del
cluster si vuole, per esempio, differenziare le macchine per lo storage, dalle
macchine per la computazione, l’hardware deve essere differenziato per ot-
timizzare l’una o l’altra mansione. Le scelte standard di connessioni di rete
sono principalmente le seguenti:
1. Connessini via Ethernet utilizzando Switch.
2. Reti dedicate ( per esempio Myrinet) con prestazioni mediamente 5
volte superiori, ma con costi maggiori.
Noi usiamo una variazione del punto 1.
Un cluster non e´ solo componentistica hardware, ma anche una struttu-
ra software atta a parallelizzare le varie procedure sfruttando le peculiarita´
del sistema creato. Per fare questo sono nati svariati software per gestire
l’attivita´ computazionale parallela. Naturalmente ogni software disponibile
predilige aspetti diversi e quindi determina performance diverse a seconda
di come viene utilizzato. Ci sono software che creano strumenti di paral-
lizzazione delle procedure a basso livello, mentre altri rendono il tutto piu´
trasparente dal punto di vista dell’utente.
Tutta la struttura del software per la creazione del cluster deve essere co-
munque supportata dall’utilizzo di un sistema operativo atto a tale scopo. E´
di importanza cruciale scegliere un sistema operativo che valorizzi gli aspetti
della computazione parallela e che comunque sia il piu´ adatto possibile alle
esigenze che hanno i futuri utenti del cluster. La scelta di un sistema operati-
vo non all’altezza come performance o come flessibilita´ di configurazione puo´
aumentare il tempo necessario alla realizzazione del sistema e fornire perfor-
mances finali inferiori rispetto alle reali potenzialita´ dell’hardware utilizzato.
Quindi e´ consigliabile, nel caso si decida a priori di utilizzare un determinato
sistema operativo, orientare l’acquisto dell’hardware verso le case costruttri-
16 CAPITOLO 1. CLUSTER, L’IDEA DI BASE
ci che garantiscono una compatibilita´ totale per poterne sfruttare tutte le
features che il componente ha in se´.
Capitolo 2
Caratteristiche del Cluster
2.1 Struttura Globale
Il mio lavoro e´ stato l’installazione ed una serie di misurazioni di un cluster
di medie dimensioni ( 20 nodi) per il Dipartimenti di Fisica. L’obbietivo di
base, motrice nella realizzazione del cluster, e´ cercare di creare una struttura
computazionale ad alte prestazioni, fruttando la connettivita´ tra i processori.
Per fare questo si vuole ricreare una struttura di comunicazione complessa,
utilizzando pero´ una connesione di rete ethernet. Si vuole quindi verificare se
utilizzando la stessa idea implementativa di un supercalcolarore si possono
trarre vantaggi nelle performance computazionali. La struttura di comuni-
cazione del cluster si basa su due diverse sottoreti di comunicazione: una di
tipo classico e l’altra di tipo reticolare.
La struttura classica di interconnessione e´ come quella utilizzata nelle
reti LAN dipartimentali ovvero con una topoligia stellare in cui, tramite un
apparato di rete posto al centro della “stella”, si crea un giunto di connssione
per ogni nodo, come si puo´ vedere nella figura 2.1.
L’altra struttura di connessione che si vuole sperimentare e´ basata su
connessioni dirette ai nodi vicini all’interno del reticolo bidimensionale di
processori, mentre per le connessioni ai nodi non accessibili in modo diretto
utlizzare la struttura classica. La struttura e´ rappresentata in figura 2.2.
2.2 Hardware utilizzato
Il cluster e´ costituito da sedici nodi di calcolo e di un unico server. Oltre a
questi computers sono previsti anche quattro nodi di servizio che non fanno
parte della rete sperimentale, ed un nodo di backup, nel caso un computers
del cluster abbia bisogna di manutenzione e quindi debba essere disattivato.
17
18 CAPITOLO 2. CARATTERISTICHE DEL CLUSTER
Figura 2.1: Schema di un rete LAN classica.
Figura 2.2: Schema della rete reticolare.
2.3. SOFTWARE 19
Ogni nodo delegato alla computazione presenta, nel cluster, lo stesso set di
componentistica hardware, mentre il nodo server della farm ha caratteristiche
differenti da tutti gli altri. Questo perche´ il server ha la funzione di gestore del
cluster e quindi ha un target di utilizzo differente. Il server a mia disposizione
e´ un computer con le seguenti caratteristiche:
• Due processori Intel Xeon a 2.4GHz
• 1 Gbyte di RAM
• Un hard disk da 80Gbyte
• Un controller RAID scsi con connessi 8 hard disks da 120Gbyte
• Una scheda di rete FastEthernet 10/100Mbps
• Una scheda di rete GigaEthernet 10/100/1000Mbps
Ogni nodo del cluster ha la seguente configurazione hardware:
• Un processore Intel Pentium 4 a 2.6GHz
• 1 Gbyte di RAM
• Un hard disk da 80Gbyte
• 5 schede di rete GigaEthernet 10/100/1000Mbps
Oltre ai computer e´ stato utilizzato come hardware di supporto uno switch
GigaEthernet 10/100/1000Mbps a 24 porte e dei cavi di rete categoria 5e
con connettori RJ45.
2.3 Software
2.3.1 Sistema Operativo
Come sistema operativo per la realizzazione del cluster si e´ optato per Linux.
La decisione e´ stata presa considerando i pregi che questo sistema operativo
offre:
• Possibilita´ di completa personalizzazione del kernel
• Disponibilita´ dei sorgenti
20 CAPITOLO 2. CARATTERISTICHE DEL CLUSTER
Il kernel utilizzato per il server e´ quello rilasciato da RedHat, versione 2.4.20,
mentre per i nodi del cluster, per una maggiore compatibilita´ hardware e´
stato usato un kernel versione 2.4.22 rilasciato direttamente dal sito internet
www.kernel.org. La scelta nella distribuzione da utilizzare si e´ rivolta verso
la RedHat versione 7.3 perche´ nel grande numero di possibili distribuzioni di
Linux ha dimostrato grande stabilita´ del software incluso ed un alto livello
di standardizzazione.
2.4 Network
La connettivita´ all’interno del cluster e´ stata pensata con due architetture: un
tipo di connessione e´ stata realizzata tramite uno switch GigaEthernet a cui
sono attaccati tutti i nodi e il server; l’altra, invece, puo´ essere rappresentata
come una reticolo in cui ogni nodo e´ collocato in una intersezione di linee.
Questo fa si che ogni macchina sia connessa direttamente ai sui vicini. La
struttura di rete creata con questa topodologia di connessione permette ai
nodi di non disturbarsi a vicenda nella scambio di informazioni con i vicini.
Nel caso un nodo debba comunque comunicare con un altro non connesso
direttamente si utilizza la connessione tramite lo switch. Vediamo piu´ nel
dettagli le caratteristiche delle due reti.
2.4.1 Rete globale (G-NET)
Come rete globale viene definita quella creata tramite lo switch. La sua
topologia e´ tipica di una rete LAN intranet, quindi con uno schema di tipo
stellare in connessione uno-a-molti; lo schema si puo´ vedere nella figura 2.3.
Nello schema in figura 2.3 sono connessi solo cinque computers allo switch,
nella configurazione reale sono venti. La rete formata dai computers e´ isolata
da Internet, quindi l’unico punto di accesso alla farm e´ il server.
2.4.2 Rete locale (L-NET)
E´ chiama rete locale del cluster quella formata da tutte le connessioni che
non passano dallo switch, ovvero le connessioni che ogni nodo crea con gli
immediati sui vicini. Lo schema per capire meglio come sono organizzate
queste connessioni si puo´ vedere in figura 2.4.