Debugging von MPI-Programm
-
Guten Abend.
Ich möchte ein einfaches paralleles Programm debuggen. Mein Programm macht erstmal nicht viel, ich möchte jedoch p und r unter gdb ausgeben lassen.
#include <iostream> #include <mpi.h> using namespace std; int main(int argc, char* argv[]) { MPI::Init(argc,argv); int r = MPI::COMM_WORLD.Get_rank(); int p = MPI::COMM_WORLD.Get_size(); if(p%2) throw("Number of processes must be EVEN!\n"); MPI::Finalize(); return 0; }
Nun kompiliere ich das mithilfe von
gcc -o MPI_Debug MPI_Debug.cpp -lmpichcxx -lmpich -lstdc++ -I/usr/include/mpich
da eine Kompilierung mit mpicxx und Co. aufgrund der Optimierung nicht funktioniert. Siehe Parameter mit
mpicxx -show
Versuche ich nun mein Programm zu debuggen, mtihilfe von
mpirun -n 2 xterm -e gdb -x gdb.txt ./MPI_Debug
Wobei in "gdb.txt" nur
b main
steht.
Leider wird nach einem "run" in der gdb-Konsole und danach einem "list" nur ein Fehler wegen einer <built-in> angezeigt.
<built-in>: Datei oder Verzeichnis nicht gefunden.
Habe leider keine funktionierende Lösung gefunden, kann mir jemand bei der Nutzung eines Debuggers unter Linux helfen?
Es liegt sehr wahrscheinlich an der Kompilierung, wenn ich jedoch mpicxx und Co. zum Kompilieren benutze, kriege ich beim "print p" immer nur "optimized out" Ausgaben, mit denen ich nichts anfangen kann.
Vielen Dank für eure Mühen.
Lieben Gruß
phanlipo
-
Dieser Thread wurde von Moderator/in Arcoth aus dem Forum C++ (alle ISO-Standards) in das Forum Compiler- und IDE-Forum verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.