[mpich-discuss] (cont) question about mpi_win/mpi_put

Ted Sariyski tsariysk at craft-tech.com
Thu May 29 09:24:49 CDT 2014

I figured it out. I used wrong base address. I have to use base instead 
of offsets(1):
/call MPI_GET_ADDRESS(obj         , base      , ierr)/
/offsets = offsets - base/

On 05/29/2014 09:40 AM, Ted Sariyski wrote:
> Hi,
> I have difficulties to implement mpi_win/mpi_put. What's strange is, 
> that when a process N puts data on ROOT, ROOT gets most of the data 
> correct, with few exceptions. Attached is a small example, which 
> illustrates the problem and here is a short description.
>  1. There is an array BP(nBP) of type /DR_boundaryPoint_t = {integer,
>     character*32,real(3),real}/.
>  2. MPI type /MPI_DR_boundaryPoint_t/ match DR_boundaryPoint_t//
>  3. ROOT opens a window /BP_win/ for /nBP/ elements of type
>     /MPI_DR_boundaryPoint_t/
>  4. ONE puts /BP(3) to root:BP(3)/
> ROOT receives the real fields /dist/ and /ori/ correctly, but the 
> integer field /bcTag/ is not updated, and the character field /bcName/ 
> is messed up.
> 0: bcTag=   0 dist=  0.9000E+01 bcName=TEST    A ori= 0.6000E+01  
> 0.9000E+01  0.1200E+02
> 1: bcTag=  99 dist=  0.9000E+01 bcName=TEST         ori= 0.6000E+01  
> 0.9000E+01  0.1200E+02
> I have no idea what I am doing wrong. Any help will be highly appreciated.
> Thanks in advance,
> --Ted

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpich.org/pipermail/discuss/attachments/20140529/68a89019/attachment.html>

More information about the discuss mailing list