[mpich-discuss] Can I choose between MPI_WIN_UNIFIED and MPI_WIN_SEPARATE ?

Pavan Balaji balaji at mcs.anl.gov
Sat Jul 13 12:22:19 CDT 2013


FYI, we are discussing allowing the user to ask for a "required" value 
for the memory model, in MPI-3.1.

The idea is that if you are only going to do PUT/GET/ACC accesses and 
not direct load/store, there's no semantic difference between UNIFIED 
and SEPARATE.  In that case, if the user specifies that "required" is 
only SEPARATE, the implementation can have a bit more flexibility in 
choosing UNIFIED vs. SEPARATE.

For MPI-3, ch3 will return UNIFIED.  As Jeff mentioned, there was a bug 
in mpich-3.0 to mpich-3.0.4, so we were returning SEPARATE.  That's 
fixed in the git master.  In the next release, we'll correctly return 
UNIFIED.

  -- Pavan

On 07/13/2013 11:05 AM, Jeff Hammond wrote:
> UNIFIED means that the public and private window are the same.
> SEPARATE, which is equivalent to MPI-2 RMA behavior, requires explicit
> synchronization of the public and private windows, e.g. with
> MPI_WIN_SYNC.  If you are in the unified model, SYNC is a no-op.
>
> You cannot choose this because UNIFIED requires the hardware to
> provide something that is not always present.  There is little to no
> value in asking for SEPARATE if UNIFIED is available.  I can imagine
> scenarios where it might be useful but they are mostly contrived.
>
> MPICH's ch3 device is going to provide UNIFIED, btw, at least in the
> trunk.  Pavan committed that fix a few days ago.
>
> Jeff
>
> On Sat, Jul 13, 2013 at 10:57 AM, Ronny Brendel <ronnybrendel at gmail.com> wrote:
>> Hey,
>>
>> Can I choose between the two memory models, or is this provided by the
>> mpi implementation or underlying hardware?
>>
>> If I can choose: How can I?
>> If I cannot choose: Why is that?
>>
>>
>> I tried using MPI_Win_set_attr to set it, but Mpich throws an error
>> that the key is invalid.
>>
>> (I am using mpich 3.0.4)
>>
>> Reading the standard I couldn't find out wether this is supposed to be
>> choosable by the user. I just assumed it is. Because, if I don't query
>> MPI_WIN_MODEL, there is a chance my program works on one but not on
>> the other.
>> So I have a correct program depending on which model there is and the
>> code looks exactly the same. Which is behavior I would not expect.
>>
>> I hope you can help,
>> cheers,
>> Ronny
>> _______________________________________________
>> discuss mailing list     discuss at mpich.org
>> To manage subscription options or unsubscribe:
>> https://lists.mpich.org/mailman/listinfo/discuss
>
>
>

-- 
Pavan Balaji
http://www.mcs.anl.gov/~balaji



More information about the discuss mailing list