diff options
Diffstat (limited to 'testpar')
-rw-r--r-- | testpar/CMakeTests.cmake | 4 | ||||
-rw-r--r-- | testpar/Makefile.am | 7 | ||||
-rw-r--r-- | testpar/Makefile.in | 39 | ||||
-rw-r--r-- | testpar/t_coll_chunk.c | 5 | ||||
-rw-r--r-- | testpar/t_dset.c | 123 | ||||
-rw-r--r-- | testpar/t_file.c | 3 | ||||
-rw-r--r-- | testpar/t_mdset.c | 34 | ||||
-rw-r--r-- | testpar/t_ph5basic.c | 114 | ||||
-rw-r--r-- | testpar/t_posix_compliant.c | 927 | ||||
-rw-r--r-- | testpar/t_shapesame.c | 23 | ||||
-rw-r--r-- | testpar/t_span_tree.c | 14 | ||||
-rw-r--r-- | testpar/testph5.sh.in | 77 | ||||
-rw-r--r-- | testpar/testphdf5.c | 22 | ||||
-rw-r--r-- | testpar/testphdf5.h | 16 |
14 files changed, 78 insertions, 1330 deletions
diff --git a/testpar/CMakeTests.cmake b/testpar/CMakeTests.cmake index 9e4f97b..5ac96e6 100644 --- a/testpar/CMakeTests.cmake +++ b/testpar/CMakeTests.cmake @@ -13,10 +13,6 @@ endforeach (testp ${H5P_TESTS}) SET_TESTS_PROPERTIES(TEST_PAR_t_pflush2 PROPERTIES DEPENDS TEST_PAR_t_pflush1) -if (NOT WIN32) - add_test (NAME TEST_PAR_t_posix_compliant COMMAND ${MPIEXEC} ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} ${MPIEXEC_POSTFLAGS} $<TARGET_FILE:t_posix_compliant>) -endif (NOT WIN32) - if (HDF5_TEST_VFD) set (VFD_LIST diff --git a/testpar/Makefile.am b/testpar/Makefile.am index e934f08..f41fa94 100644 --- a/testpar/Makefile.am +++ b/testpar/Makefile.am @@ -23,13 +23,11 @@ include $(top_srcdir)/config/commence.am INCLUDES=-I$(top_srcdir)/src -I$(top_srcdir)/test -# Test programs and scripts. These are our main targets. +# Test programs. These are our main targets. # -TEST_PROG_PARA=t_mpi t_posix_compliant testphdf5 t_cache t_pflush1 t_pflush2 t_shapesame -TEST_SCRIPT_PARA=testph5.sh +TEST_PROG_PARA=t_mpi testphdf5 t_cache t_pflush1 t_pflush2 t_shapesame check_PROGRAMS = $(TEST_PROG_PARA) -check_SCRIPTS= $(TEST_SCRIPT) testphdf5_SOURCES=testphdf5.c t_dset.c t_file.c t_file_image.c t_mdset.c \ t_ph5basic.c t_coll_chunk.c t_span_tree.c t_chunk_alloc.c t_filter_read.c \ @@ -43,6 +41,5 @@ LDADD = $(LIBH5TEST) $(LIBHDF5) # Para*.h5 are from testphdf # go is used for debugging. See testphdf5.c. CHECK_CLEANFILES+=MPItest.h5 Para*.h5 CacheTestDummy.h5 go -DISTCLEANFILES=testph5.sh include $(top_srcdir)/config/conclude.am diff --git a/testpar/Makefile.in b/testpar/Makefile.in index 6ddfef2..9f977ce 100644 --- a/testpar/Makefile.in +++ b/testpar/Makefile.in @@ -67,8 +67,7 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(srcdir)/testph5.sh.in $(top_srcdir)/bin/depcomp \ - $(top_srcdir)/bin/mkinstalldirs \ + $(top_srcdir)/bin/depcomp $(top_srcdir)/bin/mkinstalldirs \ $(top_srcdir)/config/commence.am \ $(top_srcdir)/config/conclude.am COPYING check_PROGRAMS = $(am__EXEEXT_1) @@ -80,11 +79,10 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/src/H5config.h -CONFIG_CLEAN_FILES = testph5.sh +CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -am__EXEEXT_1 = t_mpi$(EXEEXT) t_posix_compliant$(EXEEXT) \ - testphdf5$(EXEEXT) t_cache$(EXEEXT) t_pflush1$(EXEEXT) \ - t_pflush2$(EXEEXT) t_shapesame$(EXEEXT) +am__EXEEXT_1 = t_mpi$(EXEEXT) testphdf5$(EXEEXT) t_cache$(EXEEXT) \ + t_pflush1$(EXEEXT) t_pflush2$(EXEEXT) t_shapesame$(EXEEXT) t_cache_SOURCES = t_cache.c t_cache_OBJECTS = t_cache.$(OBJEXT) t_cache_LDADD = $(LDADD) @@ -105,10 +103,6 @@ t_pflush2_SOURCES = t_pflush2.c t_pflush2_OBJECTS = t_pflush2.$(OBJEXT) t_pflush2_LDADD = $(LDADD) t_pflush2_DEPENDENCIES = $(LIBH5TEST) $(LIBHDF5) -t_posix_compliant_SOURCES = t_posix_compliant.c -t_posix_compliant_OBJECTS = t_posix_compliant.$(OBJEXT) -t_posix_compliant_LDADD = $(LDADD) -t_posix_compliant_DEPENDENCIES = $(LIBH5TEST) $(LIBHDF5) t_shapesame_SOURCES = t_shapesame.c t_shapesame_OBJECTS = t_shapesame.$(OBJEXT) t_shapesame_LDADD = $(LDADD) @@ -155,10 +149,10 @@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = -SOURCES = t_cache.c t_mpi.c t_pflush1.c t_pflush2.c \ - t_posix_compliant.c t_shapesame.c $(testphdf5_SOURCES) -DIST_SOURCES = t_cache.c t_mpi.c t_pflush1.c t_pflush2.c \ - t_posix_compliant.c t_shapesame.c $(testphdf5_SOURCES) +SOURCES = t_cache.c t_mpi.c t_pflush1.c t_pflush2.c t_shapesame.c \ + $(testphdf5_SOURCES) +DIST_SOURCES = t_cache.c t_mpi.c t_pflush1.c t_pflush2.c t_shapesame.c \ + $(testphdf5_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -241,7 +235,6 @@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ FILTERS = @FILTERS@ FSEARCH_DIRS = @FSEARCH_DIRS@ -GPFS = @GPFS@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ @@ -458,11 +451,9 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog MPItest.h5 Para*.h5 \ CacheTestDummy.h5 go INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/test -# Test programs and scripts. These are our main targets. +# Test programs. These are our main targets. # -TEST_PROG_PARA = t_mpi t_posix_compliant testphdf5 t_cache t_pflush1 t_pflush2 t_shapesame -TEST_SCRIPT_PARA = testph5.sh -check_SCRIPTS = $(TEST_SCRIPT) +TEST_PROG_PARA = t_mpi testphdf5 t_cache t_pflush1 t_pflush2 t_shapesame testphdf5_SOURCES = testphdf5.c t_dset.c t_file.c t_file_image.c t_mdset.c \ t_ph5basic.c t_coll_chunk.c t_span_tree.c t_chunk_alloc.c t_filter_read.c \ t_prop.c @@ -470,7 +461,6 @@ testphdf5_SOURCES = testphdf5.c t_dset.c t_file.c t_file_image.c t_mdset.c \ # The tests all depend on the hdf5 library and the test library LDADD = $(LIBH5TEST) $(LIBHDF5) -DISTCLEANFILES = testph5.sh # Automake needs to be taught how to build lib, progs, and tests targets. # These will be filled in automatically for the most part (e.g., @@ -526,8 +516,6 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): -testph5.sh: $(top_builddir)/config.status $(srcdir)/testph5.sh.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ clean-checkPROGRAMS: @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ @@ -549,9 +537,6 @@ t_pflush1$(EXEEXT): $(t_pflush1_OBJECTS) $(t_pflush1_DEPENDENCIES) $(EXTRA_t_pfl t_pflush2$(EXEEXT): $(t_pflush2_OBJECTS) $(t_pflush2_DEPENDENCIES) $(EXTRA_t_pflush2_DEPENDENCIES) @rm -f t_pflush2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(t_pflush2_OBJECTS) $(t_pflush2_LDADD) $(LIBS) -t_posix_compliant$(EXEEXT): $(t_posix_compliant_OBJECTS) $(t_posix_compliant_DEPENDENCIES) $(EXTRA_t_posix_compliant_DEPENDENCIES) - @rm -f t_posix_compliant$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(t_posix_compliant_OBJECTS) $(t_posix_compliant_LDADD) $(LIBS) t_shapesame$(EXEEXT): $(t_shapesame_OBJECTS) $(t_shapesame_DEPENDENCIES) $(EXTRA_t_shapesame_DEPENDENCIES) @rm -f t_shapesame$(EXEEXT) $(AM_V_CCLD)$(LINK) $(t_shapesame_OBJECTS) $(t_shapesame_LDADD) $(LIBS) @@ -577,7 +562,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t_pflush1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t_pflush2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t_ph5basic.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t_posix_compliant.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t_prop.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t_shapesame.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t_span_tree.Po@am__quote@ @@ -707,7 +691,7 @@ distdir: $(DISTFILES) fi; \ done check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(check_SCRIPTS) + $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-am all-am: Makefile all-local @@ -738,7 +722,6 @@ clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" diff --git a/testpar/t_coll_chunk.c b/testpar/t_coll_chunk.c index 45fe3da..11d7b10 100644 --- a/testpar/t_coll_chunk.c +++ b/testpar/t_coll_chunk.c @@ -613,7 +613,6 @@ coll_chunktest(const char* filename, unsigned prop_value; #endif /* H5_HAVE_INSTRUMENTED_LIBRARY */ - hbool_t use_gpfs = FALSE; int mpi_size,mpi_rank; herr_t status; @@ -631,7 +630,7 @@ coll_chunktest(const char* filename, /* Create the data space */ - acc_plist = create_faccess_plist(comm,info,facc_type,use_gpfs); + acc_plist = create_faccess_plist(comm,info,facc_type); VRFY((acc_plist >= 0),""); file = H5Fcreate(filename,H5F_ACC_TRUNC,H5P_DEFAULT,acc_plist); @@ -918,7 +917,7 @@ coll_chunktest(const char* filename, data_origin1 = (int *)HDmalloc(dims[0]*dims[1]*sizeof(int)); VRFY((data_origin1 != NULL), "data_origin1 malloc succeeded"); - acc_plist = create_faccess_plist(comm, info, facc_type, use_gpfs); + acc_plist = create_faccess_plist(comm, info, facc_type); VRFY((acc_plist >= 0),"MPIO creation property list succeeded"); file = H5Fopen(filename,H5F_ACC_RDONLY,acc_plist); diff --git a/testpar/t_dset.c b/testpar/t_dset.c index b3ec4b8..2bc3b09 100644 --- a/testpar/t_dset.c +++ b/testpar/t_dset.c @@ -279,7 +279,6 @@ dataset_writeInd(void) hid_t file_dataspace; /* File dataspace ID */ hid_t mem_dataspace; /* memory dataspace ID */ hid_t dataset1, dataset2; /* Dataset ID */ - hbool_t use_gpfs = FALSE; /* Use GPFS hints */ hsize_t dims[RANK]; /* dataset dim sizes */ DATATYPE *data_array1 = NULL; /* data buffer */ const char *filename; @@ -310,7 +309,7 @@ dataset_writeInd(void) * CREATE AN HDF5 FILE WITH PARALLEL ACCESS * ---------------------------------------*/ /* setup file access template */ - acc_tpl = create_faccess_plist(comm, info, facc_type, use_gpfs); + acc_tpl = create_faccess_plist(comm, info, facc_type); VRFY((acc_tpl >= 0), ""); /* create the file collectively */ @@ -425,7 +424,6 @@ dataset_readInd(void) hid_t file_dataspace; /* File dataspace ID */ hid_t mem_dataspace; /* memory dataspace ID */ hid_t dataset1, dataset2; /* Dataset ID */ - hbool_t use_gpfs = FALSE; /* Use GPFS hints */ DATATYPE *data_array1 = NULL; /* data buffer */ DATATYPE *data_origin1 = NULL; /* expected data buffer */ const char *filename; @@ -455,7 +453,7 @@ dataset_readInd(void) VRFY((data_origin1 != NULL), "data_origin1 HDmalloc succeeded"); /* setup file access template */ - acc_tpl = create_faccess_plist(comm, info, facc_type, use_gpfs); + acc_tpl = create_faccess_plist(comm, info, facc_type); VRFY((acc_tpl >= 0), ""); /* open the file collectively */ @@ -552,7 +550,6 @@ dataset_writeAll(void) hid_t dataset1, dataset2, dataset3, dataset4; /* Dataset ID */ hid_t dataset5, dataset6, dataset7; /* Dataset ID */ hid_t datatype; /* Datatype ID */ - hbool_t use_gpfs = FALSE; /* Use GPFS hints */ hsize_t dims[RANK]; /* dataset dim sizes */ DATATYPE *data_array1 = NULL; /* data buffer */ const char *filename; @@ -593,7 +590,7 @@ dataset_writeAll(void) * START AN HDF5 FILE * -------------------*/ /* setup file access template */ - acc_tpl = create_faccess_plist(comm, info, facc_type, use_gpfs); + acc_tpl = create_faccess_plist(comm, info, facc_type); VRFY((acc_tpl >= 0), ""); /* create the file collectively */ @@ -1085,7 +1082,6 @@ dataset_readAll(void) hid_t file_dataspace; /* File dataspace ID */ hid_t mem_dataspace; /* memory dataspace ID */ hid_t dataset1, dataset2, dataset5, dataset6, dataset7; /* Dataset ID */ - hbool_t use_gpfs = FALSE; /* Use GPFS hints */ DATATYPE *data_array1 = NULL; /* data buffer */ DATATYPE *data_origin1 = NULL; /* expected data buffer */ const char *filename; @@ -1128,7 +1124,7 @@ dataset_readAll(void) * OPEN AN HDF5 FILE * -------------------*/ /* setup file access template */ - acc_tpl = create_faccess_plist(comm, info, facc_type, use_gpfs); + acc_tpl = create_faccess_plist(comm, info, facc_type); VRFY((acc_tpl >= 0), ""); /* open the file collectively */ @@ -1499,7 +1495,6 @@ extend_writeInd(void) hid_t file_dataspace; /* File dataspace ID */ hid_t mem_dataspace; /* memory dataspace ID */ hid_t dataset1, dataset2; /* Dataset ID */ - hbool_t use_gpfs = FALSE; /* Use GPFS hints */ const char *filename; hsize_t dims[RANK]; /* dataset dim sizes */ hsize_t max_dims[RANK] = @@ -1539,7 +1534,7 @@ extend_writeInd(void) * START AN HDF5 FILE * -------------------*/ /* setup file access template */ - acc_tpl = create_faccess_plist(comm, info, facc_type, use_gpfs); + acc_tpl = create_faccess_plist(comm, info, facc_type); VRFY((acc_tpl >= 0), ""); /* Reduce the number of metadata cache slots, so that there are cache @@ -1730,7 +1725,6 @@ extend_writeInd2(void) hid_t fs; /* File dataspace ID */ hid_t ms; /* Memory dataspace ID */ hid_t dataset; /* Dataset ID */ - hbool_t use_gpfs = FALSE; /* Use GPFS hints */ hsize_t orig_size=10; /* Original dataset dim size */ hsize_t new_size=20; /* Extended dataset dim size */ hsize_t one=1; @@ -1755,7 +1749,7 @@ extend_writeInd2(void) * START AN HDF5 FILE * -------------------*/ /* setup file access template */ - fapl = create_faccess_plist(MPI_COMM_WORLD, MPI_INFO_NULL, facc_type, use_gpfs); + fapl = create_faccess_plist(MPI_COMM_WORLD, MPI_INFO_NULL, facc_type); VRFY((fapl >= 0), "create_faccess_plist succeeded"); /* create the file collectively */ @@ -1892,7 +1886,6 @@ extend_readInd(void) hid_t file_dataspace; /* File dataspace ID */ hid_t mem_dataspace; /* memory dataspace ID */ hid_t dataset1, dataset2; /* Dataset ID */ - hbool_t use_gpfs = FALSE; /* Use GPFS hints */ hsize_t dims[RANK]; /* dataset dim sizes */ DATATYPE *data_array1 = NULL; /* data buffer */ DATATYPE *data_array2 = NULL; /* data buffer */ @@ -1929,7 +1922,7 @@ extend_readInd(void) * OPEN AN HDF5 FILE * -------------------*/ /* setup file access template */ - acc_tpl = create_faccess_plist(comm, info, facc_type, use_gpfs); + acc_tpl = create_faccess_plist(comm, info, facc_type); VRFY((acc_tpl >= 0), ""); /* open the file collectively */ @@ -2073,7 +2066,6 @@ extend_writeAll(void) hid_t file_dataspace; /* File dataspace ID */ hid_t mem_dataspace; /* memory dataspace ID */ hid_t dataset1, dataset2; /* Dataset ID */ - hbool_t use_gpfs = FALSE; /* Use GPFS hints */ const char *filename; hsize_t dims[RANK]; /* dataset dim sizes */ hsize_t max_dims[RANK] = @@ -2113,7 +2105,7 @@ extend_writeAll(void) * START AN HDF5 FILE * -------------------*/ /* setup file access template */ - acc_tpl = create_faccess_plist(comm, info, facc_type, use_gpfs); + acc_tpl = create_faccess_plist(comm, info, facc_type); VRFY((acc_tpl >= 0), ""); /* Reduce the number of metadata cache slots, so that there are cache @@ -2324,7 +2316,6 @@ extend_readAll(void) hid_t file_dataspace; /* File dataspace ID */ hid_t mem_dataspace; /* memory dataspace ID */ hid_t dataset1, dataset2; /* Dataset ID */ - hbool_t use_gpfs = FALSE; /* Use GPFS hints */ const char *filename; hsize_t dims[RANK]; /* dataset dim sizes */ DATATYPE *data_array1 = NULL; /* data buffer */ @@ -2361,7 +2352,7 @@ extend_readAll(void) * OPEN AN HDF5 FILE * -------------------*/ /* setup file access template */ - acc_tpl = create_faccess_plist(comm, info, facc_type, use_gpfs); + acc_tpl = create_faccess_plist(comm, info, facc_type); VRFY((acc_tpl >= 0), ""); /* open the file collectively */ @@ -2525,7 +2516,6 @@ compress_readAll(void) int rank=1; /* Dataspace rank */ hsize_t dim=dim0; /* Dataspace dimensions */ unsigned u; /* Local index variable */ - hbool_t use_gpfs = FALSE; /* Use GPFS hints */ DATATYPE *data_read = NULL; /* data buffer */ DATATYPE *data_orig = NULL; /* expected data buffer */ const char *filename; @@ -2606,7 +2596,7 @@ compress_readAll(void) * -------------------*/ /* setup file access template */ - acc_tpl = create_faccess_plist(comm, info, facc_type, use_gpfs); + acc_tpl = create_faccess_plist(comm, info, facc_type); VRFY((acc_tpl >= 0), ""); /* open the file collectively */ @@ -2691,7 +2681,6 @@ none_selection_chunk(void) hid_t file_dataspace; /* File dataspace ID */ hid_t mem_dataspace; /* memory dataspace ID */ hid_t dataset1, dataset2; /* Dataset ID */ - hbool_t use_gpfs = FALSE; /* Use GPFS hints */ const char *filename; hsize_t dims[RANK]; /* dataset dim sizes */ DATATYPE *data_origin = NULL; /* data buffer */ @@ -2727,7 +2716,7 @@ none_selection_chunk(void) * START AN HDF5 FILE * -------------------*/ /* setup file access template */ - acc_tpl = create_faccess_plist(comm, info, facc_type, use_gpfs); + acc_tpl = create_faccess_plist(comm, info, facc_type); VRFY((acc_tpl >= 0), ""); /* create the file collectively */ @@ -2982,7 +2971,6 @@ test_actual_io_mode(int selection_mode) { hsize_t stride[RANK]; hsize_t count[RANK]; hsize_t block[RANK]; - hbool_t use_gpfs = FALSE; char message[256]; herr_t ret; @@ -3022,7 +3010,7 @@ test_actual_io_mode(int selection_mode) { HDassert(filename != NULL); /* Setup the file access template */ - fapl = create_faccess_plist(mpi_comm, mpi_info, facc_type, use_gpfs); + fapl = create_faccess_plist(mpi_comm, mpi_info, facc_type); VRFY((fapl >= 0), "create_faccess_plist() succeeded"); /* Create the file */ @@ -3213,13 +3201,6 @@ test_actual_io_mode(int selection_mode) { break; } - /* Reset the expected values to defulats if the MPI_POSIX driver is in use. - * This property is defined only for mpio, not MPI POSIX. */ - if (facc_type == FACC_MPIPOSIX) { - actual_chunk_opt_mode_expected = H5D_MPIO_NO_CHUNK_OPTIMIZATION; - actual_io_mode_expected = H5D_MPIO_NO_COLLECTIVE; - } - ret = H5Sselect_hyperslab(file_space, H5S_SELECT_SET, start, stride, count, block); VRFY((ret >= 0), "H5Sset_hyperslab succeeded"); @@ -3450,9 +3431,6 @@ actual_io_mode_tests(void) { * TEST_DATA_TRANSFORMS: * Test for Data Transfrom feature as the cause of breaking collective I/O. * - * TEST_SET_MPIPOSIX: - * Test for MPI Posix as the cause of breaking collective I/O. - * * TEST_NOT_SIMPLE_OR_SCALAR_DATASPACES: * Test for NULL dataspace as the cause of breaking collective I/O. * @@ -3508,7 +3486,6 @@ test_no_collective_cause_mode(int selection_mode) hid_t mem_space = -1; hid_t file_space = -1; hsize_t chunk_dims[RANK]; - hbool_t use_gpfs = FALSE; herr_t ret; #ifdef H5_HAVE_FILTER_FLETCHER32 H5Z_filter_t filter_info; @@ -3532,35 +3509,30 @@ test_no_collective_cause_mode(int selection_mode) dcpl = H5Pcreate(H5P_DATASET_CREATE); VRFY((dcpl >= 0), "dataset creation plist created successfully"); - if (selection_mode & TEST_SET_MPIPOSIX) { - l_facc_type = FACC_MPIPOSIX; + if (selection_mode & TEST_NOT_CONTIGUOUS_OR_CHUNKED_DATASET_COMPACT) { + ret = H5Pset_layout (dcpl, H5D_COMPACT); + VRFY((ret >= 0),"set COMPACT layout succeeded"); + is_chunked = 0; } - else { - if (selection_mode & TEST_NOT_CONTIGUOUS_OR_CHUNKED_DATASET_COMPACT) { - ret = H5Pset_layout (dcpl, H5D_COMPACT); - VRFY((ret >= 0),"set COMPACT layout succeeded"); - is_chunked = 0; - } - if (selection_mode & TEST_NOT_CONTIGUOUS_OR_CHUNKED_DATASET_EXTERNAL) { - ret = H5Pset_external (dcpl, FILE_EXTERNAL, (off_t) 0, H5F_UNLIMITED); - VRFY((ret >= 0),"set EXTERNAL file layout succeeded"); - is_chunked = 0; - } + if (selection_mode & TEST_NOT_CONTIGUOUS_OR_CHUNKED_DATASET_EXTERNAL) { + ret = H5Pset_external (dcpl, FILE_EXTERNAL, (off_t) 0, H5F_UNLIMITED); + VRFY((ret >= 0),"set EXTERNAL file layout succeeded"); + is_chunked = 0; + } #ifdef H5_HAVE_FILTER_FLETCHER32 - if (selection_mode & TEST_FILTERS) { - ret = H5Zfilter_avail(H5Z_FILTER_FLETCHER32); - VRFY ((ret >=0 ), "Fletcher32 filter is available.\n"); + if (selection_mode & TEST_FILTERS) { + ret = H5Zfilter_avail(H5Z_FILTER_FLETCHER32); + VRFY ((ret >=0 ), "Fletcher32 filter is available.\n"); - ret = H5Zget_filter_info (H5Z_FILTER_FLETCHER32, &filter_info); - VRFY ( ( (filter_info & H5Z_FILTER_CONFIG_ENCODE_ENABLED) || (filter_info & H5Z_FILTER_CONFIG_DECODE_ENABLED) ) , "Fletcher32 filter encoding and decoding available.\n"); + ret = H5Zget_filter_info (H5Z_FILTER_FLETCHER32, &filter_info); + VRFY ( ( (filter_info & H5Z_FILTER_CONFIG_ENCODE_ENABLED) || (filter_info & H5Z_FILTER_CONFIG_DECODE_ENABLED) ) , "Fletcher32 filter encoding and decoding available.\n"); - ret = H5Pset_fletcher32(dcpl); - VRFY((ret >= 0),"set filter (flecher32) succeeded"); - } -#endif /* H5_HAVE_FILTER_FLETCHER32 */ + ret = H5Pset_fletcher32(dcpl); + VRFY((ret >= 0),"set filter (flecher32) succeeded"); } +#endif /* H5_HAVE_FILTER_FLETCHER32 */ if (selection_mode & TEST_NOT_SIMPLE_OR_SCALAR_DATASPACES) { sid = H5Screate(H5S_NULL); @@ -3580,7 +3552,7 @@ test_no_collective_cause_mode(int selection_mode) HDassert(filename != NULL); /* Setup the file access template */ - fapl = create_faccess_plist(mpi_comm, mpi_info, l_facc_type, use_gpfs); + fapl = create_faccess_plist(mpi_comm, mpi_info, l_facc_type); VRFY((fapl >= 0), "create_faccess_plist() succeeded"); /* Create the file */ @@ -3642,12 +3614,6 @@ test_no_collective_cause_mode(int selection_mode) } #endif /* H5_HAVE_FILTER_FLETCHER32 */ - if (selection_mode & TEST_SET_MPIPOSIX) { - test_name = "Broken Collective I/O - MPIO POSIX"; - no_collective_cause_local_expected |= H5D_MPIO_SET_MPIPOSIX; - no_collective_cause_global_expected |= H5D_MPIO_SET_MPIPOSIX; - } - if (selection_mode & TEST_COLLECTIVE) { test_name = "Broken Collective I/O - Not Broken"; no_collective_cause_local_expected = H5D_MPIO_COLLECTIVE; @@ -3662,13 +3628,6 @@ test_no_collective_cause_mode(int selection_mode) is_independent = 1; } - /* Add MPIPOSIX cause to expected cause if MPI_POSIX driver is in use '-p'. - * Exception to the independent cause.*/ - if (facc_type == FACC_MPIPOSIX && !(selection_mode & TEST_SET_INDEPENDENT)) { - no_collective_cause_local_expected |= H5D_MPIO_SET_MPIPOSIX; - no_collective_cause_global_expected |= H5D_MPIO_SET_MPIPOSIX; - } - /* use all spaces for certain tests */ if (selection_mode & TEST_NOT_SIMPLE_OR_SCALAR_DATASPACES || selection_mode & TEST_NOT_CONTIGUOUS_OR_CHUNKED_DATASET_EXTERNAL) { @@ -3841,7 +3800,6 @@ test_no_collective_cause_mode_filter(int selection_mode) hid_t mem_space = -1; hid_t file_space = -1; hsize_t chunk_dims[RANK]; - hbool_t use_gpfs = FALSE; herr_t ret; #ifdef H5_HAVE_FILTER_FLETCHER32 H5Z_filter_t filter_info; @@ -3890,7 +3848,7 @@ test_no_collective_cause_mode_filter(int selection_mode) HDassert(filename != NULL); /* Setup the file access template */ - fapl_write = create_faccess_plist(mpi_comm, mpi_info, FACC_DEFAULT, use_gpfs); + fapl_write = create_faccess_plist(mpi_comm, mpi_info, FACC_DEFAULT); VRFY((fapl_write >= 0), "create_faccess_plist() succeeded"); fid = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl_write); @@ -3918,13 +3876,6 @@ test_no_collective_cause_mode_filter(int selection_mode) no_collective_cause_global_expected = H5D_MPIO_FILTERS; #endif - /* Ignore above expected cause and reset cause to MPIPOSIX if - * the MPI_POSIX driver is in use.*/ - if (facc_type == FACC_MPIPOSIX) { - no_collective_cause_local_expected = H5D_MPIO_SET_MPIPOSIX; - no_collective_cause_global_expected = H5D_MPIO_SET_MPIPOSIX; - } - /* Get the file dataspace */ file_space = H5Dget_space(dataset); VRFY((file_space >= 0), "H5Dget_space succeeded"); @@ -3983,7 +3934,7 @@ test_no_collective_cause_mode_filter(int selection_mode) *---------------------*/ /* Setup the file access template */ - fapl_read = create_faccess_plist(mpi_comm, mpi_info, facc_type, use_gpfs); + fapl_read = create_faccess_plist(mpi_comm, mpi_info, facc_type); VRFY((fapl_read >= 0), "create_faccess_plist() succeeded"); fid = H5Fopen (filename, H5F_ACC_RDONLY, fapl_read); @@ -4049,7 +4000,6 @@ no_collective_cause_tests(void) test_no_collective_cause_mode (TEST_SET_INDEPENDENT); test_no_collective_cause_mode (TEST_DATATYPE_CONVERSION); test_no_collective_cause_mode (TEST_DATA_TRANSFORMS); - test_no_collective_cause_mode (TEST_SET_MPIPOSIX); test_no_collective_cause_mode (TEST_NOT_SIMPLE_OR_SCALAR_DATASPACES); test_no_collective_cause_mode (TEST_NOT_CONTIGUOUS_OR_CHUNKED_DATASET_COMPACT); test_no_collective_cause_mode (TEST_NOT_CONTIGUOUS_OR_CHUNKED_DATASET_EXTERNAL); @@ -4064,9 +4014,9 @@ no_collective_cause_tests(void) /* * Test combined causes */ - test_no_collective_cause_mode (TEST_SET_MPIPOSIX | TEST_DATATYPE_CONVERSION); + test_no_collective_cause_mode (TEST_NOT_CONTIGUOUS_OR_CHUNKED_DATASET_EXTERNAL | TEST_DATATYPE_CONVERSION); test_no_collective_cause_mode (TEST_DATATYPE_CONVERSION | TEST_DATA_TRANSFORMS); - test_no_collective_cause_mode (TEST_SET_MPIPOSIX | TEST_DATATYPE_CONVERSION | TEST_DATA_TRANSFORMS); + test_no_collective_cause_mode (TEST_NOT_CONTIGUOUS_OR_CHUNKED_DATASET_EXTERNAL | TEST_DATATYPE_CONVERSION | TEST_DATA_TRANSFORMS); return; } @@ -4089,7 +4039,6 @@ dataset_atomicity(void) hid_t acc_tpl; /* File access templates */ hid_t sid; /* Dataspace ID */ hid_t dataset1; /* Dataset IDs */ - hbool_t use_gpfs = FALSE; /* Use GPFS hints */ hsize_t dims[RANK]; /* dataset dim sizes */ int *write_buf = NULL; /* data buffer */ int *read_buf = NULL; /* data buffer */ @@ -4131,7 +4080,7 @@ dataset_atomicity(void) VRFY((read_buf != NULL), "read_buf HDcalloc succeeded"); /* setup file access template */ - acc_tpl = create_faccess_plist(comm, info, facc_type, use_gpfs); + acc_tpl = create_faccess_plist(comm, info, facc_type); VRFY((acc_tpl >= 0), ""); /* create the file collectively */ @@ -4194,7 +4143,7 @@ dataset_atomicity(void) MPI_Barrier (comm); /* setup file access template */ - acc_tpl = create_faccess_plist(comm, info, facc_type, use_gpfs); + acc_tpl = create_faccess_plist(comm, info, facc_type); VRFY((acc_tpl >= 0), ""); /* open the file collectively */ diff --git a/testpar/t_file.c b/testpar/t_file.c index 5cd3e9d..70ca60e 100644 --- a/testpar/t_file.c +++ b/testpar/t_file.c @@ -40,7 +40,6 @@ test_split_comm_access(void) int newrank, newprocs; hid_t fid; /* file IDs */ hid_t acc_tpl; /* File access properties */ - hbool_t use_gpfs = FALSE; /* Use GPFS hints */ herr_t ret; /* generic return value */ const char *filename; @@ -68,7 +67,7 @@ test_split_comm_access(void) MPI_Comm_rank(comm,&sub_mpi_rank); /* setup file access template */ - acc_tpl = create_faccess_plist(comm, info, facc_type, use_gpfs); + acc_tpl = create_faccess_plist(comm, info, facc_type); VRFY((acc_tpl >= 0), ""); /* create the file collectively */ diff --git a/testpar/t_mdset.c b/testpar/t_mdset.c index 516cc2f..fa1a980 100644 --- a/testpar/t_mdset.c +++ b/testpar/t_mdset.c @@ -88,7 +88,6 @@ void multiple_dset_write(void) int i, j, n, mpi_size, mpi_rank, size; hid_t iof, plist, dataset, memspace, filespace; hid_t dcpl; /* Dataset creation property list */ - hbool_t use_gpfs = FALSE; /* Use GPFS hints */ hsize_t chunk_origin [DIM]; hsize_t chunk_dims [DIM], file_dims [DIM]; hsize_t count[DIM]={1,1}; @@ -112,7 +111,7 @@ void multiple_dset_write(void) outme = HDmalloc((size_t)(size * size * sizeof(double))); VRFY((outme != NULL), "HDmalloc succeeded for outme"); - plist = create_faccess_plist(MPI_COMM_WORLD, MPI_INFO_NULL, facc_type, use_gpfs); + plist = create_faccess_plist(MPI_COMM_WORLD, MPI_INFO_NULL, facc_type); VRFY((plist>=0), "create_faccess_plist succeeded"); iof = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, plist); VRFY((iof>=0), "H5Fcreate succeeded"); @@ -175,7 +174,6 @@ void multiple_dset_write(void) void compact_dataset(void) { int i, j, mpi_size, mpi_rank, size, err_num=0; - hbool_t use_gpfs = FALSE; hid_t iof, plist, dcpl, dxpl, dataset, filespace; hsize_t file_dims [DIM]; double * outme; @@ -201,7 +199,7 @@ void compact_dataset(void) filename = GetTestParameters(); VRFY((mpi_size <= size), "mpi_size <= size"); - plist = create_faccess_plist(MPI_COMM_WORLD, MPI_INFO_NULL, facc_type, use_gpfs); + plist = create_faccess_plist(MPI_COMM_WORLD, MPI_INFO_NULL, facc_type); iof = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, plist); /* Define data space */ @@ -244,7 +242,7 @@ void compact_dataset(void) H5Fclose(iof); /* Open the file and dataset, read and compare the data. */ - plist = create_faccess_plist(MPI_COMM_WORLD, MPI_INFO_NULL, facc_type, use_gpfs); + plist = create_faccess_plist(MPI_COMM_WORLD, MPI_INFO_NULL, facc_type); iof = H5Fopen(filename, H5F_ACC_RDONLY, plist); VRFY((iof >= 0), "H5Fopen succeeded"); @@ -295,7 +293,6 @@ void compact_dataset(void) void null_dataset(void) { int mpi_size, mpi_rank; - hbool_t use_gpfs = FALSE; hid_t iof, plist, dxpl, dataset, attr, sid; unsigned uval=2; /* Buffer for writing to dataset */ int val=1; /* Buffer for writing to attribute */ @@ -310,8 +307,7 @@ void null_dataset(void) filename = GetTestParameters(); - plist = create_faccess_plist(MPI_COMM_WORLD, MPI_INFO_NULL, - facc_type, use_gpfs); + plist = create_faccess_plist(MPI_COMM_WORLD, MPI_INFO_NULL, facc_type); iof = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, plist); /* Define data space */ @@ -355,7 +351,7 @@ void null_dataset(void) H5Fclose(iof); /* Open the file and dataset, read and compare the data. */ - plist = create_faccess_plist(MPI_COMM_WORLD, MPI_INFO_NULL, facc_type, use_gpfs); + plist = create_faccess_plist(MPI_COMM_WORLD, MPI_INFO_NULL, facc_type); iof = H5Fopen(filename, H5F_ACC_RDONLY, plist); VRFY((iof >= 0), "H5Fopen succeeded"); @@ -409,7 +405,6 @@ void null_dataset(void) void big_dataset(void) { int mpi_size, mpi_rank; /* MPI info */ - hbool_t use_gpfs = FALSE; /* Don't use GPFS stuff for this test */ hid_t iof, /* File ID */ fapl, /* File access property list ID */ dataset, /* Dataset ID */ @@ -428,7 +423,7 @@ void big_dataset(void) filename = GetTestParameters(); - fapl = create_faccess_plist(MPI_COMM_WORLD, MPI_INFO_NULL, facc_type, use_gpfs); + fapl = create_faccess_plist(MPI_COMM_WORLD, MPI_INFO_NULL, facc_type); VRFY((fapl >= 0), "create_faccess_plist succeeded"); /* @@ -540,7 +535,6 @@ void big_dataset(void) void dataset_fillvalue(void) { int mpi_size, mpi_rank; /* MPI info */ - hbool_t use_gpfs = FALSE; /* Don't use GPFS stuff for this test */ int err_num; /* Number of errors */ hid_t iof, /* File ID */ fapl, /* File access property list ID */ @@ -575,7 +569,7 @@ void dataset_fillvalue(void) wdata=HDmalloc((size_t)(dset_size*sizeof(int))); VRFY((wdata != NULL), "HDmalloc succeeded for write buffer"); - fapl = create_faccess_plist(MPI_COMM_WORLD, MPI_INFO_NULL, facc_type, use_gpfs); + fapl = create_faccess_plist(MPI_COMM_WORLD, MPI_INFO_NULL, facc_type); VRFY((fapl >= 0), "create_faccess_plist succeeded"); /* @@ -656,7 +650,7 @@ void dataset_fillvalue(void) ret = H5Dwrite(dataset, H5T_NATIVE_INT, memspace, filespace, dxpl, wdata); VRFY((ret >= 0), "H5Dwrite succeeded"); - /* Barrier here, to allow MPI-posix I/O to sync */ + /* Barrier here, to allow processes to sync */ MPI_Barrier(MPI_COMM_WORLD); /* @@ -731,7 +725,6 @@ void collective_group_write(void) { int mpi_rank, mpi_size, size; int i, j, m; - hbool_t use_gpfs = FALSE; char gname[64], dname[32]; hid_t fid, gid, did, plist, dcpl, memspace, filespace; DATATYPE * outme = NULL; @@ -758,7 +751,7 @@ void collective_group_write(void) outme = HDmalloc((size_t)(size * size * sizeof(DATATYPE))); VRFY((outme != NULL), "HDmalloc succeeded for outme"); - plist = create_faccess_plist(MPI_COMM_WORLD, MPI_INFO_NULL, facc_type, use_gpfs); + plist = create_faccess_plist(MPI_COMM_WORLD, MPI_INFO_NULL, facc_type); fid = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, plist); H5Pclose(plist); @@ -827,7 +820,6 @@ void independent_group_read(void) { int mpi_rank, m; hid_t plist, fid; - hbool_t use_gpfs = FALSE; const H5Ptest_param_t *pt; char *filename; int ngroups; @@ -838,7 +830,7 @@ void independent_group_read(void) MPI_Comm_rank(MPI_COMM_WORLD, &mpi_rank); - plist = create_faccess_plist(MPI_COMM_WORLD, MPI_INFO_NULL, facc_type, use_gpfs); + plist = create_faccess_plist(MPI_COMM_WORLD, MPI_INFO_NULL, facc_type); fid = H5Fopen(filename, H5F_ACC_RDONLY, plist); H5Pclose(plist); @@ -950,7 +942,6 @@ void multiple_group_write(void) { int mpi_rank, mpi_size, size; int m; - hbool_t use_gpfs = FALSE; char gname[64]; hid_t fid, gid, plist, memspace, filespace; hsize_t chunk_origin[DIM]; @@ -969,7 +960,7 @@ void multiple_group_write(void) size = get_size(); - plist = create_faccess_plist(MPI_COMM_WORLD, MPI_INFO_NULL, facc_type, use_gpfs); + plist = create_faccess_plist(MPI_COMM_WORLD, MPI_INFO_NULL, facc_type); fid = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, plist); H5Pclose(plist); @@ -1120,7 +1111,6 @@ void multiple_group_read(void) { int mpi_rank, mpi_size, error_num, size; int m; - hbool_t use_gpfs = FALSE; char gname[64]; hid_t plist, fid, gid, memspace, filespace; hsize_t chunk_origin[DIM]; @@ -1138,7 +1128,7 @@ void multiple_group_read(void) size = get_size(); - plist = create_faccess_plist(MPI_COMM_WORLD, MPI_INFO_NULL, facc_type, use_gpfs); + plist = create_faccess_plist(MPI_COMM_WORLD, MPI_INFO_NULL, facc_type); fid = H5Fopen(filename, H5F_ACC_RDONLY, plist); H5Pclose(plist); diff --git a/testpar/t_ph5basic.c b/testpar/t_ph5basic.c index 1e5d3b3..76eeaef 100644 --- a/testpar/t_ph5basic.c +++ b/testpar/t_ph5basic.c @@ -191,117 +191,3 @@ test_fapl_mpio_dup(void) } } - -/*------------------------------------------------------------------------- - * Function: test_fapl_mpiposix_dup - * - * Purpose: Test if fapl_mpiposix property list keeps a duplicate of the - * communicator object given when set; and returns a duplicate - * of its component when H5Pget_fapl_mpiposix is called. - * Note that fapl_mpiposix does not use INFO object. - * - * Return: Success: None - * - * Failure: Abort - * - * Programmer: Albert Cheng - * January 9, 2003 - * - * Modifications: - *------------------------------------------------------------------------- - */ -void -test_fapl_mpiposix_dup(void) -{ - int mpi_size, mpi_rank; - MPI_Comm comm, comm_tmp; - int mpi_size_old, mpi_rank_old; - int mpi_size_tmp, mpi_rank_tmp; - int mrc; /* MPI return value */ - hid_t acc_pl; /* File access properties */ - hbool_t use_gpfs = FALSE; - herr_t ret; /* hdf5 return value */ - - if (VERBOSE_MED) - printf("Verify fapl_mpiposix duplicates communicator object\n"); - - /* set up MPI parameters */ - MPI_Comm_size(MPI_COMM_WORLD,&mpi_size); - MPI_Comm_rank(MPI_COMM_WORLD,&mpi_rank); - if (VERBOSE_MED) - printf("rank/size of MPI_COMM_WORLD are %d/%d\n", mpi_rank, mpi_size); - - /* Create a new communicator that has the same processes as MPI_COMM_WORLD. - * Use MPI_Comm_split because it is simplier than MPI_Comm_create - */ - mrc = MPI_Comm_split(MPI_COMM_WORLD, 0, 0, &comm); - VRFY((mrc==MPI_SUCCESS), "MPI_Comm_split"); - MPI_Comm_size(comm,&mpi_size_old); - MPI_Comm_rank(comm,&mpi_rank_old); - if (VERBOSE_MED) - printf("rank/size of comm are %d/%d\n", mpi_rank_old, mpi_size_old); - - acc_pl = H5Pcreate (H5P_FILE_ACCESS); - VRFY((acc_pl >= 0), "H5P_FILE_ACCESS"); - - ret = H5Pset_fapl_mpiposix(acc_pl, comm, use_gpfs); - VRFY((ret >= 0), ""); - - /* Case 1: - * Free the created communicator object. - * Check if the access property list is still valid and can return - * valid communicator object. - */ - mrc = MPI_Comm_free(&comm); - VRFY((mrc==MPI_SUCCESS), "MPI_Comm_free"); - - ret = H5Pget_fapl_mpiposix(acc_pl, &comm_tmp, &use_gpfs); - VRFY((ret >= 0), "H5Pget_fapl_mpiposix"); - MPI_Comm_size(comm_tmp,&mpi_size_tmp); - MPI_Comm_rank(comm_tmp,&mpi_rank_tmp); - if (VERBOSE_MED) - printf("After H5Pget_fapl_mpiposix: rank/size of comm are %d/%d\n", - mpi_rank_tmp, mpi_size_tmp); - VRFY((mpi_size_tmp==mpi_size), "MPI_Comm_size"); - VRFY((mpi_rank_tmp==mpi_rank), "MPI_Comm_rank"); - - /* Case 2: - * Free the retrieved communicator object. - * Check if the access property list is still valid and can return - * valid communicator object. - * Also verify the NULL argument option. - */ - mrc = MPI_Comm_free(&comm_tmp); - VRFY((mrc==MPI_SUCCESS), "MPI_Comm_free"); - - /* check NULL argument options. */ - ret = H5Pget_fapl_mpiposix(acc_pl, NULL, NULL); - VRFY((ret >= 0), "H5Pget_fapl_mpiposix neither"); - - /* now get it again and check validity too. */ - /* Don't free the returned object which is used in the next case. */ - ret = H5Pget_fapl_mpiposix(acc_pl, &comm_tmp, &use_gpfs); - VRFY((ret >= 0), "H5Pget_fapl_mpiposix"); - MPI_Comm_size(comm_tmp,&mpi_size_tmp); - MPI_Comm_rank(comm_tmp,&mpi_rank_tmp); - if (VERBOSE_MED) - printf("After second H5Pget_fapl_mpiposix: rank/size of comm are %d/%d\n", - mpi_rank_tmp, mpi_size_tmp); - VRFY((mpi_size_tmp==mpi_size), "MPI_Comm_size"); - VRFY((mpi_rank_tmp==mpi_rank), "MPI_Comm_rank"); - - /* Case 3: - * Close the property list and verify the retrieved communicator - * object is still valid. - */ - H5Pclose(acc_pl); - MPI_Comm_size(comm_tmp,&mpi_size_tmp); - MPI_Comm_rank(comm_tmp,&mpi_rank_tmp); - if (VERBOSE_MED) - printf("After Property list closed: rank/size of comm are %d/%d\n", - mpi_rank_tmp, mpi_size_tmp); - - /* clean up */ - mrc = MPI_Comm_free(&comm_tmp); - VRFY((mrc==MPI_SUCCESS), "MPI_Comm_free"); -} diff --git a/testpar/t_posix_compliant.c b/testpar/t_posix_compliant.c deleted file mode 100644 index 207f07e..0000000 --- a/testpar/t_posix_compliant.c +++ /dev/null @@ -1,927 +0,0 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright by The HDF Group. * - * Copyright by the Board of Trustees of the University of Illinois. * - * All rights reserved. * - * * - * This file is part of HDF5. The full HDF5 copyright notice, including * - * terms governing use, modification, and redistribution, is contained in * - * the files COPYING and Copyright.html. COPYING can be found at the root * - * of the source code distribution tree; Copyright.html can be found at the * - * root level of an installed copy of the electronic HDF5 document set and * - * is linked from the top-level documents page. It can also be found at * - * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * - * access to either file, you may request a copy from help@hdfgroup.org. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/* A series of tests for posix compliance - * - * These tests do increasingly complicated sets of writes followed by reads. - * POSIX standards say that any read that can be proven to occur after a write - * must include the data in that write. These tests attempt to verify whether the - * underlying filesystem and i/o layer provide such guarantees. - * - * There are two sets of tests, one which uses POSIX i/o (fread, fwrite) and one which - * uses MPI I/O (MPI_File_read, MPI_File_write). Each set has multiple sub-tests, which - * test varying patters of writes and reads. - * - * - * TODO: - * Add corresponding posix i/o tests for each MPI i/o test. Currently, not all of the - * MPI IO tests are implemented using fwrite/fread. - * - * Leon Arber - * larber@ncsa.uiuc.edu -*/ - -/* To compile this outside of the HDF5 library, you can do so by defining the - * macro STANDALONE. E.g., - * mpicc -DSTANDALONE t_posix_compliant.c -o t_posix_compliant - * then run it as an MPI application. E.g., - * mpiexec -np 3 ./t_posix_compliant - */ - -#ifdef H5_HAVE_UNISTD_H -#include <unistd.h> -#endif -#include <stdio.h> -#include <string.h> -#include <stdlib.h> -#include <mpi.h> -#ifndef STANDALONE -#include "h5test.h" -#else -#define HDmalloc(sz) malloc(sz) -#define HDfree(p) free(p) -#define getenv_all(comm, root, name) getenv(name) -#endif -#define TESTFNAME "posix_test" /* test file name */ - -static char* testfile = NULL; -static int err_flag = 0; -static int max_err_print = 5; -int nmismatches = 0; /* warnings encountered */ - -/* globals needed for getopt - * Although they *should* be defined in unistd.h */ -extern char *optarg; -extern int optind, opterr; - - -#define CHECK_SUCCESS(res) \ -{ \ - char err_got[MPI_MAX_ERROR_STRING]; \ - int err_len; \ - if(res != MPI_SUCCESS) \ - { \ - MPI_Error_string(res, err_got, &err_len); \ - fprintf(stderr, "Line %d, Error: %s\n", __LINE__, err_got); \ - MPI_Abort(MPI_COMM_WORLD, -2); \ - } \ -} - -#define PRINT_RESULT() \ -{ \ - int err_result; \ - MPI_Reduce(&err_flag, &err_result, 1, MPI_INT, MPI_MIN, 0, MPI_COMM_WORLD); \ - if( (rank == 0) && (err_result == 0) ) \ - printf("PASSED\n"); \ - fflush(stdout); \ - fflush(stderr); \ - err_flag = 0; \ -} - -static void vrfy_elements(int* a, int* b, int size, int rank); -static int find_writesize(int rank, int numprocs, int write_size); - - -/* All writes are to non-overlapping locations in the file - * Then, each task reads another tasks' data - * */ - -static int allwrite_allread_blocks(int numprocs, int rank, int write_size) -{ - MPI_File fh = MPI_FILE_NULL; - int mpio_result; - int amode, i; - MPI_Offset offset = rank*write_size*sizeof(int); - MPI_Status Status; - int* writebuf = (int*)HDmalloc(write_size*sizeof(int)); - int* readbuf = (int*)HDmalloc (write_size*sizeof(int)); - - for(i=0; i<write_size; i++) - writebuf[i] = i; - - amode = MPI_MODE_CREATE | MPI_MODE_RDWR | MPI_MODE_DELETE_ON_CLOSE; - - mpio_result = MPI_File_open(MPI_COMM_WORLD, testfile, amode, - MPI_INFO_NULL, &fh); - CHECK_SUCCESS(mpio_result); - - mpio_result = MPI_File_write_at(fh, offset, writebuf, write_size, MPI_INT, &Status); - CHECK_SUCCESS(mpio_result); - - MPI_Barrier(MPI_COMM_WORLD); - - offset = ( (rank+(numprocs-1)) % numprocs)*write_size*sizeof(int); - - mpio_result = MPI_File_read_at(fh, offset, readbuf, write_size, MPI_INT, &Status); - CHECK_SUCCESS(mpio_result); - - vrfy_elements(writebuf, readbuf, write_size, rank); - - mpio_result = MPI_File_close(&fh); - CHECK_SUCCESS(mpio_result); - HDfree(writebuf); - HDfree(readbuf); - - return err_flag; - -} - -static int posix_allwrite_allread_blocks(int numprocs, int rank, int write_size) -{ - int ret; - int i; - int offset = rank*write_size*sizeof(int); - int* writebuf = (int*)HDmalloc(write_size*sizeof(int)); - int* readbuf = (int*)HDmalloc (write_size*sizeof(int)); - FILE* file = NULL; - - for(i=0; i<write_size; i++) - writebuf[i] = i; - - if(rank==0) - file = fopen(testfile, "w+"); - MPI_Barrier(MPI_COMM_WORLD); - if(rank != 0) - file = fopen(testfile, "r+"); - - if(file == NULL) - { - fprintf(stderr, "Could not create testfile\n"); - MPI_Abort(MPI_COMM_WORLD, 1); - } - - ret = fseek(file, offset, SEEK_SET); - if(ret == -1) - { - perror("fseek"); - MPI_Abort(MPI_COMM_WORLD, 1); - } - - - ret = fwrite(writebuf, sizeof(int), write_size, file); - if(ret != write_size) - { - perror("fwrite"); - MPI_Abort(MPI_COMM_WORLD, 1); - } - - MPI_Barrier(MPI_COMM_WORLD); - - offset = ( (rank+(numprocs-1)) % numprocs)*write_size*sizeof(int); - - ret = fseek(file, offset, SEEK_SET); - if(ret == -1) - { - perror("fseek"); - MPI_Abort(MPI_COMM_WORLD, 1); - } - - ret = fread(readbuf, sizeof(int), write_size, file); - if( (ret == 0) && feof(file)) - printf("Process %d: Error. Prematurely reached end of file\n", rank); - else if( (ret != write_size) && ferror(file)) - { - perror("Error encountered in fread"); - MPI_Abort(MPI_COMM_WORLD, 1); - } - - vrfy_elements(writebuf, readbuf, write_size, rank); - - fclose(file); - - MPI_Barrier(MPI_COMM_WORLD); - if(rank == 0) - unlink(testfile); - - HDfree(writebuf); - HDfree(readbuf); - return err_flag; - -} - -static int posix_onewrite_allread_blocks(int numprocs, int rank, int write_size) -{ - int ret; - int i; - int offset = rank*write_size*sizeof(int); - int* writebuf = (int*)HDmalloc(write_size*sizeof(int)); - int* readbuf = (int*)HDmalloc (write_size*sizeof(int)); - FILE* file = NULL; - - for(i=0; i<write_size; i++) - writebuf[i] = i; - - if(rank==0) - file = fopen(testfile, "w+"); - MPI_Barrier(MPI_COMM_WORLD); - if(rank != 0) - file = fopen(testfile, "r+"); - - if(file == NULL) - { - fprintf(stderr, "Could not create testfile\n"); - MPI_Abort(MPI_COMM_WORLD, 1); - } - - if(rank == 0) - { - for(offset = 0; offset<numprocs*write_size*sizeof(int); offset+=(write_size*sizeof(int))) - { - ret = fseek(file, offset, SEEK_SET); - if(ret == -1) - { - perror("fseek"); - MPI_Abort(MPI_COMM_WORLD, 1); - } - - - ret = fwrite(writebuf, sizeof(int), write_size, file); - if(ret != write_size) - { - perror("fwrite"); - MPI_Abort(MPI_COMM_WORLD, 1); - } - } - - } - MPI_Barrier(MPI_COMM_WORLD); - - offset = rank*write_size*sizeof(int); - - ret = fseek(file, offset, SEEK_SET); - if(ret == -1) - { - perror("fseek"); - MPI_Abort(MPI_COMM_WORLD, 1); - } - - ret = fread(readbuf, sizeof(int), write_size, file); - if( (ret == 0) && feof(file)) - printf("Process %d: Error. Prematurely reached end of file\n", rank); - else if( (ret != write_size) && ferror(file)) - { - perror("Error encountered in fread"); - MPI_Abort(MPI_COMM_WORLD, 1); - } - - vrfy_elements(writebuf, readbuf, write_size, rank); - - fclose(file); - - MPI_Barrier(MPI_COMM_WORLD); - if(rank == 0) - unlink(testfile); - - HDfree(writebuf); - HDfree(readbuf); - return err_flag; - -} - -static int posix_onewrite_allread_interlaced(int numprocs, int rank, int write_size) -{ - int ret; - int i, fill, index; - int offset = rank*write_size*sizeof(int); - int* writebuf = (int*)HDmalloc(write_size*sizeof(int)); - int* readbuf = (int*)HDmalloc (write_size*sizeof(int)); - FILE* file = NULL; - - if(rank==0) - file = fopen(testfile, "w+"); - MPI_Barrier(MPI_COMM_WORLD); - if(rank != 0) - file = fopen(testfile, "r+"); - - if(file == NULL) - { - fprintf(stderr, "Could not create testfile\n"); - MPI_Abort(MPI_COMM_WORLD, 1); - } - - if(rank == 0) - { - for(offset = 0; offset<numprocs*write_size*sizeof(int); offset+=(numprocs*sizeof(int))) - { - ret = fseek(file, offset, SEEK_SET); - if(ret == -1) - { - perror("fseek"); - MPI_Abort(MPI_COMM_WORLD, 1); - } - - fill = offset / (numprocs*sizeof(int)); - for(i=0; i<numprocs; i++) - writebuf[i] = fill; - - - ret = fwrite(writebuf, sizeof(int), numprocs, file); - if(ret != numprocs) - { - perror("fwrite"); - MPI_Abort(MPI_COMM_WORLD, 1); - } - } - - } - MPI_Barrier(MPI_COMM_WORLD); - - index = 0; - for(offset = rank*sizeof(int); offset<numprocs*write_size*sizeof(int); offset+=(numprocs*sizeof(int))) - { - - ret = fseek(file, offset, SEEK_SET); - if(ret == -1) - { - perror("fseek"); - MPI_Abort(MPI_COMM_WORLD, 1); - } - - ret = fread(readbuf+index, sizeof(int), 1, file); - if( (ret == 0) && feof(file)) - printf("Process %d: Error. Prematurely reached end of file\n", rank); - else if( (ret != 1) && ferror(file)) - { - perror("Error encountered in fread"); - MPI_Abort(MPI_COMM_WORLD, 1); - } - - index++; - } - - for(i=0; i<write_size; i++) - writebuf[i] = i; - - vrfy_elements(writebuf, readbuf, write_size, rank); - - fclose(file); - - MPI_Barrier(MPI_COMM_WORLD); - if(rank == 0) - unlink(testfile); - - HDfree(writebuf); - HDfree(readbuf); - return err_flag; - -} -/* Each proc wites out 0 1 2 3 with displacement i, so file contents are: - * 0000 1111 2222 3333 etc. (with 4 procs) - * - * Each proc then reads in the whole file and verifies that the data is what it is supposed to be*/ - -static int allwrite_allread_interlaced(int numprocs, int rank, int write_size) -{ - MPI_File fh = MPI_FILE_NULL; - int mpio_result; - int amode, i, counter = 0; - MPI_Datatype filetype; - MPI_Status Status; - int* writebuf = (int*)HDmalloc(write_size*sizeof(int)); - int* readbuf = (int*) HDmalloc(numprocs*sizeof(int)); - int offset=0; - - for(i=0; i<write_size; i++) - writebuf[i] = i; - - - amode = MPI_MODE_CREATE | MPI_MODE_RDWR | MPI_MODE_DELETE_ON_CLOSE; - mpio_result = MPI_File_open(MPI_COMM_WORLD, testfile, amode, MPI_INFO_NULL, &fh); - CHECK_SUCCESS(mpio_result); - - mpio_result = MPI_Type_vector(write_size, 1, numprocs, MPI_INT, &filetype); - CHECK_SUCCESS(mpio_result); - - mpio_result = MPI_Type_commit(&filetype); - CHECK_SUCCESS(mpio_result); - - mpio_result = MPI_File_set_view(fh, rank*sizeof(int), MPI_INT, filetype, "native", MPI_INFO_NULL); - CHECK_SUCCESS(mpio_result); - - mpio_result = MPI_File_write(fh, writebuf, write_size, MPI_INT, &Status); - CHECK_SUCCESS(mpio_result); - - MPI_Barrier(MPI_COMM_WORLD); - - mpio_result = MPI_File_set_view(fh, 0, MPI_BYTE, MPI_BYTE, "native", MPI_INFO_NULL); - CHECK_SUCCESS(mpio_result); - - for(offset = 0; offset<(write_size*numprocs*sizeof(int)); offset+=(numprocs*sizeof(int))) - { - mpio_result = MPI_File_read_at(fh, offset, readbuf, numprocs, MPI_INT, &Status); - CHECK_SUCCESS(mpio_result); - - for(i=0; i<numprocs; i++) - { - if(writebuf[offset/(numprocs*sizeof(int))] != readbuf[i]) - { - if( (rank == 0) && (counter == 0)) - printf("\n"); - if(counter++ < max_err_print) - fprintf(stderr, "Arrays do not match! Prcoess %d, element %d: [%d, %d]\n", rank, i, writebuf[offset/(numprocs*sizeof(int))], readbuf[i]); - else if(counter++ == max_err_print+1) - fprintf(stderr, "Printed %d errors. Omitting the rest\n", max_err_print); - err_flag = -1; - } - - } - } - nmismatches += counter; - mpio_result = MPI_File_close(&fh); - CHECK_SUCCESS(mpio_result); - - HDfree(writebuf); - HDfree(readbuf); - return err_flag; - - -} - -/* Overlapping pattern works as follows (this test requires at least 2 procs: - * Writes: - * Task 0: 0 2 4 6 etc... - * Task 1: 1 3 5 7 etc... - * Task 2: 0 3 6 etc.. - * Task 3: 0 4 8 etc... - * - * The above describes only the pattern of the elements being written. The actual - * number of elements written is going to be: - * - * Task i where i=(numprocs-1) writes write_size elements. All other tasks do: - * x = ((write_size-1)*numprocs) - * Task i's write_size is the smallest multiple of i<=x divided by i, with the exception - * of tasks 0 and 1, for whom i is 2, since they are writing the even and odd multiples. - * - * So, if there are 5 tasks with write_size=4, the resulting pattern of writes is: - * - * Task 0: 0 2 4 6 8 10 12 14 - * Task 1: 1 3 5 7 9 11 13 15 - * Task 2: 0 3 6 9 12 15 - * Task 3: 0 4 8 12 - * Task 4: 0 5 10 15 - * - * - * - * * * All the entires that overlap will therefore be writing the same value - * - * At the end, all tasks read in the file and verify that it is correct should be - * (1,2...((numprocs-1)*WRTE_SIZE). - * */ - -static int allwrite_allread_overlap(int numprocs, int rank, int write_size) -{ - - MPI_File fh = MPI_FILE_NULL; - int mpio_result; - int amode, i, counter = 0; - MPI_Datatype filetype; - MPI_Status Status; - int* writebuf = (int*) HDmalloc(write_size*(numprocs-1)*sizeof(int)); /* An upper bound...not all the elements will be written */ - int* readbuf = (int*) HDmalloc(write_size*(numprocs-1)*sizeof(int)); - - if(numprocs < 2) - { - fprintf(stderr, "The allwrite_allread_overlap test requires at least 2 procs\n"); - return -1; - } - - if(rank == 0) - { - for(i=0; i<write_size*(numprocs-1); i++) - writebuf[i] = 2*i; - } - else if(rank == 1) - { - for(i=0; i<write_size*(numprocs-1); i++) - writebuf[i] = (2*i)+1; - } - else - { - for(i=0; i<write_size*(numprocs-1); i++) - writebuf[i] = (rank+1)*i; - } - - amode = MPI_MODE_CREATE | MPI_MODE_RDWR | MPI_MODE_DELETE_ON_CLOSE; - mpio_result = MPI_File_open(MPI_COMM_WORLD, testfile, amode, MPI_INFO_NULL, &fh); - CHECK_SUCCESS(mpio_result); - - if( (rank == 0) || (rank == 1) ) - mpio_result = MPI_Type_vector(write_size*(numprocs-1), 1, 2, MPI_INT, &filetype); - else - mpio_result = MPI_Type_vector(write_size*(numprocs-1), 1, rank+1, MPI_INT, &filetype); - CHECK_SUCCESS(mpio_result); - - mpio_result = MPI_Type_commit(&filetype); - CHECK_SUCCESS(mpio_result); - - if( rank == 1) - mpio_result = MPI_File_set_view(fh, sizeof(int), MPI_INT, filetype, "native", MPI_INFO_NULL); - else - mpio_result = MPI_File_set_view(fh, 0, MPI_INT, filetype, "native", MPI_INFO_NULL); - CHECK_SUCCESS(mpio_result); - - if( rank == (numprocs - 1)) - mpio_result = MPI_File_write(fh, writebuf, write_size, MPI_INT, &Status); - else - mpio_result = MPI_File_write(fh, writebuf, find_writesize(rank, numprocs, write_size), MPI_INT, &Status); - - CHECK_SUCCESS(mpio_result); - - MPI_Barrier(MPI_COMM_WORLD); - mpio_result = MPI_File_set_view(fh, 0, MPI_BYTE, MPI_BYTE, "native", MPI_INFO_NULL); - CHECK_SUCCESS(mpio_result); - - mpio_result = MPI_File_read_at(fh, 0, readbuf, write_size*(numprocs-1), MPI_INT, &Status); - CHECK_SUCCESS(mpio_result); - - for(i=0; i<write_size*(numprocs-1); i++) - { - if(i != readbuf[i]) - { - if( (rank == 0) && (counter == 0)) - printf("\n"); - if(counter++ < max_err_print) - fprintf(stderr, "Arrays do not match! Prcoess %d, element %d: [%d, %d]\n", rank, i, i, readbuf[i]); - else if(counter++ == max_err_print+1) - fprintf(stderr, "Printed %d errors. Omitting the rest\n", max_err_print); - err_flag = -1; - } - } - - nmismatches += counter; - mpio_result = MPI_File_close(&fh); - CHECK_SUCCESS(mpio_result); - HDfree(writebuf); - HDfree(readbuf); - - return err_flag; - -} - -/* A random process writes out the following to the file: - * 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 (assuming write_size=5, and numprocs=3) - * - * Process i read's in write_size bytes at offset=i*write_size - */ -static int onewrite_allread_blocks(int numprocs, int rank, int write_size) -{ - MPI_File fh = MPI_FILE_NULL; - int mpio_result; - int amode, i; - MPI_Status Status; - int* writebuf = (int*)HDmalloc(write_size*sizeof(int)); - int* readbuf = (int*)HDmalloc (write_size*sizeof(int)); - - for(i=0; i<write_size; i++) - writebuf[i] = i; - - amode = MPI_MODE_CREATE | MPI_MODE_RDWR | MPI_MODE_DELETE_ON_CLOSE; - - mpio_result = MPI_File_open(MPI_COMM_WORLD, testfile, amode, - MPI_INFO_NULL, &fh); - CHECK_SUCCESS(mpio_result); - - /* A random process writes out all the data */ - if(rank == (rand() % numprocs)) - { - for(i=0; i<numprocs; i++) - { - mpio_result = MPI_File_write_at(fh, write_size*i*sizeof(int), writebuf, write_size, MPI_INT, &Status); - CHECK_SUCCESS(mpio_result); - } - } - - MPI_Barrier(MPI_COMM_WORLD); - - mpio_result = MPI_File_read_at(fh, write_size*rank*sizeof(int), readbuf, write_size, MPI_INT, &Status); - CHECK_SUCCESS(mpio_result); - - vrfy_elements(writebuf, readbuf, write_size, rank); - - mpio_result = MPI_File_close(&fh); - CHECK_SUCCESS(mpio_result); - HDfree(writebuf); - HDfree(readbuf); - - return err_flag; - - - -} - -/* Process zero writes out: - * 0000 1111 2222 3333 etc. (with 4 procs) - * - * Each proc reads out 0 1 2 3 starting at displacement i */ -static int onewrite_allread_interlaced(int numprocs, int rank, int write_size) -{ - MPI_File fh = MPI_FILE_NULL; - int mpio_result; - int amode, i; - MPI_Datatype filetype; - MPI_Status Status; - int* writebuf = (int*) HDmalloc(numprocs*write_size*sizeof(int)); /* Upper bound, not all used */ - int* readbuf = (int*)HDmalloc (write_size*sizeof(int)); - - - amode = MPI_MODE_CREATE | MPI_MODE_RDWR; - amode = MPI_MODE_CREATE | MPI_MODE_RDWR | MPI_MODE_DELETE_ON_CLOSE; - mpio_result = MPI_File_open(MPI_COMM_WORLD, testfile, amode, MPI_INFO_NULL, &fh); - CHECK_SUCCESS(mpio_result); - - mpio_result = MPI_Type_vector(write_size, 1, numprocs, MPI_INT, &filetype); - CHECK_SUCCESS(mpio_result); - - mpio_result = MPI_Type_commit(&filetype); - CHECK_SUCCESS(mpio_result); - - if(rank == (rand() % numprocs)) - { - for(i=0; i<write_size; i++) - { - int j; - for(j=0; j<numprocs; j++) - writebuf[j] = i; - - mpio_result = MPI_File_write_at(fh, i*numprocs*sizeof(int), writebuf, numprocs, MPI_INT, &Status); - CHECK_SUCCESS(mpio_result); - } - } - - MPI_Barrier(MPI_COMM_WORLD); - - mpio_result = MPI_File_set_view(fh, rank*sizeof(int), MPI_INT, filetype, "native", MPI_INFO_NULL); - CHECK_SUCCESS(mpio_result); - - mpio_result = MPI_File_read_at(fh, 0, readbuf, write_size, MPI_INT, &Status); - CHECK_SUCCESS(mpio_result); - - for(i=0; i<write_size; i++) - writebuf[i] = i; - - vrfy_elements(writebuf, readbuf, write_size, rank); - - mpio_result = MPI_File_close(&fh); - CHECK_SUCCESS(mpio_result); - HDfree(writebuf); - HDfree(readbuf); - - return err_flag; - -} - -static int find_writesize(int rank, int numprocs, int size) -{ - /* Largest number in the file */ - int tmp = (size-1)*numprocs; - int x = 0; - int write_size = 0; - - /* Find largest multiple not greater than tmp */ - while(x <= tmp) - { - if( (rank == 0) || (rank == 1) ) - x+=2; - else - x += (rank+1); - - write_size++; - } - - return write_size; -} - -static void -vrfy_elements(int* a, int* b, int size, int rank) -{ - int i, counter = 0; - - for(i=0; i<size; i++) - { - if(a[i] != b[i]) - { - if( (rank == 0) && (counter == 0)) - printf("\n"); - if(counter++ < max_err_print) - fprintf(stderr, "Arrays do not match! Prcoess %d, element %d: [%d, %d]\n", rank, i, a[i], b[i]); - else if(counter++ == max_err_print+1) - fprintf(stderr, "Printed %d errors. Omitting the rest\n", max_err_print); - err_flag = -1; - } - } - nmismatches += counter; - fflush(stderr); - fflush(stdout); -} - -/* print an explanation message by MAIN (0) process. - */ -static void -header_msg(void) -{ - printf( -"Purpose:\n" -"This tests if the file system is posix compliant when POSIX and MPI IO APIs\n" -"are used. This is for information only and always exits with 0 even when\n" -"non-compliance errors are encounter. This is to prevent this test from\n" -"aborting the remaining parallel HDF5 tests unnecessarily.\n\n" - ); -} - -int -main(int argc, char* argv[]) -{ - - int numprocs, rank, opt, mpi_tests=1, posix_tests=1; - int lb, ub, inc; - int write_size = 0; - char optstring[] = "h x m p: s: v:"; - char *prefix; - - err_flag = 0; - - MPI_Init(&argc, &argv); - MPI_Comm_size(MPI_COMM_WORLD, &numprocs); - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - - if (rank == 0) - header_msg(); - while((opt = getopt(argc, argv, optstring)) != -1) - { - switch(opt) - { - case 'h': - if(rank == 0) - printf("Usage: %s [options]\n" - "-h prints this help message\n" - "-x run the posix i/o tests ONLY (default: posix and MPI)\n" - "-m run the mpi i/o tests ONLY (default: posix and MPI)\n" - "-s size Run the test for the specific size. Default is 1024, 4096, 16384, ..., 1048576\n" - "-p path specifies path for test file. Default is current directory\n" - "-v num Specifies number of unmatching entries to print (default 10, pass -1 for all)\n", argv[0]); - goto done; - case 'x': - mpi_tests = 0; - posix_tests = 1; - break; - case 'm': - mpi_tests = 1; - posix_tests = 0; - break; - case 'p': - /* need 2 extra--1 for the / and 1 for the terminating NULL. */ - testfile = (char*) HDmalloc(strlen(optarg) + 2 + strlen(TESTFNAME)); - strcpy(testfile, optarg); - /* Append a / just in case they didn't end their path with one */ - strcat(testfile, "/" TESTFNAME); - break; - case 's': - write_size = atoi(optarg); - break; - case 'v': - max_err_print = atoi(optarg); - break; - } - } - - if( (optind < argc) && (rank == 0)) - fprintf(stderr, "Unkown command-line argument passed. Continuing anyway...\n"); - - if (!testfile){ - /* Try environment variable if not given as option. */ - prefix = getenv_all(MPI_COMM_WORLD, 0, "HDF5_PARAPREFIX"); - if (prefix) - { - /* need 2 extra--1 for the / and 1 for the terminating NULL. */ - testfile = (char*) HDmalloc(strlen(prefix) + 2 + strlen(TESTFNAME)); - strcpy(testfile, prefix); - /* Append a / just in case they didn't end their path with one */ - strcat(testfile, "/" TESTFNAME); - } - else - { - testfile = strdup(TESTFNAME); - } - } - printf("Process %d: testfile=%s\n", rank, testfile); - fflush(stdout); - MPI_Barrier(MPI_COMM_WORLD); - - if(write_size == 0) - { - lb = 16*numprocs*sizeof(int); - /* 1MB MPIO-IO overlapping is failing in copper. Lower it now pending - permenant fix for copper.*/ - /* ub = 1024*1024;*/ - ub = lb*128; - inc = 4; - } - else - { - lb = write_size; - ub = write_size+1; - inc = 2; - } - -#ifndef STANDALONE - /* set alarm. */ - ALARM_ON; -#endif - - for(write_size = lb; write_size <= ub; write_size*=inc) - { - if(rank == 0) - printf("\nTesting size %d\n", write_size); - - if(mpi_tests) - { - if(rank == 0) - printf("Testing allwrite_allread_blocks with MPI IO\t\t"); fflush(stdout); - allwrite_allread_blocks(numprocs, rank, write_size/(numprocs*sizeof(int))); - PRINT_RESULT(); - MPI_Barrier(MPI_COMM_WORLD); - - if(rank == 0) - printf("Testing allwrite_allread_interlaced with MPI IO\t\t"); fflush(stdout); - allwrite_allread_interlaced(numprocs, rank, write_size/(numprocs*sizeof(int))); - PRINT_RESULT(); - MPI_Barrier(MPI_COMM_WORLD); - - if(rank == 0) - printf("Testing allwrite_allread_overlap with MPI IO\t\t"); fflush(stdout); - allwrite_allread_overlap(numprocs, rank, write_size); - PRINT_RESULT(); - MPI_Barrier(MPI_COMM_WORLD); - - if(rank == 0) - printf("Testing onewrite_allread_blocks with MPI IO\t\t"); fflush(stdout); - onewrite_allread_blocks(numprocs, rank, write_size/(numprocs*sizeof(int))); - PRINT_RESULT(); - MPI_Barrier(MPI_COMM_WORLD); - - if(rank == 0) - printf("Testing onewrite_allread_interlaced with MPI IO\t\t"); fflush(stdout); - onewrite_allread_interlaced(numprocs, rank, write_size/(numprocs*sizeof(int))); - PRINT_RESULT(); - MPI_Barrier(MPI_COMM_WORLD); - } - - if(posix_tests) - { - if(rank == 0) - printf("Testing allwrite_allread_blocks with POSIX IO\t\t"); fflush(stdout); - posix_allwrite_allread_blocks(numprocs, rank, write_size/(numprocs*sizeof(int))); - PRINT_RESULT(); - MPI_Barrier(MPI_COMM_WORLD); - - if(rank == 0) - printf("Testing onewrite_allread_blocks with POSIX IO\t\t"); fflush(stdout); - posix_onewrite_allread_blocks(numprocs, rank, write_size/(numprocs*sizeof(int))); - PRINT_RESULT(); - MPI_Barrier(MPI_COMM_WORLD); - - if(rank == 0) - printf("Testing onewrite_allread_interlaced with POSIX IO\t"); fflush(stdout); - posix_onewrite_allread_interlaced(numprocs, rank, write_size/(numprocs*sizeof(int))); - PRINT_RESULT(); - MPI_Barrier(MPI_COMM_WORLD); - - /* if(rank == 0) - printf("Testing allwrite_allread_overlap with POSIX IO\t\t"); fflush(stdout); - posix_allwrite_allread_overlap(numprocs, rank, write_size); - PRINT_RESULT(); - MPI_Barrier(MPI_COMM_WORLD); -*/ - } - } - -#ifndef STANDALONE - /* turn off alarm */ - ALARM_OFF; -#endif - -done: - if (testfile) - HDfree(testfile); - if (rank == 0){ - printf("\nSummary:\n"); - fflush(stdout); - } - MPI_Barrier(MPI_COMM_WORLD); - printf("Process %d: encountered %d mismatches.\n", rank, nmismatches); - MPI_Finalize(); - - return 0; -} diff --git a/testpar/t_shapesame.c b/testpar/t_shapesame.c index 2d379d6..1a74295 100644 --- a/testpar/t_shapesame.c +++ b/testpar/t_shapesame.c @@ -139,7 +139,6 @@ hs_dr_pio_test__setup(const int test_num, const char *fcnName = "hs_dr_pio_test__setup()"; #endif /* CONTIG_HS_DR_PIO_TEST__SETUP__DEBUG */ const char *filename; - hbool_t use_gpfs = FALSE; /* Use GPFS hints */ hbool_t mis_match = FALSE; int i; int mrc; @@ -282,7 +281,7 @@ hs_dr_pio_test__setup(const int test_num, * CREATE AN HDF5 FILE WITH PARALLEL ACCESS * ---------------------------------------*/ /* setup file access template */ - acc_tpl = create_faccess_plist(tv_ptr->mpi_comm, tv_ptr->mpi_info, facc_type, use_gpfs); + acc_tpl = create_faccess_plist(tv_ptr->mpi_comm, tv_ptr->mpi_info, facc_type); VRFY((acc_tpl >= 0), "create_faccess_plist() succeeded"); /* set the alignment -- need it large so that we aren't always hitting the @@ -4789,7 +4788,6 @@ usage(void) "\tset number of groups for the multiple group test\n"); printf("\t-f <prefix>\tfilename prefix\n"); printf("\t-2\t\tuse Split-file together with MPIO\n"); - printf("\t-p\t\tuse combo MPI-POSIX driver\n"); printf("\t-d <factor0> <factor1>\tdataset dimensions factors. Defaults (%d,%d)\n", ROW_FACTOR, COL_FACTOR); printf("\t-c <dim0> <dim1>\tdataset chunk dimensions. Defaults (dim0/10,dim1/10)\n"); @@ -4840,9 +4838,6 @@ parse_options(int argc, char **argv) } paraprefix = *argv; break; - case 'p': /* Use the MPI-POSIX driver access */ - facc_type = FACC_MPIPOSIX; - break; case 'i': /* Collective MPI-IO access with independent IO */ dxfer_coll_type = DXFER_INDEPENDENT_IO; break; @@ -4928,8 +4923,7 @@ parse_options(int argc, char **argv) * Create the appropriate File access property list */ hid_t -create_faccess_plist(MPI_Comm comm, MPI_Info info, int l_facc_type, - hbool_t use_gpfs) +create_faccess_plist(MPI_Comm comm, MPI_Info info, int l_facc_type) { hid_t ret_pl = -1; herr_t ret; /* generic return value */ @@ -4970,13 +4964,6 @@ create_faccess_plist(MPI_Comm comm, MPI_Info info, int l_facc_type, return(ret_pl); } - if (l_facc_type == FACC_MPIPOSIX) { - /* set Parallel access with communicator */ - ret = H5Pset_fapl_mpiposix(ret_pl, comm, use_gpfs); - VRFY((ret >= 0), "H5Pset_fapl_mpiposix succeeded"); - return(ret_pl); - } - /* unknown file access types */ return (ret_pl); } @@ -5108,12 +5095,6 @@ int main(int argc, char **argv) /* Parse command line arguments */ TestParseCmdLine(argc, argv); - if (facc_type == FACC_MPIPOSIX && MAINPROCESS){ - printf("===================================\n" - " Using MPIPOSIX driver\n" - "===================================\n"); - } - if (dxfer_coll_type == DXFER_INDEPENDENT_IO && MAINPROCESS){ printf("===================================\n" " Using Independent I/O with file set view to replace collective I/O \n" diff --git a/testpar/t_span_tree.c b/testpar/t_span_tree.c index 2730ea2..6e233a9 100644 --- a/testpar/t_span_tree.c +++ b/testpar/t_span_tree.c @@ -261,7 +261,6 @@ void coll_write_test(int chunk_factor) int *matrix_out, *matrix_out1, *vector; - hbool_t use_gpfs = FALSE; int mpi_size,mpi_rank; MPI_Comm comm = MPI_COMM_WORLD; @@ -293,7 +292,7 @@ void coll_write_test(int chunk_factor) for (i = 1; i < MSPACE1_DIM*mpi_size - 1; i++) vector[i] = i; /* Grab file access property list */ - facc_plist = create_faccess_plist(comm, info, facc_type, use_gpfs); + facc_plist = create_faccess_plist(comm, info, facc_type); VRFY((facc_plist >= 0),""); /* @@ -474,7 +473,7 @@ void coll_write_test(int chunk_factor) ***/ /* Obtain file access property list with MPI-IO driver */ - facc_plist = create_faccess_plist(comm, info, facc_type, use_gpfs); + facc_plist = create_faccess_plist(comm, info, facc_type); VRFY((facc_plist >= 0),""); file = H5Fopen(filename, H5F_ACC_RDONLY, facc_plist); @@ -724,7 +723,6 @@ coll_read_test(int chunk_factor) dataset */ #endif - hbool_t use_gpfs = FALSE; int mpi_size,mpi_rank; MPI_Comm comm = MPI_COMM_WORLD; @@ -749,7 +747,7 @@ coll_read_test(int chunk_factor) /*** For testing collective hyperslab selection read ***/ /* Obtain file access property list */ - facc_plist = create_faccess_plist(comm, info, facc_type, use_gpfs); + facc_plist = create_faccess_plist(comm, info, facc_type); VRFY((facc_plist >= 0),""); /* @@ -1582,7 +1580,6 @@ lower_dim_size_comp_test__run_test(const int chunk_edge_size, hsize_t max_dims[32]; #endif /* LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG */ const char *filename; - hbool_t use_gpfs = FALSE; /* Use GPFS hints */ hbool_t data_ok = FALSE; hbool_t mis_match = FALSE; int i; @@ -1717,7 +1714,7 @@ lower_dim_size_comp_test__run_test(const int chunk_edge_size, * CREATE AN HDF5 FILE WITH PARALLEL ACCESS * ---------------------------------------*/ /* setup file access template */ - acc_tpl = create_faccess_plist(mpi_comm, mpi_info, facc_type, use_gpfs); + acc_tpl = create_faccess_plist(mpi_comm, mpi_info, facc_type); VRFY((acc_tpl >= 0), "create_faccess_plist() succeeded"); /* create the file collectively */ @@ -2681,7 +2678,6 @@ link_chunk_collective_io_test(void) /* const char *fcnName = "link_chunk_collective_io_test()"; */ const char *filename; hbool_t mis_match = FALSE; - hbool_t use_gpfs = FALSE; /* Use GPFS hints */ int i; int mrc; int mpi_rank; @@ -2718,7 +2714,7 @@ link_chunk_collective_io_test(void) HDassert( filename != NULL ); /* setup file access template */ - acc_tpl = create_faccess_plist(mpi_comm, mpi_info, facc_type, use_gpfs); + acc_tpl = create_faccess_plist(mpi_comm, mpi_info, facc_type); VRFY((acc_tpl >= 0), "create_faccess_plist() succeeded"); /* create the file collectively */ diff --git a/testpar/testph5.sh.in b/testpar/testph5.sh.in deleted file mode 100644 index 83327ca..0000000 --- a/testpar/testph5.sh.in +++ /dev/null @@ -1,77 +0,0 @@ -#! /bin/sh -# -# Copyright by The HDF Group. -# Copyright by the Board of Trustees of the University of Illinois. -# All rights reserved. -# -# This file is part of HDF5. The full HDF5 copyright notice, including -# terms governing use, modification, and redistribution, is contained in -# the files COPYING and Copyright.html. COPYING can be found at the root -# of the source code distribution tree; Copyright.html can be found at the -# root level of an installed copy of the electronic HDF5 document set and -# is linked from the top-level documents page. It can also be found at -# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -# access to either file, you may request a copy from help@hdfgroup.org. -# - -# Scripts for running testphdf5 program with a variety of parameters -top_srcdir=@top_srcdir@ -top_builddir=.. -srcdir=@srcdir@ - -TEST_APP=testphdf5 # The tool name -TEST_APP_BIN=`pwd`/$TEST_APP # The path of the tool binary - -nerrors=0 -verbose=yes - -# Print a line-line message left justified in a field of 70 characters -# beginning with the word "Testing". -# -TESTING() { - SPACES=" " - echo "Testing $* $SPACES" | cut -c1-70 | tr -d '\012' -} - -# Run a test. If a test fails then increment the `nerrors' global variable. -# -TOOLTEST() { - # Run test. - echo $RUNPARALLEL $TEST_APP_BIN "$@" - eval $RUNPARALLEL $TEST_APP_BIN "$@" - - # Check if the command failed and increment nerrors if so. - if test $? -ne 0 ; then - nerrors="`expr $nerrors + 1`" - fi -} - -############################################################################## -############################################################################## -### T H E T E S T S ### -############################################################################## -############################################################################## - -# testphdf5 test using the MPI-POSIX VFL driver -TOOLTEST -p - -# Temporary patch: -# Run t_shapesame this way. Need more permanent solution. -echo $RUNPARALLEL ./t_shapesame -p -eval $RUNPARALLEL ./t_shapesame -p - -# Check if the command failed and increment nerrors if so. -if test $? -ne 0 ; then - nerrors="`expr $nerrors + 1`" -fi -# Temporary patch ended. - -# Emit message about testing status -if test $nerrors -eq 0 ; then - echo "All $TEST_APP tests passed." -else - echo "ERROR! One or more $TEST_APP tests failed." -fi - -# Propagate a useful exit code -exit $nerrors diff --git a/testpar/testphdf5.c b/testpar/testphdf5.c index 3419977..0b97c03 100644 --- a/testpar/testphdf5.c +++ b/testpar/testphdf5.c @@ -118,7 +118,6 @@ usage(void) "\tset number of groups for the multiple group test\n"); printf("\t-f <prefix>\tfilename prefix\n"); printf("\t-2\t\tuse Split-file together with MPIO\n"); - printf("\t-p\t\tuse combo MPI-POSIX driver\n"); printf("\t-d <factor0> <factor1>\tdataset dimensions factors. Defaults (%d,%d)\n", ROW_FACTOR, COL_FACTOR); printf("\t-c <dim0> <dim1>\tdataset chunk dimensions. Defaults (dim0/10,dim1/10)\n"); @@ -169,9 +168,6 @@ parse_options(int argc, char **argv) } paraprefix = *argv; break; - case 'p': /* Use the MPI-POSIX driver access */ - facc_type = FACC_MPIPOSIX; - break; case 'i': /* Collective MPI-IO access with independent IO */ dxfer_coll_type = DXFER_INDEPENDENT_IO; break; @@ -257,8 +253,7 @@ parse_options(int argc, char **argv) * Create the appropriate File access property list */ hid_t -create_faccess_plist(MPI_Comm comm, MPI_Info info, int l_facc_type, - hbool_t use_gpfs) +create_faccess_plist(MPI_Comm comm, MPI_Info info, int l_facc_type) { hid_t ret_pl = -1; herr_t ret; /* generic return value */ @@ -299,13 +294,6 @@ create_faccess_plist(MPI_Comm comm, MPI_Info info, int l_facc_type, return(ret_pl); } - if (l_facc_type == FACC_MPIPOSIX) { - /* set Parallel access with communicator */ - ret = H5Pset_fapl_mpiposix(ret_pl, comm, use_gpfs); - VRFY((ret >= 0), "H5Pset_fapl_mpiposix succeeded"); - return(ret_pl); - } - /* unknown file access types */ return (ret_pl); } @@ -353,8 +341,6 @@ int main(int argc, char **argv) /* Tests are generally arranged from least to most complexity... */ AddTest("mpiodup", test_fapl_mpio_dup, NULL, "fapl_mpio duplicate", NULL); - AddTest("posixdup", test_fapl_mpiposix_dup, NULL, - "fapl_mpiposix duplicate", NULL); AddTest("split", test_split_comm_access, NULL, "dataset using split communicators", PARATESTFILE); @@ -552,12 +538,6 @@ int main(int argc, char **argv) /* Parse command line arguments */ TestParseCmdLine(argc, argv); - if (facc_type == FACC_MPIPOSIX && MAINPROCESS){ - printf("===================================\n" - " Using MPIPOSIX driver\n" - "===================================\n"); - } - if (dxfer_coll_type == DXFER_INDEPENDENT_IO && MAINPROCESS){ printf("===================================\n" " Using Independent I/O with file set view to replace collective I/O \n" diff --git a/testpar/testphdf5.h b/testpar/testphdf5.h index 0b39160..f313073 100644 --- a/testpar/testphdf5.h +++ b/testpar/testphdf5.h @@ -63,8 +63,6 @@ enum H5TEST_COLL_CHUNK_API {API_NONE=0,API_LINK_HARD, #define FACC_DEFAULT 0x0 /* default */ #define FACC_MPIO 0x1 /* MPIO */ #define FACC_SPLIT 0x2 /* Split File */ -#define FACC_MULTI 0x4 /* Multi File */ -#define FACC_MPIPOSIX 0x8 /* MPIPOSIX */ #define DXFER_COLLECTIVE_IO 0x1 /* Collective IO*/ #define DXFER_INDEPENDENT_IO 0x2 /* Independent IO collectively */ @@ -186,14 +184,13 @@ enum H5TEST_COLL_CHUNK_API {API_NONE=0,API_LINK_HARD, #define TEST_SET_INDEPENDENT 0x002 #define TEST_DATATYPE_CONVERSION 0x004 #define TEST_DATA_TRANSFORMS 0x008 -#define TEST_SET_MPIPOSIX 0x010 -#define TEST_NOT_SIMPLE_OR_SCALAR_DATASPACES 0x020 -#define TEST_NOT_CONTIGUOUS_OR_CHUNKED_DATASET_COMPACT 0x040 -#define TEST_NOT_CONTIGUOUS_OR_CHUNKED_DATASET_EXTERNAL 0x080 -#define TEST_FILTERS 0x100 +#define TEST_NOT_SIMPLE_OR_SCALAR_DATASPACES 0x010 +#define TEST_NOT_CONTIGUOUS_OR_CHUNKED_DATASET_COMPACT 0x020 +#define TEST_NOT_CONTIGUOUS_OR_CHUNKED_DATASET_EXTERNAL 0x040 +#define TEST_FILTERS 0x080 /* TEST_FILTERS will take place of this after supporting mpio + filter for * H5Dcreate and H5Dwrite */ -#define TEST_FILTERS_READ 0x200 +#define TEST_FILTERS_READ 0x100 /* Don't erase these lines, they are put here for debugging purposes */ /* @@ -246,7 +243,6 @@ void multiple_group_read(void); void collective_group_write(void); void independent_group_read(void); void test_fapl_mpio_dup(void); -void test_fapl_mpiposix_dup(void); void test_split_comm_access(void); void dataset_atomicity(void); void dataset_writeInd(void); @@ -298,7 +294,7 @@ void compress_readAll(void); void test_dense_attr(void); /* commonly used prototypes */ -hid_t create_faccess_plist(MPI_Comm comm, MPI_Info info, int l_facc_type, hbool_t use_gpfs); +hid_t create_faccess_plist(MPI_Comm comm, MPI_Info info, int l_facc_type); MPI_Offset h5_mpi_get_file_size(const char *filename, MPI_Comm comm, MPI_Info info); int dataset_vrfy(hsize_t start[], hsize_t count[], hsize_t stride[], hsize_t block[], DATATYPE *dataset, DATATYPE *original); |