Yes, I tried -O0 and -O3. But VOLATILE is going to thwart a wide range of optimizations that would break this code.
Jeff On Thu, Oct 27, 2016 at 2:19 AM, Gilles Gouaillardet < gilles.gouaillar...@gmail.com> wrote: > Jeff, > > Out of curiosity, did you compile the Fortran test program with -O0 ? > > Cheers, > > Gilles > > Tom Rosmond <rosm...@reachone.com> wrote: > Jeff, > > Thanks for looking at this. I know it isn't specific to Open-MPI, but it > is a frustrating issue vis-a-vis MPI and Fortran. There are many very > large MPI applications around the world written in Fortran that could > benefit greatly from this MPI-3 capability. My own background is in > numerical weather prediction, and I know it would be welcome in that > community. Someone knowledgeable in both C and Fortran should be able to > get to bottom of it. > > T. Rosmond > > > > On 10/25/2016 03:05 PM, Jeff Hammond wrote: > > I can reproduce this with Intel 17 and MPICH on Mac OSX so it's not an > Open-MPI issue. I added VOLATILE to the shared memory objects to prevent > Fortran compiler optimizations as well as a bunch of MPI_Win_sync calls > (after replacing fence with lock_all/unlock_all), but neither changed the > outcome. > > While I claim a modest understanding of MPI-3 RMA and Fortran 2008, > unfortunately, I have never figured out how to use MPI-3 shared memory from > Fortran, which is especially unfortunate since it seems to be a fantastic > source of frustration to both real users such as yourself and MPI+Fortran > standard experts (Rolf). > > Sorry for the unsatisfying response, but my suspicion is that this is a > program correctness issue. I can't point to any error, but I've ruled out > the obvious alternatives. > > Jeff > > On Tue, Oct 25, 2016 at 11:29 AM, Tom Rosmond <rosm...@reachone.com> > wrote: > >> All: >> >> I am trying to understand the use of the shared memory features of MPI-3 >> that allow direct sharing of the memory space of on-node processes. >> Attached are 2 small test programs, one written in C (testmpi3.c), the >> other F95 (testmpi3.f90) . They are solving the identical 'halo' exchange >> problem. 'testmpi3.c' is a simplified version of an example program from a >> presentation by Mark Lubin of Intel. I wrote 'testmpi3.f90' to mimic the C >> version. >> >> Also attached are 2 text files of the compile, execution, and output of >> the respective programs: >> >> CC_testmpi3.txt >> F95_testmpi3.txt >> >> Note: All 4 files are contained in the attached 'testmpi3.tar.gz'. >> >> Comparing the outputs of each version, it is clear that the shared memory >> copies in 'testmpi3.c' are working correctly, but not in 'testmpi3.f90'. >> As far as I can tell, the 2 programs are equivalent up to line 134 of >> 'testmpi3.c' and lines 97-101 of 'testmpi3.f90'. I thought the calls to >> 'c_f_pointer' would produce Fortran pointers that would access the correct >> shared memory addresses as the C-pointers do in 'testmpi3.c', but clearly >> that isn't happening. Can anyone explain why not, and what is needed to >> make this happen. Any suggestions are welcome. >> >> My environment: >> Scientific Linux 6.8 >> INTEL FORTRAN and ICC version 15.0.2.164 >> OPEN-MPI 2.0.1 >> >> >> T. Rosmond >> >> _______________________________________________ >> users mailing list >> users@lists.open-mpi.org >> https://rfd.newmexicoconsortium.org/mailman/listinfo/users >> > > > > -- > Jeff Hammond > jeff.scie...@gmail.com > http://jeffhammond.github.io/ > > > _______________________________________________ > users mailing > listus...@lists.open-mpi.orghttps://rfd.newmexicoconsortium.org/mailman/listinfo/users > > > > _______________________________________________ > users mailing list > users@lists.open-mpi.org > https://rfd.newmexicoconsortium.org/mailman/listinfo/users > -- Jeff Hammond jeff.scie...@gmail.com http://jeffhammond.github.io/
_______________________________________________ users mailing list users@lists.open-mpi.org https://rfd.newmexicoconsortium.org/mailman/listinfo/users