Usare MPICH-G2

Back to    Contents

Previous : Procedura di installazione   Next : mpirun  


Una delle principali caratteristiche di MPICH-G2 e' quella di permettere aglli utenti di eseguire i loro programmi MPI in ambiente Grid senza modificare il codice e attraverso comandi molto simili, e in alcuni casi identici, a quelli utilizzati in ambiente locale.

Per prima cosa e' naturalmente necessario compilare il propro sorgente, ad esempio myprog.c :

/usr/local/mpigh-g2/mpicc -o myprog myprog.c

Dopo di che si può passare all'esecuzione del programma utilizzando il comando mpirun. Ogni volta che si lancia il comando mpirun con il device globus2 viene creato uno script in Resource Specification Language (RSL) dove sono indicate le risorse richieste al Grid generalmente divise in subjob, uno per ogni macchina coinvolta, dove sono specificati il numero di processi da allocare, il nome dell'eseguibile, la directory di lavoro ed altri parametri che poi vedremo. Esistono due modi per gestire questo tipo di file a livello utente : il piu' semplice e' utilizzarli in maniera implicita con il comando mpirun; una seconda possibilita' e' quella di generare il file RSL e modificarlo manualmente nelle parti in cui e' necessario. Vedremo entrambe queste procedure nel dettaglio.

Una operazione necessaria indipendentemente dal modo scelto e' quella di scrivere un file machines nella directory di lavoro dalla quale si lancia il programma MPI. Il file machines deve contenere un elenco degli host che vogliamo utilizzare per l'esecuzione del programma. Il nome dovrebbe anche contenere il nome del jobmanager da utilizzare, ma si puo' anche omettere lasciando quello di default. Nella nostra installazione di GlobusToolkit la gestione dei specifici jobmanager non e' ancora stata completamente implementata, quindi noi abbiamo semplicemente indicato i nomi degli host in questo modo :

"cluster.unipr.it" : n
"pp4.ce.unipr.it" : m
"pp2.ce.unipr.it" : t

In questo modo è possibile allocare n+m+t processi, non di più, che verranno disposti nell'ordine indicato, cioè n su cluster.unipr.it, m su pp4 e t su pp2. Se si desidera un'allocazione a rotazione è necessario ripetere il nome degli hosts più volte :

"cluser.unipr.it"

"pp4.ce.unipr.it"

"pp2.ce.unipr.it"

"cluser.unipr.it"

"pp4.ce.unipr.it"

.

.

.

 

In questo caso verranno allocati uno su cluster.unipr.it, uno su pp4, uno su pp2, quindi di nuovo un altro su cluster, un altro su pp4 e così via.

Come vedemo in seguito, quando è richiesta una particolare ed articolata allocazione dei processi, il metodo più veloce è scrivere direttamente il file RSL come si desidera.


Previous : Procedura di installazione Next : mpirun

Back to Contents