diff options
author | Albert Cheng <acheng@hdfgroup.org> | 2000-10-10 02:32:45 (GMT) |
---|---|---|
committer | Albert Cheng <acheng@hdfgroup.org> | 2000-10-10 02:32:45 (GMT) |
commit | 884b83d6069d3a90482203dd665dc49965fdc5a4 (patch) | |
tree | e2d7d01a44be537cd72fdc156ae7aba6182615e1 /src/H5S.c | |
parent | d68bdee92f4b26f9818cc84fc620971bd92cacab (diff) | |
download | hdf5-884b83d6069d3a90482203dd665dc49965fdc5a4.zip hdf5-884b83d6069d3a90482203dd665dc49965fdc5a4.tar.gz hdf5-884b83d6069d3a90482203dd665dc49965fdc5a4.tar.bz2 |
[svn-r2646] Purpose:
Bug fix (done by Kim Yates)
Description:
The optimized mpio code was broken and when read was done, it hanged.
Solution:
H5FDmpio.c:
In H5FD_mpio_write, moved the 16-line block of code in which
all procs other than p0 skip the actual write
to be just before the call to MPI_File_write_at.
Previously, the values of the local vars that controlled
"allsame" were not always set correctly when the moved block
was reached.
H5S.c:
Changed default value of H5_mpi_opt_types_g to TRUE, so that
the MPI-IO hyperslab code is executed by default in parallel HDF5,
rather than executing the serial hyperslab code.
H5Smpio.c:
In function H5S_mpio_hyper_type, added a call to free
an intermediate type. Cures a small memory leak.
Added code for cases of empty hyperslab
Changed displacements to be MPI_Aint
Platforms tested:
modi4 -64: worked fine with mpich 1.2.0 but failed with the messages
saying it ran out of entries for MPI_Types during the collective_read
test. After tracing the code all the way to the collective read, all
MPI Types have been freed properly. It aborted with the above message
when it executed the line
if (MPI_SUCCESS!= MPI_File_read_at_all(file->f, mpi_off, buf, size_i, buf_type, &mpi_stat ))
Could not see any problem with this line. It could be a bug in the
SGI version of MPI.
Diffstat (limited to 'src/H5S.c')
-rw-r--r-- | src/H5S.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -42,7 +42,7 @@ static size_t H5S_nconv_g = 0; /*entries used*/ #ifdef H5_HAVE_PARALLEL /* Global var whose value comes from environment variable */ -hbool_t H5_mpi_opt_types_g = FALSE; +hbool_t H5_mpi_opt_types_g = TRUE; #endif /* Declare a free list to manage the H5S_simple_t struct */ |