Comme d'autres l'ont mentionné, si vous travaillez seulement avec une poignée de processus MPI vous pouvez essayer d'utiliser plusieurs gdb sessions, la redoutable valgrind ou rouler vos propres printf / solution d'enregistrement.
Si vous êtes en utilisant des processus plus que cela, vous commencez vraiment à avoir besoin d'un bon débogueur. Le OpenMPI FAQ recommande à la fois Allinea DDT et TotalView.
Je travaille sur Allinea DDT. C'est un plein de fonctionnalités, source graphique-débogueur de code donc oui, vous pouvez:
- Debug ou attacher (plus de 200k) processus MPI
- Étape et de les mettre en veille, en groupe ou individuellement
- Ajouter des points d'arrêt, les montres et les points de trace ne
- Attraper les erreurs de mémoire et les fuites
...et ainsi de suite. Si vous avez utilisé Eclipse ou Visual Studio, alors vous serez à la maison.
Nous avons ajouté quelques fonctionnalités intéressantes spécialement pour le débogage parallèle de code (MPI, multi-thread ou CUDA):
Il est largement utilisé parmi top500 HPC sites, tels que l' ORNL, NCSA, LLNL, Juliers et. al.
L'interface est assez accrocheur; nous avons chronométré le renforcement et la fusion des piles et des variables de processus de 220 000 à 0,1 s dans le cadre du test d'acceptation sur Oak Ridge du Jaguar cluster.
@tgamblin mentionné l'excellent STAT, qui s'intègre avec Allinea DDT, comme le font plusieurs autres projets open source les plus populaires.