Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[ptp-dev] Re: Identifying MPI programming problems


On Jun 1, 2005, at 2: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.

So two points:

1. I don't know any programmers that do much diagramming of code (other than UML) so I can't help you there.

2. So I have a colleague (Matt) that programs MPI code and he thinks trying to do static analysis for MPI flow diagrams is a hopeless cause (because data flow is often established at runtime). And he has actually tried to do it, so we should probably pay attention to what he says. I was thinking of very simple matching of sends and recvs in the case where it is possible (and easy). Otherwise, the tool doesn't display anything. Perhaps one could click on a send and the matching recv is highlighted (something like bracket matching).

Matt has used static analysis plus run time information to do MPI data flow analysis. This is perhaps too complicated for now but we can think about later. Matt has code we could steal.

Matt would like to see a MPI wizard that could generate code for a particular processor topology, stencil operation and boundary conditions. For example if the processors were layed out in a square grid, one employed a 5 pt stencil, and the boundary conditions were cyclic, the wizard would generate the code. As I write this I'm seeing problems so we will have to think about this further.

Did I confuse everyone?

Cheers,
Craig



Back to the top