From e1cd6bcb61b5ec39bcfea7a4ceea37c75b0a1d63 Mon Sep 17 00:00:00 2001 From: Albert Cheng Date: Wed, 15 Nov 2000 14:59:44 -0500 Subject: [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) --- src/H5FDmpio.c | 4 ++-- 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; -- cgit v0.12