Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] [RFC] Non-blocking collectives (LibNBC) merge to trunk
From: Torsten Hoefler (torsten.hoefler_at_[hidden])
Date: 2008-02-07 01:46:47

Hi Brian,
> Let me start by reminding everyone that I have no vote, so this should
> probably be sent to /dev/null.
thanks for your comment and this will not go to /dev/null!

> I think Ralph raised some good points. I'd like to raise another.
yes [will reply to this in a separate thread]

> Does it make sense to bring LibNBC into the release at this point,
> given the current standardization process of non-blocking collectives?
> My feeling is no, based on the long term support costs. We had this
> problem with a function in LAM/MPI -- MPIL_SPAWN, I believe it was --
> that was almost but not quite MPI_COMM_SPAWN. It was added to allow
> spawn before the standard was finished for dynamics. The problem is,
> it wasn't quite MPI_COMM_SPAWN, so we were now stuck with yet another
> function to support (in a touchy piece of code) for infinity and beyond.
> I worry that we'll have the same with LibNBC -- a piece of code that
> solves an immediate problem (no non-blocking collectives in MPI) but
> will become a long-term support anchor. Since this is something we'll
> be encouraging users to write code to, it's not like support for
> mvapi, where we can just deprecate it and users won't really notice.
> It's one thing to tell them to update their cluster software stack --
> it's another to tell them to rewrite their applications.
I think this is a very good and valid point. However, I would like to
deprecate the NBC_* things as soon as non-blocking collectives are a
part of the standard. Of course, this would probably need two minor
versions to "clean" the code-base, but this is (will be) our normal
procedure (just what happened to MVAPI).

And rewriting the user's application will not be that hard, it'll mainly
be vim:%s/NBC_/MPI_/g. Even if we change the interface (e.g. add tags or
decide to use the more limited split collective approach), this task is
rather easy and can be automated easily. It's not a functionality
change, just an interface.

So don't get me wrong, I'm not pushing for it but I have had quite some
users who saw me as Open MPI and LibNBC developer when Open MPI will
support non-blocking collectives. We had a long discussion about this at
the Paris meeting and decided (for various reasons) to not add
non-blocking collectives directly to the coll modules but rather have
support for LibNBC. So this is already the "light" version of the whole
effort :).

And we do not know how long this MPI-3 standardization process will take.


 bash$ :(){ :|:&};: --------------------- -----
Indiana University    |
Open Systems Lab      |
150 S. Woodlawn Ave.  | Bloomington, IN, 474045-7104 | USA
Lindley Hall Room 135 | +01 (812) 855-3608