Sunday, January 29, 2017

Parallel Debugging with a Serial Debugger

Parallel Debuggers are important tools when trying to eliminate bugs in parallel programs. Commercial parallel debuggers are expensive.
In this blog post I will show you a free and open source alternative which is good enough for education purposes and for small codes.
Suppose you want to debug the famous cpi.c code which computes an approximation to pi by a parallel numerical integration. This demo uses the free Data Display Debugger (ddd) which is based on gdb but has a nice GUI.

Step 1, compile:
mpicc -g -o cpi ./cpi.c

Step 2, run (without a debugger):
mpirun -np 2 ./cpi

Step 3, run with the free Data Display Debugger (ddd):
mpirun -np 2 ddd ./cpi

The last command will open two MPI processes (instances) of ddd each running cpi,
see screen capture:


Finally, I enclose here a short video which I hope is convincing:

video

hi-res version: https://youtu.be/N_J4NKJkuMs

Happy (Free) MPI debugging!

No comments: