Next: Strumenti per la comunicazione
Up: Comunicazioni nel Cluster
Previous: Comunicazioni nel Cluster
Indice
Per poter usufruire della struttura della rete a livello di programma applicativo, una delle scelte piú usuali é quella di MPI. É quindi importante misurare le perforamances ottenibili in questo ambiente. Le MPI sono una raccolta di librerie ed utilities specializzate nell'utilizzo di architetture multiprocessore.
Le versione MPI installate nel cluster sono due e sono chiamate MPICH ( MPI Chameleon) e LAM.
La struttura di MPICH permette di mandatenere le stesse API per la programmazione variando le architetture per il calcolo distrubuito. Infatti le MPICH, a seconda dell'architettura utilizzata, adottano canali di comunicazione diversi, come ad esempio, la comunicazione tramite la rete o, nel caso si utilizzi un supercomputer multiprocessore, la memoria condivisa ( shared memory). Oltre a questo possono adottare canali di comunicazione specifici per alcune architetture, come quelle utilizzare da supercomputer IBM, SGI o Cray.
Per poter rendere trasparente all'utente il canale di comunicazione utilizzato, le MPICH adottano una struttura a layers in cui la comunicazione vera é propria é gestita ad un livello piú basso rispetto all'interfaccia utente. Il layer, deposto a rendere trasparente il tipo di comunicazione, si chiama ADI ( The Abstract Device Interface).
I vari layer utilizzati nella comunicazione via rete sono rappresentati nella figura
. Ogni layer rappresentato in figura
esemplifica uno step che un messaggio deve fare in una comunicazione una MPI punto a punto.
Figura:
Struttura a layer del MPI in una comunicazione di rete punto a punto.
|
- MPI: Programma compilato utilizzando le librerie MPI.
- MPI point-to-point: Insieme delle funzioni MPI deputate alla comunicazione.
- The Abstract Device Interface: Questo layer permette la portabilitá di un programma MPI da architetture di tipo supercomputer multirpocessore ad altre architetture utilizzando le stesse API. Al di sotto di questo layer la differenziazione dell'architettura utilizzata viene fatta ulteriormente, in modo piú fine, ma é a questo livello che la comunicazione incrontra il bivio piú significativo.
- The Channel Interface: Questo layer permette di utilizzare diversi protocolli di comunicazione. I possbili protocolli sono i seguenti:
- Eager: Viene creata una comunicazione asincrona. Il sender non attende una riposta di conferma dal reciver della avvenuta comunicazione.
- Rendez-vous: La comunicazione é di tipo sincrono, ovvero il sender, una volta mandato un messaggio,
aspetta un messaggio dal reciver di conferma della avvenuta ricezione.
- Get: Questo protocollo puó essere utilizzato solo con particolari architetture in cui si puó utilizzare la memoria condivisa tra piú processori. Si basa sul fatto che una processo possa depositare in una certa locazione di memoria il messaggio e che un altro processo, su un altro processore ne possa andare a leggere il contenuto sapendo a che indirizzo di memoria é stato depositato.
- Chameleon: In questo layer c'é la vera e propria diversificazione nel canale di comunicazione da adottare per mandare il messaggio. Il Chameleon comunica attraverso un altro piccolo modulo chiamtato tcp direttamente con il layer della rete TCP/IP.
Il pacchetto LAM, come le MPICH, é un' implementazione delle API MPI peró con un concetto implementativo differente. La struttura a layer delle LAM é rappresentata in figura
.
Figura:
Struttura a layer del MPI in una comunicazione di rete punto a punto.
|
- User Code: Il codice sorgente dell'applicazione.
- MPI Layer: Librerie MPI dove sono state implementate tutte le routines.
- LAM: Layer adibito alla portabilitá del software MPI.
Il layer LAM rappresenta il fulcro della struttura nell'implementazione delle comunicazione MPI; infatti, grazie ad una struttura modulare, é possibile utilizzare diversi tipi di comunicazione MPI, come per il pacchetto MPICH. Lo strumento software all'interno di LAM ( attorno al quale é stata costruita l'intera struttura) é chiamato SSI ( System Services Interface). I moduli giá implementati all'interno del pacchetto LAM sono principalmente i seguenti:
- crtcp: Implementa un protocollo di comunicazione di tipo TCP, ma con il vantaggio che si possono dichiarare dei check point e fare un restart del job.
- gm: Protocollo di comunicazione con schede di connessione Myrinet.
- lamd: Implementazione delle comunicazioni standar di MPI, come quelle di MPICH.
- tcp: Comunicazione attraverso i sockets TCP.
- sysv: Comunicazione attraverso shared memory con l'impiego di semafori System V per la sincronizzazione.
- usysv: Come per sysv, la comunicazione avviene attraverso la shared memory con una diversa implementazione della sincronizzazione dei processi.
Il pacchetto LAM installato sul server utilizza il modulo tcp per le comunicazioni MPI. La struttura modulare delle LAM puó facilitare l'implementazione di un meccanismo di comunicazione personalizzato per la struttra formata dalle connessioni interne del cluster.
Il software MPICH é stato reperito dal sito internet
http://www.mcs.anl.gov/mpi ed é stata utilizzata la versione 1.1.2 per l'implementazione dei programmi MPI per il cluster mentre il pacchetto LAM é stato scaricato dal sito http://www.mpi-lam.org e la versione installata é la 7.0.4. .
Next: Strumenti per la comunicazione
Up: Comunicazioni nel Cluster
Previous: Comunicazioni nel Cluster
Indice
Mario Cavicchi
2004-07-22