risposta

2

Se vuoi imparare MPI, puoi sicuramente farlo su un singolo PC (la maggior parte degli MPI moderni hanno comunicazioni basate sulla memoria condivisa per le comunicazioni locali, quindi non hai bisogno di configurazioni aggiuntive). Quindi installa un popolare MPI (MPICH/OpenMPI) su una macchina Linux e vai avanti! Se i tuoi programmi saranno vincolati alla CPU, ti suggerirei di eseguire solo le dimensioni del lavoro uguale al numero di core del processore sulla tua macchina.

Modifica: dal momento che l'hai taggato come domanda di virtualizzazione, volevo aggiungere che potresti anche eseguire MPI su più VM (su VMPlayer o VirtualBox per esempio) ed eseguire i tuoi test. Ciò richiederebbe la configurazione della rete inter-vm (diversa in base al software di virtualizzazione).

Qualsiasi cosa scegliate (PC singolo o VM) non cambierà il modo in cui scrivete i vostri programmi MPI. Dato che questo è per l'apprendimento di MPI, suggerirei di andare con il primo approccio (eseguire più programmi MPI su un singolo PC).

+0

Vorrei conoscere altri modi per gestire più processori connessi, come in un cluster reale, si dice che questo può essere fatto con VM? Ho un un cluster di 256 processori e alcuni comandi in linux sono stati usati, voglio creare diciamo 4 cluster di computer per imparare come configurare questo su linux, i dadi e bulloni come si dice, puoi metterti in relazione con questo anche in la tua risposta per favore –

+0

Quello di cui parli sembra diverso da MPI. MPI è una libreria di programmazione che assiste l'utente nella scrittura del codice parallelo. Ci sono molte diverse implementazioni di MPI e variano molto nel modo in cui impostarle. Se sei nuovo alla programmazione in generale, prova a provare una lingua più semplice rispetto a C (che è la lingua più utilizzata per i programmi MPI). C'è una versione di Python qui https://bitbucket.org/bromer/pupympi/wiki/Home. – Jan

1

Non è necessario che le macchine virtuali siano in esecuzione per avviare più copie dell'applicazione che comunicano utilizzando MPI.

MPI può aiutare un cluster virtuale su un determinato nodo singolo lanciando più copie delle applicazioni.

Un vantaggio, tuttavia, di averlo eseguito in una VM è che (come già accennato) fornisce il sand boxing. Quindi qualsiasi problema, se l'applicazione viene creata, rimarrà limitata a quella VM che sta eseguendo la copia dell'app.

Problemi correlati