MPI : mpi assert

De Wiki de Calcul Québec
Aller à : Navigation, rechercher
Autres langues :anglais 100% • ‎français 100%

En langage C/C++ la fonction assert(<expression>) permet d'arrêter le programme si une condition particulière n'est pas respectée. La fonction assert() affiche alors à la sortie d'erreur l'expression qui a fait échouer le programme.

En MPI, lorsque une des tâches arrête le programme, elle doit envoyer à toutes les tâches l'ordre de s'arrêter en utilisant la fonction MPI_Abort(). La macro suivant permet de définir la fonction mpi_assert() jouant le même rôle que assert mais dans un programme parallèle MPI.

#define mpi_assert(expression)  
do { 
  if (!(expression)) { 
     fprintf(stderr, "Failed assertion at %d in %s",__LINE__, __FILE__); 
     MPI_Abort(MPI_COMM_WORLD, 1); 
 } 
} while (0)

La fonction mpi_assert() s'utilise exactement de la même façon que la fonction assert() :

mpi_assert(<expression>);

si l'expression donnée en argument est vraie, l'exécution continue normalement.

Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Ressources de Calcul Québec
Outils
Partager