diff options
author | Albert Cheng <acheng@hdfgroup.org> | 2000-11-15 19:59:44 (GMT) |
---|---|---|
committer | Albert Cheng <acheng@hdfgroup.org> | 2000-11-15 19:59:44 (GMT) |
commit | e1cd6bcb61b5ec39bcfea7a4ceea37c75b0a1d63 (patch) | |
tree | 404d59d87ae4edcb985f37e1543c121b0530e7c7 | |
parent | 5939bcff41c1de7cf948679b7a08f329b318c238 (diff) | |
download | hdf5-e1cd6bcb61b5ec39bcfea7a4ceea37c75b0a1d63.zip hdf5-e1cd6bcb61b5ec39bcfea7a4ceea37c75b0a1d63.tar.gz hdf5-e1cd6bcb61b5ec39bcfea7a4ceea37c75b0a1d63.tar.bz2 |
[svn-r2935] Purpose:
Bug fix
Description:
The optimized MPIO code was not working with the TFLOPS machine.
It kept reporting "can't convert from size to size_i" errors in
H5FD_mpio_write() and H5FD_mpio_read().
Solution:
The error was actually in H5S_mpio_spaces_xfer() in H5Smpio.c
in which the variable mpi_count was declared as size_t (only
4 bytes big in TFLOPS) when it should be hsize_t (8 bytes big in TFLOPS).
Corrected and also changed to use the (hsize_t) to case size_i in
H5FD_mpio_write() and H5FD_mpio_read() since that is what it should
be.
Platforms tested:
TFLOPS and modi4 (-64, parallel)
-rw-r--r-- | src/H5FDmpio.c | 4 | ||||
-rw-r--r-- | src/H5Smpio.c | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/H5FDmpio.c b/src/H5FDmpio.c index 6549694..aa37e90 100644 --- a/src/H5FDmpio.c +++ b/src/H5FDmpio.c @@ -1088,7 +1088,7 @@ H5FD_mpio_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t dxpl_id, haddr_t add if (haddr_to_MPIOff(addr, &mpi_off/*out*/)<0) HRETURN_ERROR(H5E_INTERNAL, H5E_BADRANGE, FAIL, "can't convert from haddr to MPI off"); size_i = (int)size; - if ((size_t)size_i != size) + if ((hsize_t)size_i != size) HRETURN_ERROR(H5E_INTERNAL, H5E_BADRANGE, FAIL, "can't convert from size to size_i"); #ifdef H5FDmpio_DEBUG @@ -1330,7 +1330,7 @@ H5FD_mpio_write(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t dxpl_id/*unused*/, if (haddr_to_MPIOff(file->disp, &mpi_disp)<0) HRETURN_ERROR(H5E_INTERNAL, H5E_BADRANGE, FAIL, "can't convert from haddr to MPI off"); size_i = (int)size; - if ((size_t)size_i != size) + if ((hsize_t)size_i != size) HRETURN_ERROR(H5E_INTERNAL, H5E_BADRANGE, FAIL, "can't convert from size to size_i"); #ifdef H5FDmpio_DEBUG diff --git a/src/H5Smpio.c b/src/H5Smpio.c index ebf033e..63c8ad3 100644 --- a/src/H5Smpio.c +++ b/src/H5Smpio.c @@ -549,7 +549,7 @@ H5S_mpio_spaces_xfer(H5F_t *f, const struct H5O_layout_t *layout, herr_t ret_value = SUCCEED; int err; haddr_t disp, addr; - size_t mpi_count; + hsize_t mpi_count; hsize_t mpi_buf_count, mpi_unused_count; MPI_Datatype mpi_buf_type, mpi_file_type; hbool_t mbt_is_derived, mft_is_derived; |