La directory in cui normalmente si trovano i compilatori (Fortran 77 e 90, C e C++) e i comandi per lanciare in esecuzione l'eseguibile compilato deve essere inserita nella variabile $PATH della vostra account (ad esempio nel mio cluster Beowulf è la /usr/local/mpich/build/LINUX/ch_p4/bin/ , per i computer di questo laboratorio è invece la /usr/local/mpich-1.2.1/bin)
I compilatori presenti in questa directory (mpif77, mpif90, mpicc, mpiCC) non sono altro che i normali compilatori presenti sul cluster al momento dell'installazione dell'MPICH (in genere quelli della GNU, g77 e gcc) opportunamente modificati (nella fase di installazione dell'MPICH) per poter riconoscere e gestire le direttive MPI.
Se la directory precedente è stata inclusa nella variabile $PATH della account in cui si sta lavorando, il comando di compilazione (tralasciando particolari ottimizzazioni) è semplicemente il seguente:
mpif77 nomefile.f
Questo comando genera come per un elaboratore seriale l'eseguibile a.out nella stessa directory dove si è eseguita la
compilazione e dove è presente il sorgente nomefile.f .
Per lanciare in esecuzione l'eseguibile il comando è il seguente
mpirun -np 4 a.out
dove:
Se ad esempio applichiamo quanto ora detto al
precedente programma "Ciao Mondo" questo è il risultato che
otteniamo:
Ciao Mondo 0
Ciao Mondo 1
Attenzione: nel laboratorio non si usano rpc mentre al loro posto si possono utilizzare ssh. Per inibire la richiesta della password (che impedirebbe un corretto funzionamento dell'MPICH) dovete generare le chiavi pubblica e privata per ssh con il comando
ssh-keygen -t rsa
questo comando genera nella directory .ssh della vostra $HOME i files id_rsa (chiave privata) ed id_rsa.pub(chiave pubblica). La chiave pubblica contenuta in id_rsa.pub deve essere inserita nel file authorized_keys presente sempre in .ssh con il comando
cat
id_rsa.pub >> authorized_keys