cs01 / cs01/gdbgui

Compatibility with MPI

Open
#193 5 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
10.4k
Forks
521
PR merge metrics
No merged PRs in 30d

Description

##### Describe the issue
I would be interested in using gdbgui to debug multiple processes started with MPI.
This is similar to closed issue #183, to which I added the same comment but might not be visible.

##### Steps to replicate

In a terminal:
`mpiexec -n <# processes> gdbgui -e gdb -x `
or:
`mpiexec -n <# processes> `
In which the wrapper can optionnaly run gdbgui with a different (random) free port.

##### Describe your environment
* Operating system and version: Linux (any distribution)
* gdbgui version (`gdbgui -v`): 0.11.3.1
* gdb version (`gdb -v`): 8.1
* browser: Firefox (60)
* python packages (`pip freeze`): Python 3.6 + virtualenv

##### Description of the desired feauture
MPI usually launches multiple processes, either on a single host or multiple ones, and usually provides slightly different environment variable values to each process so they can determine their own rank. Also, it must be mentioned that when restarting processes, the whole set of processes must be relaunched together (usually using an "mpiexec" or similar command), so processes cannot be restarted independently within a debugger).

I tried launching different gdbgui instances with different port numbers (before reading this issue), but it seems when 2 gdbgui instances are launched, the second is killed even when not using the same port number.

So using multiple tabs is intersesting, but in this case how can I connect to the correct process ? The issue is not the simply possibility os doing so (using gdb attach), but the possibility of automating it (so as to run and attach multiple processes frow a wrapper script).

For additional information, the case I am interested in is mainly debugging on localhost (for HPC environments with massive parallelism, having many windows or tabs become unworkable, so more specialized debuggers such as DDT or TotalView become necessary, though attaching to a few select processes remains very useful).

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the issue with the provided mpiexec commands and the gdbgui 0.11.3.1 environment. Trace how gdbgui instances are launched and how browser connections select processes; done would mean a wrapper can launch multiple MPI processes and reliably automate attachment to the intended process without requiring independent restarts.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux, python
Domain
devtools, distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.