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
|
void
|
||||||
coll_chunk4(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 */
|
/* test1: chunk size is equal to dataset size */
|
||||||
chunk_dims[0] = SPACE_DIM1/chunk_factor;
|
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);
|
status = H5Pset_chunk(crp_plist, 2, chunk_dims);
|
||||||
VRFY((status >= 0),"chunk creation property list succeeded");
|
VRFY((status >= 0),"chunk creation property list succeeded");
|
||||||
|
|
||||||
|
@ -415,9 +415,11 @@ int main(int argc, char **argv)
|
|||||||
AddTest("fill", dataset_fillvalue, NULL,
|
AddTest("fill", dataset_fillvalue, NULL,
|
||||||
"dataset fill value", PARATESTFILE);
|
"dataset fill value", PARATESTFILE);
|
||||||
|
|
||||||
|
#if 0
|
||||||
/* Collective Chunk IO are verified to work for 64 processes.
|
/* Collective Chunk IO are verified to work for 64 processes.
|
||||||
* Add or skip depending on whether mpi_size is larger than 64.
|
* Add or skip depending on whether mpi_size is larger than 64.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if((mpi_size > 64) && MAINPROCESS) {
|
if((mpi_size > 64) && MAINPROCESS) {
|
||||||
printf("Collective chunk IO tests haven't been tested \n");
|
printf("Collective chunk IO tests haven't been tested \n");
|
||||||
printf(" for the number of process greater than 64.\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);
|
coll_chunk3,NULL, "multi-chunk collective chunk io",PARATESTFILE);
|
||||||
AddTest((mpi_size > 64) ? "-cchunk4" : "cchunk4",
|
AddTest((mpi_size > 64) ? "-cchunk4" : "cchunk4",
|
||||||
coll_chunk4,NULL, "collective to independent chunk io",PARATESTFILE);
|
coll_chunk4,NULL, "collective to independent chunk io",PARATESTFILE);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Collective irregular chunk IO are verified to work for 3 processes.
|
AddTest("cchunk1",
|
||||||
* Add or skip depending on whether mpi_size is larger than 3.
|
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) {
|
if((mpi_size > 3) && MAINPROCESS) {
|
||||||
printf("Collective irregular chunk IO tests haven't been tested \n");
|
printf("Collective irregular chunk IO tests haven't been tested \n");
|
||||||
printf(" for the number of process greater than 3.\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",
|
AddTest((mpi_size > 3) ? "-ccchunkr" : "ccchunkr",
|
||||||
coll_irregular_complex_chunk_read,NULL,
|
coll_irregular_complex_chunk_read,NULL,
|
||||||
"collective irregular complex chunk read",PARATESTFILE);
|
"collective irregular complex chunk read",PARATESTFILE);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
AddTest("null", null_dataset, NULL,
|
AddTest("null", null_dataset, NULL,
|
||||||
|
@ -51,8 +51,8 @@
|
|||||||
#define FACC_MPIPOSIX 0x8 /* MPIPOSIX */
|
#define FACC_MPIPOSIX 0x8 /* MPIPOSIX */
|
||||||
|
|
||||||
/*Constants for collective chunk definitions */
|
/*Constants for collective chunk definitions */
|
||||||
#define SPACE_DIM1 288
|
#define SPACE_DIM1 5760
|
||||||
#define SPACE_DIM2 288
|
#define SPACE_DIM2 3
|
||||||
#define BYROW_CONT 1
|
#define BYROW_CONT 1
|
||||||
#define BYROW_DISCONT 2
|
#define BYROW_DISCONT 2
|
||||||
#define DSET_COLLECTIVE_CHUNK_NAME "coll_chunk_name"
|
#define DSET_COLLECTIVE_CHUNK_NAME "coll_chunk_name"
|
||||||
@ -61,15 +61,15 @@
|
|||||||
/*Constants for MPI derived data type generated from span tree */
|
/*Constants for MPI derived data type generated from span tree */
|
||||||
|
|
||||||
#define MSPACE1_RANK 1 /* Rank of the first dataset in memory */
|
#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_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_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_RANK 2
|
||||||
#define MSPACE_DIM1 9
|
#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 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 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 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*/
|
#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 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 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 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 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 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 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 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*/
|
#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 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 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 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*/
|
#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 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 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 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*/
|
#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 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 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 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*/
|
#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 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 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 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 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*/
|
#define RMSHBLOCK0 1 /* Block of the first dimension of the first hyperslab selection*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user