I would agree with Brian - in fact, it was my understanding from the beginning of the project that we were Andrew's first vision: an MPI implementation with whatever run time support that is required, and no more.

I would only expand on the statement about "...do not detract from the primary goal..." to add that anything that complicates the code base, makes it harder to maintain, etc. IMHO violates this principle. OMPI is an MPI implementation. If people want to reuse the code for other purposes, they are welcome to do so.

I myself currently assist several such groups, and just became involved in yet another, in doing just this. Our approach has been to respect OMPI's inherent nature by not intruding upon it with requests to modify the code solely for our benefit. Instead, we work on branches of OMPI's code, reusing what we want (maintaining copyright, of course), removing/replacing what we don't want. Where it would help OMPI, we contribute code back as a gesture of appreciation for what others have done and are doing. It isn't hard to do at all, and maintains the integrity of both the OMPI objective and the (at times, conflicting with OMPI) objectives of the projects working on other uses for the code.

I think Andrew raised a good point that is the crux of the argument that has been running for some time now. Thanks for raising it to a more visible position!

Ralph

On Mar 11, 2009, at 12:41 PM, Brian W. Barrett wrote:

On Wed, 11 Mar 2009, Andrew Lumsdaine wrote:

Hi all -- There is a meta question that I think is underlying some of the discussion about what to do with BTLs etc. Namely, is Open MPI an MPI implementation with a portable run time system -- or is it a distributed OS with an MPI interface? It seems like some of the changes being asked for (e.g., with the BTLs) reflect the latter -- but perhaps not everyone shares that view and hence the impedance mismatch.

I doubt this is the last time that tensions will come up because of differing views on this question.

I suggest that we come to some kind of common understanding of the question (and answer) and structure development and administration accordingly.

My personal (and I believe, Sandia's) view is that Open MPI should seek to be the best MPI implementation it can be and to leave the distributed OS part to a distributed OS project. This can be seen by my work with Ralph over the past few years to reduce the amount of run-time that exists when running on Red Storm. My vision of the (ideal, possibly impractical) Open MPI would be one with a DPM framework (the interface between OMPI and the run-time) and nothing else in the run-time category.

That being said, I understand the fact that we need a run-time for platforms which are not as robust as Red Storm. I also understand the desire to build a variety of programming paradigms on top of Open MPI's strong infrastructure. Given the number of broken interfaces out there, only having to fix them once with more software is attractive.

In the end, I don't want to give up the high quality MPI implementation part of the project to achieve the goal of wider applicability. Five years ago, we set out to build the best MPI implementation we could, and we're not done yet. We should not give up that goal to support other programming paradigms or projects. However, changes to better support other projects and which do not detract from the primary goal of a high quality MPI implementation should be pursued.


Brian
_______________________________________________
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel

Reply via email to