[Mpi3-rma] MPI_WIN_CREATE_DYNAMIC and target_disp

Hubert Ritzdorf Hubert.Ritzdorf at EMEA.NEC.COM
Wed Sep 12 10:51:14 CDT 2012


Hi Jim,

MPI_Get_address() returns the address (displacement) relative
to MPI_BOTTOM. 
This initial address zero is indicated by the constant MPI_BOTTOM.

In C, MPI_Bottom is a defined constant and the value is 0.

In Fortran, MPI_BOTTOM is a variable in a common block
which is located anywhere in memory. The address is constant for the application.
But the address of MPI_BOTTOM may be dependent on the application, compiler, ..
The value of MPI_BOTTOM is not relevant in MPI Implementations for Fortran.
There is no (official) pointer arithmetic in Fortran.

Non-negative disp was correct for windows created by MPI_Win_create since the base
address of a contiguous window region was transferred to MPI_Win_Create. Non_negative disp
is still correct for MPI_Win_Allocate and MPI_Win_allocate_shared.

This is not correct for windows created MPI_Win_dynamic (at least in Fortran).

Hubert

________________________________________
From: mpi3-rma-bounces at lists.mpi-forum.org [mpi3-rma-bounces at lists.mpi-forum.org] on behalf of Jim Dinan [dinan at mcs.anl.gov]
Sent: Wednesday, September 12, 2012 5:04 PM
To: mpi3-rma at lists.mpi-forum.org
Subject: Re: [Mpi3-rma] MPI_WIN_CREATE_DYNAMIC and target_disp

Hi Hubert,

Thanks for weighing in on the Fortran side of this issue.  IIUC, are you
saying that the dynamic window displacement should be relative to the
location of MPI_BOTTOM?  The intent of the working group was that the
displacement should be relative to the /value/ of MPI_BOTTOM, which is
assumed to be NULL.

Unfortunately, removing "non-negative" from the target_disp argument in
MPI_{GET, RGET, PUT, RPUT, ACCUMULATE, ...} is a bigger change than we
can make at this stage.

  ~Jim.

On 9/5/12 10:50 AM, Hubert Ritzdorf wrote:
> Hi,
>
> dependent on the actual discussion, I propose a change in the current
> version of MPI 3.0 draft.
> I send it to the rma list instead of mpi-comments list in order to get
> one of the discussed
> changes or this change into the MPI document:
>
> The argument target_disp in the RMA function MPI_{GET, RGET, PUT, RPUT,
> ACCUMULATE, ...}
> is qualified as non-negative integer. I think, that this cannot be
> guaranteed for the Fortran version of
> new function MPI_WIN_CREATE_DYNAMIC. The displacement is actually
> relative to
> MPI_BOTTOM which is a variable in a common block or module.
>
> The location of MPI_BOTTOM may be dependent on compiler (and possibly
> compiler options)
> and the sequence of common blocks/modules in memory.
> (Example: The memory of a window might be located in a common block,
> which is located
> in front of the common block which contains MPI_BOTTOM).
> Therefore, non-negative displacements cannot be guaranteed for windows
> created
> by MPI_WIN_CREATE_DYNAMIC in Fortran .
>
> The simple change would be to remove "non-negative". But I assume that a
> rationale would be required.
>
> Hubert
>
>
>
> _______________________________________________
> mpi3-rma mailing list
> mpi3-rma at lists.mpi-forum.org
> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-rma
>
_______________________________________________
mpi3-rma mailing list
mpi3-rma at lists.mpi-forum.org
http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-rma


 Click https://www.mailcontrol.com/sr/!19pCLlfG47TndxI!oX7UrJwzC7nuAWDdK6MjdrJUqRl6+MlVdcfbCLjcl4OVKTnp1KZ2hUoBJL63Umxp4EWgA==  to report this email as spam.




More information about the mpiwg-rma mailing list