Turing : Compilation de code MPI

Pour compiler et faire l'édition de liens d'un programme MPI, il faut utiliser les scripts préfixés par mpi : mpixlf90_r, mpixlc_r, mpixlcxx_r

Exemples de générations d'exécutables MPI pour Blue Gene/Q :

$ mpixlf90_r prog.f90 -o prog  
$ mpixlc_r prog.c -o prog 
$ mpixlcxx_r prog.C -o prog

Changement de version de MPI

Pour détecter d'éventuels problèmes MPI ou, au contraire, pour améliorer les performances des communications MPI, il est possible de modifier la version de la bibliothèque MPI à l'aide de la commande module.

Trois versions MPI sont disponibles :

  • mpi/gcc.legacy : cette version peut détecter des erreurs dans les appels MPI. Elle vérifier le bon comportement du code lors d'un premier portage sur BG/Q.
  • mpi/xl : elle peut également détecter des erreurs mais avec de meilleures performances que mpi/gcc.legacy. C'est la version MPI que IBM positionne sur BG/Q.
  • mpi/xl.ndebug : les vérifications d'erreurs sont désactivées. Elle doit donner de meilleurs performances que mpi/xl. C'est la version MPI, par défaut, positionnée sur Turing par l'IDRIS.

Si l'on veut accéder à la version mpi/xl, par exemple, il faut positionner la commande module avant de faire appel aux scripts mpixlf90_r, mpixlc_r, mpixlcxx_r :

$ module load mpi/xl
$ mpixlf90_r prog.f90 -o prog

Le document Blue Gene/Q Application Development précise les différences entres les versions MPI sur BG/Q.