diff --git a/src/H5Block.c b/src/H5Block.c index e52eb97..f484031 100644 --- a/src/H5Block.c +++ b/src/H5Block.c @@ -724,6 +724,11 @@ _release_hyperslab ( Define the field layout given the dense index space at the actual time step. + This routine uses an MPI_Allgather, so at large concurrency it should + be called as infrequently as possible. For instance, if several timesteps + use the same field dimensions, set the layout only once before the + first timestep. + \return \c H5PART_SUCCESS on success
\c H5PART_ERR_MPI
\c H5PART_ERR_HDF5 diff --git a/test/testframe.c b/test/testframe.c index 8d83a5c..d4fb73b 100644 --- a/test/testframe.c +++ b/test/testframe.c @@ -31,6 +31,7 @@ #include #include #include "testframe.h" +#include "../src/H5PartPrivate.h" /* * Definitions for the testing structure. @@ -652,6 +653,7 @@ test_is_valid(H5PartFile *file) void test_open_objects(H5PartFile *file, int max_objects) { +#ifndef H5_USE_16_API ssize_t nopen = H5Fget_obj_count(file->file, H5F_OBJ_ALL); if (nopen > max_objects) { @@ -682,5 +684,6 @@ test_open_objects(H5PartFile *file, int max_objects) } free(list); } +#endif } diff --git a/test/write.c b/test/write.c index 6eea189..e596459 100644 --- a/test/write.c +++ b/test/write.c @@ -198,7 +198,7 @@ static void test_write_data32(H5PartFile *file, int nparticles, int step) { int i,t; - h5part_int32_t status; + h5part_int32_t status, val; int rank, nprocs; float *x,*y,*z; @@ -244,8 +244,11 @@ test_write_data32(H5PartFile *file, int nparticles, int step) id[i] = i + nparticles*t; } - status = H5PartSetStep(file, t); - RETURN(status, H5PART_SUCCESS, "H5PartSetStep"); + val = H5PartHasStep(file, t); + if (val == 0) { + status = H5PartSetStep(file, t); + RETURN(status, H5PART_SUCCESS, "H5PartSetStep"); + } /* test a two-part write using views */ status = H5PartSetView(file,