Dear Open MPI developers, did OMPIO (1) reached 'usable-stable' state?
As we reported in (2) we had some trouble in building Open MPI with ROMIO, which fact was hidden by OMPIO implementation stepping into the MPI_IO breach. The fact 'ROMIO isn't AVBL' was detected after users complained 'MPI_IO don't work as expected with version XYZ of OpenMPI' and further investigations.
Take a look at the attached example. It deliver different result in case of using ROMIO and OMPIO even with 1 MPI rank on local hard disk, cf. (3). We've seen more examples of divergent behaviour but this one is quite handy.
Is that a bug in OMPIO or did we miss something? Best Paul Kapinos 1) http://www.open-mpi.org/faq/?category=ompio 2) http://www.open-mpi.org/community/lists/devel/2015/12/18405.php 3) (ROMIO is default; on local hard drive at node 'cluster') $ ompi_info | grep romio MCA io: romio (MCA v2.0.0, API v2.0.0, Component v1.10.1) $ ompi_info | grep ompio MCA io: ompio (MCA v2.0.0, API v2.0.0, Component v1.10.1) $ mpif90 main.f90 $ echo hello1234 > out.txt; $MPIEXEC -np 1 -H cluster ./a.out; fileOffset, fileSize 10 10 fileOffset, fileSize 26 26 ierr 0 MPI_MODE_WRONLY, MPI_MODE_APPEND 4 128 $ export OMPI_MCA_io=ompio $ echo hello1234 > out.txt; $MPIEXEC -np 1 -H cluster ./a.out; fileOffset, fileSize 0 10 fileOffset, fileSize 0 16 ierr 0 MPI_MODE_WRONLY, MPI_MODE_APPEND 4 128 -- Dipl.-Inform. Paul Kapinos - High Performance Computing, RWTH Aachen University, IT Center Seffenter Weg 23, D 52074 Aachen (Germany) Tel: +49 241/80-24915
program example use mpi integer:: ierr integer(MPI_OFFSET_KIND) :: fileOffset integer(KIND=MPI_OFFSET_KIND):: fileSize real :: outData(10) integer :: resUnit=565 call MPI_INIT(ierr) call MPI_file_open(MPI_COMM_WORLD, 'out.txt', MPI_MODE_WRONLY + MPI_MODE_APPEND, MPI_INFO_NULL, resUnit, ierr) call MPI_FILE_GET_SIZE (resUnit, fileSize, ierr) call MPI_file_get_position(resUnit,fileOffset,ierr) print *, 'fileOffset, fileSize', fileOffset, fileSize call MPI_file_seek (resUnit,fileOffset,MPI_SEEK_SET,ierr) call MPI_file_write(resUnit, outData, 2, & MPI_DOUBLE, MPI_STATUS_IGNORE, ierr) call MPI_file_get_position(resUnit,fileOffset,ierr) call MPI_FILE_GET_SIZE (resUnit, fileSize, ierr) print *, 'fileOffset, fileSize', fileOffset, fileSize print *, 'ierr ', ierr print *, 'MPI_MODE_WRONLY, MPI_MODE_APPEND ', MPI_MODE_WRONLY, MPI_MODE_APPEND call MPI_file_close(resUnit,ierr) call MPI_FINALIZE(ierr) end
smime.p7s
Description: S/MIME Cryptographic Signature