I have been following this being very interested, I will create a PR for my
branch then.

To be clear, I already did the OMPI change before this discussion came up,
so this will be the one, however the change to other naming schemes is easy.

2014-12-19 7:48 GMT+00:00 George Bosilca <bosi...@icl.utk.edu>:
>
> On Thu, Dec 18, 2014 at 2:27 PM, Jeff Squyres (jsquyres) <
> jsquy...@cisco.com> wrote:
>
>> On Dec 17, 2014, at 9:52 PM, George Bosilca <bosi...@icl.utk.edu> wrote:
>>
>> >> I don't understand how MPIX_<something> is better.
>> >>
>> >> Given that there is *zero* commonality between any MPI extension
>> implemented between MPI implementations, how exactly is having the same
>> prefix any less confusing?
>> >
>> > This is an overstatement. There were quite a few examples over the last
>> few years (PERUSE, libNBC, ULFM). They all took different approaches for
>> the naming of their functions, increasing the potential users confusion. As
>> a developer for one of these MPI extensions I would rather go with a unique
>> naming scheme to free our users from the hassle of the name checking.
>>
>> PERUSE and libNBC were both exposed through actual MPI functions -- not
>> extensions.
>>
>
> No, they we both exposed in the most convenient way for users: PERSUE_*
> and NBC_*.
>
> If you put ULFM in ompi/mpiext, we don't have a strict policy on the
>> exposed extension symbols, that's true.  But FWIW, the existing ones that
>> are in the OMPI github tree are all OMPI_* symbols.
>>
>> All this being said, if your *real* complaint is that you want the same
>> prefixes for ULFM between OMPI and MPICH, then great -- use MPIX in both.
>> That's an entirely different case than what I have been talking about
>> because you *do* have the same functions/behavior in multiple MPI
>> implementations.
>>
>
> I had no complaint. I simply made a statement based on my prior experience
> as a developer of two such extensions, extensions that 1) have (or had) a
> reasonable number of users; and 2) were useful enough to be finally
> supported by multiple open source MPI implementations.
>
> We made little progress over the last couple of [extremely long] emails
> and the original topic diverged and got diluted. Lets hold on our
> discussion here and let Nick, Keita and the others go ahead and complete
> their work. We can fiddle over the naming scheme during our face-to-face
> meeting in January.
>
>   George.
>
> My point is that if we have OMPI-specific extensions (which most likely
>> will be), then having an OMPI_ prefix is a Good Thing because it clearly
>> identifies them as belonging to OMPI, not other MPI implementations.
>
>
>> >> My point is that using an extension is inherently non-portable.  The
>> chances for <something> to collide between different MPI implementations is
>> actually quite high.  Indeed, if everyone uses MPIX_<something>, then
>> there's a very real possibility that MPIX_Foo != MPIX_Foo != MPIX_Foo.
>> That's *horrible*.
>> >
>> > Horrible sure, but highly improbable (function names have a meaning)
>>
>> I think we're being being subjective here -- there's no real way to
>> quantify this.  We might have to agree to disagree on this point.
>>
>> One real place that MPI implementations may collide on extension names
>> are symbols for upcoming/new functions (e.g., MPI-4 functions).  MPICH, for
>> example, put the NBCs in as MPIX_Ibarrier (etc.) before MPI-3 was formally
>> passed.  OMPI, however, just put those functions in as MPI_Ibarrier() -- we
>> never marked them as MPIX.  I.e., we wanted until the NBCs were formally
>> voted in and then put them in as their final names.
>>
>> The rationale for this approach so that a) we waited until it was pretty
>> certain that these functions were final final final, and b) people could
>> start using the functions immediately without having to worry about whether
>> they are named MPIX_foo or MPI_foo.
>>
>> If OMPI continues this policy, then OMPI/MPICH won't collide on these
>> names.
>>
>> >> -----
>> >> #if defined(OPEN_MPI) && OPEN_MPI
>> >>   OMPI_Foo(a,b,c);
>> >> #endif
>> >>
>> >> ...
>> >>
>> >> #if defined(MPICH) && MPICH
>> >>   MPIX_Foo(f,e,d,c,b,a);
>> >> #endif
>> >> -----
>> >
>> > This is horrible! This is the kind of solution that neither a developer
>> or a user of such an extension would promote.
>>
>> Er... regardless of whether the OMPI extension begins with MPIX_ or
>> OMPI_, how does that change the above code pattern?
>>
>> Extensions are *always* potentially non-portable.
>>
>> >> I guess my fundamental question is: why impose commonality of names
>> where there is no commonality of function signature and behavior?
>> >
>> > The overarching goal of an MPI extension is to show the interest of the
>> approach and eventually become part of the standard.
>>
>> I guess we disagree there.  There's been 2 OMPI extensions that have
>> existed for several releases that have no intention of ever going into the
>> standard.
>>
>> > A well designed extension will have a unique function signature and
>> behavior, not only across different implementations but across different
>> versions.
>>
>> ...er... by definition, any given implementation cannot guarantee that.
>>
>> --
>> Jeff Squyres
>> jsquy...@cisco.com
>> For corporate legal information go to:
>> http://www.cisco.com/web/about/doing_business/legal/cri/
>>
>> _______________________________________________
>> users mailing list
>> us...@open-mpi.org
>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
>> Link to this post:
>> http://www.open-mpi.org/community/lists/users/2014/12/26037.php
>>
>
>
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
> Link to this post:
> http://www.open-mpi.org/community/lists/users/2014/12/26038.php
>


-- 
Kind regards Nick

Reply via email to