Nota che una caratteristica che esiste dal MPI giorni 1.x è che si può impostare un gestore di errori: per esempio,
http://www.mpi-forum.org/docs/mpi-11-html/node148.html
Come osserva Marco, la maggior parte di noi basta usare MPI_ERRORS_ARE_FATAL (che è l'impostazione predefinita) perché i nostri algoritmi sono molto pesanti e non possono essere facilmente recuperati (tranne attraverso il checkpoint, che la maggior parte di noi fa comunque).
Ma questo non deve essere il caso; è possibile avere le funzioni MPI restituire i messaggi di errore e provare a recuperare nel miglior modo possibile.
Ci sono alcuni pacchetti MPI fault-tolerant là fuori - http://icl.cs.utk.edu/ftmpi/ (che è un po 'vecchio e implementa solo la funzionalità MPI 1.2). Più recentemente, http://osl.iu.edu/research/ft/cifts/ è un approccio che viene inserito in OpenMPI come progetto separato, e vi è anche un pacchetto di checkpoint/riavvio a livello di sistema operativo, BLCR, che potrebbe essere di interesse.
Il forum MPI-3 sta discutendo un'API standard di tolleranza agli errori in MPI, quindi il ritmo di tali progetti è in accelerazione.
fonte
2010-11-16 17:27:27
+1: Non ho dato un errore ai gestori di errori MPI da quando ho partecipato al corso alcuni anni fa. –
La recente versione 1.3.1 di MPICH2 è più tollerante ai guasti rispetto alle versioni precedenti. Tollera i singoli errori di processo quando MPI_ERRORS_RETURN viene utilizzato come gestore degli errori, ma le operazioni collettive potrebbero non riuscire in modi imprevisti o sospendere il programma. Quella versione supporta anche BLCR. Ecco il changelog relativo: https://svn.mcs.anl.gov/repos/mpi/mpich2/tags/release/mpich2-1.3.1/CHANGES –