Come gia' menzionato nell'Introduzione MPICH-G2 e' una implementazione
completa dello standar MPI-1 realizzato estendendo MPICH (Da MPICH a MPICH-G2), con lo scopo
di ottenere un modello di programmazione a scambio di messaggi Grid-enabled.
La principale caratteristica di MPICH-G2 e' quella di riuscire a
nascondere i problemi legati all'eterogeneita' delle risorse ed alla
loro dislocazione in domini differenti, attraverso i servizi di GlobusToolkik.
Le procedure di autenticazione, autorizzazione, creazione dei processi,
controllo dei processi, comunicazione, redirezione dell'output, accesso remoto
a file vengono tutte svolte in maniera trasparente all'utente. Questo permette
di eseguire programmi MPI su computer situati in domini distanti attraverso
gli stessi comandi che utilizzeremmo in un computer parallelo. Anche
i programmi naturalmente non hanno bisogno di essere modificati, soluzioni
di calcolo gia' a disposizione possono essere riusate in un contesto Grid.
La gestione del mascheramento della eterogeneita' delle risorse svolta
da MPICH-G2 si divide in due aspetti principali: 1) l'allocazione
di processi su computer remoti e la loro gestione (Process Management); 2) la
comunicazione tra processi locati su macchine remote (Communication Management).
MPICH-G2 mette anche a disposizione del programmatore varie funzionalitą per la gestione di della eterogeneitą a livello applicazioni, come, ad esempio, la possibilitą di usare i costrutti MPI_Comunicator per dividere i processi in una struttura gerarchica del sistema che rifletta la loro posizione nella rete di interconnessione, e permettere quindi alle applicazioni di scegliere il canale di comunicazione migliore(Topologia).
Altre interessanti funzionalità sono quelle offerte dai servizi del comando di GlobusToolkit globusrun sul quale è basata l'esecuzione dei programmi MPICH-G2. Infatti, come vedremo, uno dei possibili modi per lanciare un programma è quello di scrivere uno script RSL, dove è possibile inserire vari paramentri di configurazione dell'esecuzione, come il range di porte TCP da utilizzare, la dimensione del buffer TCT ed altre variabili di ambiente Globus.
Passiamo ora ad uno studio più approfondito della struttura MPICH-G2.