Returning to a super-old thread that was never finished...

On Dec 2, 2014, at 6:49 PM, George Bosilca <bosi...@icl.utk.edu> wrote:

> That's not enough. They will have to check for the right version of Open MPI 
> and then for the availability of the OMPI_<something> functions. That looks 
> as having the sabe cost as checking for the MPIX_<something> function without 
> looking for a specific MPI library.

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?

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*.

This is at least slightly more readable, and more clear that you're using an 
Open MPI-specific extension:

-----
#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
-----

I guess my fundamental question is: why impose commonality of names where there 
is no commonality of function signature and behavior?

-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to: 
http://www.cisco.com/web/about/doing_business/legal/cri/

Reply via email to