summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMuQun Yang <ymuqun@hdfgroup.org>2005-07-12 19:26:26 (GMT)
committerMuQun Yang <ymuqun@hdfgroup.org>2005-07-12 19:26:26 (GMT)
commit5edb327cbfff97e5d2be9b01d037f938b57f073d (patch)
treef27437b900e356b19d19e16545a2b6ad894617d0
parent0f1c1ae4b3c6ac7fad11b4c949f9f4c67cd2989a (diff)
downloadhdf5-5edb327cbfff97e5d2be9b01d037f938b57f073d.zip
hdf5-5edb327cbfff97e5d2be9b01d037f938b57f073d.tar.gz
hdf5-5edb327cbfff97e5d2be9b01d037f938b57f073d.tar.bz2
[svn-r11067] Purpose:
Updating phase 2 work of collective IO Description: The current collective IO tests cannot test for number of processors bigger than some values, this change will lift those restriction. However, the test may be slower. Solution: Platforms tested: linux 2.4, AIX 5.1, Linux 2.4 IA64 and IRIX 6.5 (I haven't tested big number of processors with the restriction of the machine) Misc. update:
-rw-r--r--testpar/t_coll_chunk.c6
-rw-r--r--testpar/testphdf5.c38
-rw-r--r--testpar/testphdf5.h24
3 files changed, 52 insertions, 16 deletions
diff --git a/testpar/t_coll_chunk.c b/testpar/t_coll_chunk.c
index 17bfc10..0d8980b 100644
--- a/testpar/t_coll_chunk.c
+++ b/testpar/t_coll_chunk.c
@@ -86,6 +86,7 @@ coll_chunk3(void)
}
+
void
coll_chunk4(void)
{
@@ -166,7 +167,10 @@ coll_chunktest(const char* filename,int chunk_factor,int select_factor) {
/* test1: chunk size is equal to dataset size */
chunk_dims[0] = SPACE_DIM1/chunk_factor;
- chunk_dims[1] = SPACE_DIM2/chunk_factor;
+
+ /* to decrease the testing time, maintain bigger chunk size */
+ if(chunk_factor >2) chunk_dims[1] = SPACE_DIM2/2;
+ else chunk_dims[1] = SPACE_DIM2/chunk_factor;
status = H5Pset_chunk(crp_plist, 2, chunk_dims);
VRFY((status >= 0),"chunk creation property list succeeded");
diff --git a/testpar/testphdf5.c b/testpar/testphdf5.c
index 284a2e1..5fe8cb7 100644
--- a/testpar/testphdf5.c
+++ b/testpar/testphdf5.c
@@ -415,9 +415,11 @@ int main(int argc, char **argv)
AddTest("fill", dataset_fillvalue, NULL,
"dataset fill value", PARATESTFILE);
+#if 0
/* Collective Chunk IO are verified to work for 64 processes.
* Add or skip depending on whether mpi_size is larger than 64.
*/
+
if((mpi_size > 64) && MAINPROCESS) {
printf("Collective chunk IO tests haven't been tested \n");
printf(" for the number of process greater than 64.\n");
@@ -433,10 +435,39 @@ int main(int argc, char **argv)
coll_chunk3,NULL, "multi-chunk collective chunk io",PARATESTFILE);
AddTest((mpi_size > 64) ? "-cchunk4" : "cchunk4",
coll_chunk4,NULL, "collective to independent chunk io",PARATESTFILE);
+#endif
- /* Collective irregular chunk IO are verified to work for 3 processes.
- * Add or skip depending on whether mpi_size is larger than 3.
- */
+ AddTest("cchunk1",
+ coll_chunk1,NULL, "simple collective chunk io",PARATESTFILE);
+ AddTest("cchunk2",
+ coll_chunk2,NULL, "noncontiguous collective chunk io",PARATESTFILE);
+ AddTest("cchunk3",
+ coll_chunk3,NULL, "multi-chunk collective chunk io",PARATESTFILE);
+ AddTest("cchunk4",
+ coll_chunk4,NULL, "collective to independent chunk io",PARATESTFILE);
+
+/* irregular collective IO tests*/
+ AddTest("ccontw",
+ coll_irregular_cont_write,NULL,
+ "collective irregular contiguous write",PARATESTFILE);
+ AddTest("ccontr",
+ coll_irregular_cont_read,NULL,
+ "collective irregular contiguous read",PARATESTFILE);
+ AddTest("cschunkw",
+ coll_irregular_simple_chunk_write,NULL,
+ "collective irregular simple chunk write",PARATESTFILE);
+ AddTest("cschunkr",
+ coll_irregular_simple_chunk_read,NULL,
+ "collective irregular simple chunk read",PARATESTFILE);
+ AddTest("ccchunkw",
+ coll_irregular_complex_chunk_write,NULL,
+ "collective irregular complex chunk write",PARATESTFILE);
+ AddTest("ccchunkr",
+ coll_irregular_complex_chunk_read,NULL,
+ "collective irregular complex chunk read",PARATESTFILE);
+
+
+#if 0
if((mpi_size > 3) && MAINPROCESS) {
printf("Collective irregular chunk IO tests haven't been tested \n");
printf(" for the number of process greater than 3.\n");
@@ -462,6 +493,7 @@ int main(int argc, char **argv)
AddTest((mpi_size > 3) ? "-ccchunkr" : "ccchunkr",
coll_irregular_complex_chunk_read,NULL,
"collective irregular complex chunk read",PARATESTFILE);
+#endif
AddTest("null", null_dataset, NULL,
diff --git a/testpar/testphdf5.h b/testpar/testphdf5.h
index 35eb5a6..b15779e 100644
--- a/testpar/testphdf5.h
+++ b/testpar/testphdf5.h
@@ -51,8 +51,8 @@
#define FACC_MPIPOSIX 0x8 /* MPIPOSIX */
/*Constants for collective chunk definitions */
-#define SPACE_DIM1 288
-#define SPACE_DIM2 288
+#define SPACE_DIM1 5760
+#define SPACE_DIM2 3
#define BYROW_CONT 1
#define BYROW_DISCONT 2
#define DSET_COLLECTIVE_CHUNK_NAME "coll_chunk_name"
@@ -61,15 +61,15 @@
/*Constants for MPI derived data type generated from span tree */
#define MSPACE1_RANK 1 /* Rank of the first dataset in memory */
-#define MSPACE1_DIM 1000 /*27000 */ /* Dataset size in memory */
+#define MSPACE1_DIM 27000 /* Dataset size in memory */
#define FSPACE_RANK 2 /* Dataset rank as it is stored in the file */
#define FSPACE_DIM1 9 /* Dimension sizes of the dataset as it is stored in the file */
-#define FSPACE_DIM2 100 /*3600*/ /* We will read dataset back from the file to the dataset in memory with these dataspace parameters. */
+#define FSPACE_DIM2 3600 /* We will read dataset back from the file to the dataset in memory with these dataspace parameters. */
#define MSPACE_RANK 2
#define MSPACE_DIM1 9
-#define MSPACE_DIM2 100 /*3600*/
+#define MSPACE_DIM2 3600
#define FHCOUNT0 1 /* Count of the first dimension of the first hyperslab selection*/
-#define FHCOUNT1 6 /*768*/ /* Count of the second dimension of the first hyperslab selection*/
+#define FHCOUNT1 768 /* Count of the second dimension of the first hyperslab selection*/
#define FHSTRIDE0 4 /* Stride of the first dimension of the first hyperslab selection*/
#define FHSTRIDE1 3 /* Stride of the second dimension of the first hyperslab selection*/
#define FHBLOCK0 3 /* Block of the first dimension of the first hyperslab selection*/
@@ -82,11 +82,11 @@
#define SHSTRIDE0 1 /* Stride of the first dimension of the first hyperslab selection*/
#define SHSTRIDE1 1 /* Stride of the second dimension of the first hyperslab selection*/
#define SHBLOCK0 3 /* Block of the first dimension of the first hyperslab selection*/
-#define SHBLOCK1 6 /*768*/ /* Block of the second dimension of the first hyperslab selection*/
+#define SHBLOCK1 768 /* Block of the second dimension of the first hyperslab selection*/
#define SHSTART0 4 /* start of the first dimension of the first hyperslab selection*/
#define SHSTART1 0 /* start of the second dimension of the first hyperslab selection*/
-#define MHCOUNT0 54 /*6912*/ /* Count of the first dimension of the first hyperslab selection*/
+#define MHCOUNT0 6912 /* Count of the first dimension of the first hyperslab selection*/
#define MHSTRIDE0 1 /* Stride of the first dimension of the first hyperslab selection*/
#define MHBLOCK0 1 /* Block of the first dimension of the first hyperslab selection*/
#define MHSTART0 1 /* start of the first dimension of the first hyperslab selection*/
@@ -94,7 +94,7 @@
#define RFFHCOUNT0 3 /* Count of the first dimension of the first hyperslab selection*/
-#define RFFHCOUNT1 6 /*768*/ /* Count of the second dimension of the first hyperslab selection*/
+#define RFFHCOUNT1 768 /* Count of the second dimension of the first hyperslab selection*/
#define RFFHSTRIDE0 1 /* Stride of the first dimension of the first hyperslab selection*/
#define RFFHSTRIDE1 1 /* Stride of the second dimension of the first hyperslab selection*/
#define RFFHBLOCK0 1 /* Block of the first dimension of the first hyperslab selection*/
@@ -104,7 +104,7 @@
#define RFSHCOUNT0 3 /* Count of the first dimension of the first hyperslab selection*/
-#define RFSHCOUNT1 12 /*1536 */ /* Count of the second dimension of the first hyperslab selection*/
+#define RFSHCOUNT1 1536 /* Count of the second dimension of the first hyperslab selection*/
#define RFSHSTRIDE0 1 /* Stride of the first dimension of the first hyperslab selection*/
#define RFSHSTRIDE1 1 /* Stride of the second dimension of the first hyperslab selection*/
#define RFSHBLOCK0 1 /* Block of the first dimension of the first hyperslab selection*/
@@ -114,7 +114,7 @@
#define RMFHCOUNT0 3 /* Count of the first dimension of the first hyperslab selection*/
-#define RMFHCOUNT1 6 /*768*/ /* Count of the second dimension of the first hyperslab selection*/
+#define RMFHCOUNT1 768 /* Count of the second dimension of the first hyperslab selection*/
#define RMFHSTRIDE0 1 /* Stride of the first dimension of the first hyperslab selection*/
#define RMFHSTRIDE1 1 /* Stride of the second dimension of the first hyperslab selection*/
#define RMFHBLOCK0 1 /* Block of the first dimension of the first hyperslab selection*/
@@ -123,7 +123,7 @@
#define RMFHSTART1 0 /* start of the second dimension of the first hyperslab selection*/
#define RMSHCOUNT0 3 /* Count of the first dimension of the first hyperslab selection*/
-#define RMSHCOUNT1 12 /*1536*/ /* Count of the second dimension of the first hyperslab selection*/
+#define RMSHCOUNT1 1536 /* Count of the second dimension of the first hyperslab selection*/
#define RMSHSTRIDE0 1 /* Stride of the first dimension of the first hyperslab selection*/
#define RMSHSTRIDE1 1 /* Stride of the second dimension of the first hyperslab selection*/
#define RMSHBLOCK0 1 /* Block of the first dimension of the first hyperslab selection*/