mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-04-24 17:51:25 +08:00
[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:
This commit is contained in:
parent
0f1c1ae4b3
commit
5edb327cbf
@ -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");
|
||||
|
||||
|
@ -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,
|
||||
|
@ -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*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user