Hi Folks, the problem could be solved be using the same compiler settings for writung out and reading in. Writing out was done with -trace (Intel compiler), and the read in withou any supplemental options.
Best wishes Alexander > Hi Folks, > > I have problems to retrieve my data thatI have written out with MPI > parallel IO. Ins tests everything works fine, but within an huger > environment, the data read in differ from those written out. > > Here the setup of my experiment: > > ##### the writer ##### > program parallel_io > > use mpi > > implicit none > > integer,parameter :: nx=1,ny=300,nz=256,nv=12 > integer ierr, i, myrank, comm_size, BUFSIZE, thefile, intsize > > parameter (BUFSIZE=1075200) > > real,dimension(nv+2,nx,ny,nz) :: v1 > > integer (kind=MPI_OFFSET_KIND) disp > integer ix, iy, iz, nn, counter > > character(6) cname > call mpi_init(ierr) > call mpi_comm_size(mpi_comm_world, comm_size, ierr) > call mpi_comm_rank(mpi_comm_world, myrank,ierr) > > counter=0 > do ix = 1,nz > do iy=1,ny > do iz=1,nx > do nn=1,nv+2 > v1(nn,ix,iy,iz) = counter*(myrank+20)/200. > counter=counter+1 > end do > end do > end do > end do > > call mpi_barrier(mpi_comm_world,ierr) > > call mpi_type_extent(mpi_real, intsize, ierr) > call mpi_file_open(mpi_comm_world, 'testfile', MPI_MODE_WRONLY + > MPI_MODE_CREATE, mpi_info_null, thefile, ierr) > call mpi_type_size(MPI_INTEGER, intsize, ierr) > > disp = myrank * BUFSIZE * intsize > > ! call mpi_file_set_view(thefile, disp, MPI_INTEGER, MPI_INTEGER, > 'native', mpi_info_null, ierr) > call mpi_file_write_at(thefile, disp, v1(1,1,1,1), BUFSIZE, MPI_REAL, > mpi_status_ignore, ierr) > > call mpi_file_close(thefile, ierr) > > ! print the data read in... > > open (12, file='out000.dat-parallel-write-0') > > if (myrank.eq.0) then > write (12,'(i4,e18.8)') ((((myrank, > v1(nn,ix,iy,iz),nn=1,nv+2),ix=1,nx),iy=1,ny), iz=1,nz) > endif > > close (12) > > call mpi_finalize(ierr) > > > end program parallel_io > > ############################################### > > and the reader... > > ####################reader####################### > program parallel_read_io > > use mpi > > implicit none > integer,parameter :: nx=1,ny=300,nz=256,nv=12 > > integer ierr, i, myrank, comm_size, BUFSIZE, thefile, realsize > parameter (BUFSIZE=1075200) > > real,dimension(nv+2,nx,ny,nz) :: v1 > > integer (kind=MPI_OFFSET_KIND) disp > > integer ix, iy, iz, nn > > call mpi_init(ierr) > call mpi_comm_size(mpi_comm_world, comm_size, ierr) > call mpi_comm_rank(mpi_comm_world, myrank,ierr) > > ! do i=0,BUFSIZE > ! buf(i) = myrank*BUFSIZE + i > ! end do > > call mpi_type_extent(mpi_integer, realsize, ierr) > call mpi_file_open(mpi_comm_world, 'testfile', MPI_MODE_RDONLY, > mpi_info_null, thefile, ierr) > call mpi_type_size(MPI_REAL, realsize, ierr) > > disp = myrank * BUFSIZE * realsize > print*, 'myrank: ', myrank, ' disp: ', disp, ' realsize: ', realsize > > ! call mpi_file_set_view(thefile, disp, MPI_INTEGER, MPI_INTEGER, > 'native', mpi_info_null, ierr) > ! call mpi_file_read(thefile, buf, BUFSIZE, MPI_INTEGER, > mpi_status_ignore, ierr) > > call mpi_file_read_at(thefile, disp, v1(1,1,1,1), BUFSIZE, MPI_REAL, > mpi_status_ignore, ierr) > > call mpi_file_close(thefile, ierr) > > call mpi_barrier(mpi_comm_world,ierr) > > ! print the data read in... > > open (12, file='out000.dat-parallel-read-0') > > if (myrank.eq.0) then > write (12,'(i4,e18.8)') ((((myrank, > v1(nn,ix,iy,iz),nn=1,nv+2),ix=1,nx),iy=1,ny), iz=1,nz) > endif > > close (12) > > call mpi_finalize(ierr) > > > end program parallel_read_io > ############################################### > > Here everything is working fine. However integrating this into a huger > program, I get totally different data written out and read in. > > The setup up is the same as in the experiment, but I need some more > memory... > > What might be the reason for such problems, and if I have an MPI error, how > can I estimate this within a fortan program. I have only found examples for > the error handling of MPI errors in C or C++. I would need an example for > C. > > So any hints or ideas? > > Best wishes > > Alexander > > _______________________________________________ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users