Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: [OMPI users] Can't read more than 2^31 bytes with MPI_File_read, regardless of type?
From: Jonathan Dursi (ljdursi_at_[hidden])
Date: 2012-07-12 10:53:52


Hi:

One of our users is reporting trouble reading large files with MPI_File_read (or read_all). With a few different type sizes, to keep count lower than 2^31, the problem persists. A simple C program to test this is attached; we see it in both OpenMPI 1.4.4 and OpenMPI 1.6, with the only difference being the error code returned. We can read the amount of data required by looping over MPI_File_read()s, but in more complicated scenarios this gets awkward. I always thought that the 32-bit signed count limitation wasn't so bad because you could create larger data types to get around it, but this appears not to be the case here. Is this a known problem that we should just work around?

Output from ompi_info --all for the 1.4.4 build is also attached.

OpenMPI 1.4.4

Trying 268435457 of float, 1073741828 bytes: successfully read 268435457
Trying 536870913 of float, 2147483652 bytes: failed: err=35, MPI_ERR_IO: input/output error
Trying 134217729 of double, 1073741832 bytes: successfully read 134217729
Trying 268435457 of double, 2147483656 bytes: failed: err=35, MPI_ERR_IO: input/output error
Trying 67108865 of 2xdouble, 1073741840 bytes: successfully read 67108865
Trying 134217729 of 2xdouble, 2147483664 bytes: failed: err=35, MPI_ERR_IO: input/output error
Trying 524289 of 256xdouble, 1073743872 bytes: successfully read 524289
Trying 1048577 of 256xdouble, 2147485696 bytes: failed: err=35, MPI_ERR_IO: input/output error
Chunk 1/2: Trying 524288 of 256xdouble, chunked, 1073741824 bytes: successfully read 524288
Chunk 2/2: Trying 524289 of 256xdouble, chunked, 1073743872 bytes: successfully read 524289

OpenMPI 1.6
Trying 268435457 of float, 1073741828 bytes: successfully read 268435457
Trying 536870913 of float, 2147483652 bytes: failed: err=13, MPI_ERR_ARG: invalid argument of some other kind
Trying 134217729 of double, 1073741832 bytes: successfully read 134217729
Trying 268435457 of double, 2147483656 bytes: failed: err=13, MPI_ERR_ARG: invalid argument of some other kind
Trying 67108865 of 2xdouble, 1073741840 bytes: successfully read 67108865
Trying 134217729 of 2xdouble, 2147483664 bytes: failed: err=13, MPI_ERR_ARG: invalid argument of some other kind
Trying 524289 of 256xdouble, 1073743872 bytes: successfully read 524289
Trying 1048577 of 256xdouble, 2147485696 bytes: failed: err=13, MPI_ERR_ARG: invalid argument of some other kind
Chunk 1/2: Trying 524288 of 256xdouble, chunked, 1073741824 bytes: successfully read 524288
Chunk 2/2: Trying 524289 of 256xdouble, chunked, 1073743872 bytes: successfully read 524289

    - Jonathan

-- 
Jonathan Dursi | SciNet, Compute/Calcul Canada | www.SciNetHPC.ca



  • text/plain attachment: foo.c