[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[ptp-dev] Fwd: [O-MPI devel] Re: Identifying MPI programming problems
|
I believe the following message was rejected by the PTP list ....
Begin forwarded message:
From: Jeffrey Squyres <jsquyres@xxxxxxxxxxxx>
Date: June 1, 2005 3:31:16 PM MDT
To: Open MPI Developers <devel@xxxxxxxxxxxx>
Cc: Parallel Tools Platform general developers <ptp-dev@xxxxxxxxxxx>,
Craig Rasmussen <crasmussen@xxxxxxxx>, Beth Tibbitts
<tibbitts@xxxxxxxxxx>, Justin Xue <xue@xxxxxxxxxx>
Subject: Re: [O-MPI devel] Re: Identifying MPI programming problems
I guess it depends on the exact definition of "MPI flow diagrams"...?
(I'm not familiar with the term)
Note that there are tools that do message tracing for MPI applications
(as I understand the problem) -- they generate tracefiles of all MPI
message activity. Some generate tracefiles that can be viewed in real
time, others generate tracefiles that can be viewed post-mortem. When
viewed in a nice GUI and/or are applied in analysis tools, these kinds
of tracefiles can show things like deadlock, livelock, tag mismatches,
etc. The nice thing about these tools is that many of them are
implemented at the MPI profiling layer, which means that they can be
used with any number of MPI implementations -- they're not tied to any
specific implementation.
Is this what you're talking about?
That being said, it would certainly be nice if the MPI implementation
(or a tool) could print out at run-time "Hey, you just entered a
deadlock situation and I'm going to hang until you hit ctrl-C". In
many cases, as Nathan mentioned, this is quite difficult to determine
(some entity would need to maintain a global state of all message
passing). Needless to say, such runtime analysis would incur a
performance cost, but would probably be acceptable for debugging
scenarios. Hence, this run-time notification of at least some common
types of MPI programming errors is "difficult but not impossible" for
single-threaded MPI application scenarios. It could even be done at
the same level as the tools described above -- at the MPI profiling
layer, enabling the tool to work with any MPI implementation.
But this kind of strategy becomes much more problematic in
multi-threaded application scenarios -- if the tool determines that
it's in a deadlock situation (I'm waving my hands a bit here), it's
impossible for it to know that another thread won't come along and
break the deadlock. Hence, it's impossible for the tool to know when
it's *really* in a deadlock situation (for example). You might be
able to come up with some reasonable hueristics (e.g., all threads in
all processes are blocking in MPI calls and no one is making any
progress), but I don't can't think of any ways to do this conclusively
off the top of my head (who knows if a signal handler won't create a
new thread and break the deadlock, what's a reasonable timeout for "no
progress", etc.).
On Jun 1, 2005, at 3:52 PM, Donald P Pazel wrote:
On Jun 1, 2005, at 4:31 PM, Craig Rasmussen wrote:
>
>I think Nathan has hit on a great idea (MPI flow diagrams). Do you
>Open MPI guys think this would be possible?
I'd like to mention, that what would be most interesting is to see
how MPI flow diagrams are represented from the practitioner
viewpoint, as opposed high-level design diagrams. I find that the
kind of "white board" diagrams that engineers draw daily (e.g. blocks
and arrows) and use to capture the essence of code problems are
extremely interesting and helpful, and derive from extended
experience. (Then of course we usually erase those drawings, or
leave them until than dry hard to the board.)
In any case, I think seeing these paradigmic drawings, and the
problems they address, would be very helpful as input to think about
for tools' features.
Thanks,
Don Pazel,
Craig Rasmussen <crasmussen@xxxxxxxx>
06/01/2005 04:31 PM
To: Nathan DeBardeleben <ndebard@xxxxxxxx>
cc: Greg Watson <gwatson@xxxxxxxx>, Parallel Tools
Platform general developers <ptp-dev@xxxxxxxxxxx>, Donald P
Pazel/Watson/IBM@IBMUS, Justin Xue/Watson/Contr/IBM@IBMUS, Beth
Tibbitts/Watson/IBM@IBMUS, Open MPI Developers <devel@xxxxxxxxxxxx>
Subject: Re: Identifying MPI programming problems
On Jun 1, 2005, at 11:47 AM, Nathan DeBardeleben wrote:
>
> There are definitely things that can be done, and there are
definitely
> real codes out there that could take advantage of it. But like
> anything else it can get exceedingly complicated. I personally
think
> any steps that can be made towards making MPI flow diagrams (even
> partially accurate ones) would be huge steps in the right
direction.
I think Nathan has hit on a great idea (MPI flow diagrams). Do you
Open MPI guys think this would be possible?
Cheers,
Craig
_______________________________________________
devel mailing list
devel@xxxxxxxxxxxx
http://www.open-mpi.org/mailman/listinfo.cgi/devel
--
{+} Jeff Squyres
{+} The Open MPI Project
{+} http://www.open-mpi.org/