summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--testpar/t_shapesame.c85
-rw-r--r--testpar/testphdf5.h12
2 files changed, 76 insertions, 21 deletions
diff --git a/testpar/t_shapesame.c b/testpar/t_shapesame.c
index 8f89f9f..ccbc660 100644
--- a/testpar/t_shapesame.c
+++ b/testpar/t_shapesame.c
@@ -1633,7 +1633,7 @@ contig_hyperslab_dr_pio_test__run_test(const int test_num,
/*-------------------------------------------------------------------------
- * Function: contig_hyperslab_dr_pio_test()
+ * Function: contig_hyperslab_dr_pio_test(ShapeSameTestMethods sstest_type)
*
* Purpose: Test I/O to/from hyperslab selections of different rank in
* the parallel case.
@@ -1652,12 +1652,15 @@ contig_hyperslab_dr_pio_test__run_test(const int test_num,
* if two or more processes are banging on the same
* block of memory.
* JRM -- 9/10/10
+ * Break this one big test into 4 smaller tests according
+ * to {independent,collective}x{contigous,chunked} datasets.
+ * AKC -- 2010/01/14
*
*-------------------------------------------------------------------------
*/
void
-contig_hyperslab_dr_pio_test(void)
+contig_hyperslab_dr_pio_test(ShapeSameTestMethods sstest_type)
{
int test_num = 0;
int edge_size = 10;
@@ -1689,9 +1692,6 @@ contig_hyperslab_dr_pio_test(void)
long long sample_times[4] = {0, 0, 0, 0};
struct timeval timeval_a;
struct timeval timeval_b;
-
- MPI_Comm_size(MPI_COMM_WORLD, &mpi_size);
- MPI_Comm_rank(MPI_COMM_WORLD, &mpi_rank);
#endif /* H5_HAVE_GETTIMEOFDAY */
HDcompile_assert(sizeof(uint32_t) == sizeof(unsigned));
@@ -1710,10 +1710,10 @@ contig_hyperslab_dr_pio_test(void)
for ( large_rank = 3; large_rank <= PAR_SS_DR_MAX_RANK; large_rank++ ) {
for ( small_rank = 2; small_rank < large_rank; small_rank++ ) {
-
- chunk_edge_size = 0;
-
+ switch(sstest_type){
+ case IND_CONTIG:
/* contiguous data set, independent I/O */
+ chunk_edge_size = 0;
if ( skip_counters[ind_contig_idx] < skips[ind_contig_idx] ) {
skip_counters[ind_contig_idx]++;
@@ -1735,8 +1735,12 @@ contig_hyperslab_dr_pio_test(void)
sample_times[col_contig_idx]);
}
test_num++;
+ break;
+ /* end of case IND_CONTIG */
+ case COL_CONTIG:
/* contiguous data set, collective I/O */
+ chunk_edge_size = 0;
if ( skip_counters[col_contig_idx] < skips[col_contig_idx] ) {
skip_counters[col_contig_idx]++;
@@ -1758,10 +1762,12 @@ contig_hyperslab_dr_pio_test(void)
sample_times[ind_contig_idx]);
}
test_num++;
+ break;
+ /* end of case COL_CONTIG */
- chunk_edge_size = 5;
-
+ case IND_CHUNKED:
/* chunked data set, independent I/O */
+ chunk_edge_size = 5;
if ( skip_counters[ind_chunked_idx] < skips[ind_chunked_idx] ) {
skip_counters[ind_chunked_idx]++;
@@ -1783,8 +1789,12 @@ contig_hyperslab_dr_pio_test(void)
sample_times[col_chunked_idx]);
}
test_num++;
+ break;
+ /* end of case IND_CHUNKED */
+ case COL_CHUNKED:
/* chunked data set, collective I/O */
+ chunk_edge_size = 5;
if ( skip_counters[col_chunked_idx] < skips[col_chunked_idx] ) {
skip_counters[col_chunked_idx]++;
@@ -1806,6 +1816,9 @@ contig_hyperslab_dr_pio_test(void)
sample_times[ind_chunked_idx]);
}
test_num++;
+ break;
+ /* end of case COL_CHUNKED */
+ } /* end of switch(sstest_type) */
#ifdef H5_HAVE_GETTIMEOFDAY
if ( time_tests ) {
@@ -4183,7 +4196,7 @@ int m;
*/
void
-checker_board_hyperslab_dr_pio_test(void)
+checker_board_hyperslab_dr_pio_test(ShapeSameTestMethods sstest_type)
{
int test_num = 0;
int edge_size = 10;
@@ -4466,7 +4479,7 @@ void *old_client_data; /* previous error handler arg.*/
#define NFILENAME 2
#define PARATESTFILE filenames[0]
const char *FILENAME[NFILENAME]={
- "ParaTest",
+ "ShapeSameTest",
NULL};
char filenames[NFILENAME][PATH_MAX];
hid_t fapl; /* file access property list */
@@ -4729,6 +4742,35 @@ create_faccess_plist(MPI_Comm comm, MPI_Info info, int l_facc_type,
}
+/* Shape Same test using contigous hyperslab using independent IO on contigous datasets */
+static void
+sscontig1(void)
+{
+ contig_hyperslab_dr_pio_test(IND_CONTIG);
+}
+
+/* Shape Same test using contigous hyperslab using collective IO on contigous datasets */
+static void
+sscontig2(void)
+{
+ contig_hyperslab_dr_pio_test(COL_CONTIG);
+}
+
+/* Shape Same test using contigous hyperslab using independent IO on chunked datasets */
+static void
+sscontig3(void)
+{
+ contig_hyperslab_dr_pio_test(IND_CHUNKED);
+}
+
+/* Shape Same test using contigous hyperslab using collective IO on chunked datasets */
+static void
+sscontig4(void)
+{
+ contig_hyperslab_dr_pio_test(COL_CHUNKED);
+}
+
+
int main(int argc, char **argv)
{
int mpi_size, mpi_rank; /* mpi variables */
@@ -4750,7 +4792,7 @@ int main(int argc, char **argv)
if (MAINPROCESS){
printf("===================================\n");
- printf("PHDF5 TESTS START\n");
+ printf("Shape Same Tests Start\n");
printf("===================================\n");
}
@@ -4768,12 +4810,17 @@ int main(int argc, char **argv)
/* Initialize testing framework */
TestInit(argv[0], usage, parse_options);
- /* rank projections / shape same tests */
-
- AddTest("chsssdrpio",
- contig_hyperslab_dr_pio_test, NULL,
- "contiguous hyperslab shape same different rank PIO",PARATESTFILE);
-
+ /* Shape Same tests using contigous hyperslab */
+ AddTest("sscontig1", sscontig1, NULL,
+ "Shape Same test, contigous hyperslab, ind IO, contig datasets", PARATESTFILE);
+ AddTest("sscontig2", sscontig2, NULL,
+ "Shape Same test, contigous hyperslab, col IO, contig datasets", PARATESTFILE);
+ AddTest("sscontig3", sscontig3, NULL,
+ "Shape Same test, contigous hyperslab, ind IO, chunked datasets", PARATESTFILE);
+ AddTest("sscontig4", sscontig4, NULL,
+ "Shape Same test, contigous hyperslab, col IO, chunked datasets", PARATESTFILE);
+
+ /* Shape Same tests using checker board hyperslab */
AddTest("cbhsssdrpio",
checker_board_hyperslab_dr_pio_test, NULL,
"checker board hyperslab shape same different rank PIO",PARATESTFILE);
diff --git a/testpar/testphdf5.h b/testpar/testphdf5.h
index 555f137..2b83047 100644
--- a/testpar/testphdf5.h
+++ b/testpar/testphdf5.h
@@ -186,6 +186,14 @@ typedef struct H5Ptest_param_t /* holds extra test parameters */
/* Dataset data type. Int's can be easily octo dumped. */
typedef int DATATYPE;
+/* Shape Same Tests Definitions */
+typedef enum {
+ IND_CONTIG, /* Independent IO on contigous datasets */
+ COL_CONTIG, /* Collective IO on contigous datasets */
+ IND_CHUNKED, /* Independent IO on chunked datasets */
+ COL_CHUNKED /* Collective IO on chunked datasets */
+} ShapeSameTestMethods;
+
/* Shared global variables */
extern int dim0, dim1; /*Dataset dimensions */
extern int chunkdim0, chunkdim1; /*Chunk dimensions */
@@ -242,8 +250,8 @@ void rr_obj_hdr_flush_confusion_reader(MPI_Comm comm);
void rr_obj_hdr_flush_confusion_writer(MPI_Comm comm);
void lower_dim_size_comp_test(void);
void link_chunk_collective_io_test(void);
-void contig_hyperslab_dr_pio_test(void);
-void checker_board_hyperslab_dr_pio_test(void);
+void contig_hyperslab_dr_pio_test(ShapeSameTestMethods sstest_type);
+void checker_board_hyperslab_dr_pio_test(ShapeSameTestMethods sstest_type);
#ifdef H5_HAVE_FILTER_DEFLATE
void compress_readAll(void);
#endif /* H5_HAVE_FILTER_DEFLATE */