[svn-r19745] Description:
Bring r19743-19744 from trunk to 1.8 branch: Correct tests to use native datatypes consistently, and also to use "normal" methods for performing collective I/O. Also, minor cleanups for zeroing out buffers, etc. Tested on: FreeBSD/32 6.3 (duty) w/debug (h5committested on trunk)
This commit is contained in:
@@ -35,6 +35,7 @@
|
||||
#include "H5Oprivate.h" /* Object headers */
|
||||
#include "H5Pprivate.h" /* Property lists */
|
||||
#include "H5Spkg.h" /* Dataspaces */
|
||||
#include "H5Vprivate.h" /* Vector and array functions */
|
||||
|
||||
#ifdef H5_HAVE_PARALLEL
|
||||
|
||||
@@ -83,7 +84,7 @@ H5S_mpio_all_type(const H5S_t *space, size_t elmt_size,
|
||||
HDassert(space);
|
||||
|
||||
/* Just treat the entire extent as a block of bytes */
|
||||
if((snelmts = H5S_GET_EXTENT_NPOINTS(space)) < 0)
|
||||
if((snelmts = (hssize_t)H5S_GET_EXTENT_NPOINTS(space)) < 0)
|
||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "src dataspace has invalid selection")
|
||||
H5_ASSIGN_OVERFLOW(nelmts, snelmts, hssize_t, hsize_t);
|
||||
|
||||
@@ -160,14 +161,15 @@ H5S_mpio_hyper_type(const H5S_t *space, size_t elmt_size,
|
||||
hsize_t count;
|
||||
} d[H5S_MAX_RANK];
|
||||
|
||||
int i;
|
||||
int offset[H5S_MAX_RANK];
|
||||
int max_xtent[H5S_MAX_RANK];
|
||||
hsize_t offset[H5S_MAX_RANK];
|
||||
hsize_t max_xtent[H5S_MAX_RANK];
|
||||
H5S_hyper_dim_t *diminfo; /* [rank] */
|
||||
int rank;
|
||||
unsigned rank;
|
||||
int block_length[3];
|
||||
MPI_Datatype inner_type, outer_type, old_types[3];
|
||||
MPI_Aint extent_len, displacement[3];
|
||||
unsigned u; /* Local index variable */
|
||||
int i; /* Local index variable */
|
||||
int mpi_code; /* MPI return code */
|
||||
herr_t ret_value = SUCCEED;
|
||||
|
||||
@@ -192,66 +194,68 @@ H5S_mpio_hyper_type(const H5S_t *space, size_t elmt_size,
|
||||
if(sel_iter.u.hyp.iter_rank != 0 && sel_iter.u.hyp.iter_rank < space->extent.rank) {
|
||||
/* Flattened selection */
|
||||
rank = sel_iter.u.hyp.iter_rank;
|
||||
HDassert(rank >= 0 && rank <= H5S_MAX_RANK); /* within array bounds */
|
||||
HDassert(rank <= H5S_MAX_RANK); /* within array bounds */
|
||||
#ifdef H5S_DEBUG
|
||||
if(H5DEBUG(S))
|
||||
HDfprintf(H5DEBUG(S), "%s: Flattened selection\n",FUNC);
|
||||
#endif
|
||||
for(i = 0; i < rank; ++i) {
|
||||
d[i].start = diminfo[i].start + sel_iter.u.hyp.sel_off[i];
|
||||
d[i].strid = diminfo[i].stride;
|
||||
d[i].block = diminfo[i].block;
|
||||
d[i].count = diminfo[i].count;
|
||||
d[i].xtent = sel_iter.u.hyp.size[i];
|
||||
for(u = 0; u < rank; ++u) {
|
||||
H5_CHECK_OVERFLOW(diminfo[u].start, hsize_t, hssize_t)
|
||||
d[u].start = (hssize_t)diminfo[u].start + sel_iter.u.hyp.sel_off[u];
|
||||
d[u].strid = diminfo[u].stride;
|
||||
d[u].block = diminfo[u].block;
|
||||
d[u].count = diminfo[u].count;
|
||||
d[u].xtent = sel_iter.u.hyp.size[u];
|
||||
#ifdef H5S_DEBUG
|
||||
if(H5DEBUG(S)){
|
||||
HDfprintf(H5DEBUG(S), "%s: start=%Hd stride=%Hu count=%Hu block=%Hu xtent=%Hu",
|
||||
FUNC, d[i].start, d[i].strid, d[i].count, d[i].block, d[i].xtent );
|
||||
if (i==0)
|
||||
HDfprintf(H5DEBUG(S), " rank=%d\n", rank );
|
||||
FUNC, d[u].start, d[u].strid, d[u].count, d[u].block, d[u].xtent );
|
||||
if (u==0)
|
||||
HDfprintf(H5DEBUG(S), " rank=%u\n", rank );
|
||||
else
|
||||
HDfprintf(H5DEBUG(S), "\n" );
|
||||
}
|
||||
#endif
|
||||
if(0 == d[i].block)
|
||||
if(0 == d[u].block)
|
||||
goto empty;
|
||||
if(0 == d[i].count)
|
||||
if(0 == d[u].count)
|
||||
goto empty;
|
||||
if(0 == d[i].xtent)
|
||||
if(0 == d[u].xtent)
|
||||
goto empty;
|
||||
} /* end for */
|
||||
} /* end if */
|
||||
else {
|
||||
/* Non-flattened selection */
|
||||
rank = space->extent.rank;
|
||||
HDassert(rank >= 0 && rank <= H5S_MAX_RANK); /* within array bounds */
|
||||
HDassert(rank <= H5S_MAX_RANK); /* within array bounds */
|
||||
if(0 == rank)
|
||||
goto empty;
|
||||
#ifdef H5S_DEBUG
|
||||
if(H5DEBUG(S))
|
||||
HDfprintf(H5DEBUG(S),"%s: Non-flattened selection\n",FUNC);
|
||||
#endif
|
||||
for(i = 0; i < rank; ++i) {
|
||||
d[i].start = diminfo[i].start + space->select.offset[i];
|
||||
d[i].strid = diminfo[i].stride;
|
||||
d[i].block = diminfo[i].block;
|
||||
d[i].count = diminfo[i].count;
|
||||
d[i].xtent = space->extent.size[i];
|
||||
for(u = 0; u < rank; ++u) {
|
||||
H5_CHECK_OVERFLOW(diminfo[u].start, hsize_t, hssize_t)
|
||||
d[u].start = (hssize_t)diminfo[u].start + space->select.offset[u];
|
||||
d[u].strid = diminfo[u].stride;
|
||||
d[u].block = diminfo[u].block;
|
||||
d[u].count = diminfo[u].count;
|
||||
d[u].xtent = space->extent.size[u];
|
||||
#ifdef H5S_DEBUG
|
||||
if(H5DEBUG(S)){
|
||||
HDfprintf(H5DEBUG(S), "%s: start=%Hd stride=%Hu count=%Hu block=%Hu xtent=%Hu",
|
||||
FUNC, d[i].start, d[i].strid, d[i].count, d[i].block, d[i].xtent );
|
||||
if (i==0)
|
||||
HDfprintf(H5DEBUG(S), " rank=%d\n", rank );
|
||||
FUNC, d[u].start, d[u].strid, d[u].count, d[u].block, d[u].xtent );
|
||||
if (u==0)
|
||||
HDfprintf(H5DEBUG(S), " rank=%u\n", rank );
|
||||
else
|
||||
HDfprintf(H5DEBUG(S), "\n" );
|
||||
}
|
||||
#endif
|
||||
if(0 == d[i].block)
|
||||
if(0 == d[u].block)
|
||||
goto empty;
|
||||
if(0 == d[i].count)
|
||||
if(0 == d[u].count)
|
||||
goto empty;
|
||||
if(0 == d[i].xtent)
|
||||
if(0 == d[u].xtent)
|
||||
goto empty;
|
||||
} /* end for */
|
||||
} /* end else */
|
||||
@@ -264,17 +268,17 @@ H5S_mpio_hyper_type(const H5S_t *space, size_t elmt_size,
|
||||
max_xtent[rank - 1] = d[rank - 1].xtent;
|
||||
#ifdef H5S_DEBUG
|
||||
if(H5DEBUG(S)) {
|
||||
i=rank-1;
|
||||
HDfprintf(H5DEBUG(S), " offset[%2d]=%d; max_xtent[%2d]=%d\n",
|
||||
i = ((int)rank) - 1;
|
||||
HDfprintf(H5DEBUG(S), " offset[%2d]=%Hu; max_xtent[%2d]=%Hu\n",
|
||||
i, offset[i], i, max_xtent[i]);
|
||||
}
|
||||
#endif
|
||||
for(i = rank - 2; i >= 0; --i) {
|
||||
for(i = ((int)rank) - 2; i >= 0; --i) {
|
||||
offset[i] = offset[i + 1] * d[i + 1].xtent;
|
||||
max_xtent[i] = max_xtent[i + 1] * d[i].xtent;
|
||||
#ifdef H5S_DEBUG
|
||||
if(H5DEBUG(S))
|
||||
HDfprintf(H5DEBUG(S), " offset[%2d]=%d; max_xtent[%2d]=%d\n",
|
||||
HDfprintf(H5DEBUG(S), " offset[%2d]=%Hu; max_xtent[%2d]=%Hu\n",
|
||||
i, offset[i], i, max_xtent[i]);
|
||||
#endif
|
||||
} /* end for */
|
||||
@@ -290,7 +294,7 @@ H5S_mpio_hyper_type(const H5S_t *space, size_t elmt_size,
|
||||
#ifdef H5S_DEBUG
|
||||
if(H5DEBUG(S)) {
|
||||
HDfprintf(H5DEBUG(S), "%s: Making contig type %Zu MPI_BYTEs\n", FUNC, elmt_size);
|
||||
for (i=rank-1; i>=0; --i)
|
||||
for(i = ((int)rank) - 1; i >= 0; --i)
|
||||
HDfprintf(H5DEBUG(S), "d[%d].xtent=%Hu \n", i, d[i].xtent);
|
||||
}
|
||||
#endif
|
||||
@@ -301,7 +305,7 @@ H5S_mpio_hyper_type(const H5S_t *space, size_t elmt_size,
|
||||
* Construct the type by walking the hyperslab dims
|
||||
* from the inside out:
|
||||
*******************************************************/
|
||||
for(i = rank - 1; i >= 0; --i) {
|
||||
for(i = ((int)rank) - 1; i >= 0; --i) {
|
||||
#ifdef H5S_DEBUG
|
||||
if(H5DEBUG(S))
|
||||
HDfprintf(H5DEBUG(S), "%s: Dimension i=%d \n"
|
||||
@@ -538,7 +542,8 @@ H5S_obtain_datatype(const hsize_t *down, H5S_hyper_span_t *span,
|
||||
|
||||
/* Store displacement & block length */
|
||||
disp[outercount] = (MPI_Aint)elmt_size * tspan->low;
|
||||
blocklen[outercount] = tspan->nelem;
|
||||
H5_CHECK_OVERFLOW(tspan->nelem, hsize_t, int)
|
||||
blocklen[outercount] = (int)tspan->nelem;
|
||||
|
||||
tspan = tspan->next;
|
||||
outercount++;
|
||||
@@ -710,12 +715,15 @@ H5S_mpio_space_type(const H5S_t *space, size_t elmt_size,
|
||||
} /* end else */
|
||||
break;
|
||||
|
||||
case H5S_SEL_ERROR:
|
||||
case H5S_SEL_N:
|
||||
default:
|
||||
HDassert("unknown selection type" && 0);
|
||||
break;
|
||||
} /* end switch */
|
||||
break;
|
||||
|
||||
case H5S_NO_CLASS:
|
||||
default:
|
||||
HDassert("unknown data space type" && 0);
|
||||
break;
|
||||
|
||||
@@ -249,50 +249,20 @@ contig_hyperslab_dr_pio_test__run_test(const int test_num,
|
||||
/* initialize the buffers */
|
||||
|
||||
ptr_0 = small_ds_buf_0;
|
||||
ptr_1 = small_ds_buf_1;
|
||||
ptr_2 = small_ds_buf_2;
|
||||
for(i = 0; i < (int)small_ds_size; i++)
|
||||
*ptr_0++ = (uint32_t)i;
|
||||
HDmemset(small_ds_buf_1, 0, sizeof(uint32_t) * small_ds_size);
|
||||
HDmemset(small_ds_buf_2, 0, sizeof(uint32_t) * small_ds_size);
|
||||
|
||||
for ( i = 0; i < (int)small_ds_size; i++ ) {
|
||||
|
||||
*ptr_0 = (uint32_t)i;
|
||||
*ptr_1 = 0;
|
||||
*ptr_2 = 0;
|
||||
|
||||
ptr_0++;
|
||||
ptr_1++;
|
||||
ptr_2++;
|
||||
}
|
||||
|
||||
ptr_0 = small_ds_slice_buf;
|
||||
|
||||
for ( i = 0; i < (int)small_ds_slice_size; i++ ) {
|
||||
|
||||
*ptr_0 = (uint32_t)0;
|
||||
ptr_0++;
|
||||
}
|
||||
HDmemset(small_ds_slice_buf, 0, sizeof(uint32_t) * small_ds_slice_size);
|
||||
|
||||
ptr_0 = large_ds_buf_0;
|
||||
ptr_1 = large_ds_buf_1;
|
||||
ptr_2 = large_ds_buf_2;
|
||||
for(i = 0; i < (int)large_ds_size; i++)
|
||||
*ptr_0++ = (uint32_t)i;
|
||||
HDmemset(large_ds_buf_1, 0, sizeof(uint32_t) * large_ds_size);
|
||||
HDmemset(large_ds_buf_2, 0, sizeof(uint32_t) * large_ds_size);
|
||||
|
||||
for ( i = 0; i < (int)large_ds_size; i++ ) {
|
||||
|
||||
*ptr_0 = (uint32_t)i;
|
||||
*ptr_1 = 0;
|
||||
*ptr_2 = 0;
|
||||
|
||||
ptr_0++;
|
||||
ptr_1++;
|
||||
ptr_2++;
|
||||
}
|
||||
|
||||
ptr_0 = large_ds_slice_buf;
|
||||
|
||||
for ( i = 0; i < (int)large_ds_slice_size; i++ ) {
|
||||
|
||||
*ptr_0 = (uint32_t)0;
|
||||
ptr_0++;
|
||||
}
|
||||
HDmemset(large_ds_slice_buf, 0, sizeof(uint32_t) * large_ds_slice_size);
|
||||
|
||||
filename = (const char *)GetTestParameters();
|
||||
HDassert( filename != NULL );
|
||||
@@ -397,28 +367,6 @@ contig_hyperslab_dr_pio_test__run_test(const int test_num,
|
||||
"H5Screate_simple() large_ds_slice_sid succeeded");
|
||||
|
||||
|
||||
/* Select the entire extent of the full small ds, and ds slice dataspaces */
|
||||
ret = H5Sselect_all(full_mem_small_ds_sid);
|
||||
VRFY((ret != FAIL), "H5Sselect_all(full_mem_small_ds_sid) succeeded");
|
||||
|
||||
ret = H5Sselect_all(full_file_small_ds_sid);
|
||||
VRFY((ret != FAIL), "H5Sselect_all(full_file_small_ds_sid) succeeded");
|
||||
|
||||
ret = H5Sselect_all(small_ds_slice_sid);
|
||||
VRFY((ret != FAIL), "H5Sselect_all(small_ds_slice_sid) succeeded");
|
||||
|
||||
|
||||
/* Select the entire extent of the full large ds, and ds slice dataspaces */
|
||||
ret = H5Sselect_all(full_mem_large_ds_sid);
|
||||
VRFY((ret != FAIL), "H5Sselect_all(full_mem_large_ds_sid) succeeded");
|
||||
|
||||
ret = H5Sselect_all(full_file_large_ds_sid);
|
||||
VRFY((ret != FAIL), "H5Sselect_all(full_file_large_ds_sid) succeeded");
|
||||
|
||||
ret = H5Sselect_all(large_ds_slice_sid);
|
||||
VRFY((ret != FAIL), "H5Sselect_all(large_ds_slice_sid) succeeded");
|
||||
|
||||
|
||||
/* if chunk edge size is greater than zero, set up the small and
|
||||
* large data set creation property lists to specify chunked
|
||||
* datasets.
|
||||
@@ -491,14 +439,9 @@ contig_hyperslab_dr_pio_test__run_test(const int test_num,
|
||||
xfer_plist = H5Pcreate(H5P_DATASET_XFER);
|
||||
VRFY((xfer_plist >= 0), "H5Pcreate(H5P_DATASET_XFER) succeeded");
|
||||
|
||||
ret = H5Pset_dxpl_mpio(xfer_plist, H5FD_MPIO_COLLECTIVE);
|
||||
VRFY((ret >= 0), "H5Pset_dxpl_mpio succeeded");
|
||||
|
||||
if ( ! use_collective_io ) {
|
||||
|
||||
ret = H5Pset_dxpl_mpio_collective_opt(xfer_plist,
|
||||
H5FD_MPIO_INDIVIDUAL_IO);
|
||||
VRFY((ret>= 0), "H5Pset_dxpl_mpio_collective_opt() suceeded");
|
||||
if(use_collective_io) {
|
||||
ret = H5Pset_dxpl_mpio(xfer_plist, H5FD_MPIO_COLLECTIVE);
|
||||
VRFY((ret >= 0), "H5Pset_dxpl_mpio succeeded");
|
||||
}
|
||||
|
||||
/* setup selection to write initial data to the small and large data sets */
|
||||
@@ -735,13 +678,7 @@ contig_hyperslab_dr_pio_test__run_test(const int test_num,
|
||||
}
|
||||
|
||||
/* zero out the buffer we will be reading into */
|
||||
ptr_0 = small_ds_slice_buf;
|
||||
|
||||
for ( i = 0; i < (int)small_ds_slice_size; i++ ) {
|
||||
|
||||
*ptr_0 = (uint32_t)0;
|
||||
ptr_0++;
|
||||
}
|
||||
HDmemset(small_ds_slice_buf, 0, sizeof(uint32_t) * small_ds_slice_size);
|
||||
|
||||
#if CONTIG_HYPERSLAB_DR_PIO_TEST__RUN_TEST__DEBUG
|
||||
HDfprintf(stdout,
|
||||
@@ -924,12 +861,7 @@ contig_hyperslab_dr_pio_test__run_test(const int test_num,
|
||||
#endif
|
||||
|
||||
/* zero out the in memory large ds */
|
||||
ptr_1 = large_ds_buf_1;
|
||||
for ( n = 0; n < (int)large_ds_size; n++ ) {
|
||||
|
||||
*ptr_1 = 0;
|
||||
ptr_1++;
|
||||
}
|
||||
HDmemset(large_ds_buf_1, 0, sizeof(uint32_t) * large_ds_size);
|
||||
|
||||
/* set up start, stride, count, and block -- note that we will
|
||||
* change start[] so as to read slices of the large cube.
|
||||
@@ -1171,12 +1103,7 @@ contig_hyperslab_dr_pio_test__run_test(const int test_num,
|
||||
}
|
||||
|
||||
/* zero out the in memory small ds */
|
||||
ptr_1 = small_ds_buf_1;
|
||||
for ( n = 0; n < (int)small_ds_size; n++ ) {
|
||||
|
||||
*ptr_1 = 0;
|
||||
ptr_1++;
|
||||
}
|
||||
HDmemset(small_ds_buf_1, 0, sizeof(uint32_t) * small_ds_size);
|
||||
|
||||
|
||||
#if CONTIG_HYPERSLAB_DR_PIO_TEST__RUN_TEST__DEBUG
|
||||
@@ -1428,12 +1355,7 @@ contig_hyperslab_dr_pio_test__run_test(const int test_num,
|
||||
}
|
||||
|
||||
/* zero out the in memory large ds */
|
||||
ptr_1 = large_ds_buf_1;
|
||||
for ( n = 0; n < (int)large_ds_size; n++ ) {
|
||||
|
||||
*ptr_1 = 0;
|
||||
ptr_1++;
|
||||
}
|
||||
HDmemset(large_ds_buf_1, 0, sizeof(uint32_t) * large_ds_size);
|
||||
|
||||
#if CONTIG_HYPERSLAB_DR_PIO_TEST__RUN_TEST__DEBUG
|
||||
HDfprintf(stdout,
|
||||
@@ -1734,7 +1656,7 @@ contig_hyperslab_dr_pio_test(void)
|
||||
int skip_counters[4] = {0, 0, 0, 0};
|
||||
int tests_skiped[4] = {0, 0, 0, 0};
|
||||
int mpi_result;
|
||||
hid_t dset_type = H5T_STD_U32LE;
|
||||
hid_t dset_type = H5T_NATIVE_UINT;
|
||||
#ifdef H5_HAVE_GETTIMEOFDAY
|
||||
hbool_t time_tests = TRUE;
|
||||
hbool_t display_skips = FALSE;
|
||||
@@ -1760,6 +1682,8 @@ contig_hyperslab_dr_pio_test(void)
|
||||
MPI_Comm_rank(MPI_COMM_WORLD, &mpi_rank);
|
||||
#endif /* H5_HAVE_GETTIMEOFDAY */
|
||||
|
||||
HDcompile_assert(sizeof(uint32_t) == sizeof(unsigned));
|
||||
|
||||
local_express_test = GetTestExpress();
|
||||
|
||||
mpi_result = MPI_Allreduce((void *)&local_express_test,
|
||||
@@ -2678,50 +2602,20 @@ checker_board_hyperslab_dr_pio_test__run_test(const int test_num,
|
||||
/* initialize the buffers */
|
||||
|
||||
ptr_0 = small_ds_buf_0;
|
||||
ptr_1 = small_ds_buf_1;
|
||||
ptr_2 = small_ds_buf_2;
|
||||
for(i = 0; i < (int)small_ds_size; i++)
|
||||
*ptr_0++ = (uint32_t)i;
|
||||
HDmemset(small_ds_buf_1, 0, sizeof(uint32_t) * small_ds_size);
|
||||
HDmemset(small_ds_buf_2, 0, sizeof(uint32_t) * small_ds_size);
|
||||
|
||||
for ( i = 0; i < (int)small_ds_size; i++ ) {
|
||||
|
||||
*ptr_0 = (uint32_t)i;
|
||||
*ptr_1 = 0;
|
||||
*ptr_2 = 0;
|
||||
|
||||
ptr_0++;
|
||||
ptr_1++;
|
||||
ptr_2++;
|
||||
}
|
||||
|
||||
ptr_0 = small_ds_slice_buf;
|
||||
|
||||
for ( i = 0; i < (int)small_ds_slice_size; i++ ) {
|
||||
|
||||
*ptr_0 = (uint32_t)i;
|
||||
ptr_0++;
|
||||
}
|
||||
HDmemset(small_ds_slice_buf, 0, sizeof(uint32_t) * small_ds_slice_size);
|
||||
|
||||
ptr_0 = large_ds_buf_0;
|
||||
ptr_1 = large_ds_buf_1;
|
||||
ptr_2 = large_ds_buf_2;
|
||||
for(i = 0; i < (int)large_ds_size; i++)
|
||||
*ptr_0++ = (uint32_t)i;
|
||||
HDmemset(large_ds_buf_1, 0, sizeof(uint32_t) * large_ds_size);
|
||||
HDmemset(large_ds_buf_2, 0, sizeof(uint32_t) * large_ds_size);
|
||||
|
||||
for ( i = 0; i < (int)large_ds_size; i++ ) {
|
||||
|
||||
*ptr_0 = (uint32_t)i;
|
||||
*ptr_1 = 0;
|
||||
*ptr_2 = 0;
|
||||
|
||||
ptr_0++;
|
||||
ptr_1++;
|
||||
ptr_2++;
|
||||
}
|
||||
|
||||
ptr_0 = large_ds_slice_buf;
|
||||
|
||||
for ( i = 0; i < (int)large_ds_slice_size; i++ ) {
|
||||
|
||||
*ptr_0 = (uint32_t)0;
|
||||
ptr_0++;
|
||||
}
|
||||
HDmemset(large_ds_slice_buf, 0, sizeof(uint32_t) * large_ds_slice_size);
|
||||
|
||||
filename = (const char *)GetTestParameters();
|
||||
HDassert( filename != NULL );
|
||||
@@ -2838,28 +2732,6 @@ checker_board_hyperslab_dr_pio_test__run_test(const int test_num,
|
||||
"H5Screate_simple() large_ds_slice_sid succeeded");
|
||||
|
||||
|
||||
/* Select the entire extent of the full small ds, and ds slice dataspaces */
|
||||
ret = H5Sselect_all(full_mem_small_ds_sid);
|
||||
VRFY((ret != FAIL), "H5Sselect_all(full_mem_small_ds_sid) succeeded");
|
||||
|
||||
ret = H5Sselect_all(full_file_small_ds_sid);
|
||||
VRFY((ret != FAIL), "H5Sselect_all(full_file_small_ds_sid) succeeded");
|
||||
|
||||
ret = H5Sselect_all(small_ds_slice_sid);
|
||||
VRFY((ret != FAIL), "H5Sselect_all(small_ds_slice_sid) succeeded");
|
||||
|
||||
|
||||
/* Select the entire extent of the full large ds, and ds slice dataspaces */
|
||||
ret = H5Sselect_all(full_mem_large_ds_sid);
|
||||
VRFY((ret != FAIL), "H5Sselect_all(full_mem_large_ds_sid) succeeded");
|
||||
|
||||
ret = H5Sselect_all(full_file_large_ds_sid);
|
||||
VRFY((ret != FAIL), "H5Sselect_all(full_file_large_ds_sid) succeeded");
|
||||
|
||||
ret = H5Sselect_all(large_ds_slice_sid);
|
||||
VRFY((ret != FAIL), "H5Sselect_all(large_ds_slice_sid) succeeded");
|
||||
|
||||
|
||||
/* if chunk edge size is greater than zero, set up the small and
|
||||
* large data set creation property lists to specify chunked
|
||||
* datasets.
|
||||
@@ -2933,14 +2805,9 @@ checker_board_hyperslab_dr_pio_test__run_test(const int test_num,
|
||||
xfer_plist = H5Pcreate(H5P_DATASET_XFER);
|
||||
VRFY((xfer_plist >= 0), "H5Pcreate(H5P_DATASET_XFER) succeeded");
|
||||
|
||||
ret = H5Pset_dxpl_mpio(xfer_plist, H5FD_MPIO_COLLECTIVE);
|
||||
VRFY((ret >= 0), "H5Pset_dxpl_mpio succeeded");
|
||||
|
||||
if ( ! use_collective_io ) {
|
||||
|
||||
ret = H5Pset_dxpl_mpio_collective_opt(xfer_plist,
|
||||
H5FD_MPIO_INDIVIDUAL_IO);
|
||||
VRFY((ret>= 0), "H5Pset_dxpl_mpio_collective_opt() suceeded");
|
||||
if(use_collective_io) {
|
||||
ret = H5Pset_dxpl_mpio(xfer_plist, H5FD_MPIO_COLLECTIVE);
|
||||
VRFY((ret >= 0), "H5Pset_dxpl_mpio succeeded");
|
||||
}
|
||||
|
||||
/* setup selection to write initial data to the small and large data sets */
|
||||
@@ -3172,14 +3039,7 @@ checker_board_hyperslab_dr_pio_test__run_test(const int test_num,
|
||||
sel_start);
|
||||
|
||||
/* zero out the buffer we will be reading into */
|
||||
|
||||
ptr_0 = small_ds_slice_buf;
|
||||
|
||||
for ( i = 0; i < (int)small_ds_slice_size; i++ ) {
|
||||
|
||||
*ptr_0 = (uint32_t)0;
|
||||
ptr_0++;
|
||||
}
|
||||
HDmemset(small_ds_slice_buf, 0, sizeof(uint32_t) * small_ds_slice_size);
|
||||
|
||||
#if CHECKER_BOARD_HYPERSLAB_DR_PIO_TEST__RUN_TEST__DEBUG
|
||||
HDfprintf(stdout, "%s:%d: initial small_ds_slice_buf = ",
|
||||
@@ -3386,12 +3246,7 @@ checker_board_hyperslab_dr_pio_test__run_test(const int test_num,
|
||||
#endif
|
||||
|
||||
/* zero out the buffer we will be reading into */
|
||||
ptr_0 = large_ds_buf_1;
|
||||
for ( i = 0; i < (int)large_ds_size; i++ ) {
|
||||
|
||||
*ptr_0 = (uint32_t)0;
|
||||
ptr_0++;
|
||||
}
|
||||
HDmemset(large_ds_buf_1, 0, sizeof(uint32_t) * large_ds_size);
|
||||
|
||||
/* set up start, stride, count, and block -- note that we will
|
||||
* change start[] so as to read the slice of the small data set
|
||||
@@ -3700,12 +3555,7 @@ int m;
|
||||
}
|
||||
|
||||
/* zero out the in memory small ds */
|
||||
ptr_1 = small_ds_buf_1;
|
||||
for ( n = 0; n < (int)small_ds_size; n++ ) {
|
||||
|
||||
*ptr_1 = 0;
|
||||
ptr_1++;
|
||||
}
|
||||
HDmemset(small_ds_buf_1, 0, sizeof(uint32_t) * small_ds_size);
|
||||
|
||||
|
||||
#if CHECKER_BOARD_HYPERSLAB_DR_PIO_TEST__RUN_TEST__DEBUG
|
||||
@@ -3994,12 +3844,7 @@ int m;
|
||||
}
|
||||
|
||||
/* zero out the in memory large ds */
|
||||
ptr_1 = large_ds_buf_1;
|
||||
for ( n = 0; n < (int)large_ds_size; n++ ) {
|
||||
|
||||
*ptr_1 = 0;
|
||||
ptr_1++;
|
||||
}
|
||||
HDmemset(large_ds_buf_1, 0, sizeof(uint32_t) * large_ds_size);
|
||||
|
||||
#if CONTIG_HYPERSLAB_DR_PIO_TEST__RUN_TEST__DEBUG
|
||||
HDfprintf(stdout,
|
||||
@@ -4324,7 +4169,7 @@ checker_board_hyperslab_dr_pio_test(void)
|
||||
int skip_counters[4] = {0, 0, 0, 0};
|
||||
int tests_skiped[4] = {0, 0, 0, 0};
|
||||
int mpi_result;
|
||||
hid_t dset_type = H5T_STD_U32LE;
|
||||
hid_t dset_type = H5T_NATIVE_UINT;
|
||||
#ifdef H5_HAVE_GETTIMEOFDAY
|
||||
hbool_t time_tests = TRUE;
|
||||
hbool_t display_skips = FALSE;
|
||||
@@ -4352,6 +4197,8 @@ checker_board_hyperslab_dr_pio_test(void)
|
||||
|
||||
local_express_test = GetTestExpress();
|
||||
|
||||
HDcompile_assert(sizeof(uint32_t) == sizeof(unsigned));
|
||||
|
||||
mpi_result = MPI_Allreduce((void *)&local_express_test,
|
||||
(void *)&express_test,
|
||||
1,
|
||||
|
||||
@@ -2616,10 +2616,11 @@ lower_dim_size_comp_test(void)
|
||||
/* const char *fcnName = "lower_dim_size_comp_test()"; */
|
||||
int chunk_edge_size = 0;
|
||||
int use_collective_io = 1;
|
||||
hid_t dset_type = H5T_STD_U32LE;
|
||||
hid_t dset_type = H5T_NATIVE_UINT;
|
||||
#if 0
|
||||
sleep(60);
|
||||
#endif
|
||||
HDcompile_assert(sizeof(uint32_t) == sizeof(unsigned));
|
||||
for ( use_collective_io = (hbool_t)0;
|
||||
(int)use_collective_io <= 1;
|
||||
(hbool_t)(use_collective_io++) ) {
|
||||
|
||||
Reference in New Issue
Block a user