Dear Junchao,

 

I attached a downsized  Fortran95 program for testing the MPI-3 shared memory feature (MPI_WIN_ALLOCATE_SHARED, MPI_WIN_SHARED_QUERY).

You may add it to your MPICH test suite.

(The program is not secret, so I place it here for everybody, because it may serve also as an example, how to do the shared memory coding in a Ftn-code.)

 

In that program I have inserted 2 ad-hoc prints, just before and just after the call of sbr MPI_WIN_SHARED_QUERY,

which print the value of  the 4th-parameter DISP_UNIT (named   idisplace_unit   in the code)  of that sbr .

 

You can run the program by:

   mpif90 sharedmemtest.f90

   mpiexec -np 2 -bind-to core -prepend-rank ./a.out

 

On our LINUX cluster with MPICH-3.0.4 and Intel-14.0.1  the 2 print-stmts write this:

 

[0]  ---Info-print just BEFORE calling MPI_WIN_QUERY:  idisplace_unit=       -6666         ß  -6666 is my arbitrary initialization value

[0]  ===Info-print just AFTER calling MPI_WIN_QUERY:   idisplace_unit=       -6666

[1]  ---Info-print just BEFORE calling MPI_WIN_QUERY:  idisplace_unit=       -6666

[1]  ===Info-print just AFTER calling MPI_WIN_QUERY:   idisplace_unit=       -6666

 

You see, that sbr MPI_WIN_SHARED_QUERY does not overwrite the initialized value, but should do it.

I observed the same wrong behavior also in our Fortran95-CFD-code.

 

I cannot easily install another MPICH-version. We have only MPICH-3.0.4 . So, do you find that behavior with that program also with the most recent MPICH-version?

 

Greetings

Michael Rachner

 

 

 

Von: Junchao Zhang [mailto:jczhang@mcs.anl.gov]
Gesendet: Freitag, 12. Dezember 2014 20:50
An: <discuss@mpich.org>
Betreff: Re:
[mpich-discuss] Bug in MPI_WIN_SHARED_QUERY using MPICH-3.0.4 from Fortran95-code

 

Michael,

 I could not reproduce the problem with MPICH master. I checked MPICH's F90 binding of this routine. It looks good. There are C tests for this routine in MPICH test suite. They also ran fine.

 Could you either upgrade your MPI to MPICH-3.1.3 or send me your test case?

 Thanks.


--Junchao Zhang

 

On Fri, Dec 12, 2014 at 4:53 AM, <Michael.Rachner@dlr.de> wrote:

Dear developers of MPICH,

 

I am running MPICH-3.0.4 with a Fortran95-code on a LINUX-cluster using the INTEL-14.0.1 Ftn-compiler.

In that code I employ the shared memory feature (using MPI_WIN_ALLOCATE_SHARED and MPI_WIN_SHARED_QUERY).

It works fine, but nevertheless I detected a little bug in  MPI_WIN_SHARED_QUERY:

 

     MPI_WIN_SHARED_QUERY(WIN, RANK, SIZE, DISP_UNIT, BASEPTR, IERROR)

 

The MPI-3.0 Standard document (chapter 11.2, on p. 410)  prescribes that the 4th parameter  DISP_UNIT  is a result from the call of this sbr.

However, with MPICH no value is returned for DISP_UNIT.

 

You can easily test that, by setting  DISP_UNIT  to a control number ( e.g.  DISP_UNIT = -7777 )   just before the call of sbr MPI_WIN_SHARED_QUERY.

Just after that sbr-call   the variable  DISP_UNIT  still contains that control number, but should not.

 

Greetings

Michael Rachner

 

 

 


_______________________________________________
discuss mailing list     discuss@mpich.org
To manage subscription options or unsubscribe:
https://lists.mpich.org/mailman/listinfo/discuss