Hi,

I'll be on a plane on 10/8, so I won't be able to make the call. Here are my comments (I haven't joined the MPI tool github thingy yet):

I think the intent is:
Here's why... If not all MPI processes define the symbol within the same image file (executable or shared library), it could be problematic for the debugger. TotalView does not currently set MPIR_being_debugged in the MPI processes (so this will have to change), but it does set MPIR_debug_gate in all MPI processes that define it. For the debug gate variable the TotalView client will lookup the symbol in a representative process from each unique executable in the program (the "share group"), and broadcast a write request with a "segment plus offset" relocatable address for each share group. The TotalView servers attempt to relocate that address in each MPI process, but if the process does not load the segment containing the variable the server skips it.

So, the problem I can imagine here has to do with the variable being defined in a shared library and not all processes having the library loaded at the time the MPIR_DEBUG_SPAWNED event is raised. Also, if the library defining the symbol is loaded later, the debugger might not catch that event and set the variable.



TotalView uses 0 and 1. It seems to me that other non-zero values might be a problem for the MPI implementation.


I think we said that it is set to 0 before detaching from the MPI process. Is that not specific enough? If we are going to kill the job, there should be no need to set the variable to 0.


I think that the MPI implementation is allowed to test the value. I guess I don't see why it can't also modify it's value if it suits its purposes.

Cheers, John D.


Marc-Andre Hermanns wrote:
Dear all,

there were several comments and modification requests during our
reading of ticket #484 that will require another reading.

I put up the notes from the reading at:

https://github.com/mpiwg-tools/tools-issues/wiki/Notes-2015-09-24

Kathryn and I would like to discuss this at the next call on Oct 8, 2015.

The most pressing question in advance is that we think about where the
symbol _needs_ to be defined, if at all. The current definition is a
little ambiguous. As the variable is optional, the common
understanding during the discussion was that it does not have to be
available in _every_ process. Does it lead to complications for the
Debuggers (bookkeeping, etc.) if some MPI processes have the symbol
and others do not? Should we rather have a "all or none" semantic?

It would be great, if we could discuss this prior to next week, so we
can finalize the wording on this ticket during the call.

Cheers,
Marc-Andre

  

_______________________________________________ mpiwg-tools mailing list mpiwg-tools@lists.mpi-forum.org http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-tools