Sto imparando MPI. Il primo tutorial che ho seguito è hereMPI: MPICH2 Installazione e programmazione in LAN con Windows
Il codice che ho eseguito con successo su Windows 7 con MSVC il 2010 è:
#include "mpi.h"
#include "iostream.h"
int main(int argc,char *argv [])
{
int numtasks, rank, rc;
rc = MPI_Init(&argc,&argv);
if (rc != MPI_SUCCESS) {
printf ("Error starting MPI program. Terminating.\n");
MPI_Abort(MPI_COMM_WORLD, rc);
}
MPI_Comm_size(MPI_COMM_WORLD,&numtasks);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);
printf ("Number of tasks= %d My rank= %d\n", numtasks,rank);
MPI_Finalize();
}
sto con successo in esecuzione di questo codice sulla mia macchina Pentium-4 (dont essere sorpresi Sono avendo ancora un Pentium-4).
Ora voglio eseguire questo codice (o qualsiasi altro codice MPI) su più macchine collegate in una LAN Ethernet. Ad esempio, ogni macchina somma da 1 a 1000 e rispedisce a un nodo principale, quindi il nodo principale aggiunge tutti quei numeri per ottenere la somma finale.
La mia domanda è come avviare la programmazione MPI in una rete? Che tutti gli strumenti/software dovrei eseguire in ogni macchina.
Apprezzerò molto se riesci a darmi un puntatore a un tutorial.
MPI Implemnetation: MPICH2
O.S:each machine is having Windows 7, 32 bit CPU: Intel's Pentium 4 and Dual core
Network: Ethernet
IDE:MSVC2010
UPDATE:
ho avuto alcuni dei miei dubbi liquidati con la risposta di Jev. Le mie ultime domande sono:
Devo installare MPICH2 in ogni macchina. Dopo aver scritto i nomi di ciascuna macchina per riga nel file CFG, Ho bisogno di fare altro o semplicemente dare il comando:
<path-to-mpich2>/bin/mpiexec.exe -machinefile hosts.cfg -n nPEs <your-executable>
come faccio a sapere che la mia applicazione è in esecuzione su ogni macchina? Durante l'esecuzione dell'app devo eseguire alcune configurazioni speciali, ecc. Su ogni macchina?
È per linux o cmd in windows? Inoltre, cos'è hostfile e hosts.cfg? c'è qualche file .cfg di esempio? – gpuguy
Il comando si chiama 'mpiexec.exe' su Windows, su Linux il comando sarebbe semplicemente' mpiexec'. L'uso di SMPD (controlla la guida di installazione) dovrebbe funzionare sia su Windows che su Linux, a condizione che le versioni di mpich su macchine siano le stesse. mpiexec è solo uno script wrapper. Hai provato a connettere un secondo nodo via ethernet e puoi collegarti a distanza su di esso? – jev
Sì, posso effettuare il login ma in questo modo: rete => doppio clic sull'icona del secondo PC collegato in ethernet. => Inserisci ID utente e password. E ora sono su questo secondo PC. La mia domanda era cosa è machinefile e hosts.cfg? faccio qualcosa in questi due file? – gpuguy