Groups Created for MPI Programs
TotalView can automatically attach to MPI processes created by an MPIR starter program (such as, mpirun), for example, when you launch the MPI starter process under TotalView. Here's a typical flow:
1. TotalView is started on the MPI starter program named "mpirun". TotalView names the process "mpirun" and automatically places it in Control Group 1 and Share Group 2.
2. During execution, the "mpirun" process launches the MPI processes, and waits for the debugger to attach to the MPI processes before allowing them to execute the application code. The MPI application is an MPMD-style application, where some of the MPI processes run the executable "a.out", and others run the executable "b.out".
3. When TotalView detects that the "mpirun" process has launched the MPI processes, it automatically attaches to them. The MPI processes are placed in Control Group 1 with the MPI starter process because effectively the MPI starter process is the parent of the MPI processes. The MPI starter process remains in Share Group 2, but two new share groups are created for the MPI processes: Share Group 3 for the MPI processes executing "a.out" and Share Group 4 for the MPI processes executing "b.out".
4. All the threads in the MPI starter process and MPI processes are placed in Worker Group 5, because none of the processes create manager threads and all processes are members of the same Control Group.
NOTE: Note that if you have multiple share groups in your debugging session, you can set the focus to “Share group” in the Focus menu, and only the share group that contains the TOI will run, while the others will remain steady. See
Executing a Single Share Group for an example.