Subject: Re: [Boost-mpi] No arg init
From: Matthias Troyer (troyer_at_[hidden])
Date: 2012-12-31 17:05:07
On Dec 4, 2012, at 10:53 AM, Alain O Miniussi <alain.miniussi_at_oca.eu> wrote:
> On Thu, 2012-11-29 at 12:55 -0500, Jeremiah Willcock wrote:
>> On Thu, 29 Nov 2012, Matthias Troyer wrote:
>>> On Nov 29, 2012, at 5:23 PM, Jeremiah Willcock <jewillco_at_[hidden]> wrote:
>>>> Another issue with MPI versions is that Boost.MPI currently uses
>>>> functions such as MPI_Address that have been removed in MPI 3.0. Is
>>>> that something that should be addressed in the future? I think the
>>>> replacements for some of them did not exist before MPI 2.0.
>>> A valid point - we will have to provide two implementations depending on
>>> which version of MPI is present. Is there any standardized macro that
>>> one an check to determine the MPI version at compile time?
>> There are MPI_VERSION and MPI_SUBVERSION, but those are in 2.0 and above
>> only as well. You can probably use their being undefined to mean that the
>> implementation does not comply to 2.0. I don't know how many 1.1-only MPI
>> implementations are around anymore, though; there may not be any still in
>> use (MPI 2.0 was released in 1997).
> That's a good point, especially if the "historical" C++ API was not
> present in 1.1 (which I think it's the case, it's not clear to me if it
> was introduced in 1.2 or 2.0). Maybe we should only take into
> consideration 2.0 and 3.0.
> Also, if some 1.1 only API are still use, how many requires a Boost.MPI
> interface ?
> As far as the no arg init is concerned, it seems to me that that
> - providing them will simplify the API,
> - even if some 1.1 only MPI are still around, even if some of them have
> a use for Boost.MPI, even if those do not support a no arg Init, theirs
> users still have the possibility to provide those arguments anyway.
I checked the implementation and we do have a no arg init for MPI 2.0 or higher since that can be tested by MPI_VERSION. You can also manually define BOOST_MPI_HAS_NOARG_INITIALIZATION to enable it for MPI 1.2 or MPI 1.3 implementations. I assume that this is good enough and we might just want to edit the documentation to make the no arg version the default in the documentation.
Boost-Commit list run by troyer at boostpro.com