2004-11-12 05:08:11 +08:00
|
|
|
|
|
|
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
2007-02-07 22:56:24 +08:00
|
|
|
* Copyright by The HDF Group. *
|
2004-11-12 05:08:11 +08:00
|
|
|
* 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 *
|
2017-04-18 03:32:16 +08:00
|
|
|
* the COPYING file, which can be found at the root of the source code *
|
|
|
|
* distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. *
|
|
|
|
* If you do not have access to either file, you may request a copy from *
|
|
|
|
* help@hdfgroup.org. *
|
2004-11-12 05:08:11 +08:00
|
|
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
|
|
|
2005-08-14 04:53:35 +08:00
|
|
|
/*
|
2004-11-25 05:13:26 +08:00
|
|
|
This program will test irregular hyperslab selections with collective write and read.
|
|
|
|
The way to test whether collective write and read works is to use independent IO
|
|
|
|
output to verify the collective output.
|
|
|
|
|
|
|
|
1) We will write two datasets with the same hyperslab selection settings;
|
|
|
|
one in independent mode,
|
|
|
|
one in collective mode,
|
|
|
|
2) We will read two datasets with the same hyperslab selection settings,
|
|
|
|
1. independent read to read independent output,
|
|
|
|
independent read to read collecive output,
|
2018-02-15 00:08:09 +08:00
|
|
|
Compare the result,
|
|
|
|
If the result is the same, then collective write succeeds.
|
2004-11-25 05:13:26 +08:00
|
|
|
2. collective read to read independent output,
|
|
|
|
independent read to read independent output,
|
2018-02-15 00:08:09 +08:00
|
|
|
Compare the result,
|
|
|
|
If the result is the same, then collective read succeeds.
|
2004-11-25 05:13:26 +08:00
|
|
|
|
2005-08-14 04:53:35 +08:00
|
|
|
*/
|
|
|
|
|
2004-11-12 05:08:11 +08:00
|
|
|
#include "H5private.h"
|
|
|
|
#include "testphdf5.h"
|
|
|
|
|
|
|
|
|
2004-12-09 07:33:40 +08:00
|
|
|
static void coll_write_test(int chunk_factor);
|
2020-01-14 03:20:19 +08:00
|
|
|
static void coll_read_test(void);
|
2004-12-09 07:33:40 +08:00
|
|
|
|
|
|
|
|
|
|
|
/*-------------------------------------------------------------------------
|
2018-02-15 00:08:09 +08:00
|
|
|
* Function: coll_irregular_cont_write
|
2004-12-09 07:33:40 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Purpose: Wrapper to test the collectively irregular hyperslab write in
|
2019-08-21 04:16:20 +08:00
|
|
|
* contiguous storage
|
2004-12-09 07:33:40 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Return: Success: 0
|
2004-12-09 07:33:40 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Failure: -1
|
2004-12-09 07:33:40 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Programmer: Unknown
|
|
|
|
* Dec 2nd, 2004
|
2004-12-09 07:33:40 +08:00
|
|
|
*
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
*/
|
|
|
|
void
|
|
|
|
coll_irregular_cont_write(void)
|
|
|
|
{
|
|
|
|
|
|
|
|
coll_write_test(0);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*-------------------------------------------------------------------------
|
2018-02-15 00:08:09 +08:00
|
|
|
* Function: coll_irregular_cont_read
|
2004-12-09 07:33:40 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Purpose: Wrapper to test the collectively irregular hyperslab read in
|
2019-08-21 04:16:20 +08:00
|
|
|
* contiguous storage
|
2004-12-09 07:33:40 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Return: Success: 0
|
2004-12-09 07:33:40 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Failure: -1
|
2004-12-09 07:33:40 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Programmer: Unknown
|
|
|
|
* Dec 2nd, 2004
|
2004-12-09 07:33:40 +08:00
|
|
|
*
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
*/
|
|
|
|
void
|
|
|
|
coll_irregular_cont_read(void)
|
|
|
|
{
|
|
|
|
|
2020-01-14 03:20:19 +08:00
|
|
|
coll_read_test();
|
2004-12-09 07:33:40 +08:00
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*-------------------------------------------------------------------------
|
2018-02-15 00:08:09 +08:00
|
|
|
* Function: coll_irregular_simple_chunk_write
|
2004-12-09 07:33:40 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Purpose: Wrapper to test the collectively irregular hyperslab write in
|
2019-08-21 04:16:20 +08:00
|
|
|
* chunk storage(1 chunk)
|
2004-12-09 07:33:40 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Return: Success: 0
|
2004-12-09 07:33:40 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Failure: -1
|
2004-12-09 07:33:40 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Programmer: Unknown
|
|
|
|
* Dec 2nd, 2004
|
2004-12-09 07:33:40 +08:00
|
|
|
*
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
*/
|
|
|
|
void
|
|
|
|
coll_irregular_simple_chunk_write(void)
|
|
|
|
{
|
|
|
|
|
|
|
|
coll_write_test(1);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*-------------------------------------------------------------------------
|
2018-02-15 00:08:09 +08:00
|
|
|
* Function: coll_irregular_simple_chunk_read
|
2004-12-09 07:33:40 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Purpose: Wrapper to test the collectively irregular hyperslab read in chunk
|
2019-08-21 04:16:20 +08:00
|
|
|
* storage(1 chunk)
|
2004-12-09 07:33:40 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Return: Success: 0
|
2004-12-09 07:33:40 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Failure: -1
|
2004-12-09 07:33:40 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Programmer: Unknown
|
|
|
|
* Dec 2nd, 2004
|
2004-12-09 07:33:40 +08:00
|
|
|
*
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
*/
|
|
|
|
void
|
|
|
|
coll_irregular_simple_chunk_read(void)
|
|
|
|
{
|
|
|
|
|
2020-01-14 03:20:19 +08:00
|
|
|
coll_read_test();
|
2004-12-09 07:33:40 +08:00
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
/*-------------------------------------------------------------------------
|
2018-02-15 00:08:09 +08:00
|
|
|
* Function: coll_irregular_complex_chunk_write
|
2004-12-09 07:33:40 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Purpose: Wrapper to test the collectively irregular hyperslab write in chunk
|
2019-08-21 04:16:20 +08:00
|
|
|
* storage(4 chunks)
|
2004-12-09 07:33:40 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Return: Success: 0
|
2004-12-09 07:33:40 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Failure: -1
|
2004-12-09 07:33:40 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Programmer: Unknown
|
|
|
|
* Dec 2nd, 2004
|
2004-12-09 07:33:40 +08:00
|
|
|
*
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
*/
|
|
|
|
void
|
|
|
|
coll_irregular_complex_chunk_write(void)
|
|
|
|
{
|
|
|
|
|
|
|
|
coll_write_test(4);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*-------------------------------------------------------------------------
|
2018-02-15 00:08:09 +08:00
|
|
|
* Function: coll_irregular_complex_chunk_read
|
2004-12-09 07:33:40 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Purpose: Wrapper to test the collectively irregular hyperslab read in chunk
|
2019-08-21 04:16:20 +08:00
|
|
|
* storage(1 chunk)
|
2004-12-09 07:33:40 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Return: Success: 0
|
2004-12-09 07:33:40 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Failure: -1
|
2004-12-09 07:33:40 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Programmer: Unknown
|
|
|
|
* Dec 2nd, 2004
|
2004-12-09 07:33:40 +08:00
|
|
|
*
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
*/
|
|
|
|
void
|
|
|
|
coll_irregular_complex_chunk_read(void)
|
|
|
|
{
|
|
|
|
|
2020-01-14 03:20:19 +08:00
|
|
|
coll_read_test();
|
2004-12-09 07:33:40 +08:00
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
/*-------------------------------------------------------------------------
|
2018-02-15 00:08:09 +08:00
|
|
|
* Function: coll_write_test
|
2005-10-18 23:47:13 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Purpose: To test the collectively irregular hyperslab write in chunk
|
2019-08-21 04:16:20 +08:00
|
|
|
* storage
|
2005-10-18 23:47:13 +08:00
|
|
|
* Input: number of chunks on each dimension
|
2019-08-21 04:16:20 +08:00
|
|
|
* if number is equal to 0, contiguous storage
|
2018-02-15 00:08:09 +08:00
|
|
|
* Return: Success: 0
|
2005-10-18 23:47:13 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Failure: -1
|
2005-10-18 23:47:13 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Programmer: Unknown
|
|
|
|
* Dec 2nd, 2004
|
2005-10-18 23:47:13 +08:00
|
|
|
*
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
*/
|
2004-12-09 07:33:40 +08:00
|
|
|
void coll_write_test(int chunk_factor)
|
2004-11-12 05:08:11 +08:00
|
|
|
{
|
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
const char *filename;
|
|
|
|
hid_t facc_plist,dxfer_plist,dcrt_plist;
|
|
|
|
hid_t file, datasetc,dataseti; /* File and dataset identifiers */
|
|
|
|
hid_t mspaceid1, mspaceid, fspaceid,fspaceid1; /* Dataspace identifiers */
|
[svn-r12142] Purpose:
change the array size of collective chunking features of parallel tests.
Description:
Previously array size for collective optimization tests
including
cchunk1,
cchunk2,
cchunk3,
cchunk4,
ccontw,
ccontr,
cschunkw,
cschunkr,
ccchunkw,
ccchunkr
are fixed,
They are only valid for some good number of processors(1,2,3,4,6,8,12,16,24,32,48 etc).
Recently there are more requests for parallel tests to be valid on some odd number of processes such as 5,7,11,13 etc.
Solution:
I change the array size to be dynamic rather than static. Now the fastest change array size is a function of mpi_size. dim2 = constant *mpi_size. After some tunings, theoretically the above tests should be valid for any number of processors. However, other parallel tests still need to be tuned.
To verify the correctness of these tests, using mpirun -np 5 ./testphdf5 -b cchunk1 at heping.
Platforms tested:
h5committest(shanti is refused to be connected)
at heping, 5 and 7 processes are used to verify the correctness.
Misc. update:
2006-03-23 10:50:09 +08:00
|
|
|
|
2019-08-21 04:16:20 +08:00
|
|
|
hsize_t mdim1[1]; /* Dimension size of the first dataset (in memory) */
|
|
|
|
hsize_t fsdim[2]; /* Dimension sizes of the dataset (on disk) */
|
|
|
|
hsize_t mdim[2]; /* Dimension sizes of the dataset in memory when we
|
|
|
|
* read selection from the dataset on the disk
|
|
|
|
*/
|
2004-11-25 05:13:26 +08:00
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
hsize_t start[2]; /* Start of hyperslab */
|
2004-11-25 05:13:26 +08:00
|
|
|
hsize_t stride[2]; /* Stride of hyperslab */
|
|
|
|
hsize_t count[2]; /* Block count */
|
|
|
|
hsize_t block[2]; /* Block sizes */
|
[svn-r12142] Purpose:
change the array size of collective chunking features of parallel tests.
Description:
Previously array size for collective optimization tests
including
cchunk1,
cchunk2,
cchunk3,
cchunk4,
ccontw,
ccontr,
cschunkw,
cschunkr,
ccchunkw,
ccchunkr
are fixed,
They are only valid for some good number of processors(1,2,3,4,6,8,12,16,24,32,48 etc).
Recently there are more requests for parallel tests to be valid on some odd number of processes such as 5,7,11,13 etc.
Solution:
I change the array size to be dynamic rather than static. Now the fastest change array size is a function of mpi_size. dim2 = constant *mpi_size. After some tunings, theoretically the above tests should be valid for any number of processors. However, other parallel tests still need to be tuned.
To verify the correctness of these tests, using mpirun -np 5 ./testphdf5 -b cchunk1 at heping.
Platforms tested:
h5committest(shanti is refused to be connected)
at heping, 5 and 7 processes are used to verify the correctness.
Misc. update:
2006-03-23 10:50:09 +08:00
|
|
|
hsize_t chunk_dims[2];
|
2004-11-25 05:13:26 +08:00
|
|
|
|
|
|
|
herr_t ret;
|
2020-01-27 23:01:32 +08:00
|
|
|
int i;
|
2005-10-18 23:47:13 +08:00
|
|
|
int fillvalue = 0; /* Fill value for the dataset */
|
2004-11-25 05:13:26 +08:00
|
|
|
|
2019-08-21 04:16:20 +08:00
|
|
|
int *matrix_out = NULL;
|
|
|
|
int *matrix_out1 = NULL; /* Buffer to read from the dataset */
|
|
|
|
int *vector = NULL;
|
2004-11-25 05:13:26 +08:00
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
int mpi_size,mpi_rank;
|
2004-11-25 05:13:26 +08:00
|
|
|
|
|
|
|
MPI_Comm comm = MPI_COMM_WORLD;
|
|
|
|
MPI_Info info = MPI_INFO_NULL;
|
|
|
|
|
|
|
|
/*set up MPI parameters */
|
|
|
|
MPI_Comm_size(comm,&mpi_size);
|
|
|
|
MPI_Comm_rank(comm,&mpi_rank);
|
|
|
|
|
|
|
|
/* Obtain file name */
|
2005-08-14 04:53:35 +08:00
|
|
|
filename = GetTestParameters();
|
2004-11-25 05:13:26 +08:00
|
|
|
|
|
|
|
/*
|
|
|
|
* Buffers' initialization.
|
|
|
|
*/
|
[svn-r12142] Purpose:
change the array size of collective chunking features of parallel tests.
Description:
Previously array size for collective optimization tests
including
cchunk1,
cchunk2,
cchunk3,
cchunk4,
ccontw,
ccontr,
cschunkw,
cschunkr,
ccchunkw,
ccchunkr
are fixed,
They are only valid for some good number of processors(1,2,3,4,6,8,12,16,24,32,48 etc).
Recently there are more requests for parallel tests to be valid on some odd number of processes such as 5,7,11,13 etc.
Solution:
I change the array size to be dynamic rather than static. Now the fastest change array size is a function of mpi_size. dim2 = constant *mpi_size. After some tunings, theoretically the above tests should be valid for any number of processors. However, other parallel tests still need to be tuned.
To verify the correctness of these tests, using mpirun -np 5 ./testphdf5 -b cchunk1 at heping.
Platforms tested:
h5committest(shanti is refused to be connected)
at heping, 5 and 7 processes are used to verify the correctness.
Misc. update:
2006-03-23 10:50:09 +08:00
|
|
|
|
2020-01-24 05:12:00 +08:00
|
|
|
mdim1[0] = (hsize_t)(MSPACE1_DIM*mpi_size);
|
[svn-r12142] Purpose:
change the array size of collective chunking features of parallel tests.
Description:
Previously array size for collective optimization tests
including
cchunk1,
cchunk2,
cchunk3,
cchunk4,
ccontw,
ccontr,
cschunkw,
cschunkr,
ccchunkw,
ccchunkr
are fixed,
They are only valid for some good number of processors(1,2,3,4,6,8,12,16,24,32,48 etc).
Recently there are more requests for parallel tests to be valid on some odd number of processes such as 5,7,11,13 etc.
Solution:
I change the array size to be dynamic rather than static. Now the fastest change array size is a function of mpi_size. dim2 = constant *mpi_size. After some tunings, theoretically the above tests should be valid for any number of processors. However, other parallel tests still need to be tuned.
To verify the correctness of these tests, using mpirun -np 5 ./testphdf5 -b cchunk1 at heping.
Platforms tested:
h5committest(shanti is refused to be connected)
at heping, 5 and 7 processes are used to verify the correctness.
Misc. update:
2006-03-23 10:50:09 +08:00
|
|
|
mdim[0] = MSPACE_DIM1;
|
2020-01-24 05:12:00 +08:00
|
|
|
mdim[1] = (hsize_t)(MSPACE_DIM2*mpi_size);
|
[svn-r12142] Purpose:
change the array size of collective chunking features of parallel tests.
Description:
Previously array size for collective optimization tests
including
cchunk1,
cchunk2,
cchunk3,
cchunk4,
ccontw,
ccontr,
cschunkw,
cschunkr,
ccchunkw,
ccchunkr
are fixed,
They are only valid for some good number of processors(1,2,3,4,6,8,12,16,24,32,48 etc).
Recently there are more requests for parallel tests to be valid on some odd number of processes such as 5,7,11,13 etc.
Solution:
I change the array size to be dynamic rather than static. Now the fastest change array size is a function of mpi_size. dim2 = constant *mpi_size. After some tunings, theoretically the above tests should be valid for any number of processors. However, other parallel tests still need to be tuned.
To verify the correctness of these tests, using mpirun -np 5 ./testphdf5 -b cchunk1 at heping.
Platforms tested:
h5committest(shanti is refused to be connected)
at heping, 5 and 7 processes are used to verify the correctness.
Misc. update:
2006-03-23 10:50:09 +08:00
|
|
|
fsdim[0] = FSPACE_DIM1;
|
2020-01-24 05:12:00 +08:00
|
|
|
fsdim[1] = (hsize_t)(FSPACE_DIM2*mpi_size);
|
2008-09-16 23:52:51 +08:00
|
|
|
|
2020-01-24 05:12:00 +08:00
|
|
|
vector = (int*)HDmalloc(sizeof(int)*(size_t)mdim1[0]*(size_t)mpi_size);
|
|
|
|
matrix_out = (int*)HDmalloc(sizeof(int)*(size_t)mdim[0]*(size_t)mdim[1]*(size_t)mpi_size);
|
|
|
|
matrix_out1 = (int*)HDmalloc(sizeof(int)*(size_t)mdim[0]*(size_t)mdim[1]*(size_t)mpi_size);
|
[svn-r12142] Purpose:
change the array size of collective chunking features of parallel tests.
Description:
Previously array size for collective optimization tests
including
cchunk1,
cchunk2,
cchunk3,
cchunk4,
ccontw,
ccontr,
cschunkw,
cschunkr,
ccchunkw,
ccchunkr
are fixed,
They are only valid for some good number of processors(1,2,3,4,6,8,12,16,24,32,48 etc).
Recently there are more requests for parallel tests to be valid on some odd number of processes such as 5,7,11,13 etc.
Solution:
I change the array size to be dynamic rather than static. Now the fastest change array size is a function of mpi_size. dim2 = constant *mpi_size. After some tunings, theoretically the above tests should be valid for any number of processors. However, other parallel tests still need to be tuned.
To verify the correctness of these tests, using mpirun -np 5 ./testphdf5 -b cchunk1 at heping.
Platforms tested:
h5committest(shanti is refused to be connected)
at heping, 5 and 7 processes are used to verify the correctness.
Misc. update:
2006-03-23 10:50:09 +08:00
|
|
|
|
2020-01-24 05:12:00 +08:00
|
|
|
HDmemset(vector,0,sizeof(int)*(size_t)mdim1[0]*(size_t)mpi_size);
|
[svn-r12142] Purpose:
change the array size of collective chunking features of parallel tests.
Description:
Previously array size for collective optimization tests
including
cchunk1,
cchunk2,
cchunk3,
cchunk4,
ccontw,
ccontr,
cschunkw,
cschunkr,
ccchunkw,
ccchunkr
are fixed,
They are only valid for some good number of processors(1,2,3,4,6,8,12,16,24,32,48 etc).
Recently there are more requests for parallel tests to be valid on some odd number of processes such as 5,7,11,13 etc.
Solution:
I change the array size to be dynamic rather than static. Now the fastest change array size is a function of mpi_size. dim2 = constant *mpi_size. After some tunings, theoretically the above tests should be valid for any number of processors. However, other parallel tests still need to be tuned.
To verify the correctness of these tests, using mpirun -np 5 ./testphdf5 -b cchunk1 at heping.
Platforms tested:
h5committest(shanti is refused to be connected)
at heping, 5 and 7 processes are used to verify the correctness.
Misc. update:
2006-03-23 10:50:09 +08:00
|
|
|
vector[0] = vector[MSPACE1_DIM*mpi_size - 1] = -1;
|
2020-01-24 05:12:00 +08:00
|
|
|
for (i = 1; i < MSPACE1_DIM*mpi_size - 1; i++) H5_CHECKED_ASSIGN(vector[i], int, i, unsigned);
|
2004-11-25 05:13:26 +08:00
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
/* Grab file access property list */
|
2014-03-22 07:02:24 +08:00
|
|
|
facc_plist = create_faccess_plist(comm, info, facc_type);
|
2005-10-18 23:47:13 +08:00
|
|
|
VRFY((facc_plist >= 0),"");
|
2005-08-14 04:53:35 +08:00
|
|
|
|
2004-11-25 05:13:26 +08:00
|
|
|
/*
|
|
|
|
* Create a file.
|
|
|
|
*/
|
2005-10-18 23:47:13 +08:00
|
|
|
file = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, facc_plist);
|
2004-11-25 05:13:26 +08:00
|
|
|
VRFY((file >= 0),"H5Fcreate succeeded");
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Create property list for a dataset and set up fill values.
|
|
|
|
*/
|
2005-10-18 23:47:13 +08:00
|
|
|
dcrt_plist = H5Pcreate(H5P_DATASET_CREATE);
|
|
|
|
VRFY((dcrt_plist >= 0),"");
|
2004-11-25 05:13:26 +08:00
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
ret = H5Pset_fill_value(dcrt_plist, H5T_NATIVE_INT, &fillvalue);
|
2004-11-25 05:13:26 +08:00
|
|
|
VRFY((ret >= 0),"Fill value creation property list succeeded");
|
2004-12-09 07:33:40 +08:00
|
|
|
|
|
|
|
if(chunk_factor != 0) {
|
2020-01-24 05:12:00 +08:00
|
|
|
chunk_dims[0] = fsdim[0] / (hsize_t)chunk_factor;
|
|
|
|
chunk_dims[1] = fsdim[1] / (hsize_t)chunk_factor;
|
2005-10-18 23:47:13 +08:00
|
|
|
ret = H5Pset_chunk(dcrt_plist, 2, chunk_dims);
|
2004-12-09 07:33:40 +08:00
|
|
|
VRFY((ret >= 0),"chunk creation property list succeeded");
|
|
|
|
}
|
2005-10-18 23:47:13 +08:00
|
|
|
|
2005-08-14 04:53:35 +08:00
|
|
|
/*
|
2005-10-18 23:47:13 +08:00
|
|
|
*
|
|
|
|
* Create dataspace for the first dataset in the disk.
|
|
|
|
* dim1 = 9
|
|
|
|
* dim2 = 3600
|
|
|
|
*
|
|
|
|
*
|
2004-11-25 05:13:26 +08:00
|
|
|
*/
|
|
|
|
fspaceid = H5Screate_simple(FSPACE_RANK, fsdim, NULL);
|
|
|
|
VRFY((fspaceid >= 0),"file dataspace created succeeded");
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Create dataset in the file. Notice that creation
|
2005-10-18 23:47:13 +08:00
|
|
|
* property list dcrt_plist is used.
|
2004-11-25 05:13:26 +08:00
|
|
|
*/
|
[svn-r14199] Description:
Add H5Dcreate to API versioned routines, replacing internal usage with
H5Dcreate2
Fix thread-safe error stack initialization for API versioned error
stack printing routines.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-12 00:24:11 +08:00
|
|
|
datasetc = H5Dcreate2(file, "collect_write", H5T_NATIVE_INT, fspaceid, H5P_DEFAULT, dcrt_plist, H5P_DEFAULT);
|
2004-11-25 05:13:26 +08:00
|
|
|
VRFY((datasetc >= 0),"dataset created succeeded");
|
|
|
|
|
[svn-r14199] Description:
Add H5Dcreate to API versioned routines, replacing internal usage with
H5Dcreate2
Fix thread-safe error stack initialization for API versioned error
stack printing routines.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-12 00:24:11 +08:00
|
|
|
dataseti = H5Dcreate2(file, "independ_write", H5T_NATIVE_INT, fspaceid, H5P_DEFAULT, dcrt_plist, H5P_DEFAULT);
|
2004-11-25 05:13:26 +08:00
|
|
|
VRFY((dataseti >= 0),"dataset created succeeded");
|
2005-10-18 23:47:13 +08:00
|
|
|
|
|
|
|
/* The First selection for FILE
|
|
|
|
*
|
|
|
|
* block (3,2)
|
2008-09-16 23:52:51 +08:00
|
|
|
* stride(4,3)
|
2005-10-18 23:47:13 +08:00
|
|
|
* count (1,768/mpi_size)
|
|
|
|
* start (0,1+768*3*mpi_rank/mpi_size)
|
|
|
|
*
|
|
|
|
*/
|
2004-11-25 05:13:26 +08:00
|
|
|
|
2005-08-14 04:53:35 +08:00
|
|
|
start[0] = FHSTART0;
|
2020-01-24 05:12:00 +08:00
|
|
|
start[1] = (hsize_t)(FHSTART1 + mpi_rank * FHSTRIDE1 * FHCOUNT1);
|
2005-08-14 04:53:35 +08:00
|
|
|
stride[0] = FHSTRIDE0;
|
2004-11-25 05:13:26 +08:00
|
|
|
stride[1] = FHSTRIDE1;
|
2005-08-14 04:53:35 +08:00
|
|
|
count[0] = FHCOUNT0;
|
[svn-r12142] Purpose:
change the array size of collective chunking features of parallel tests.
Description:
Previously array size for collective optimization tests
including
cchunk1,
cchunk2,
cchunk3,
cchunk4,
ccontw,
ccontr,
cschunkw,
cschunkr,
ccchunkw,
ccchunkr
are fixed,
They are only valid for some good number of processors(1,2,3,4,6,8,12,16,24,32,48 etc).
Recently there are more requests for parallel tests to be valid on some odd number of processes such as 5,7,11,13 etc.
Solution:
I change the array size to be dynamic rather than static. Now the fastest change array size is a function of mpi_size. dim2 = constant *mpi_size. After some tunings, theoretically the above tests should be valid for any number of processors. However, other parallel tests still need to be tuned.
To verify the correctness of these tests, using mpirun -np 5 ./testphdf5 -b cchunk1 at heping.
Platforms tested:
h5committest(shanti is refused to be connected)
at heping, 5 and 7 processes are used to verify the correctness.
Misc. update:
2006-03-23 10:50:09 +08:00
|
|
|
count[1] = FHCOUNT1;
|
2005-08-14 04:53:35 +08:00
|
|
|
block[0] = FHBLOCK0;
|
2004-11-25 05:13:26 +08:00
|
|
|
block[1] = FHBLOCK1;
|
|
|
|
|
|
|
|
ret = H5Sselect_hyperslab(fspaceid, H5S_SELECT_SET, start, stride, count, block);
|
|
|
|
VRFY((ret >= 0),"hyperslab selection succeeded");
|
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
/* The Second selection for FILE
|
2008-09-16 23:52:51 +08:00
|
|
|
*
|
2005-10-18 23:47:13 +08:00
|
|
|
* block (3,768)
|
|
|
|
* stride (1,1)
|
2008-09-16 23:52:51 +08:00
|
|
|
* count (1,1)
|
2005-10-18 23:47:13 +08:00
|
|
|
* start (4,768*mpi_rank/mpi_size)
|
|
|
|
*
|
2004-11-25 05:13:26 +08:00
|
|
|
*/
|
|
|
|
|
2005-08-14 04:53:35 +08:00
|
|
|
start[0] = SHSTART0;
|
2020-01-24 05:12:00 +08:00
|
|
|
start[1] = (hsize_t)(SHSTART1+SHCOUNT1*SHBLOCK1*mpi_rank);
|
2005-08-14 04:53:35 +08:00
|
|
|
stride[0] = SHSTRIDE0;
|
2004-11-25 05:13:26 +08:00
|
|
|
stride[1] = SHSTRIDE1;
|
2005-08-14 04:53:35 +08:00
|
|
|
count[0] = SHCOUNT0;
|
|
|
|
count[1] = SHCOUNT1;
|
|
|
|
block[0] = SHBLOCK0;
|
[svn-r12142] Purpose:
change the array size of collective chunking features of parallel tests.
Description:
Previously array size for collective optimization tests
including
cchunk1,
cchunk2,
cchunk3,
cchunk4,
ccontw,
ccontr,
cschunkw,
cschunkr,
ccchunkw,
ccchunkr
are fixed,
They are only valid for some good number of processors(1,2,3,4,6,8,12,16,24,32,48 etc).
Recently there are more requests for parallel tests to be valid on some odd number of processes such as 5,7,11,13 etc.
Solution:
I change the array size to be dynamic rather than static. Now the fastest change array size is a function of mpi_size. dim2 = constant *mpi_size. After some tunings, theoretically the above tests should be valid for any number of processors. However, other parallel tests still need to be tuned.
To verify the correctness of these tests, using mpirun -np 5 ./testphdf5 -b cchunk1 at heping.
Platforms tested:
h5committest(shanti is refused to be connected)
at heping, 5 and 7 processes are used to verify the correctness.
Misc. update:
2006-03-23 10:50:09 +08:00
|
|
|
block[1] = SHBLOCK1;
|
2004-11-25 05:13:26 +08:00
|
|
|
|
|
|
|
ret = H5Sselect_hyperslab(fspaceid, H5S_SELECT_OR, start, stride, count, block);
|
|
|
|
VRFY((ret >= 0),"hyperslab selection succeeded");
|
|
|
|
|
|
|
|
/*
|
2005-10-18 23:47:13 +08:00
|
|
|
* Create dataspace for the first dataset in the memory
|
|
|
|
* dim1 = 27000
|
|
|
|
*
|
2004-11-25 05:13:26 +08:00
|
|
|
*/
|
|
|
|
mspaceid1 = H5Screate_simple(MSPACE1_RANK, mdim1, NULL);
|
|
|
|
VRFY((mspaceid1 >= 0),"memory dataspace created succeeded");
|
|
|
|
|
|
|
|
/*
|
2005-10-18 23:47:13 +08:00
|
|
|
* Memory space is 1-D, this is a good test to check
|
|
|
|
* whether a span-tree derived datatype needs to be built.
|
|
|
|
* block 1
|
|
|
|
* stride 1
|
|
|
|
* count 6912/mpi_size
|
|
|
|
* start 1
|
|
|
|
*
|
2004-11-25 05:13:26 +08:00
|
|
|
*/
|
|
|
|
start[0] = MHSTART0;
|
|
|
|
stride[0] = MHSTRIDE0;
|
[svn-r12142] Purpose:
change the array size of collective chunking features of parallel tests.
Description:
Previously array size for collective optimization tests
including
cchunk1,
cchunk2,
cchunk3,
cchunk4,
ccontw,
ccontr,
cschunkw,
cschunkr,
ccchunkw,
ccchunkr
are fixed,
They are only valid for some good number of processors(1,2,3,4,6,8,12,16,24,32,48 etc).
Recently there are more requests for parallel tests to be valid on some odd number of processes such as 5,7,11,13 etc.
Solution:
I change the array size to be dynamic rather than static. Now the fastest change array size is a function of mpi_size. dim2 = constant *mpi_size. After some tunings, theoretically the above tests should be valid for any number of processors. However, other parallel tests still need to be tuned.
To verify the correctness of these tests, using mpirun -np 5 ./testphdf5 -b cchunk1 at heping.
Platforms tested:
h5committest(shanti is refused to be connected)
at heping, 5 and 7 processes are used to verify the correctness.
Misc. update:
2006-03-23 10:50:09 +08:00
|
|
|
count[0] = MHCOUNT0;
|
2004-11-25 05:13:26 +08:00
|
|
|
block[0] = MHBLOCK0;
|
|
|
|
|
|
|
|
ret = H5Sselect_hyperslab(mspaceid1, H5S_SELECT_SET, start, stride, count, block);
|
|
|
|
VRFY((ret >= 0),"hyperslab selection succeeded");
|
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
/* independent write */
|
2004-11-25 05:13:26 +08:00
|
|
|
ret = H5Dwrite(dataseti, H5T_NATIVE_INT, mspaceid1, fspaceid, H5P_DEFAULT, vector);
|
|
|
|
VRFY((ret >= 0),"dataset independent write succeed");
|
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
dxfer_plist = H5Pcreate(H5P_DATASET_XFER);
|
|
|
|
VRFY((dxfer_plist >= 0),"");
|
2004-11-25 05:13:26 +08:00
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
ret = H5Pset_dxpl_mpio(dxfer_plist, H5FD_MPIO_COLLECTIVE);
|
|
|
|
VRFY((ret >= 0),"MPIO data transfer property list succeed");
|
2006-08-09 11:16:07 +08:00
|
|
|
if(dxfer_coll_type == DXFER_INDEPENDENT_IO) {
|
|
|
|
ret = H5Pset_dxpl_mpio_collective_opt(dxfer_plist,H5FD_MPIO_INDIVIDUAL_IO);
|
|
|
|
VRFY((ret>= 0),"set independent IO collectively succeeded");
|
|
|
|
}
|
|
|
|
|
2004-11-25 05:13:26 +08:00
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
/* collective write */
|
|
|
|
ret = H5Dwrite(datasetc, H5T_NATIVE_INT, mspaceid1, fspaceid, dxfer_plist, vector);
|
2005-08-14 04:53:35 +08:00
|
|
|
VRFY((ret >= 0),"dataset collective write succeed");
|
2004-11-25 05:13:26 +08:00
|
|
|
|
|
|
|
ret = H5Sclose(mspaceid1);
|
|
|
|
VRFY((ret >= 0),"");
|
|
|
|
|
2005-08-14 04:53:35 +08:00
|
|
|
ret = H5Sclose(fspaceid);
|
2004-11-25 05:13:26 +08:00
|
|
|
VRFY((ret >= 0),"");
|
2005-08-14 04:53:35 +08:00
|
|
|
|
2004-11-25 05:13:26 +08:00
|
|
|
/*
|
|
|
|
* Close dataset.
|
|
|
|
*/
|
|
|
|
ret = H5Dclose(datasetc);
|
|
|
|
VRFY((ret >= 0),"");
|
2005-10-18 23:47:13 +08:00
|
|
|
|
2004-11-25 05:13:26 +08:00
|
|
|
ret = H5Dclose(dataseti);
|
|
|
|
VRFY((ret >= 0),"");
|
2005-08-14 04:53:35 +08:00
|
|
|
|
2004-11-25 05:13:26 +08:00
|
|
|
/*
|
|
|
|
* Close the file.
|
|
|
|
*/
|
|
|
|
ret = H5Fclose(file);
|
|
|
|
VRFY((ret >= 0),"");
|
|
|
|
/*
|
|
|
|
* Close property list
|
|
|
|
*/
|
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
ret = H5Pclose(facc_plist);
|
2004-11-25 05:13:26 +08:00
|
|
|
VRFY((ret >= 0),"");
|
2005-10-18 23:47:13 +08:00
|
|
|
ret = H5Pclose(dxfer_plist);
|
2004-11-25 05:13:26 +08:00
|
|
|
VRFY((ret >= 0),"");
|
2005-10-18 23:47:13 +08:00
|
|
|
ret = H5Pclose(dcrt_plist);
|
2004-11-25 05:13:26 +08:00
|
|
|
VRFY((ret >= 0),"");
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Open the file.
|
|
|
|
*/
|
|
|
|
|
2008-09-16 23:52:51 +08:00
|
|
|
/***
|
|
|
|
|
|
|
|
For testing collective hyperslab selection write
|
2005-10-18 23:47:13 +08:00
|
|
|
In this test, we are using independent read to check
|
2008-09-16 23:52:51 +08:00
|
|
|
the correctedness of collective write compared with
|
2005-10-18 23:47:13 +08:00
|
|
|
independent write,
|
|
|
|
|
|
|
|
In order to throughly test this feature, we choose
|
|
|
|
a different selection set for reading the data out.
|
|
|
|
|
2004-11-25 05:13:26 +08:00
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
***/
|
2004-11-25 05:13:26 +08:00
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
/* Obtain file access property list with MPI-IO driver */
|
2014-03-22 07:02:24 +08:00
|
|
|
facc_plist = create_faccess_plist(comm, info, facc_type);
|
2005-10-18 23:47:13 +08:00
|
|
|
VRFY((facc_plist >= 0),"");
|
2005-08-14 04:53:35 +08:00
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
file = H5Fopen(filename, H5F_ACC_RDONLY, facc_plist);
|
2004-11-25 05:13:26 +08:00
|
|
|
VRFY((file >= 0),"H5Fopen succeeded");
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Open the dataset.
|
|
|
|
*/
|
[svn-r14193] Description:
Make H5Dopen versioned and change all internal usage to use H5Dopen2
Add simple regression test for H5Dopen1
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-09 03:59:36 +08:00
|
|
|
datasetc = H5Dopen2(file,"collect_write", H5P_DEFAULT);
|
|
|
|
VRFY((datasetc >= 0),"H5Dopen2 succeeded");
|
2005-10-18 23:47:13 +08:00
|
|
|
|
[svn-r14193] Description:
Make H5Dopen versioned and change all internal usage to use H5Dopen2
Add simple regression test for H5Dopen1
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-09 03:59:36 +08:00
|
|
|
dataseti = H5Dopen2(file,"independ_write", H5P_DEFAULT);
|
|
|
|
VRFY((dataseti >= 0),"H5Dopen2 succeeded");
|
2005-08-14 04:53:35 +08:00
|
|
|
|
|
|
|
/*
|
2004-11-25 05:13:26 +08:00
|
|
|
* Get dataspace of the open dataset.
|
|
|
|
*/
|
2005-10-18 23:47:13 +08:00
|
|
|
fspaceid = H5Dget_space(datasetc);
|
2004-11-25 05:13:26 +08:00
|
|
|
VRFY((fspaceid >= 0),"file dataspace obtained succeeded");
|
|
|
|
|
|
|
|
fspaceid1 = H5Dget_space(dataseti);
|
|
|
|
VRFY((fspaceid1 >= 0),"file dataspace obtained succeeded");
|
|
|
|
|
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
/* The First selection for FILE to read
|
|
|
|
*
|
|
|
|
* block (1,1)
|
2008-09-16 23:52:51 +08:00
|
|
|
* stride(1.1)
|
2005-10-18 23:47:13 +08:00
|
|
|
* count (3,768/mpi_size)
|
|
|
|
* start (1,2+768*mpi_rank/mpi_size)
|
|
|
|
*
|
|
|
|
*/
|
2005-08-14 04:53:35 +08:00
|
|
|
start[0] = RFFHSTART0;
|
2020-01-24 05:12:00 +08:00
|
|
|
start[1] = (hsize_t)(RFFHSTART1+mpi_rank*RFFHCOUNT1);
|
2005-08-14 04:53:35 +08:00
|
|
|
block[0] = RFFHBLOCK0;
|
2004-11-25 05:13:26 +08:00
|
|
|
block[1] = RFFHBLOCK1;
|
2005-08-14 04:53:35 +08:00
|
|
|
stride[0] = RFFHSTRIDE0;
|
2004-11-25 05:13:26 +08:00
|
|
|
stride[1] = RFFHSTRIDE1;
|
2005-08-14 04:53:35 +08:00
|
|
|
count[0] = RFFHCOUNT0;
|
[svn-r12142] Purpose:
change the array size of collective chunking features of parallel tests.
Description:
Previously array size for collective optimization tests
including
cchunk1,
cchunk2,
cchunk3,
cchunk4,
ccontw,
ccontr,
cschunkw,
cschunkr,
ccchunkw,
ccchunkr
are fixed,
They are only valid for some good number of processors(1,2,3,4,6,8,12,16,24,32,48 etc).
Recently there are more requests for parallel tests to be valid on some odd number of processes such as 5,7,11,13 etc.
Solution:
I change the array size to be dynamic rather than static. Now the fastest change array size is a function of mpi_size. dim2 = constant *mpi_size. After some tunings, theoretically the above tests should be valid for any number of processors. However, other parallel tests still need to be tuned.
To verify the correctness of these tests, using mpirun -np 5 ./testphdf5 -b cchunk1 at heping.
Platforms tested:
h5committest(shanti is refused to be connected)
at heping, 5 and 7 processes are used to verify the correctness.
Misc. update:
2006-03-23 10:50:09 +08:00
|
|
|
count[1] = RFFHCOUNT1;
|
2005-08-14 04:53:35 +08:00
|
|
|
|
2004-11-12 05:08:11 +08:00
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
/* The first selection of the dataset generated by collective write */
|
2004-11-25 05:13:26 +08:00
|
|
|
ret = H5Sselect_hyperslab(fspaceid, H5S_SELECT_SET, start, stride, count, block);
|
|
|
|
VRFY((ret >= 0),"hyperslab selection succeeded");
|
2005-10-18 23:47:13 +08:00
|
|
|
|
|
|
|
/* The first selection of the dataset generated by independent write */
|
2004-11-25 05:13:26 +08:00
|
|
|
ret = H5Sselect_hyperslab(fspaceid1, H5S_SELECT_SET, start, stride, count, block);
|
|
|
|
VRFY((ret >= 0),"hyperslab selection succeeded");
|
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
/* The Second selection for FILE to read
|
|
|
|
*
|
|
|
|
* block (1,1)
|
2008-09-16 23:52:51 +08:00
|
|
|
* stride(1.1)
|
2005-10-18 23:47:13 +08:00
|
|
|
* count (3,1536/mpi_size)
|
|
|
|
* start (2,4+1536*mpi_rank/mpi_size)
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
2004-11-25 05:13:26 +08:00
|
|
|
start[0] = RFSHSTART0;
|
2020-01-24 05:12:00 +08:00
|
|
|
start[1] = (hsize_t)(RFSHSTART1+RFSHCOUNT1*mpi_rank);
|
2005-08-14 04:53:35 +08:00
|
|
|
block[0] = RFSHBLOCK0;
|
|
|
|
block[1] = RFSHBLOCK1;
|
|
|
|
stride[0] = RFSHSTRIDE0;
|
2004-11-25 05:13:26 +08:00
|
|
|
stride[1] = RFSHSTRIDE0;
|
2005-08-14 04:53:35 +08:00
|
|
|
count[0] = RFSHCOUNT0;
|
[svn-r12142] Purpose:
change the array size of collective chunking features of parallel tests.
Description:
Previously array size for collective optimization tests
including
cchunk1,
cchunk2,
cchunk3,
cchunk4,
ccontw,
ccontr,
cschunkw,
cschunkr,
ccchunkw,
ccchunkr
are fixed,
They are only valid for some good number of processors(1,2,3,4,6,8,12,16,24,32,48 etc).
Recently there are more requests for parallel tests to be valid on some odd number of processes such as 5,7,11,13 etc.
Solution:
I change the array size to be dynamic rather than static. Now the fastest change array size is a function of mpi_size. dim2 = constant *mpi_size. After some tunings, theoretically the above tests should be valid for any number of processors. However, other parallel tests still need to be tuned.
To verify the correctness of these tests, using mpirun -np 5 ./testphdf5 -b cchunk1 at heping.
Platforms tested:
h5committest(shanti is refused to be connected)
at heping, 5 and 7 processes are used to verify the correctness.
Misc. update:
2006-03-23 10:50:09 +08:00
|
|
|
count[1] = RFSHCOUNT1;
|
2005-10-18 23:47:13 +08:00
|
|
|
|
|
|
|
/* The second selection of the dataset generated by collective write */
|
2004-11-25 05:13:26 +08:00
|
|
|
ret = H5Sselect_hyperslab(fspaceid, H5S_SELECT_OR, start, stride, count, block);
|
|
|
|
VRFY((ret >= 0),"hyperslab selection succeeded");
|
2005-10-18 23:47:13 +08:00
|
|
|
|
|
|
|
/* The second selection of the dataset generated by independent write */
|
2004-11-25 05:13:26 +08:00
|
|
|
ret = H5Sselect_hyperslab(fspaceid1, H5S_SELECT_OR, start, stride, count, block);
|
|
|
|
VRFY((ret >= 0),"hyperslab selection succeeded");
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Create memory dataspace.
|
2005-10-18 23:47:13 +08:00
|
|
|
* rank = 2
|
|
|
|
* mdim1 = 9
|
|
|
|
* mdim2 = 3600
|
|
|
|
*
|
2004-11-25 05:13:26 +08:00
|
|
|
*/
|
|
|
|
mspaceid = H5Screate_simple(MSPACE_RANK, mdim, NULL);
|
|
|
|
|
2005-08-14 04:53:35 +08:00
|
|
|
/*
|
2004-11-25 05:13:26 +08:00
|
|
|
* Select two hyperslabs in memory. Hyperslabs has the same
|
2005-10-18 23:47:13 +08:00
|
|
|
* size and shape as the selected hyperslabs for the file dataspace
|
|
|
|
* Only the starting point is different.
|
|
|
|
* The first selection
|
|
|
|
* block (1,1)
|
2008-09-16 23:52:51 +08:00
|
|
|
* stride(1.1)
|
2005-10-18 23:47:13 +08:00
|
|
|
* count (3,768/mpi_size)
|
|
|
|
* start (0,768*mpi_rank/mpi_size)
|
|
|
|
*
|
2004-11-25 05:13:26 +08:00
|
|
|
*/
|
|
|
|
|
|
|
|
|
2005-08-14 04:53:35 +08:00
|
|
|
start[0] = RMFHSTART0;
|
2020-01-24 05:12:00 +08:00
|
|
|
start[1] = (hsize_t)(RMFHSTART1+mpi_rank*RMFHCOUNT1);
|
2005-08-14 04:53:35 +08:00
|
|
|
block[0] = RMFHBLOCK0;
|
2004-11-25 05:13:26 +08:00
|
|
|
block[1] = RMFHBLOCK1;
|
2005-08-14 04:53:35 +08:00
|
|
|
stride[0] = RMFHSTRIDE0;
|
2004-11-25 05:13:26 +08:00
|
|
|
stride[1] = RMFHSTRIDE1;
|
2005-08-14 04:53:35 +08:00
|
|
|
count[0] = RMFHCOUNT0;
|
[svn-r12142] Purpose:
change the array size of collective chunking features of parallel tests.
Description:
Previously array size for collective optimization tests
including
cchunk1,
cchunk2,
cchunk3,
cchunk4,
ccontw,
ccontr,
cschunkw,
cschunkr,
ccchunkw,
ccchunkr
are fixed,
They are only valid for some good number of processors(1,2,3,4,6,8,12,16,24,32,48 etc).
Recently there are more requests for parallel tests to be valid on some odd number of processes such as 5,7,11,13 etc.
Solution:
I change the array size to be dynamic rather than static. Now the fastest change array size is a function of mpi_size. dim2 = constant *mpi_size. After some tunings, theoretically the above tests should be valid for any number of processors. However, other parallel tests still need to be tuned.
To verify the correctness of these tests, using mpirun -np 5 ./testphdf5 -b cchunk1 at heping.
Platforms tested:
h5committest(shanti is refused to be connected)
at heping, 5 and 7 processes are used to verify the correctness.
Misc. update:
2006-03-23 10:50:09 +08:00
|
|
|
count[1] = RMFHCOUNT1;
|
2005-10-18 23:47:13 +08:00
|
|
|
|
2004-11-25 05:13:26 +08:00
|
|
|
ret = H5Sselect_hyperslab(mspaceid, H5S_SELECT_SET, start, stride, count, block);
|
|
|
|
VRFY((ret >= 0),"hyperslab selection succeeded");
|
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
/*
|
|
|
|
* Select two hyperslabs in memory. Hyperslabs has the same
|
|
|
|
* size and shape as the selected hyperslabs for the file dataspace
|
|
|
|
* Only the starting point is different.
|
|
|
|
* The second selection
|
|
|
|
* block (1,1)
|
2008-09-16 23:52:51 +08:00
|
|
|
* stride(1,1)
|
2005-10-18 23:47:13 +08:00
|
|
|
* count (3,1536/mpi_size)
|
|
|
|
* start (1,2+1536*mpi_rank/mpi_size)
|
|
|
|
*
|
|
|
|
*/
|
2005-08-14 04:53:35 +08:00
|
|
|
start[0] = RMSHSTART0;
|
2020-01-24 05:12:00 +08:00
|
|
|
start[1] = (hsize_t)(RMSHSTART1+mpi_rank*RMSHCOUNT1);
|
2005-08-14 04:53:35 +08:00
|
|
|
block[0] = RMSHBLOCK0;
|
2004-11-25 05:13:26 +08:00
|
|
|
block[1] = RMSHBLOCK1;
|
2005-08-14 04:53:35 +08:00
|
|
|
stride[0] = RMSHSTRIDE0;
|
2004-11-25 05:13:26 +08:00
|
|
|
stride[1] = RMSHSTRIDE1;
|
2005-08-14 04:53:35 +08:00
|
|
|
count[0] = RMSHCOUNT0;
|
[svn-r12142] Purpose:
change the array size of collective chunking features of parallel tests.
Description:
Previously array size for collective optimization tests
including
cchunk1,
cchunk2,
cchunk3,
cchunk4,
ccontw,
ccontr,
cschunkw,
cschunkr,
ccchunkw,
ccchunkr
are fixed,
They are only valid for some good number of processors(1,2,3,4,6,8,12,16,24,32,48 etc).
Recently there are more requests for parallel tests to be valid on some odd number of processes such as 5,7,11,13 etc.
Solution:
I change the array size to be dynamic rather than static. Now the fastest change array size is a function of mpi_size. dim2 = constant *mpi_size. After some tunings, theoretically the above tests should be valid for any number of processors. However, other parallel tests still need to be tuned.
To verify the correctness of these tests, using mpirun -np 5 ./testphdf5 -b cchunk1 at heping.
Platforms tested:
h5committest(shanti is refused to be connected)
at heping, 5 and 7 processes are used to verify the correctness.
Misc. update:
2006-03-23 10:50:09 +08:00
|
|
|
count[1] = RMSHCOUNT1;
|
2005-08-14 04:53:35 +08:00
|
|
|
|
2004-11-25 05:13:26 +08:00
|
|
|
ret = H5Sselect_hyperslab(mspaceid, H5S_SELECT_OR, start, stride, count, block);
|
2005-08-14 04:53:35 +08:00
|
|
|
VRFY((ret >= 0),"hyperslab selection succeeded");
|
2004-11-25 05:13:26 +08:00
|
|
|
|
2005-08-14 04:53:35 +08:00
|
|
|
/*
|
2004-11-25 05:13:26 +08:00
|
|
|
* Initialize data buffer.
|
|
|
|
*/
|
2005-08-14 04:53:35 +08:00
|
|
|
|
2020-01-24 05:12:00 +08:00
|
|
|
HDmemset(matrix_out,0,sizeof(int)*(size_t)MSPACE_DIM1*(size_t)MSPACE_DIM2*(size_t)mpi_size);
|
|
|
|
HDmemset(matrix_out1,0,sizeof(int)*(size_t)MSPACE_DIM1*(size_t)MSPACE_DIM2*(size_t)mpi_size);
|
2004-11-25 05:13:26 +08:00
|
|
|
/*
|
|
|
|
* Read data back to the buffer matrix_out.
|
|
|
|
*/
|
|
|
|
|
|
|
|
ret = H5Dread(datasetc, H5T_NATIVE_INT, mspaceid, fspaceid,
|
2018-02-15 00:08:09 +08:00
|
|
|
H5P_DEFAULT, matrix_out);
|
2005-08-14 04:53:35 +08:00
|
|
|
VRFY((ret >= 0),"H5D independent read succeed");
|
|
|
|
|
2008-09-16 23:52:51 +08:00
|
|
|
|
2004-11-25 05:13:26 +08:00
|
|
|
ret = H5Dread(dataseti, H5T_NATIVE_INT, mspaceid, fspaceid,
|
2018-02-15 00:08:09 +08:00
|
|
|
H5P_DEFAULT, matrix_out1);
|
2005-08-14 04:53:35 +08:00
|
|
|
VRFY((ret >= 0),"H5D independent read succeed");
|
2004-11-25 05:13:26 +08:00
|
|
|
|
|
|
|
ret = 0;
|
2005-10-18 23:47:13 +08:00
|
|
|
|
[svn-r12142] Purpose:
change the array size of collective chunking features of parallel tests.
Description:
Previously array size for collective optimization tests
including
cchunk1,
cchunk2,
cchunk3,
cchunk4,
ccontw,
ccontr,
cschunkw,
cschunkr,
ccchunkw,
ccchunkr
are fixed,
They are only valid for some good number of processors(1,2,3,4,6,8,12,16,24,32,48 etc).
Recently there are more requests for parallel tests to be valid on some odd number of processes such as 5,7,11,13 etc.
Solution:
I change the array size to be dynamic rather than static. Now the fastest change array size is a function of mpi_size. dim2 = constant *mpi_size. After some tunings, theoretically the above tests should be valid for any number of processors. However, other parallel tests still need to be tuned.
To verify the correctness of these tests, using mpirun -np 5 ./testphdf5 -b cchunk1 at heping.
Platforms tested:
h5committest(shanti is refused to be connected)
at heping, 5 and 7 processes are used to verify the correctness.
Misc. update:
2006-03-23 10:50:09 +08:00
|
|
|
for (i = 0; i < MSPACE_DIM1*MSPACE_DIM2*mpi_size; i++){
|
|
|
|
if(matrix_out[i]!=matrix_out1[i]) ret = -1;
|
2004-11-25 05:13:26 +08:00
|
|
|
if(ret < 0) break;
|
2004-11-12 05:08:11 +08:00
|
|
|
}
|
2008-09-16 23:52:51 +08:00
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
VRFY((ret >= 0),"H5D irregular collective write succeed");
|
2005-08-14 04:53:35 +08:00
|
|
|
|
2004-11-25 05:13:26 +08:00
|
|
|
/*
|
|
|
|
* Close memory file and memory dataspaces.
|
2005-08-14 04:53:35 +08:00
|
|
|
*/
|
2004-11-25 05:13:26 +08:00
|
|
|
ret = H5Sclose(mspaceid);
|
2005-08-14 04:53:35 +08:00
|
|
|
VRFY((ret >= 0),"");
|
2004-11-25 05:13:26 +08:00
|
|
|
ret = H5Sclose(fspaceid);
|
2005-08-14 04:53:35 +08:00
|
|
|
VRFY((ret >= 0),"");
|
|
|
|
|
2004-11-25 05:13:26 +08:00
|
|
|
/*
|
|
|
|
* Close dataset.
|
2005-08-14 04:53:35 +08:00
|
|
|
*/
|
2004-11-25 05:13:26 +08:00
|
|
|
ret = H5Dclose(dataseti);
|
2005-08-14 04:53:35 +08:00
|
|
|
VRFY((ret >= 0),"");
|
2004-11-12 05:08:11 +08:00
|
|
|
|
2004-11-25 05:13:26 +08:00
|
|
|
ret = H5Dclose(datasetc);
|
2005-08-14 04:53:35 +08:00
|
|
|
VRFY((ret >= 0),"");
|
2005-10-18 23:47:13 +08:00
|
|
|
|
2004-11-25 05:13:26 +08:00
|
|
|
/*
|
|
|
|
* Close property list
|
|
|
|
*/
|
2004-11-12 05:08:11 +08:00
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
ret = H5Pclose(facc_plist);
|
2005-08-14 04:53:35 +08:00
|
|
|
VRFY((ret >= 0),"");
|
|
|
|
|
2004-11-12 05:08:11 +08:00
|
|
|
|
2004-11-25 05:13:26 +08:00
|
|
|
/*
|
|
|
|
* Close the file.
|
2005-08-14 04:53:35 +08:00
|
|
|
*/
|
2004-11-25 05:13:26 +08:00
|
|
|
ret = H5Fclose(file);
|
2005-08-14 04:53:35 +08:00
|
|
|
VRFY((ret >= 0),"");
|
2004-11-12 05:08:11 +08:00
|
|
|
|
2018-03-13 03:10:59 +08:00
|
|
|
if (vector)
|
2018-03-13 02:47:27 +08:00
|
|
|
HDfree(vector);
|
2018-03-13 03:10:59 +08:00
|
|
|
if (matrix_out)
|
2018-03-13 02:47:27 +08:00
|
|
|
HDfree(matrix_out);
|
2018-03-13 03:10:59 +08:00
|
|
|
if (matrix_out1)
|
2018-03-13 02:47:27 +08:00
|
|
|
HDfree(matrix_out1);
|
|
|
|
|
2004-11-25 05:13:26 +08:00
|
|
|
return ;
|
|
|
|
}
|
2004-11-12 05:08:11 +08:00
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
/*-------------------------------------------------------------------------
|
2018-02-15 00:08:09 +08:00
|
|
|
* Function: coll_read_test
|
2005-10-18 23:47:13 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Purpose: To test the collectively irregular hyperslab read in chunk
|
2019-08-21 04:16:20 +08:00
|
|
|
* storage
|
2005-10-18 23:47:13 +08:00
|
|
|
* Input: number of chunks on each dimension
|
2019-08-21 04:16:20 +08:00
|
|
|
* if number is equal to 0, contiguous storage
|
2018-02-15 00:08:09 +08:00
|
|
|
* Return: Success: 0
|
2005-10-18 23:47:13 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Failure: -1
|
2005-10-18 23:47:13 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Programmer: Unknown
|
|
|
|
* Dec 2nd, 2004
|
2005-10-18 23:47:13 +08:00
|
|
|
*
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
*/
|
2009-03-11 03:00:39 +08:00
|
|
|
static void
|
2020-01-14 03:20:19 +08:00
|
|
|
coll_read_test(void)
|
2004-11-25 05:13:26 +08:00
|
|
|
{
|
2004-11-12 05:08:11 +08:00
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
const char *filename;
|
|
|
|
hid_t facc_plist,dxfer_plist;
|
2004-11-25 05:13:26 +08:00
|
|
|
hid_t file, dataseti; /* File and dataset identifiers */
|
2005-10-18 23:47:13 +08:00
|
|
|
hid_t mspaceid, fspaceid1; /* Dataspace identifiers */
|
2005-08-14 04:53:35 +08:00
|
|
|
|
[svn-r12142] Purpose:
change the array size of collective chunking features of parallel tests.
Description:
Previously array size for collective optimization tests
including
cchunk1,
cchunk2,
cchunk3,
cchunk4,
ccontw,
ccontr,
cschunkw,
cschunkr,
ccchunkw,
ccchunkr
are fixed,
They are only valid for some good number of processors(1,2,3,4,6,8,12,16,24,32,48 etc).
Recently there are more requests for parallel tests to be valid on some odd number of processes such as 5,7,11,13 etc.
Solution:
I change the array size to be dynamic rather than static. Now the fastest change array size is a function of mpi_size. dim2 = constant *mpi_size. After some tunings, theoretically the above tests should be valid for any number of processors. However, other parallel tests still need to be tuned.
To verify the correctness of these tests, using mpirun -np 5 ./testphdf5 -b cchunk1 at heping.
Platforms tested:
h5committest(shanti is refused to be connected)
at heping, 5 and 7 processes are used to verify the correctness.
Misc. update:
2006-03-23 10:50:09 +08:00
|
|
|
|
2004-11-25 05:13:26 +08:00
|
|
|
/* Dimension sizes of the dataset (on disk) */
|
2019-08-21 04:16:20 +08:00
|
|
|
hsize_t mdim[2]; /* Dimension sizes of the dataset in memory when we
|
|
|
|
* read selection from the dataset on the disk
|
|
|
|
*/
|
2004-11-12 05:08:11 +08:00
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
hsize_t start[2]; /* Start of hyperslab */
|
2004-11-25 05:13:26 +08:00
|
|
|
hsize_t stride[2]; /* Stride of hyperslab */
|
|
|
|
hsize_t count[2]; /* Block count */
|
|
|
|
hsize_t block[2]; /* Block sizes */
|
|
|
|
herr_t ret;
|
|
|
|
|
2020-01-27 23:01:32 +08:00
|
|
|
int i;
|
[svn-r12142] Purpose:
change the array size of collective chunking features of parallel tests.
Description:
Previously array size for collective optimization tests
including
cchunk1,
cchunk2,
cchunk3,
cchunk4,
ccontw,
ccontr,
cschunkw,
cschunkr,
ccchunkw,
ccchunkr
are fixed,
They are only valid for some good number of processors(1,2,3,4,6,8,12,16,24,32,48 etc).
Recently there are more requests for parallel tests to be valid on some odd number of processes such as 5,7,11,13 etc.
Solution:
I change the array size to be dynamic rather than static. Now the fastest change array size is a function of mpi_size. dim2 = constant *mpi_size. After some tunings, theoretically the above tests should be valid for any number of processors. However, other parallel tests still need to be tuned.
To verify the correctness of these tests, using mpirun -np 5 ./testphdf5 -b cchunk1 at heping.
Platforms tested:
h5committest(shanti is refused to be connected)
at heping, 5 and 7 processes are used to verify the correctness.
Misc. update:
2006-03-23 10:50:09 +08:00
|
|
|
|
|
|
|
int *matrix_out;
|
2019-08-21 04:16:20 +08:00
|
|
|
int *matrix_out1; /* Buffer to read from the dataset */
|
[svn-r12142] Purpose:
change the array size of collective chunking features of parallel tests.
Description:
Previously array size for collective optimization tests
including
cchunk1,
cchunk2,
cchunk3,
cchunk4,
ccontw,
ccontr,
cschunkw,
cschunkr,
ccchunkw,
ccchunkr
are fixed,
They are only valid for some good number of processors(1,2,3,4,6,8,12,16,24,32,48 etc).
Recently there are more requests for parallel tests to be valid on some odd number of processes such as 5,7,11,13 etc.
Solution:
I change the array size to be dynamic rather than static. Now the fastest change array size is a function of mpi_size. dim2 = constant *mpi_size. After some tunings, theoretically the above tests should be valid for any number of processors. However, other parallel tests still need to be tuned.
To verify the correctness of these tests, using mpirun -np 5 ./testphdf5 -b cchunk1 at heping.
Platforms tested:
h5committest(shanti is refused to be connected)
at heping, 5 and 7 processes are used to verify the correctness.
Misc. update:
2006-03-23 10:50:09 +08:00
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
int mpi_size,mpi_rank;
|
2004-11-25 05:13:26 +08:00
|
|
|
|
|
|
|
MPI_Comm comm = MPI_COMM_WORLD;
|
|
|
|
MPI_Info info = MPI_INFO_NULL;
|
|
|
|
|
|
|
|
/*set up MPI parameters */
|
|
|
|
MPI_Comm_size(comm,&mpi_size);
|
|
|
|
MPI_Comm_rank(comm,&mpi_rank);
|
2004-11-12 05:08:11 +08:00
|
|
|
|
2004-11-25 05:13:26 +08:00
|
|
|
|
|
|
|
/* Obtain file name */
|
2005-08-14 04:53:35 +08:00
|
|
|
filename = GetTestParameters();
|
[svn-r12142] Purpose:
change the array size of collective chunking features of parallel tests.
Description:
Previously array size for collective optimization tests
including
cchunk1,
cchunk2,
cchunk3,
cchunk4,
ccontw,
ccontr,
cschunkw,
cschunkr,
ccchunkw,
ccchunkr
are fixed,
They are only valid for some good number of processors(1,2,3,4,6,8,12,16,24,32,48 etc).
Recently there are more requests for parallel tests to be valid on some odd number of processes such as 5,7,11,13 etc.
Solution:
I change the array size to be dynamic rather than static. Now the fastest change array size is a function of mpi_size. dim2 = constant *mpi_size. After some tunings, theoretically the above tests should be valid for any number of processors. However, other parallel tests still need to be tuned.
To verify the correctness of these tests, using mpirun -np 5 ./testphdf5 -b cchunk1 at heping.
Platforms tested:
h5committest(shanti is refused to be connected)
at heping, 5 and 7 processes are used to verify the correctness.
Misc. update:
2006-03-23 10:50:09 +08:00
|
|
|
|
|
|
|
|
|
|
|
/* Initialize the buffer */
|
2008-09-16 23:52:51 +08:00
|
|
|
|
[svn-r12142] Purpose:
change the array size of collective chunking features of parallel tests.
Description:
Previously array size for collective optimization tests
including
cchunk1,
cchunk2,
cchunk3,
cchunk4,
ccontw,
ccontr,
cschunkw,
cschunkr,
ccchunkw,
ccchunkr
are fixed,
They are only valid for some good number of processors(1,2,3,4,6,8,12,16,24,32,48 etc).
Recently there are more requests for parallel tests to be valid on some odd number of processes such as 5,7,11,13 etc.
Solution:
I change the array size to be dynamic rather than static. Now the fastest change array size is a function of mpi_size. dim2 = constant *mpi_size. After some tunings, theoretically the above tests should be valid for any number of processors. However, other parallel tests still need to be tuned.
To verify the correctness of these tests, using mpirun -np 5 ./testphdf5 -b cchunk1 at heping.
Platforms tested:
h5committest(shanti is refused to be connected)
at heping, 5 and 7 processes are used to verify the correctness.
Misc. update:
2006-03-23 10:50:09 +08:00
|
|
|
mdim[0] = MSPACE_DIM1;
|
2020-01-24 05:12:00 +08:00
|
|
|
mdim[1] = (hsize_t)(MSPACE_DIM2*mpi_size);
|
|
|
|
matrix_out =(int*)HDmalloc(sizeof(int)*(size_t)MSPACE_DIM1*(size_t)MSPACE_DIM2*(size_t)mpi_size);
|
|
|
|
matrix_out1=(int*)HDmalloc(sizeof(int)*(size_t)MSPACE_DIM1*(size_t)MSPACE_DIM2*(size_t)mpi_size);
|
[svn-r12142] Purpose:
change the array size of collective chunking features of parallel tests.
Description:
Previously array size for collective optimization tests
including
cchunk1,
cchunk2,
cchunk3,
cchunk4,
ccontw,
ccontr,
cschunkw,
cschunkr,
ccchunkw,
ccchunkr
are fixed,
They are only valid for some good number of processors(1,2,3,4,6,8,12,16,24,32,48 etc).
Recently there are more requests for parallel tests to be valid on some odd number of processes such as 5,7,11,13 etc.
Solution:
I change the array size to be dynamic rather than static. Now the fastest change array size is a function of mpi_size. dim2 = constant *mpi_size. After some tunings, theoretically the above tests should be valid for any number of processors. However, other parallel tests still need to be tuned.
To verify the correctness of these tests, using mpirun -np 5 ./testphdf5 -b cchunk1 at heping.
Platforms tested:
h5committest(shanti is refused to be connected)
at heping, 5 and 7 processes are used to verify the correctness.
Misc. update:
2006-03-23 10:50:09 +08:00
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
/*** For testing collective hyperslab selection read ***/
|
2004-11-25 05:13:26 +08:00
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
/* Obtain file access property list */
|
2014-03-22 07:02:24 +08:00
|
|
|
facc_plist = create_faccess_plist(comm, info, facc_type);
|
2005-10-18 23:47:13 +08:00
|
|
|
VRFY((facc_plist >= 0),"");
|
2004-11-25 05:13:26 +08:00
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
/*
|
2004-11-25 05:13:26 +08:00
|
|
|
* Open the file.
|
|
|
|
*/
|
2005-10-18 23:47:13 +08:00
|
|
|
file = H5Fopen(filename, H5F_ACC_RDONLY, facc_plist);
|
2004-11-25 05:13:26 +08:00
|
|
|
VRFY((file >= 0),"H5Fopen succeeded");
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Open the dataset.
|
|
|
|
*/
|
[svn-r14193] Description:
Make H5Dopen versioned and change all internal usage to use H5Dopen2
Add simple regression test for H5Dopen1
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-09 03:59:36 +08:00
|
|
|
dataseti = H5Dopen2(file,"independ_write", H5P_DEFAULT);
|
|
|
|
VRFY((dataseti >= 0),"H5Dopen2 succeeded");
|
2005-08-14 04:53:35 +08:00
|
|
|
|
|
|
|
/*
|
2004-11-25 05:13:26 +08:00
|
|
|
* Get dataspace of the open dataset.
|
|
|
|
*/
|
|
|
|
fspaceid1 = H5Dget_space(dataseti);
|
|
|
|
VRFY((fspaceid1 >= 0),"file dataspace obtained succeeded");
|
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
/* The First selection for FILE to read
|
|
|
|
*
|
|
|
|
* block (1,1)
|
2008-09-16 23:52:51 +08:00
|
|
|
* stride(1.1)
|
2005-10-18 23:47:13 +08:00
|
|
|
* count (3,768/mpi_size)
|
|
|
|
* start (1,2+768*mpi_rank/mpi_size)
|
|
|
|
*
|
|
|
|
*/
|
2005-08-14 04:53:35 +08:00
|
|
|
start[0] = RFFHSTART0;
|
2020-01-24 05:12:00 +08:00
|
|
|
start[1] = (hsize_t)(RFFHSTART1+mpi_rank*RFFHCOUNT1);
|
2005-08-14 04:53:35 +08:00
|
|
|
block[0] = RFFHBLOCK0;
|
2004-11-25 05:13:26 +08:00
|
|
|
block[1] = RFFHBLOCK1;
|
2005-08-14 04:53:35 +08:00
|
|
|
stride[0] = RFFHSTRIDE0;
|
2004-11-25 05:13:26 +08:00
|
|
|
stride[1] = RFFHSTRIDE1;
|
2005-08-14 04:53:35 +08:00
|
|
|
count[0] = RFFHCOUNT0;
|
[svn-r12142] Purpose:
change the array size of collective chunking features of parallel tests.
Description:
Previously array size for collective optimization tests
including
cchunk1,
cchunk2,
cchunk3,
cchunk4,
ccontw,
ccontr,
cschunkw,
cschunkr,
ccchunkw,
ccchunkr
are fixed,
They are only valid for some good number of processors(1,2,3,4,6,8,12,16,24,32,48 etc).
Recently there are more requests for parallel tests to be valid on some odd number of processes such as 5,7,11,13 etc.
Solution:
I change the array size to be dynamic rather than static. Now the fastest change array size is a function of mpi_size. dim2 = constant *mpi_size. After some tunings, theoretically the above tests should be valid for any number of processors. However, other parallel tests still need to be tuned.
To verify the correctness of these tests, using mpirun -np 5 ./testphdf5 -b cchunk1 at heping.
Platforms tested:
h5committest(shanti is refused to be connected)
at heping, 5 and 7 processes are used to verify the correctness.
Misc. update:
2006-03-23 10:50:09 +08:00
|
|
|
count[1] = RFFHCOUNT1;
|
2005-08-14 04:53:35 +08:00
|
|
|
|
2004-11-25 05:13:26 +08:00
|
|
|
ret = H5Sselect_hyperslab(fspaceid1, H5S_SELECT_SET, start, stride, count, block);
|
|
|
|
VRFY((ret >= 0),"hyperslab selection succeeded");
|
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
/* The Second selection for FILE to read
|
|
|
|
*
|
|
|
|
* block (1,1)
|
2008-09-16 23:52:51 +08:00
|
|
|
* stride(1.1)
|
2005-10-18 23:47:13 +08:00
|
|
|
* count (3,1536/mpi_size)
|
|
|
|
* start (2,4+1536*mpi_rank/mpi_size)
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
start[0] = RFSHSTART0;
|
2020-01-24 05:12:00 +08:00
|
|
|
start[1] = (hsize_t)(RFSHSTART1+RFSHCOUNT1*mpi_rank);
|
2005-10-18 23:47:13 +08:00
|
|
|
block[0] = RFSHBLOCK0;
|
|
|
|
block[1] = RFSHBLOCK1;
|
2005-08-14 04:53:35 +08:00
|
|
|
stride[0] = RFSHSTRIDE0;
|
2004-11-25 05:13:26 +08:00
|
|
|
stride[1] = RFSHSTRIDE0;
|
2005-08-14 04:53:35 +08:00
|
|
|
count[0] = RFSHCOUNT0;
|
[svn-r12142] Purpose:
change the array size of collective chunking features of parallel tests.
Description:
Previously array size for collective optimization tests
including
cchunk1,
cchunk2,
cchunk3,
cchunk4,
ccontw,
ccontr,
cschunkw,
cschunkr,
ccchunkw,
ccchunkr
are fixed,
They are only valid for some good number of processors(1,2,3,4,6,8,12,16,24,32,48 etc).
Recently there are more requests for parallel tests to be valid on some odd number of processes such as 5,7,11,13 etc.
Solution:
I change the array size to be dynamic rather than static. Now the fastest change array size is a function of mpi_size. dim2 = constant *mpi_size. After some tunings, theoretically the above tests should be valid for any number of processors. However, other parallel tests still need to be tuned.
To verify the correctness of these tests, using mpirun -np 5 ./testphdf5 -b cchunk1 at heping.
Platforms tested:
h5committest(shanti is refused to be connected)
at heping, 5 and 7 processes are used to verify the correctness.
Misc. update:
2006-03-23 10:50:09 +08:00
|
|
|
count[1] = RFSHCOUNT1;
|
2004-11-25 05:13:26 +08:00
|
|
|
|
|
|
|
ret = H5Sselect_hyperslab(fspaceid1, H5S_SELECT_OR, start, stride, count, block);
|
|
|
|
VRFY((ret >= 0),"hyperslab selection succeeded");
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Create memory dataspace.
|
|
|
|
*/
|
|
|
|
mspaceid = H5Screate_simple(MSPACE_RANK, mdim, NULL);
|
|
|
|
|
2005-08-14 04:53:35 +08:00
|
|
|
/*
|
2004-11-25 05:13:26 +08:00
|
|
|
* Select two hyperslabs in memory. Hyperslabs has the same
|
|
|
|
* size and shape as the selected hyperslabs for the file dataspace.
|
2005-10-18 23:47:13 +08:00
|
|
|
* Only the starting point is different.
|
|
|
|
* The first selection
|
|
|
|
* block (1,1)
|
2008-09-16 23:52:51 +08:00
|
|
|
* stride(1.1)
|
2005-10-18 23:47:13 +08:00
|
|
|
* count (3,768/mpi_size)
|
|
|
|
* start (0,768*mpi_rank/mpi_size)
|
|
|
|
*
|
2004-11-25 05:13:26 +08:00
|
|
|
*/
|
|
|
|
|
2005-08-14 04:53:35 +08:00
|
|
|
start[0] = RMFHSTART0;
|
2020-01-24 05:12:00 +08:00
|
|
|
start[1] = (hsize_t)(RMFHSTART1+mpi_rank*RMFHCOUNT1);
|
2005-08-14 04:53:35 +08:00
|
|
|
block[0] = RMFHBLOCK0;
|
2004-11-25 05:13:26 +08:00
|
|
|
block[1] = RMFHBLOCK1;
|
2005-08-14 04:53:35 +08:00
|
|
|
stride[0] = RMFHSTRIDE0;
|
2004-11-25 05:13:26 +08:00
|
|
|
stride[1] = RMFHSTRIDE1;
|
2005-08-14 04:53:35 +08:00
|
|
|
count[0] = RMFHCOUNT0;
|
[svn-r12142] Purpose:
change the array size of collective chunking features of parallel tests.
Description:
Previously array size for collective optimization tests
including
cchunk1,
cchunk2,
cchunk3,
cchunk4,
ccontw,
ccontr,
cschunkw,
cschunkr,
ccchunkw,
ccchunkr
are fixed,
They are only valid for some good number of processors(1,2,3,4,6,8,12,16,24,32,48 etc).
Recently there are more requests for parallel tests to be valid on some odd number of processes such as 5,7,11,13 etc.
Solution:
I change the array size to be dynamic rather than static. Now the fastest change array size is a function of mpi_size. dim2 = constant *mpi_size. After some tunings, theoretically the above tests should be valid for any number of processors. However, other parallel tests still need to be tuned.
To verify the correctness of these tests, using mpirun -np 5 ./testphdf5 -b cchunk1 at heping.
Platforms tested:
h5committest(shanti is refused to be connected)
at heping, 5 and 7 processes are used to verify the correctness.
Misc. update:
2006-03-23 10:50:09 +08:00
|
|
|
count[1] = RMFHCOUNT1;
|
2004-11-25 05:13:26 +08:00
|
|
|
ret = H5Sselect_hyperslab(mspaceid, H5S_SELECT_SET, start, stride, count, block);
|
|
|
|
VRFY((ret >= 0),"hyperslab selection succeeded");
|
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
/*
|
|
|
|
* Select two hyperslabs in memory. Hyperslabs has the same
|
|
|
|
* size and shape as the selected hyperslabs for the file dataspace
|
|
|
|
* Only the starting point is different.
|
|
|
|
* The second selection
|
|
|
|
* block (1,1)
|
2008-09-16 23:52:51 +08:00
|
|
|
* stride(1,1)
|
2005-10-18 23:47:13 +08:00
|
|
|
* count (3,1536/mpi_size)
|
|
|
|
* start (1,2+1536*mpi_rank/mpi_size)
|
|
|
|
*
|
|
|
|
*/
|
2005-08-14 04:53:35 +08:00
|
|
|
start[0] = RMSHSTART0;
|
2020-01-24 05:12:00 +08:00
|
|
|
start[1] = (hsize_t)(RMSHSTART1+mpi_rank*RMSHCOUNT1);
|
2005-08-14 04:53:35 +08:00
|
|
|
block[0] = RMSHBLOCK0;
|
2004-11-25 05:13:26 +08:00
|
|
|
block[1] = RMSHBLOCK1;
|
2005-08-14 04:53:35 +08:00
|
|
|
stride[0] = RMSHSTRIDE0;
|
2004-11-25 05:13:26 +08:00
|
|
|
stride[1] = RMSHSTRIDE1;
|
2005-08-14 04:53:35 +08:00
|
|
|
count[0] = RMSHCOUNT0;
|
[svn-r12142] Purpose:
change the array size of collective chunking features of parallel tests.
Description:
Previously array size for collective optimization tests
including
cchunk1,
cchunk2,
cchunk3,
cchunk4,
ccontw,
ccontr,
cschunkw,
cschunkr,
ccchunkw,
ccchunkr
are fixed,
They are only valid for some good number of processors(1,2,3,4,6,8,12,16,24,32,48 etc).
Recently there are more requests for parallel tests to be valid on some odd number of processes such as 5,7,11,13 etc.
Solution:
I change the array size to be dynamic rather than static. Now the fastest change array size is a function of mpi_size. dim2 = constant *mpi_size. After some tunings, theoretically the above tests should be valid for any number of processors. However, other parallel tests still need to be tuned.
To verify the correctness of these tests, using mpirun -np 5 ./testphdf5 -b cchunk1 at heping.
Platforms tested:
h5committest(shanti is refused to be connected)
at heping, 5 and 7 processes are used to verify the correctness.
Misc. update:
2006-03-23 10:50:09 +08:00
|
|
|
count[1] = RMSHCOUNT1;
|
2004-11-25 05:13:26 +08:00
|
|
|
ret = H5Sselect_hyperslab(mspaceid, H5S_SELECT_OR, start, stride, count, block);
|
2005-08-14 04:53:35 +08:00
|
|
|
VRFY((ret >= 0),"hyperslab selection succeeded");
|
2004-11-25 05:13:26 +08:00
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
|
2005-08-14 04:53:35 +08:00
|
|
|
/*
|
2004-11-25 05:13:26 +08:00
|
|
|
* Initialize data buffer.
|
|
|
|
*/
|
2005-10-18 23:47:13 +08:00
|
|
|
|
2020-01-24 05:12:00 +08:00
|
|
|
HDmemset(matrix_out,0,sizeof(int)*(size_t)MSPACE_DIM1*(size_t)MSPACE_DIM2*(size_t)mpi_size);
|
|
|
|
HDmemset(matrix_out1,0,sizeof(int)*(size_t)MSPACE_DIM1*(size_t)MSPACE_DIM2*(size_t)mpi_size);
|
2005-08-14 04:53:35 +08:00
|
|
|
|
2004-11-25 05:13:26 +08:00
|
|
|
/*
|
|
|
|
* Read data back to the buffer matrix_out.
|
|
|
|
*/
|
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
dxfer_plist = H5Pcreate(H5P_DATASET_XFER);
|
|
|
|
VRFY((dxfer_plist >= 0),"");
|
2004-11-25 05:13:26 +08:00
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
ret = H5Pset_dxpl_mpio(dxfer_plist, H5FD_MPIO_COLLECTIVE);
|
2005-08-14 04:53:35 +08:00
|
|
|
VRFY((ret >= 0),"MPIO data transfer property list succeed");
|
2006-08-09 11:16:07 +08:00
|
|
|
if(dxfer_coll_type == DXFER_INDEPENDENT_IO) {
|
|
|
|
ret = H5Pset_dxpl_mpio_collective_opt(dxfer_plist,H5FD_MPIO_INDIVIDUAL_IO);
|
|
|
|
VRFY((ret>= 0),"set independent IO collectively succeeded");
|
|
|
|
}
|
|
|
|
|
2004-11-25 05:13:26 +08:00
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
/* Collective read */
|
|
|
|
ret = H5Dread(dataseti, H5T_NATIVE_INT, mspaceid, fspaceid1,
|
2018-02-15 00:08:09 +08:00
|
|
|
dxfer_plist, matrix_out);
|
2005-10-18 23:47:13 +08:00
|
|
|
VRFY((ret >= 0),"H5D collecive read succeed");
|
2004-11-25 05:13:26 +08:00
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
ret = H5Pclose(dxfer_plist);
|
2005-08-14 04:53:35 +08:00
|
|
|
VRFY((ret >= 0),"");
|
|
|
|
|
2005-10-18 23:47:13 +08:00
|
|
|
/* Independent read */
|
2004-11-25 05:13:26 +08:00
|
|
|
ret = H5Dread(dataseti, H5T_NATIVE_INT, mspaceid, fspaceid1,
|
2018-02-15 00:08:09 +08:00
|
|
|
H5P_DEFAULT, matrix_out1);
|
2005-08-14 04:53:35 +08:00
|
|
|
VRFY((ret >= 0),"H5D independent read succeed");
|
2005-10-18 23:47:13 +08:00
|
|
|
|
2004-11-25 05:13:26 +08:00
|
|
|
ret = 0;
|
[svn-r12142] Purpose:
change the array size of collective chunking features of parallel tests.
Description:
Previously array size for collective optimization tests
including
cchunk1,
cchunk2,
cchunk3,
cchunk4,
ccontw,
ccontr,
cschunkw,
cschunkr,
ccchunkw,
ccchunkr
are fixed,
They are only valid for some good number of processors(1,2,3,4,6,8,12,16,24,32,48 etc).
Recently there are more requests for parallel tests to be valid on some odd number of processes such as 5,7,11,13 etc.
Solution:
I change the array size to be dynamic rather than static. Now the fastest change array size is a function of mpi_size. dim2 = constant *mpi_size. After some tunings, theoretically the above tests should be valid for any number of processors. However, other parallel tests still need to be tuned.
To verify the correctness of these tests, using mpirun -np 5 ./testphdf5 -b cchunk1 at heping.
Platforms tested:
h5committest(shanti is refused to be connected)
at heping, 5 and 7 processes are used to verify the correctness.
Misc. update:
2006-03-23 10:50:09 +08:00
|
|
|
for (i = 0; i < MSPACE_DIM1*MSPACE_DIM2*mpi_size; i++){
|
|
|
|
if(matrix_out[i]!=matrix_out1[i])ret = -1;
|
2004-11-25 05:13:26 +08:00
|
|
|
if(ret < 0) break;
|
|
|
|
}
|
2005-08-14 04:53:35 +08:00
|
|
|
VRFY((ret >= 0),"H5D contiguous irregular collective read succeed");
|
2004-11-25 05:13:26 +08:00
|
|
|
|
2020-04-10 03:23:50 +08:00
|
|
|
/*
|
|
|
|
* Free read buffers.
|
|
|
|
*/
|
|
|
|
HDfree(matrix_out);
|
|
|
|
HDfree(matrix_out1);
|
|
|
|
|
2004-11-25 05:13:26 +08:00
|
|
|
/*
|
|
|
|
* Close memory file and memory dataspaces.
|
2005-08-14 04:53:35 +08:00
|
|
|
*/
|
2004-11-25 05:13:26 +08:00
|
|
|
ret = H5Sclose(mspaceid);
|
2005-08-14 04:53:35 +08:00
|
|
|
VRFY((ret >= 0),"");
|
2004-11-25 05:13:26 +08:00
|
|
|
ret = H5Sclose(fspaceid1);
|
2005-08-14 04:53:35 +08:00
|
|
|
VRFY((ret >= 0),"");
|
|
|
|
|
2004-11-25 05:13:26 +08:00
|
|
|
/*
|
|
|
|
* Close dataset.
|
2005-08-14 04:53:35 +08:00
|
|
|
*/
|
2004-11-25 05:13:26 +08:00
|
|
|
ret = H5Dclose(dataseti);
|
2005-08-14 04:53:35 +08:00
|
|
|
VRFY((ret >= 0),"");
|
2005-10-18 23:47:13 +08:00
|
|
|
|
2004-11-25 05:13:26 +08:00
|
|
|
/*
|
|
|
|
* Close property list
|
|
|
|
*/
|
2005-10-18 23:47:13 +08:00
|
|
|
ret = H5Pclose(facc_plist);
|
2005-08-14 04:53:35 +08:00
|
|
|
VRFY((ret >= 0),"");
|
|
|
|
|
2004-11-25 05:13:26 +08:00
|
|
|
|
|
|
|
/*
|
|
|
|
* Close the file.
|
2005-08-14 04:53:35 +08:00
|
|
|
*/
|
2004-11-25 05:13:26 +08:00
|
|
|
ret = H5Fclose(file);
|
2005-08-14 04:53:35 +08:00
|
|
|
VRFY((ret >= 0),"");
|
2004-11-25 05:13:26 +08:00
|
|
|
|
2019-08-21 04:16:20 +08:00
|
|
|
return;
|
2004-11-12 05:08:11 +08:00
|
|
|
}
|
2009-03-11 03:00:39 +08:00
|
|
|
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
|
|
|
|
/****************************************************************
|
|
|
|
**
|
2018-02-15 00:08:09 +08:00
|
|
|
** lower_dim_size_comp_test__select_checker_board():
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
**
|
2019-07-31 04:34:53 +08:00
|
|
|
** Given a dataspace of tgt_rank, and dimensions:
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
**
|
2018-02-15 00:08:09 +08:00
|
|
|
** (mpi_size + 1), edge_size, ... , edge_size
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
**
|
2018-02-15 00:08:09 +08:00
|
|
|
** edge_size, and a checker_edge_size, select a checker
|
|
|
|
** board selection of a sel_rank (sel_rank < tgt_rank)
|
2019-07-31 04:34:53 +08:00
|
|
|
** dimensional slice through the dataspace parallel to the
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
** sel_rank fastest changing indicies, with origin (in the
|
2018-02-15 00:08:09 +08:00
|
|
|
** higher indicies) as indicated by the start array.
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
**
|
2018-02-15 00:08:09 +08:00
|
|
|
** Note that this function, is hard coded to presume a
|
2019-07-31 04:34:53 +08:00
|
|
|
** maximum dataspace rank of 5.
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
**
|
2018-02-15 00:08:09 +08:00
|
|
|
** While this maximum is declared as a constant, increasing
|
|
|
|
** it will require extensive coding in addition to changing
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
** the value of the constant.
|
|
|
|
**
|
2018-02-15 00:08:09 +08:00
|
|
|
** JRM -- 11/11/09
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
**
|
|
|
|
****************************************************************/
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
#define LDSCT_DS_RANK 5
|
2019-12-07 02:03:19 +08:00
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
#define LOWER_DIM_SIZE_COMP_TEST_DEBUG_TARGET_RANK 0
|
2019-12-07 02:03:19 +08:00
|
|
|
#endif
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
|
|
|
|
#define LOWER_DIM_SIZE_COMP_TEST__SELECT_CHECKER_BOARD__DEBUG 0
|
|
|
|
|
|
|
|
static void
|
|
|
|
lower_dim_size_comp_test__select_checker_board(
|
|
|
|
const int mpi_rank,
|
|
|
|
const hid_t tgt_sid,
|
|
|
|
const int tgt_rank,
|
|
|
|
const hsize_t dims[LDSCT_DS_RANK],
|
|
|
|
const int checker_edge_size,
|
|
|
|
const int sel_rank,
|
|
|
|
hsize_t sel_start[])
|
|
|
|
{
|
2018-02-15 00:08:09 +08:00
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__SELECT_CHECKER_BOARD__DEBUG
|
|
|
|
const char * fcnName =
|
|
|
|
"lower_dim_size_comp_test__select_checker_board():";
|
|
|
|
#endif
|
|
|
|
hbool_t first_selection = TRUE;
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
int i, j, k, l, m;
|
2018-02-15 00:08:09 +08:00
|
|
|
int ds_offset;
|
|
|
|
int sel_offset;
|
|
|
|
const int test_max_rank = LDSCT_DS_RANK; /* must update code if */
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
/* this changes */
|
2018-02-15 00:08:09 +08:00
|
|
|
hsize_t base_count;
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
hsize_t offset_count;
|
2018-02-15 00:08:09 +08:00
|
|
|
hsize_t start[LDSCT_DS_RANK];
|
|
|
|
hsize_t stride[LDSCT_DS_RANK];
|
|
|
|
hsize_t count[LDSCT_DS_RANK];
|
|
|
|
hsize_t block[LDSCT_DS_RANK];
|
|
|
|
herr_t ret; /* Generic return value */
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__SELECT_CHECKER_BOARD__DEBUG
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
if ( mpi_rank == LOWER_DIM_SIZE_COMP_TEST_DEBUG_TARGET_RANK ) {
|
2018-02-15 00:08:09 +08:00
|
|
|
HDfprintf(stdout,
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
"%s:%d: dims/checker_edge_size = %d %d %d %d %d / %d\n",
|
|
|
|
fcnName, mpi_rank, (int)dims[0], (int)dims[1], (int)dims[2],
|
|
|
|
(int)dims[3], (int)dims[4], checker_edge_size);
|
|
|
|
}
|
2018-02-15 00:08:09 +08:00
|
|
|
#endif /* LOWER_DIM_SIZE_COMP_TEST__SELECT_CHECKER_BOARD__DEBUG */
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
|
|
|
|
HDassert( 0 < checker_edge_size );
|
|
|
|
HDassert( 0 < sel_rank );
|
|
|
|
HDassert( sel_rank <= tgt_rank );
|
|
|
|
HDassert( tgt_rank <= test_max_rank );
|
|
|
|
HDassert( test_max_rank <= LDSCT_DS_RANK );
|
|
|
|
|
|
|
|
sel_offset = test_max_rank - sel_rank;
|
|
|
|
HDassert( sel_offset >= 0 );
|
|
|
|
|
|
|
|
ds_offset = test_max_rank - tgt_rank;
|
|
|
|
HDassert( ds_offset >= 0 );
|
|
|
|
HDassert( ds_offset <= sel_offset );
|
|
|
|
|
|
|
|
HDassert( (hsize_t)checker_edge_size <= dims[sel_offset] );
|
|
|
|
HDassert( dims[sel_offset] == 10 );
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__SELECT_CHECKER_BOARD__DEBUG
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
if ( mpi_rank == LOWER_DIM_SIZE_COMP_TEST_DEBUG_TARGET_RANK ) {
|
2018-02-15 00:08:09 +08:00
|
|
|
HDfprintf(stdout, "%s:%d: sel_rank/sel_offset = %d/%d.\n",
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
fcnName, mpi_rank, sel_rank, sel_offset);
|
2018-02-15 00:08:09 +08:00
|
|
|
HDfprintf(stdout, "%s:%d: tgt_rank/ds_offset = %d/%d.\n",
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
fcnName, mpi_rank, tgt_rank, ds_offset);
|
|
|
|
}
|
2018-02-15 00:08:09 +08:00
|
|
|
#endif /* LOWER_DIM_SIZE_COMP_TEST__SELECT_CHECKER_BOARD__DEBUG */
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
|
|
|
|
/* First, compute the base count (which assumes start == 0
|
|
|
|
* for the associated offset) and offset_count (which
|
|
|
|
* assumes start == checker_edge_size for the associated
|
|
|
|
* offset).
|
|
|
|
*
|
|
|
|
* Note that the following computation depends on the C99
|
|
|
|
* requirement that integer division discard any fraction
|
|
|
|
* (truncation towards zero) to function correctly. As we
|
|
|
|
* now require C99, this shouldn't be a problem, but noting
|
|
|
|
* it may save us some pain if we are ever obliged to support
|
|
|
|
* pre-C99 compilers again.
|
|
|
|
*/
|
|
|
|
|
2020-01-24 05:12:00 +08:00
|
|
|
base_count = dims[sel_offset] / (hsize_t)(checker_edge_size * 2);
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
|
2020-01-24 05:12:00 +08:00
|
|
|
if ( (dims[sel_rank] % (hsize_t)(checker_edge_size * 2)) > 0 ) {
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
|
|
|
|
base_count++;
|
|
|
|
}
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
offset_count =
|
|
|
|
(hsize_t)((dims[sel_offset] - (hsize_t)checker_edge_size) /
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
((hsize_t)(checker_edge_size * 2)));
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
if ( ((dims[sel_rank] - (hsize_t)checker_edge_size) %
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
((hsize_t)(checker_edge_size * 2))) > 0 ) {
|
|
|
|
|
|
|
|
offset_count++;
|
|
|
|
}
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__SELECT_CHECKER_BOARD__DEBUG
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
if ( mpi_rank == LOWER_DIM_SIZE_COMP_TEST_DEBUG_TARGET_RANK ) {
|
2018-02-15 00:08:09 +08:00
|
|
|
HDfprintf(stdout, "%s:%d: base_count/offset_count = %d/%d.\n",
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
fcnName, mpi_rank, base_count, offset_count);
|
|
|
|
}
|
2018-02-15 00:08:09 +08:00
|
|
|
#endif /* LOWER_DIM_SIZE_COMP_TEST__SELECT_CHECKER_BOARD__DEBUG */
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
|
|
|
|
/* Now set up the stride and block arrays, and portions of the start
|
2018-02-15 00:08:09 +08:00
|
|
|
* and count arrays that will not be altered during the selection of
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
* the checker board.
|
|
|
|
*/
|
|
|
|
i = 0;
|
|
|
|
while ( i < ds_offset ) {
|
|
|
|
|
|
|
|
/* these values should never be used */
|
|
|
|
start[i] = 0;
|
|
|
|
stride[i] = 0;
|
|
|
|
count[i] = 0;
|
|
|
|
block[i] = 0;
|
|
|
|
|
|
|
|
i++;
|
|
|
|
}
|
|
|
|
|
|
|
|
while ( i < sel_offset ) {
|
|
|
|
|
|
|
|
start[i] = sel_start[i];
|
|
|
|
stride[i] = 2 * dims[i];
|
|
|
|
count[i] = 1;
|
|
|
|
block[i] = 1;
|
|
|
|
|
|
|
|
i++;
|
|
|
|
}
|
|
|
|
|
|
|
|
while ( i < test_max_rank ) {
|
|
|
|
|
|
|
|
stride[i] = (hsize_t)(2 * checker_edge_size);
|
|
|
|
block[i] = (hsize_t)checker_edge_size;
|
|
|
|
|
|
|
|
i++;
|
|
|
|
}
|
2018-02-15 00:08:09 +08:00
|
|
|
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
i = 0;
|
|
|
|
do {
|
|
|
|
if ( 0 >= sel_offset ) {
|
|
|
|
|
|
|
|
if ( i == 0 ) {
|
|
|
|
|
|
|
|
start[0] = 0;
|
|
|
|
count[0] = base_count;
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
start[0] = (hsize_t)checker_edge_size;
|
|
|
|
count[0] = offset_count;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
j = 0;
|
2018-02-15 00:08:09 +08:00
|
|
|
do {
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
if ( 1 >= sel_offset ) {
|
|
|
|
|
|
|
|
if ( j == 0 ) {
|
|
|
|
|
|
|
|
start[1] = 0;
|
|
|
|
count[1] = base_count;
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
start[1] = (hsize_t)checker_edge_size;
|
|
|
|
count[1] = offset_count;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
k = 0;
|
|
|
|
do {
|
|
|
|
if ( 2 >= sel_offset ) {
|
|
|
|
|
|
|
|
if ( k == 0 ) {
|
|
|
|
|
|
|
|
start[2] = 0;
|
|
|
|
count[2] = base_count;
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
start[2] = (hsize_t)checker_edge_size;
|
|
|
|
count[2] = offset_count;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
l = 0;
|
|
|
|
do {
|
|
|
|
if ( 3 >= sel_offset ) {
|
|
|
|
|
|
|
|
if ( l == 0 ) {
|
|
|
|
|
|
|
|
start[3] = 0;
|
|
|
|
count[3] = base_count;
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
start[3] = (hsize_t)checker_edge_size;
|
|
|
|
count[3] = offset_count;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
m = 0;
|
|
|
|
do {
|
|
|
|
if ( 4 >= sel_offset ) {
|
|
|
|
|
|
|
|
if ( m == 0 ) {
|
|
|
|
|
|
|
|
start[4] = 0;
|
|
|
|
count[4] = base_count;
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
start[4] = (hsize_t)checker_edge_size;
|
|
|
|
count[4] = offset_count;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if ( ((i + j + k + l + m) % 2) == 0 ) {
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__SELECT_CHECKER_BOARD__DEBUG
|
|
|
|
if ( mpi_rank ==
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
LOWER_DIM_SIZE_COMP_TEST_DEBUG_TARGET_RANK ) {
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
HDfprintf(stdout,
|
|
|
|
"%s%d: *** first_selection = %d ***\n",
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
fcnName, mpi_rank, (int)first_selection);
|
2018-02-15 00:08:09 +08:00
|
|
|
HDfprintf(stdout,
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
"%s:%d: i/j/k/l/m = %d/%d/%d/%d/%d\n",
|
|
|
|
fcnName, mpi_rank, i, j, k, l, m);
|
2018-02-15 00:08:09 +08:00
|
|
|
HDfprintf(stdout,
|
|
|
|
"%s:%d: start = %d %d %d %d %d.\n",
|
|
|
|
fcnName, mpi_rank,
|
|
|
|
(int)start[0], (int)start[1],
|
|
|
|
(int)start[2], (int)start[3],
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
(int)start[4]);
|
2018-02-15 00:08:09 +08:00
|
|
|
HDfprintf(stdout,
|
|
|
|
"%s:%d: stride = %d %d %d %d %d.\n",
|
|
|
|
fcnName, mpi_rank,
|
|
|
|
(int)stride[0], (int)stride[1],
|
|
|
|
(int)stride[2], (int)stride[3],
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
(int)stride[4]);
|
2018-02-15 00:08:09 +08:00
|
|
|
HDfprintf(stdout,
|
|
|
|
"%s:%d: count = %d %d %d %d %d.\n",
|
|
|
|
fcnName, mpi_rank,
|
|
|
|
(int)count[0], (int)count[1],
|
|
|
|
(int)count[2], (int)count[3],
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
(int)count[4]);
|
2018-02-15 00:08:09 +08:00
|
|
|
HDfprintf(stdout,
|
|
|
|
"%s:%d: block = %d %d %d %d %d.\n",
|
|
|
|
fcnName, mpi_rank,
|
|
|
|
(int)block[0], (int)block[1],
|
|
|
|
(int)block[2], (int)block[3],
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
(int)block[4]);
|
2018-02-15 00:08:09 +08:00
|
|
|
HDfprintf(stdout,
|
|
|
|
"%s:%d: n-cube extent dims = %d.\n",
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
fcnName, mpi_rank,
|
|
|
|
H5Sget_simple_extent_ndims(tgt_sid));
|
2018-02-15 00:08:09 +08:00
|
|
|
HDfprintf(stdout,
|
|
|
|
"%s:%d: selection rank = %d.\n",
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
fcnName, mpi_rank, sel_rank);
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
if ( first_selection ) {
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
first_selection = FALSE;
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
|
|
|
|
ret = H5Sselect_hyperslab
|
|
|
|
(
|
2018-02-15 00:08:09 +08:00
|
|
|
tgt_sid,
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
H5S_SELECT_SET,
|
2018-02-15 00:08:09 +08:00
|
|
|
&(start[ds_offset]),
|
|
|
|
&(stride[ds_offset]),
|
|
|
|
&(count[ds_offset]),
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
&(block[ds_offset])
|
|
|
|
);
|
2018-02-15 00:08:09 +08:00
|
|
|
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
VRFY((ret != FAIL), "H5Sselect_hyperslab(SET) succeeded");
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
ret = H5Sselect_hyperslab
|
|
|
|
(
|
2018-02-15 00:08:09 +08:00
|
|
|
tgt_sid,
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
H5S_SELECT_OR,
|
2018-02-15 00:08:09 +08:00
|
|
|
&(start[ds_offset]),
|
|
|
|
&(stride[ds_offset]),
|
|
|
|
&(count[ds_offset]),
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
&(block[ds_offset])
|
|
|
|
);
|
2018-02-15 00:08:09 +08:00
|
|
|
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
VRFY((ret != FAIL), "H5Sselect_hyperslab(OR) succeeded");
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
m++;
|
|
|
|
|
|
|
|
} while ( ( m <= 1 ) &&
|
|
|
|
( 4 >= sel_offset ) );
|
|
|
|
|
|
|
|
l++;
|
|
|
|
|
|
|
|
} while ( ( l <= 1 ) &&
|
|
|
|
( 3 >= sel_offset ) );
|
|
|
|
|
|
|
|
k++;
|
|
|
|
|
|
|
|
} while ( ( k <= 1 ) &&
|
|
|
|
( 2 >= sel_offset ) );
|
|
|
|
|
|
|
|
j++;
|
|
|
|
|
|
|
|
} while ( ( j <= 1 ) &&
|
|
|
|
( 1 >= sel_offset ) );
|
|
|
|
|
|
|
|
|
|
|
|
i++;
|
|
|
|
|
|
|
|
} while ( ( i <= 1 ) &&
|
|
|
|
( 0 >= sel_offset ) );
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__SELECT_CHECKER_BOARD__DEBUG
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
if ( mpi_rank == LOWER_DIM_SIZE_COMP_TEST_DEBUG_TARGET_RANK ) {
|
|
|
|
HDfprintf(stdout, "%s%d: H5Sget_select_npoints(tgt_sid) = %d.\n",
|
|
|
|
fcnName, mpi_rank, (int)H5Sget_select_npoints(tgt_sid));
|
|
|
|
}
|
|
|
|
#endif /* LOWER_DIM_SIZE_COMP_TEST__SELECT_CHECKER_BOARD__DEBUG */
|
|
|
|
|
2019-07-31 04:34:53 +08:00
|
|
|
/* Clip the selection back to the dataspace proper. */
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
|
|
|
|
for ( i = 0; i < test_max_rank; i++ ) {
|
|
|
|
|
|
|
|
start[i] = 0;
|
|
|
|
stride[i] = dims[i];
|
|
|
|
count[i] = 1;
|
|
|
|
block[i] = dims[i];
|
|
|
|
}
|
|
|
|
|
|
|
|
ret = H5Sselect_hyperslab(tgt_sid, H5S_SELECT_AND,
|
|
|
|
start, stride, count, block);
|
|
|
|
|
|
|
|
VRFY((ret != FAIL), "H5Sselect_hyperslab(AND) succeeded");
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__SELECT_CHECKER_BOARD__DEBUG
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
if ( mpi_rank == LOWER_DIM_SIZE_COMP_TEST_DEBUG_TARGET_RANK ) {
|
|
|
|
HDfprintf(stdout, "%s%d: H5Sget_select_npoints(tgt_sid) = %d.\n",
|
|
|
|
fcnName, mpi_rank, (int)H5Sget_select_npoints(tgt_sid));
|
|
|
|
HDfprintf(stdout, "%s%d: done.\n", fcnName, mpi_rank);
|
|
|
|
}
|
|
|
|
#endif /* LOWER_DIM_SIZE_COMP_TEST__SELECT_CHECKER_BOARD__DEBUG */
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
} /* lower_dim_size_comp_test__select_checker_board() */
|
|
|
|
|
|
|
|
|
|
|
|
/****************************************************************
|
|
|
|
**
|
2018-02-15 00:08:09 +08:00
|
|
|
** lower_dim_size_comp_test__verify_data():
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
**
|
2018-02-15 00:08:09 +08:00
|
|
|
** Examine the supplied buffer to see if it contains the
|
|
|
|
** expected data. Return TRUE if it does, and FALSE
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
** otherwise.
|
|
|
|
**
|
2018-02-15 00:08:09 +08:00
|
|
|
** The supplied buffer is presumed to this process's slice
|
|
|
|
** of the target data set. Each such slice will be an
|
|
|
|
** n-cube of rank (rank -1) and the supplied edge_size with
|
|
|
|
** origin (mpi_rank, 0, ... , 0) in the target data set.
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
**
|
2018-02-15 00:08:09 +08:00
|
|
|
** Further, the buffer is presumed to be the result of reading
|
|
|
|
** or writing a checker board selection of an m (1 <= m <
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
** rank) dimensional slice through this processes slice
|
2018-02-15 00:08:09 +08:00
|
|
|
** of the target data set. Also, this slice must be parallel
|
|
|
|
** to the fastest changing indicies.
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
**
|
2018-02-15 00:08:09 +08:00
|
|
|
** It is further presumed that the buffer was zeroed before
|
|
|
|
** the read/write, and that the full target data set (i.e.
|
|
|
|
** the buffer/data set for all processes) was initialized
|
|
|
|
** with the natural numbers listed in order from the origin
|
|
|
|
** along the fastest changing axis.
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
**
|
|
|
|
** Thus for a 20x10x10 dataset, the value stored in location
|
2018-02-15 00:08:09 +08:00
|
|
|
** (x, y, z) (assuming that z is the fastest changing index
|
|
|
|
** and x the slowest) is assumed to be:
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
**
|
2018-02-15 00:08:09 +08:00
|
|
|
** (10 * 10 * x) + (10 * y) + z
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
**
|
2018-02-15 00:08:09 +08:00
|
|
|
** Further, supposing that this is process 10, this process's
|
|
|
|
** slice of the dataset would be a 10 x 10 2-cube with origin
|
|
|
|
** (10, 0, 0) in the data set, and would be initialize (prior
|
|
|
|
** to the checkerboard selection) as follows:
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
**
|
2018-02-15 00:08:09 +08:00
|
|
|
** 1000, 1001, 1002, ... 1008, 1009
|
|
|
|
** 1010, 1011, 1012, ... 1018, 1019
|
|
|
|
** . . . . .
|
|
|
|
** . . . . .
|
|
|
|
** . . . . .
|
|
|
|
** 1090, 1091, 1092, ... 1098, 1099
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
**
|
2018-02-15 00:08:09 +08:00
|
|
|
** In the case of a read from the processors slice of another
|
|
|
|
** data set of different rank, the values expected will have
|
|
|
|
** to be adjusted accordingly. This is done via the
|
|
|
|
** first_expected_val parameter.
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
**
|
2018-02-15 00:08:09 +08:00
|
|
|
** Finally, the function presumes that the first element
|
|
|
|
** of the buffer resides either at the origin of either
|
|
|
|
** a selected or an unselected checker. (Translation:
|
|
|
|
** if partial checkers appear in the buffer, they will
|
|
|
|
** intersect the edges of the n-cube oposite the origin.)
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
**
|
|
|
|
****************************************************************/
|
|
|
|
|
|
|
|
#define LOWER_DIM_SIZE_COMP_TEST__VERIFY_DATA__DEBUG 0
|
|
|
|
|
|
|
|
static hbool_t
|
|
|
|
lower_dim_size_comp_test__verify_data(uint32_t * buf_ptr,
|
2018-02-15 00:08:09 +08:00
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__VERIFY_DATA__DEBUG
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
const int mpi_rank,
|
|
|
|
#endif /* LOWER_DIM_SIZE_COMP_TEST__VERIFY_DATA__DEBUG */
|
|
|
|
const int rank,
|
|
|
|
const int edge_size,
|
|
|
|
const int checker_edge_size,
|
|
|
|
uint32_t first_expected_val,
|
|
|
|
hbool_t buf_starts_in_checker)
|
|
|
|
{
|
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__VERIFY_DATA__DEBUG
|
2018-02-15 00:08:09 +08:00
|
|
|
const char * fcnName =
|
|
|
|
"lower_dim_size_comp_test__verify_data():";
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
#endif
|
|
|
|
hbool_t good_data = TRUE;
|
|
|
|
hbool_t in_checker;
|
|
|
|
hbool_t start_in_checker[5];
|
|
|
|
uint32_t expected_value;
|
|
|
|
uint32_t * val_ptr;
|
|
|
|
int i, j, k, l, m; /* to track position in n-cube */
|
|
|
|
int v, w, x, y, z; /* to track position in checker */
|
|
|
|
const int test_max_rank = 5; /* code changes needed if this is increased */
|
|
|
|
|
|
|
|
HDassert( buf_ptr != NULL );
|
|
|
|
HDassert( 0 < rank );
|
|
|
|
HDassert( rank <= test_max_rank );
|
|
|
|
HDassert( edge_size >= 6 );
|
|
|
|
HDassert( 0 < checker_edge_size );
|
|
|
|
HDassert( checker_edge_size <= edge_size );
|
|
|
|
HDassert( test_max_rank <= LDSCT_DS_RANK );
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__VERIFY_DATA__DEBUG
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
if ( mpi_rank == LOWER_DIM_SIZE_COMP_TEST_DEBUG_TARGET_RANK ) {
|
|
|
|
HDfprintf(stdout, "%s mpi_rank = %d.\n", fcnName, mpi_rank);
|
|
|
|
HDfprintf(stdout, "%s rank = %d.\n", fcnName, rank);
|
|
|
|
HDfprintf(stdout, "%s edge_size = %d.\n", fcnName, edge_size);
|
2018-02-15 00:08:09 +08:00
|
|
|
HDfprintf(stdout, "%s checker_edge_size = %d.\n",
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
fcnName, checker_edge_size);
|
2018-02-15 00:08:09 +08:00
|
|
|
HDfprintf(stdout, "%s first_expected_val = %d.\n",
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
fcnName, (int)first_expected_val);
|
2018-02-15 00:08:09 +08:00
|
|
|
HDfprintf(stdout, "%s starts_in_checker = %d.\n",
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
fcnName, (int)buf_starts_in_checker);
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
val_ptr = buf_ptr;
|
|
|
|
expected_value = first_expected_val;
|
|
|
|
|
|
|
|
i = 0;
|
|
|
|
v = 0;
|
|
|
|
start_in_checker[0] = buf_starts_in_checker;
|
|
|
|
do
|
|
|
|
{
|
|
|
|
if ( v >= checker_edge_size ) {
|
|
|
|
|
|
|
|
start_in_checker[0] = ! start_in_checker[0];
|
|
|
|
v = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
j = 0;
|
|
|
|
w = 0;
|
|
|
|
start_in_checker[1] = start_in_checker[0];
|
|
|
|
do
|
|
|
|
{
|
|
|
|
if ( w >= checker_edge_size ) {
|
|
|
|
|
|
|
|
start_in_checker[1] = ! start_in_checker[1];
|
|
|
|
w = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
k = 0;
|
|
|
|
x = 0;
|
|
|
|
start_in_checker[2] = start_in_checker[1];
|
|
|
|
do
|
|
|
|
{
|
|
|
|
if ( x >= checker_edge_size ) {
|
|
|
|
|
|
|
|
start_in_checker[2] = ! start_in_checker[2];
|
|
|
|
x = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
l = 0;
|
|
|
|
y = 0;
|
|
|
|
start_in_checker[3] = start_in_checker[2];
|
|
|
|
do
|
2018-02-15 00:08:09 +08:00
|
|
|
{
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
if ( y >= checker_edge_size ) {
|
|
|
|
|
|
|
|
start_in_checker[3] = ! start_in_checker[3];
|
|
|
|
y = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
m = 0;
|
|
|
|
z = 0;
|
2018-02-15 00:08:09 +08:00
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__VERIFY_DATA__DEBUG
|
|
|
|
if ( mpi_rank ==
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
LOWER_DIM_SIZE_COMP_TEST_DEBUG_TARGET_RANK ) {
|
|
|
|
HDfprintf(stdout, "%d, %d, %d, %d, %d:", i, j, k, l, m);
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
in_checker = start_in_checker[3];
|
|
|
|
do
|
|
|
|
{
|
2018-02-15 00:08:09 +08:00
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__VERIFY_DATA__DEBUG
|
|
|
|
if ( mpi_rank ==
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
LOWER_DIM_SIZE_COMP_TEST_DEBUG_TARGET_RANK ) {
|
|
|
|
HDfprintf(stdout, " %d", (int)(*val_ptr));
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
if ( z >= checker_edge_size ) {
|
|
|
|
|
|
|
|
in_checker = ! in_checker;
|
|
|
|
z = 0;
|
|
|
|
}
|
2018-02-15 00:08:09 +08:00
|
|
|
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
if ( in_checker ) {
|
2018-02-15 00:08:09 +08:00
|
|
|
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
if ( *val_ptr != expected_value ) {
|
|
|
|
|
|
|
|
good_data = FALSE;
|
|
|
|
}
|
2018-02-15 00:08:09 +08:00
|
|
|
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
/* zero out buffer for re-use */
|
|
|
|
*val_ptr = 0;
|
|
|
|
|
|
|
|
} else if ( *val_ptr != 0 ) {
|
|
|
|
|
|
|
|
good_data = FALSE;
|
2018-02-15 00:08:09 +08:00
|
|
|
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
/* zero out buffer for re-use */
|
|
|
|
*val_ptr = 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
val_ptr++;
|
|
|
|
expected_value++;
|
|
|
|
m++;
|
|
|
|
z++;
|
2018-02-15 00:08:09 +08:00
|
|
|
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
} while ( ( rank >= (test_max_rank - 4) ) &&
|
|
|
|
( m < edge_size ) );
|
2018-02-15 00:08:09 +08:00
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__VERIFY_DATA__DEBUG
|
|
|
|
if ( mpi_rank ==
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
LOWER_DIM_SIZE_COMP_TEST_DEBUG_TARGET_RANK ) {
|
|
|
|
HDfprintf(stdout, "\n");
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
l++;
|
|
|
|
y++;
|
|
|
|
} while ( ( rank >= (test_max_rank - 3) ) &&
|
|
|
|
( l < edge_size ) );
|
|
|
|
k++;
|
|
|
|
x++;
|
|
|
|
} while ( ( rank >= (test_max_rank - 2) ) &&
|
|
|
|
( k < edge_size ) );
|
|
|
|
j++;
|
|
|
|
w++;
|
|
|
|
} while ( ( rank >= (test_max_rank - 1) ) &&
|
|
|
|
( j < edge_size ) );
|
|
|
|
i++;
|
|
|
|
v++;
|
|
|
|
} while ( ( rank >= test_max_rank ) &&
|
|
|
|
( i < edge_size ) );
|
|
|
|
|
|
|
|
return(good_data);
|
|
|
|
|
|
|
|
} /* lower_dim_size_comp_test__verify_data() */
|
|
|
|
|
|
|
|
|
|
|
|
/*-------------------------------------------------------------------------
|
2018-02-15 00:08:09 +08:00
|
|
|
* Function: lower_dim_size_comp_test__run_test()
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Purpose: Verify that a bug in the computation of the size of the
|
2019-07-31 04:34:53 +08:00
|
|
|
* lower dimensions of a dataspace in H5S_obtain_datatype()
|
2018-02-15 00:08:09 +08:00
|
|
|
* has been corrected.
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Return: void
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Programmer: JRM -- 11/11/09
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
*
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
*/
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
#define LDSCT_DS_RANK 5
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
#define LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG 0
|
|
|
|
|
2010-08-04 12:15:05 +08:00
|
|
|
static void
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
lower_dim_size_comp_test__run_test(const int chunk_edge_size,
|
|
|
|
const hbool_t use_collective_io,
|
|
|
|
const hid_t dset_type)
|
|
|
|
{
|
2018-02-15 00:08:09 +08:00
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
const char *fcnName = "lower_dim_size_comp_test__run_test()";
|
2018-02-15 00:08:09 +08:00
|
|
|
int rank;
|
|
|
|
hsize_t dims[32];
|
|
|
|
hsize_t max_dims[32];
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
#endif /* LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG */
|
|
|
|
const char *filename;
|
2018-02-15 00:08:09 +08:00
|
|
|
hbool_t data_ok = FALSE;
|
|
|
|
hbool_t mis_match = FALSE;
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
int i;
|
|
|
|
int start_index;
|
|
|
|
int stop_index;
|
2018-02-15 00:08:09 +08:00
|
|
|
int mrc;
|
|
|
|
int mpi_rank;
|
|
|
|
int mpi_size;
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
MPI_Comm mpi_comm = MPI_COMM_NULL;
|
|
|
|
MPI_Info mpi_info = MPI_INFO_NULL;
|
|
|
|
hid_t fid; /* HDF5 file ID */
|
|
|
|
hid_t acc_tpl; /* File access templates */
|
|
|
|
hid_t xfer_plist = H5P_DEFAULT;
|
|
|
|
size_t small_ds_size;
|
|
|
|
size_t small_ds_slice_size;
|
|
|
|
size_t large_ds_size;
|
2019-12-10 04:08:47 +08:00
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
size_t large_ds_slice_size;
|
2019-12-10 04:08:47 +08:00
|
|
|
#endif
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
uint32_t expected_value;
|
|
|
|
uint32_t * small_ds_buf_0 = NULL;
|
|
|
|
uint32_t * small_ds_buf_1 = NULL;
|
|
|
|
uint32_t * large_ds_buf_0 = NULL;
|
|
|
|
uint32_t * large_ds_buf_1 = NULL;
|
|
|
|
uint32_t * ptr_0;
|
|
|
|
uint32_t * ptr_1;
|
|
|
|
hsize_t small_chunk_dims[LDSCT_DS_RANK];
|
|
|
|
hsize_t large_chunk_dims[LDSCT_DS_RANK];
|
|
|
|
hsize_t small_dims[LDSCT_DS_RANK];
|
|
|
|
hsize_t large_dims[LDSCT_DS_RANK];
|
|
|
|
hsize_t start[LDSCT_DS_RANK];
|
|
|
|
hsize_t stride[LDSCT_DS_RANK];
|
|
|
|
hsize_t count[LDSCT_DS_RANK];
|
|
|
|
hsize_t block[LDSCT_DS_RANK];
|
|
|
|
hsize_t small_sel_start[LDSCT_DS_RANK];
|
|
|
|
hsize_t large_sel_start[LDSCT_DS_RANK];
|
|
|
|
hid_t full_mem_small_ds_sid;
|
|
|
|
hid_t full_file_small_ds_sid;
|
|
|
|
hid_t mem_small_ds_sid;
|
|
|
|
hid_t file_small_ds_sid;
|
|
|
|
hid_t full_mem_large_ds_sid;
|
|
|
|
hid_t full_file_large_ds_sid;
|
|
|
|
hid_t mem_large_ds_sid;
|
|
|
|
hid_t file_large_ds_sid;
|
|
|
|
hid_t small_ds_dcpl_id = H5P_DEFAULT;
|
|
|
|
hid_t large_ds_dcpl_id = H5P_DEFAULT;
|
|
|
|
hid_t small_dataset; /* Dataset ID */
|
|
|
|
hid_t large_dataset; /* Dataset ID */
|
|
|
|
htri_t check; /* Shape comparison return value */
|
|
|
|
herr_t ret; /* Generic return value */
|
|
|
|
|
|
|
|
MPI_Comm_size(MPI_COMM_WORLD, &mpi_size);
|
|
|
|
MPI_Comm_rank(MPI_COMM_WORLD, &mpi_rank);
|
|
|
|
|
|
|
|
HDassert( mpi_size >= 1 );
|
|
|
|
|
|
|
|
mpi_comm = MPI_COMM_WORLD;
|
|
|
|
mpi_info = MPI_INFO_NULL;
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
if ( mpi_rank == LOWER_DIM_SIZE_COMP_TEST_DEBUG_TARGET_RANK ) {
|
|
|
|
HDfprintf(stdout, "%s:%d: chunk_edge_size = %d.\n",
|
|
|
|
fcnName, mpi_rank, (int)chunk_edge_size);
|
|
|
|
HDfprintf(stdout, "%s:%d: use_collective_io = %d.\n",
|
|
|
|
fcnName, mpi_rank, (int)use_collective_io);
|
|
|
|
}
|
|
|
|
#endif /* LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG */
|
|
|
|
|
|
|
|
|
|
|
|
small_ds_size = (size_t)((mpi_size + 1) * 1 * 1 * 10 * 10);
|
|
|
|
small_ds_slice_size = (size_t) ( 1 * 1 * 10 * 10);
|
|
|
|
large_ds_size = (size_t)((mpi_size + 1) * 10 * 10 * 10 * 10);
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG
|
2019-12-10 04:08:47 +08:00
|
|
|
large_ds_slice_size = (size_t) (10 * 10 * 10 * 10);
|
|
|
|
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
if ( mpi_rank == LOWER_DIM_SIZE_COMP_TEST_DEBUG_TARGET_RANK ) {
|
|
|
|
HDfprintf(stdout, "%s:%d: small ds size / slice size = %d / %d.\n",
|
2018-02-15 00:08:09 +08:00
|
|
|
fcnName, mpi_rank,
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
(int)small_ds_size, (int)small_ds_slice_size);
|
|
|
|
HDfprintf(stdout, "%s:%d: large ds size / slice size = %d / %d.\n",
|
2018-02-15 00:08:09 +08:00
|
|
|
fcnName, mpi_rank,
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
(int)large_ds_size, (int)large_ds_slice_size);
|
|
|
|
}
|
|
|
|
#endif /* LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG */
|
|
|
|
|
|
|
|
/* Allocate buffers */
|
|
|
|
small_ds_buf_0 = (uint32_t *)HDmalloc(sizeof(uint32_t) * small_ds_size);
|
|
|
|
VRFY((small_ds_buf_0 != NULL), "malloc of small_ds_buf_0 succeeded");
|
|
|
|
|
|
|
|
small_ds_buf_1 = (uint32_t *)HDmalloc(sizeof(uint32_t) * small_ds_size);
|
|
|
|
VRFY((small_ds_buf_1 != NULL), "malloc of small_ds_buf_1 succeeded");
|
|
|
|
|
|
|
|
large_ds_buf_0 = (uint32_t *)HDmalloc(sizeof(uint32_t) * large_ds_size);
|
|
|
|
VRFY((large_ds_buf_0 != NULL), "malloc of large_ds_buf_0 succeeded");
|
|
|
|
|
|
|
|
large_ds_buf_1 = (uint32_t *)HDmalloc(sizeof(uint32_t) * large_ds_size);
|
|
|
|
VRFY((large_ds_buf_1 != NULL), "malloc of large_ds_buf_1 succeeded");
|
|
|
|
|
|
|
|
|
|
|
|
/* initialize the buffers */
|
|
|
|
|
|
|
|
ptr_0 = small_ds_buf_0;
|
|
|
|
ptr_1 = small_ds_buf_1;
|
|
|
|
|
|
|
|
for ( i = 0; i < (int)small_ds_size; i++ ) {
|
|
|
|
|
|
|
|
*ptr_0 = (uint32_t)i;
|
|
|
|
*ptr_1 = 0;
|
|
|
|
|
|
|
|
ptr_0++;
|
|
|
|
ptr_1++;
|
|
|
|
}
|
|
|
|
|
|
|
|
ptr_0 = large_ds_buf_0;
|
|
|
|
ptr_1 = large_ds_buf_1;
|
|
|
|
|
|
|
|
for ( i = 0; i < (int)large_ds_size; i++ ) {
|
|
|
|
|
|
|
|
*ptr_0 = (uint32_t)i;
|
|
|
|
*ptr_1 = 0;
|
|
|
|
|
|
|
|
ptr_0++;
|
|
|
|
ptr_1++;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* get the file name */
|
|
|
|
|
|
|
|
filename = (const char *)GetTestParameters();
|
|
|
|
HDassert( filename != NULL );
|
|
|
|
|
|
|
|
|
|
|
|
/* ----------------------------------------
|
|
|
|
* CREATE AN HDF5 FILE WITH PARALLEL ACCESS
|
|
|
|
* ---------------------------------------*/
|
|
|
|
/* setup file access template */
|
2014-03-22 07:02:24 +08:00
|
|
|
acc_tpl = create_faccess_plist(mpi_comm, mpi_info, facc_type);
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
VRFY((acc_tpl >= 0), "create_faccess_plist() succeeded");
|
|
|
|
|
|
|
|
/* create the file collectively */
|
|
|
|
fid = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, acc_tpl);
|
|
|
|
VRFY((fid >= 0), "H5Fcreate succeeded");
|
|
|
|
|
|
|
|
MESG("File opened.");
|
|
|
|
|
|
|
|
/* Release file-access template */
|
|
|
|
ret = H5Pclose(acc_tpl);
|
|
|
|
VRFY((ret >= 0), "H5Pclose(acc_tpl) succeeded");
|
|
|
|
|
|
|
|
|
|
|
|
/* setup dims: */
|
|
|
|
small_dims[0] = (hsize_t)(mpi_size + 1);
|
|
|
|
small_dims[1] = 1;
|
|
|
|
small_dims[2] = 1;
|
|
|
|
small_dims[3] = 10;
|
|
|
|
small_dims[4] = 10;
|
|
|
|
|
|
|
|
large_dims[0] = (hsize_t)(mpi_size + 1);
|
|
|
|
large_dims[1] = 10;
|
|
|
|
large_dims[2] = 10;
|
|
|
|
large_dims[3] = 10;
|
|
|
|
large_dims[4] = 10;
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
if ( mpi_rank == LOWER_DIM_SIZE_COMP_TEST_DEBUG_TARGET_RANK ) {
|
|
|
|
HDfprintf(stdout, "%s:%d: small_dims[] = %d %d %d %d %d\n",
|
|
|
|
fcnName, mpi_rank, (int)small_dims[0], (int)small_dims[1],
|
|
|
|
(int)small_dims[2], (int)small_dims[3], (int)small_dims[4]);
|
|
|
|
HDfprintf(stdout, "%s:%d: large_dims[] = %d %d %d %d %d\n",
|
|
|
|
fcnName, mpi_rank, (int)large_dims[0], (int)large_dims[1],
|
|
|
|
(int)large_dims[2], (int)large_dims[3], (int)large_dims[4]);
|
|
|
|
}
|
2018-02-15 00:08:09 +08:00
|
|
|
#endif
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
|
2019-07-31 04:34:53 +08:00
|
|
|
/* create dataspaces */
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
|
|
|
|
full_mem_small_ds_sid = H5Screate_simple(5, small_dims, NULL);
|
2018-02-15 00:08:09 +08:00
|
|
|
VRFY((full_mem_small_ds_sid != 0),
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
"H5Screate_simple() full_mem_small_ds_sid succeeded");
|
|
|
|
|
|
|
|
full_file_small_ds_sid = H5Screate_simple(5, small_dims, NULL);
|
2018-02-15 00:08:09 +08:00
|
|
|
VRFY((full_file_small_ds_sid != 0),
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
"H5Screate_simple() full_file_small_ds_sid succeeded");
|
|
|
|
|
|
|
|
mem_small_ds_sid = H5Screate_simple(5, small_dims, NULL);
|
2018-02-15 00:08:09 +08:00
|
|
|
VRFY((mem_small_ds_sid != 0),
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
"H5Screate_simple() mem_small_ds_sid succeeded");
|
|
|
|
|
|
|
|
file_small_ds_sid = H5Screate_simple(5, small_dims, NULL);
|
2018-02-15 00:08:09 +08:00
|
|
|
VRFY((file_small_ds_sid != 0),
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
"H5Screate_simple() file_small_ds_sid succeeded");
|
|
|
|
|
|
|
|
|
|
|
|
full_mem_large_ds_sid = H5Screate_simple(5, large_dims, NULL);
|
2018-02-15 00:08:09 +08:00
|
|
|
VRFY((full_mem_large_ds_sid != 0),
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
"H5Screate_simple() full_mem_large_ds_sid succeeded");
|
|
|
|
|
|
|
|
full_file_large_ds_sid = H5Screate_simple(5, large_dims, NULL);
|
2018-02-15 00:08:09 +08:00
|
|
|
VRFY((full_file_large_ds_sid != 0),
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
"H5Screate_simple() full_file_large_ds_sid succeeded");
|
|
|
|
|
|
|
|
mem_large_ds_sid = H5Screate_simple(5, large_dims, NULL);
|
2018-02-15 00:08:09 +08:00
|
|
|
VRFY((mem_large_ds_sid != 0),
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
"H5Screate_simple() mem_large_ds_sid succeeded");
|
|
|
|
|
|
|
|
file_large_ds_sid = H5Screate_simple(5, large_dims, NULL);
|
2018-02-15 00:08:09 +08:00
|
|
|
VRFY((file_large_ds_sid != 0),
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
"H5Screate_simple() file_large_ds_sid succeeded");
|
|
|
|
|
|
|
|
|
|
|
|
/* Select the entire extent of the full small ds dataspaces */
|
|
|
|
ret = H5Sselect_all(full_mem_small_ds_sid);
|
|
|
|
VRFY((ret != FAIL), "H5Sselect_all(full_mem_small_ds_sid) succeeded");
|
|
|
|
|
|
|
|
ret = H5Sselect_all(full_file_small_ds_sid);
|
|
|
|
VRFY((ret != FAIL), "H5Sselect_all(full_file_small_ds_sid) succeeded");
|
|
|
|
|
|
|
|
|
|
|
|
/* Select the entire extent of the full large ds dataspaces */
|
|
|
|
ret = H5Sselect_all(full_mem_large_ds_sid);
|
|
|
|
VRFY((ret != FAIL), "H5Sselect_all(full_mem_large_ds_sid) succeeded");
|
|
|
|
|
|
|
|
ret = H5Sselect_all(full_file_large_ds_sid);
|
|
|
|
VRFY((ret != FAIL), "H5Sselect_all(full_file_large_ds_sid) succeeded");
|
|
|
|
|
|
|
|
|
|
|
|
/* if chunk edge size is greater than zero, set up the small and
|
|
|
|
* large data set creation property lists to specify chunked
|
|
|
|
* datasets.
|
|
|
|
*/
|
|
|
|
if ( chunk_edge_size > 0 ) {
|
|
|
|
|
|
|
|
small_chunk_dims[0] = (hsize_t)(1);
|
|
|
|
small_chunk_dims[1] = small_chunk_dims[2] = (hsize_t)1;
|
|
|
|
small_chunk_dims[3] = small_chunk_dims[4] = (hsize_t)chunk_edge_size;
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
if ( mpi_rank == LOWER_DIM_SIZE_COMP_TEST_DEBUG_TARGET_RANK ) {
|
|
|
|
HDfprintf(stdout, "%s:%d: small chunk dims[] = %d %d %d %d %d\n",
|
2018-02-15 00:08:09 +08:00
|
|
|
fcnName, mpi_rank, (int)small_chunk_dims[0],
|
|
|
|
(int)small_chunk_dims[1], (int)small_chunk_dims[2],
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
(int)small_chunk_dims[3], (int)small_chunk_dims[4]);
|
|
|
|
}
|
2018-02-15 00:08:09 +08:00
|
|
|
#endif
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
|
|
|
|
small_ds_dcpl_id = H5Pcreate(H5P_DATASET_CREATE);
|
|
|
|
VRFY((ret != FAIL), "H5Pcreate() small_ds_dcpl_id succeeded");
|
|
|
|
|
|
|
|
ret = H5Pset_layout(small_ds_dcpl_id, H5D_CHUNKED);
|
|
|
|
VRFY((ret != FAIL), "H5Pset_layout() small_ds_dcpl_id succeeded");
|
|
|
|
|
|
|
|
ret = H5Pset_chunk(small_ds_dcpl_id, 5, small_chunk_dims);
|
|
|
|
VRFY((ret != FAIL), "H5Pset_chunk() small_ds_dcpl_id succeeded");
|
|
|
|
|
|
|
|
large_chunk_dims[0] = (hsize_t)(1);
|
2018-02-15 00:08:09 +08:00
|
|
|
large_chunk_dims[1] = large_chunk_dims[2] =
|
|
|
|
large_chunk_dims[3] = large_chunk_dims[4] = (hsize_t)chunk_edge_size;
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
if ( mpi_rank == LOWER_DIM_SIZE_COMP_TEST_DEBUG_TARGET_RANK ) {
|
|
|
|
HDfprintf(stdout, "%s:%d: large chunk dims[] = %d %d %d %d %d\n",
|
2018-02-15 00:08:09 +08:00
|
|
|
fcnName, mpi_rank, (int)large_chunk_dims[0],
|
|
|
|
(int)large_chunk_dims[1], (int)large_chunk_dims[2],
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
(int)large_chunk_dims[3], (int)large_chunk_dims[4]);
|
|
|
|
}
|
2018-02-15 00:08:09 +08:00
|
|
|
#endif
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
|
|
|
|
large_ds_dcpl_id = H5Pcreate(H5P_DATASET_CREATE);
|
|
|
|
VRFY((ret != FAIL), "H5Pcreate() large_ds_dcpl_id succeeded");
|
|
|
|
|
|
|
|
ret = H5Pset_layout(large_ds_dcpl_id, H5D_CHUNKED);
|
|
|
|
VRFY((ret != FAIL), "H5Pset_layout() large_ds_dcpl_id succeeded");
|
|
|
|
|
|
|
|
ret = H5Pset_chunk(large_ds_dcpl_id, 5, large_chunk_dims);
|
|
|
|
VRFY((ret != FAIL), "H5Pset_chunk() large_ds_dcpl_id succeeded");
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* create the small dataset */
|
|
|
|
small_dataset = H5Dcreate2(fid, "small_dataset", dset_type,
|
|
|
|
file_small_ds_sid, H5P_DEFAULT,
|
|
|
|
small_ds_dcpl_id, H5P_DEFAULT);
|
|
|
|
VRFY((ret >= 0), "H5Dcreate2() small_dataset succeeded");
|
|
|
|
|
|
|
|
|
|
|
|
/* create the large dataset */
|
|
|
|
large_dataset = H5Dcreate2(fid, "large_dataset", dset_type,
|
|
|
|
file_large_ds_sid, H5P_DEFAULT,
|
|
|
|
large_ds_dcpl_id, H5P_DEFAULT);
|
|
|
|
VRFY((ret >= 0), "H5Dcreate2() large_dataset succeeded");
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
if ( mpi_rank == LOWER_DIM_SIZE_COMP_TEST_DEBUG_TARGET_RANK ) {
|
2018-02-15 00:08:09 +08:00
|
|
|
HDfprintf(stdout,
|
|
|
|
"%s:%d: small/large ds id = %d / %d.\n",
|
|
|
|
fcnName, mpi_rank, (int)small_dataset,
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
(int)large_dataset);
|
|
|
|
}
|
|
|
|
#endif /* LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG */
|
|
|
|
|
|
|
|
|
|
|
|
/* setup xfer property list */
|
|
|
|
xfer_plist = H5Pcreate(H5P_DATASET_XFER);
|
|
|
|
VRFY((xfer_plist >= 0), "H5Pcreate(H5P_DATASET_XFER) succeeded");
|
|
|
|
|
|
|
|
ret = H5Pset_dxpl_mpio(xfer_plist, H5FD_MPIO_COLLECTIVE);
|
|
|
|
VRFY((ret >= 0), "H5Pset_dxpl_mpio succeeded");
|
|
|
|
|
|
|
|
if ( ! use_collective_io ) {
|
|
|
|
|
|
|
|
ret = H5Pset_dxpl_mpio_collective_opt(xfer_plist,
|
|
|
|
H5FD_MPIO_INDIVIDUAL_IO);
|
|
|
|
VRFY((ret>= 0), "H5Pset_dxpl_mpio_collective_opt() suceeded");
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* setup selection to write initial data to the small data sets */
|
|
|
|
start[0] = (hsize_t)(mpi_rank + 1);
|
|
|
|
start[1] = start[2] = start[3] = start[4] = 0;
|
|
|
|
|
|
|
|
stride[0] = (hsize_t)(2 * (mpi_size + 1));
|
|
|
|
stride[1] = stride[2] = 2;
|
|
|
|
stride[3] = stride[4] = 2 * 10;
|
|
|
|
|
|
|
|
count[0] = count[1] = count[2] = count[3] = count[4] = 1;
|
|
|
|
|
|
|
|
block[0] = block[1] = block[2] = 1;
|
|
|
|
block[3] = block[4] = 10;
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
if ( mpi_rank == LOWER_DIM_SIZE_COMP_TEST_DEBUG_TARGET_RANK ) {
|
2018-02-15 00:08:09 +08:00
|
|
|
HDfprintf(stdout,
|
|
|
|
"%s:%d: settings for small data set initialization.\n",
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
fcnName, mpi_rank);
|
|
|
|
HDfprintf(stdout, "%s:%d: start[] = %d %d %d %d %d\n",
|
|
|
|
fcnName, mpi_rank, (int)start[0], (int)start[1],
|
|
|
|
(int)start[2], (int)start[3], (int)start[4]);
|
|
|
|
HDfprintf(stdout, "%s:%d: stride[] = %d %d %d %d %d\n",
|
|
|
|
fcnName, mpi_rank, (int)stride[0], (int)stride[1],
|
|
|
|
(int)stride[2], (int)stride[3], (int)stride[4]);
|
|
|
|
HDfprintf(stdout, "%s:%d: count[] = %d %d %d %d %d\n",
|
|
|
|
fcnName, mpi_rank, (int)count[0], (int)count[1],
|
|
|
|
(int)count[2], (int)count[3], (int)count[4]);
|
|
|
|
HDfprintf(stdout, "%s:%d: block[] = %d %d %d %d %d\n",
|
|
|
|
fcnName, mpi_rank, (int)block[0], (int)block[1],
|
|
|
|
(int)block[2], (int)block[3], (int)block[4]);
|
|
|
|
}
|
|
|
|
#endif /* LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG */
|
|
|
|
|
|
|
|
/* setup selections for writing initial data to the small data set */
|
|
|
|
ret = H5Sselect_hyperslab(mem_small_ds_sid,
|
|
|
|
H5S_SELECT_SET,
|
|
|
|
start,
|
|
|
|
stride,
|
|
|
|
count,
|
|
|
|
block);
|
|
|
|
VRFY((ret >= 0), "H5Sselect_hyperslab(mem_small_ds_sid, set) suceeded");
|
|
|
|
|
|
|
|
ret = H5Sselect_hyperslab(file_small_ds_sid,
|
|
|
|
H5S_SELECT_SET,
|
|
|
|
start,
|
|
|
|
stride,
|
|
|
|
count,
|
|
|
|
block);
|
|
|
|
VRFY((ret >= 0), "H5Sselect_hyperslab(file_small_ds_sid, set) suceeded");
|
|
|
|
|
|
|
|
if ( MAINPROCESS ) { /* add an additional slice to the selections */
|
|
|
|
|
|
|
|
start[0] = 0;
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
if ( mpi_rank == LOWER_DIM_SIZE_COMP_TEST_DEBUG_TARGET_RANK ) {
|
2018-02-15 00:08:09 +08:00
|
|
|
HDfprintf(stdout,
|
|
|
|
"%s:%d: added settings for main process.\n",
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
fcnName, mpi_rank);
|
|
|
|
HDfprintf(stdout, "%s:%d: start[] = %d %d %d %d %d\n",
|
|
|
|
fcnName, mpi_rank, (int)start[0], (int)start[1],
|
|
|
|
(int)start[2], (int)start[3], (int)start[4]);
|
|
|
|
HDfprintf(stdout, "%s:%d: stride[] = %d %d %d %d %d\n",
|
|
|
|
fcnName, mpi_rank, (int)stride[0], (int)stride[1],
|
|
|
|
(int)stride[2], (int)stride[3], (int)stride[4]);
|
|
|
|
HDfprintf(stdout, "%s:%d: count[] = %d %d %d %d %d\n",
|
|
|
|
fcnName, mpi_rank, (int)count[0], (int)count[1],
|
|
|
|
(int)count[2], (int)count[3], (int)count[4]);
|
|
|
|
HDfprintf(stdout, "%s:%d: block[] = %d %d %d %d %d\n",
|
|
|
|
fcnName, mpi_rank, (int)block[0], (int)block[1],
|
|
|
|
(int)block[2], (int)block[3], (int)block[4]);
|
|
|
|
}
|
|
|
|
#endif /* LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG */
|
|
|
|
|
|
|
|
ret = H5Sselect_hyperslab(mem_small_ds_sid,
|
|
|
|
H5S_SELECT_OR,
|
|
|
|
start,
|
|
|
|
stride,
|
|
|
|
count,
|
|
|
|
block);
|
|
|
|
VRFY((ret>= 0), "H5Sselect_hyperslab(mem_small_ds_sid, or) suceeded");
|
|
|
|
|
|
|
|
ret = H5Sselect_hyperslab(file_small_ds_sid,
|
|
|
|
H5S_SELECT_OR,
|
|
|
|
start,
|
|
|
|
stride,
|
|
|
|
count,
|
|
|
|
block);
|
|
|
|
VRFY((ret>= 0), "H5Sselect_hyperslab(file_small_ds_sid, or) suceeded");
|
|
|
|
}
|
|
|
|
|
|
|
|
check = H5Sselect_valid(mem_small_ds_sid);
|
|
|
|
VRFY((check == TRUE),"H5Sselect_valid(mem_small_ds_sid) returns TRUE");
|
|
|
|
|
|
|
|
check = H5Sselect_valid(file_small_ds_sid);
|
|
|
|
VRFY((check == TRUE),"H5Sselect_valid(file_small_ds_sid) returns TRUE");
|
|
|
|
|
|
|
|
|
|
|
|
/* write the initial value of the small data set to file */
|
2018-02-15 00:08:09 +08:00
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
if ( mpi_rank == LOWER_DIM_SIZE_COMP_TEST_DEBUG_TARGET_RANK ) {
|
|
|
|
HDfprintf(stdout, "%s:%d: writing init value of small ds to file.\n",
|
|
|
|
fcnName, mpi_rank);
|
|
|
|
}
|
|
|
|
#endif /* LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG */
|
2018-02-15 00:08:09 +08:00
|
|
|
ret = H5Dwrite(small_dataset,
|
|
|
|
dset_type,
|
|
|
|
mem_small_ds_sid,
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
file_small_ds_sid,
|
2018-02-15 00:08:09 +08:00
|
|
|
xfer_plist,
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
small_ds_buf_0);
|
|
|
|
VRFY((ret >= 0), "H5Dwrite() small_dataset initial write succeeded");
|
|
|
|
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
/* read the small data set back to verify that it contains the
|
|
|
|
* expected data. Note that each process reads in the entire
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
* data set and verifies it.
|
|
|
|
*/
|
|
|
|
ret = H5Dread(small_dataset,
|
|
|
|
H5T_NATIVE_UINT32,
|
|
|
|
full_mem_small_ds_sid,
|
|
|
|
full_file_small_ds_sid,
|
|
|
|
xfer_plist,
|
|
|
|
small_ds_buf_1);
|
|
|
|
VRFY((ret >= 0), "H5Dread() small_dataset initial read succeeded");
|
|
|
|
|
|
|
|
|
|
|
|
/* sync with the other processes before checking data */
|
|
|
|
mrc = MPI_Barrier(MPI_COMM_WORLD);
|
|
|
|
VRFY((mrc==MPI_SUCCESS), "Sync after small dataset writes");
|
|
|
|
|
|
|
|
|
|
|
|
/* verify that the correct data was written to the small data set,
|
|
|
|
* and reset the buffer to zero in passing.
|
|
|
|
*/
|
|
|
|
expected_value = 0;
|
|
|
|
mis_match = FALSE;
|
|
|
|
ptr_1 = small_ds_buf_1;
|
|
|
|
|
|
|
|
i = 0;
|
|
|
|
for ( i = 0; i < (int)small_ds_size; i++ ) {
|
|
|
|
|
|
|
|
if ( *ptr_1 != expected_value ) {
|
|
|
|
|
|
|
|
mis_match = TRUE;
|
|
|
|
}
|
|
|
|
|
|
|
|
*ptr_1 = (uint32_t)0;
|
|
|
|
|
|
|
|
ptr_1++;
|
|
|
|
expected_value++;
|
|
|
|
}
|
|
|
|
VRFY( (mis_match == FALSE), "small ds init data good.");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* setup selections for writing initial data to the large data set */
|
|
|
|
start[0] = (hsize_t)(mpi_rank + 1);
|
|
|
|
start[1] = start[2] = start[3] = start[4] = (hsize_t)0;
|
|
|
|
|
|
|
|
stride[0] = (hsize_t)(2 * (mpi_size + 1));
|
|
|
|
stride[1] = stride[2] = stride[3] = stride[4] = (hsize_t)(2 * 10);
|
|
|
|
|
|
|
|
count[0] = count[1] = count[2] = count[3] = count[4] = (hsize_t)1;
|
|
|
|
|
|
|
|
block[0] = (hsize_t)1;
|
|
|
|
block[1] = block[2] = block[3] = block[4] = (hsize_t)10;
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
if ( mpi_rank == LOWER_DIM_SIZE_COMP_TEST_DEBUG_TARGET_RANK ) {
|
2018-02-15 00:08:09 +08:00
|
|
|
HDfprintf(stdout,
|
|
|
|
"%s:%d: settings for large data set initialization.\n",
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
fcnName, mpi_rank);
|
|
|
|
HDfprintf(stdout, "%s:%d: start[] = %d %d %d %d %d\n",
|
|
|
|
fcnName, mpi_rank, (int)start[0], (int)start[1],
|
|
|
|
(int)start[2], (int)start[3], (int)start[4]);
|
|
|
|
HDfprintf(stdout, "%s:%d: stride[] = %d %d %d %d %d\n",
|
|
|
|
fcnName, mpi_rank, (int)stride[0], (int)stride[1],
|
|
|
|
(int)stride[2], (int)stride[3], (int)stride[4]);
|
|
|
|
HDfprintf(stdout, "%s:%d: count[] = %d %d %d %d %d\n",
|
|
|
|
fcnName, mpi_rank, (int)count[0], (int)count[1],
|
|
|
|
(int)count[2], (int)count[3], (int)count[4]);
|
|
|
|
HDfprintf(stdout, "%s:%d: block[] = %d %d %d %d %d\n",
|
|
|
|
fcnName, mpi_rank, (int)block[0], (int)block[1],
|
|
|
|
(int)block[2], (int)block[3], (int)block[4]);
|
|
|
|
}
|
|
|
|
#endif /* LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG */
|
|
|
|
|
|
|
|
ret = H5Sselect_hyperslab(mem_large_ds_sid,
|
|
|
|
H5S_SELECT_SET,
|
|
|
|
start,
|
|
|
|
stride,
|
|
|
|
count,
|
|
|
|
block);
|
|
|
|
VRFY((ret >= 0), "H5Sselect_hyperslab(mem_large_ds_sid, set) suceeded");
|
|
|
|
|
|
|
|
ret = H5Sselect_hyperslab(file_large_ds_sid,
|
|
|
|
H5S_SELECT_SET,
|
|
|
|
start,
|
|
|
|
stride,
|
|
|
|
count,
|
|
|
|
block);
|
|
|
|
VRFY((ret >= 0), "H5Sselect_hyperslab(file_large_ds_sid, set) suceeded");
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
if ( mpi_rank == LOWER_DIM_SIZE_COMP_TEST_DEBUG_TARGET_RANK ) {
|
2018-02-15 00:08:09 +08:00
|
|
|
HDfprintf(stdout,
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
"%s%d: H5Sget_select_npoints(mem_large_ds_sid) = %d.\n",
|
2018-02-15 00:08:09 +08:00
|
|
|
fcnName, mpi_rank,
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
(int)H5Sget_select_npoints(mem_large_ds_sid));
|
2018-02-15 00:08:09 +08:00
|
|
|
HDfprintf(stdout,
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
"%s%d: H5Sget_select_npoints(file_large_ds_sid) = %d.\n",
|
2018-02-15 00:08:09 +08:00
|
|
|
fcnName, mpi_rank,
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
(int)H5Sget_select_npoints(file_large_ds_sid));
|
|
|
|
}
|
|
|
|
#endif /* LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG */
|
|
|
|
|
|
|
|
if ( MAINPROCESS ) { /* add an additional slice to the selections */
|
|
|
|
|
|
|
|
start[0] = (hsize_t)0;
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
if ( mpi_rank == LOWER_DIM_SIZE_COMP_TEST_DEBUG_TARGET_RANK ) {
|
2018-02-15 00:08:09 +08:00
|
|
|
HDfprintf(stdout,
|
|
|
|
"%s:%d: added settings for main process.\n",
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
fcnName, mpi_rank);
|
|
|
|
HDfprintf(stdout, "%s:%d: start[] = %d %d %d %d %d\n",
|
|
|
|
fcnName, mpi_rank, (int)start[0], (int)start[1],
|
|
|
|
(int)start[2], (int)start[3], (int)start[4]);
|
|
|
|
HDfprintf(stdout, "%s:%d: stride[] = %d %d %d %d %d\n",
|
|
|
|
fcnName, mpi_rank, (int)stride[0], (int)stride[1],
|
|
|
|
(int)stride[2], (int)stride[3], (int)stride[4]);
|
|
|
|
HDfprintf(stdout, "%s:%d: count[] = %d %d %d %d %d\n",
|
|
|
|
fcnName, mpi_rank, (int)count[0], (int)count[1],
|
|
|
|
(int)count[2], (int)count[3], (int)count[4]);
|
|
|
|
HDfprintf(stdout, "%s:%d: block[] = %d %d %d %d %d\n",
|
|
|
|
fcnName, mpi_rank, (int)block[0], (int)block[1],
|
|
|
|
(int)block[2], (int)block[3], (int)block[4]);
|
|
|
|
}
|
|
|
|
#endif /* LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG */
|
|
|
|
|
|
|
|
ret = H5Sselect_hyperslab(mem_large_ds_sid,
|
|
|
|
H5S_SELECT_OR,
|
|
|
|
start,
|
|
|
|
stride,
|
|
|
|
count,
|
|
|
|
block);
|
|
|
|
VRFY((ret>= 0), "H5Sselect_hyperslab(mem_large_ds_sid, or) suceeded");
|
|
|
|
|
|
|
|
ret = H5Sselect_hyperslab(file_large_ds_sid,
|
|
|
|
H5S_SELECT_OR,
|
|
|
|
start,
|
|
|
|
stride,
|
|
|
|
count,
|
|
|
|
block);
|
|
|
|
VRFY((ret>= 0), "H5Sselect_hyperslab(file_large_ds_sid, or) suceeded");
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
if ( mpi_rank == LOWER_DIM_SIZE_COMP_TEST_DEBUG_TARGET_RANK ) {
|
2018-02-15 00:08:09 +08:00
|
|
|
HDfprintf(stdout,
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
"%s%d: H5Sget_select_npoints(mem_large_ds_sid) = %d.\n",
|
2018-02-15 00:08:09 +08:00
|
|
|
fcnName, mpi_rank,
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
(int)H5Sget_select_npoints(mem_large_ds_sid));
|
2018-02-15 00:08:09 +08:00
|
|
|
HDfprintf(stdout,
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
"%s%d: H5Sget_select_npoints(file_large_ds_sid) = %d.\n",
|
2018-02-15 00:08:09 +08:00
|
|
|
fcnName, mpi_rank,
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
(int)H5Sget_select_npoints(file_large_ds_sid));
|
|
|
|
}
|
|
|
|
#endif /* LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG */
|
|
|
|
}
|
|
|
|
|
2019-07-31 04:34:53 +08:00
|
|
|
/* try clipping the selection back to the large dataspace proper */
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
start[0] = start[1] = start[2] = start[3] = start[4] = (hsize_t)0;
|
|
|
|
|
|
|
|
stride[0] = (hsize_t)(2 * (mpi_size + 1));
|
|
|
|
stride[1] = stride[2] = stride[3] = stride[4] = (hsize_t)(2 * 10);
|
|
|
|
|
|
|
|
count[0] = count[1] = count[2] = count[3] = count[4] = (hsize_t)1;
|
|
|
|
|
|
|
|
block[0] = (hsize_t)(mpi_size + 1);
|
|
|
|
block[1] = block[2] = block[3] = block[4] = (hsize_t)10;
|
|
|
|
|
|
|
|
ret = H5Sselect_hyperslab(mem_large_ds_sid, H5S_SELECT_AND,
|
|
|
|
start, stride, count, block);
|
|
|
|
VRFY((ret != FAIL),"H5Sselect_hyperslab(mem_large_ds_sid, and) succeeded");
|
|
|
|
|
|
|
|
ret = H5Sselect_hyperslab(file_large_ds_sid, H5S_SELECT_AND,
|
|
|
|
start, stride, count, block);
|
|
|
|
VRFY((ret != FAIL),"H5Sselect_hyperslab(file_large_ds_sid, and) succeeded");
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG
|
|
|
|
if ( mpi_rank == LOWER_DIM_SIZE_COMP_TEST_DEBUG_TARGET_RANK ) {
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
|
|
|
|
rank = H5Sget_simple_extent_dims(mem_large_ds_sid, dims, max_dims);
|
2018-02-15 00:08:09 +08:00
|
|
|
HDfprintf(stdout,
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
"%s:%d: mem_large_ds_sid dims[%d] = %d %d %d %d %d\n",
|
2018-02-15 00:08:09 +08:00
|
|
|
fcnName, mpi_rank, rank, (int)dims[0], (int)dims[1],
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
(int)dims[2], (int)dims[3], (int)dims[4]);
|
|
|
|
|
|
|
|
rank = H5Sget_simple_extent_dims(file_large_ds_sid, dims, max_dims);
|
2018-02-15 00:08:09 +08:00
|
|
|
HDfprintf(stdout,
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
"%s:%d: file_large_ds_sid dims[%d] = %d %d %d %d %d\n",
|
2018-02-15 00:08:09 +08:00
|
|
|
fcnName, mpi_rank, rank, (int)dims[0], (int)dims[1],
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
(int)dims[2], (int)dims[3], (int)dims[4]);
|
|
|
|
}
|
|
|
|
#endif /* LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG */
|
|
|
|
|
|
|
|
check = H5Sselect_valid(mem_large_ds_sid);
|
|
|
|
VRFY((check == TRUE),"H5Sselect_valid(mem_large_ds_sid) returns TRUE");
|
|
|
|
|
|
|
|
check = H5Sselect_valid(file_large_ds_sid);
|
|
|
|
VRFY((check == TRUE),"H5Sselect_valid(file_large_ds_sid) returns TRUE");
|
|
|
|
|
|
|
|
|
|
|
|
/* write the initial value of the large data set to file */
|
2018-02-15 00:08:09 +08:00
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG
|
|
|
|
if ( mpi_rank == LOWER_DIM_SIZE_COMP_TEST_DEBUG_TARGET_RANK ) {
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
HDfprintf(stdout, "%s:%d: writing init value of large ds to file.\n",
|
|
|
|
fcnName, mpi_rank);
|
2018-02-15 00:08:09 +08:00
|
|
|
HDfprintf(stdout,
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
"%s:%d: large_dataset = %d.\n",
|
2018-02-15 00:08:09 +08:00
|
|
|
fcnName, mpi_rank,
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
(int)large_dataset);
|
2018-02-15 00:08:09 +08:00
|
|
|
HDfprintf(stdout,
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
"%s:%d: mem_large_ds_sid = %d, file_large_ds_sid = %d.\n",
|
2018-02-15 00:08:09 +08:00
|
|
|
fcnName, mpi_rank,
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
(int)mem_large_ds_sid, (int)file_large_ds_sid);
|
|
|
|
}
|
|
|
|
#endif /* LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG */
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
ret = H5Dwrite(large_dataset,
|
|
|
|
dset_type,
|
|
|
|
mem_large_ds_sid,
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
file_large_ds_sid,
|
2018-02-15 00:08:09 +08:00
|
|
|
xfer_plist,
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
large_ds_buf_0);
|
|
|
|
|
2010-07-24 02:55:24 +08:00
|
|
|
if ( ret < 0 ) H5Eprint2(H5E_DEFAULT, stderr);
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
VRFY((ret >= 0), "H5Dwrite() large_dataset initial write succeeded");
|
|
|
|
|
|
|
|
|
|
|
|
/* sync with the other processes before checking data */
|
|
|
|
mrc = MPI_Barrier(MPI_COMM_WORLD);
|
|
|
|
VRFY((mrc==MPI_SUCCESS), "Sync after large dataset writes");
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
/* read the large data set back to verify that it contains the
|
|
|
|
* expected data. Note that each process reads in the entire
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
* data set.
|
|
|
|
*/
|
|
|
|
ret = H5Dread(large_dataset,
|
|
|
|
H5T_NATIVE_UINT32,
|
|
|
|
full_mem_large_ds_sid,
|
|
|
|
full_file_large_ds_sid,
|
|
|
|
xfer_plist,
|
|
|
|
large_ds_buf_1);
|
|
|
|
VRFY((ret >= 0), "H5Dread() large_dataset initial read succeeded");
|
|
|
|
|
|
|
|
|
|
|
|
/* verify that the correct data was written to the large data set.
|
|
|
|
* in passing, reset the buffer to zeros
|
|
|
|
*/
|
|
|
|
expected_value = 0;
|
|
|
|
mis_match = FALSE;
|
|
|
|
ptr_1 = large_ds_buf_1;
|
|
|
|
|
|
|
|
i = 0;
|
|
|
|
for ( i = 0; i < (int)large_ds_size; i++ ) {
|
|
|
|
|
|
|
|
if ( *ptr_1 != expected_value ) {
|
|
|
|
|
|
|
|
mis_match = TRUE;
|
|
|
|
}
|
|
|
|
|
|
|
|
*ptr_1 = (uint32_t)0;
|
|
|
|
|
|
|
|
ptr_1++;
|
|
|
|
expected_value++;
|
|
|
|
}
|
|
|
|
VRFY( (mis_match == FALSE), "large ds init data good.");
|
|
|
|
|
|
|
|
/***********************************/
|
|
|
|
/***** INITIALIZATION COMPLETE *****/
|
|
|
|
/***********************************/
|
|
|
|
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
/* read a checkerboard selection of the process slice of the
|
|
|
|
* small on disk data set into the process slice of the large
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
* in memory data set, and verify the data read.
|
|
|
|
*/
|
|
|
|
|
|
|
|
small_sel_start[0] = (hsize_t)(mpi_rank + 1);
|
2018-02-15 00:08:09 +08:00
|
|
|
small_sel_start[1] = small_sel_start[2] =
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
small_sel_start[3] = small_sel_start[4] = 0;
|
|
|
|
|
|
|
|
lower_dim_size_comp_test__select_checker_board(mpi_rank,
|
|
|
|
file_small_ds_sid,
|
|
|
|
/* tgt_rank = */ 5,
|
|
|
|
small_dims,
|
|
|
|
/* checker_edge_size = */ 3,
|
|
|
|
/* sel_rank */ 2,
|
|
|
|
small_sel_start);
|
|
|
|
|
|
|
|
expected_value = (uint32_t)
|
2018-02-15 00:08:09 +08:00
|
|
|
((small_sel_start[0] * small_dims[1] * small_dims[2] *
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
small_dims[3] * small_dims[4]) +
|
2018-02-15 00:08:09 +08:00
|
|
|
(small_sel_start[1] * small_dims[2] * small_dims[3] *
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
small_dims[4]) +
|
|
|
|
(small_sel_start[2] * small_dims[3] * small_dims[4]) +
|
|
|
|
(small_sel_start[3] * small_dims[4]) +
|
|
|
|
(small_sel_start[4]));
|
|
|
|
|
|
|
|
|
|
|
|
large_sel_start[0] = (hsize_t)(mpi_rank + 1);
|
|
|
|
large_sel_start[1] = 5;
|
|
|
|
large_sel_start[2] = large_sel_start[3] = large_sel_start[4] = 0;
|
|
|
|
|
|
|
|
lower_dim_size_comp_test__select_checker_board(mpi_rank,
|
|
|
|
mem_large_ds_sid,
|
|
|
|
/* tgt_rank = */ 5,
|
|
|
|
large_dims,
|
|
|
|
/* checker_edge_size = */ 3,
|
|
|
|
/* sel_rank = */ 2,
|
|
|
|
large_sel_start);
|
|
|
|
|
|
|
|
|
2019-07-31 04:34:53 +08:00
|
|
|
/* verify that H5Sselect_shape_same() reports the two
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
* selections as having the same shape.
|
|
|
|
*/
|
2019-07-31 04:34:53 +08:00
|
|
|
check = H5Sselect_shape_same(mem_large_ds_sid, file_small_ds_sid);
|
|
|
|
VRFY((check == TRUE), "H5Sselect_shape_same passed (1)");
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
ret = H5Dread(small_dataset,
|
|
|
|
H5T_NATIVE_UINT32,
|
|
|
|
mem_large_ds_sid,
|
|
|
|
file_small_ds_sid,
|
|
|
|
xfer_plist,
|
|
|
|
large_ds_buf_1);
|
|
|
|
|
|
|
|
VRFY((ret >= 0), "H5Sread() slice from small ds succeeded.");
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
if ( mpi_rank == LOWER_DIM_SIZE_COMP_TEST_DEBUG_TARGET_RANK ) {
|
|
|
|
HDfprintf(stdout, "%s:%d: H5Dread() returns.\n", fcnName, mpi_rank);
|
|
|
|
}
|
|
|
|
#endif /* LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG */
|
|
|
|
|
|
|
|
/* verify that expected data is retrieved */
|
|
|
|
|
|
|
|
data_ok = TRUE;
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
start_index = (int)((large_sel_start[0] * large_dims[1] * large_dims[2] *
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
large_dims[3] * large_dims[4]) +
|
2018-02-15 00:08:09 +08:00
|
|
|
(large_sel_start[1] * large_dims[2] * large_dims[3] *
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
large_dims[4]) +
|
|
|
|
(large_sel_start[2] * large_dims[3] * large_dims[4]) +
|
|
|
|
(large_sel_start[3] * large_dims[4]) +
|
|
|
|
(large_sel_start[4]));
|
|
|
|
|
|
|
|
stop_index = start_index + (int)small_ds_slice_size;
|
|
|
|
|
|
|
|
HDassert( 0 <= start_index );
|
|
|
|
HDassert( start_index < stop_index );
|
|
|
|
HDassert( stop_index <= (int)large_ds_size );
|
|
|
|
|
|
|
|
ptr_1 = large_ds_buf_1;
|
|
|
|
|
|
|
|
for ( i = 0; i < start_index; i++ ) {
|
|
|
|
|
|
|
|
if ( *ptr_1 != (uint32_t)0 ) {
|
|
|
|
|
|
|
|
data_ok = FALSE;
|
|
|
|
*ptr_1 = (uint32_t)0;
|
|
|
|
}
|
|
|
|
|
|
|
|
ptr_1++;
|
|
|
|
}
|
|
|
|
|
|
|
|
VRFY((data_ok == TRUE), "slice read from small ds data good(1).");
|
|
|
|
|
|
|
|
|
|
|
|
data_ok = lower_dim_size_comp_test__verify_data(ptr_1,
|
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__VERIFY_DATA__DEBUG
|
|
|
|
mpi_rank,
|
|
|
|
#endif /* LOWER_DIM_SIZE_COMP_TEST__VERIFY_DATA__DEBUG */
|
|
|
|
/* rank */ 2,
|
|
|
|
/* edge_size */ 10,
|
|
|
|
/* checker_edge_size */ 3,
|
|
|
|
expected_value,
|
|
|
|
/* buf_starts_in_checker */ TRUE);
|
|
|
|
|
|
|
|
VRFY((data_ok == TRUE), "slice read from small ds data good(2).");
|
|
|
|
|
|
|
|
data_ok = TRUE;
|
|
|
|
|
|
|
|
ptr_1 += small_ds_slice_size;
|
|
|
|
|
|
|
|
|
|
|
|
for ( i = stop_index; i < (int)large_ds_size; i++ ) {
|
|
|
|
|
|
|
|
if ( *ptr_1 != (uint32_t)0 ) {
|
|
|
|
|
|
|
|
data_ok = FALSE;
|
|
|
|
*ptr_1 = (uint32_t)0;
|
|
|
|
}
|
|
|
|
|
|
|
|
ptr_1++;
|
|
|
|
}
|
|
|
|
|
|
|
|
VRFY((data_ok == TRUE), "slice read from small ds data good(3).");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
/* read a checkerboard selection of a slice of the process slice of
|
|
|
|
* the large on disk data set into the process slice of the small
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
* in memory data set, and verify the data read.
|
|
|
|
*/
|
|
|
|
|
|
|
|
small_sel_start[0] = (hsize_t)(mpi_rank + 1);
|
2018-02-15 00:08:09 +08:00
|
|
|
small_sel_start[1] = small_sel_start[2] =
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
small_sel_start[3] = small_sel_start[4] = 0;
|
|
|
|
|
|
|
|
lower_dim_size_comp_test__select_checker_board(mpi_rank,
|
|
|
|
mem_small_ds_sid,
|
|
|
|
/* tgt_rank = */ 5,
|
|
|
|
small_dims,
|
|
|
|
/* checker_edge_size = */ 3,
|
|
|
|
/* sel_rank */ 2,
|
|
|
|
small_sel_start);
|
|
|
|
|
|
|
|
large_sel_start[0] = (hsize_t)(mpi_rank + 1);
|
|
|
|
large_sel_start[1] = 5;
|
|
|
|
large_sel_start[2] = large_sel_start[3] = large_sel_start[4] = 0;
|
|
|
|
|
|
|
|
lower_dim_size_comp_test__select_checker_board(mpi_rank,
|
|
|
|
file_large_ds_sid,
|
|
|
|
/* tgt_rank = */ 5,
|
|
|
|
large_dims,
|
|
|
|
/* checker_edge_size = */ 3,
|
|
|
|
/* sel_rank = */ 2,
|
|
|
|
large_sel_start);
|
|
|
|
|
|
|
|
|
2019-07-31 04:34:53 +08:00
|
|
|
/* verify that H5Sselect_shape_same() reports the two
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
* selections as having the same shape.
|
|
|
|
*/
|
2019-07-31 04:34:53 +08:00
|
|
|
check = H5Sselect_shape_same(mem_small_ds_sid, file_large_ds_sid);
|
|
|
|
VRFY((check == TRUE), "H5Sselect_shape_same passed (2)");
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
ret = H5Dread(large_dataset,
|
|
|
|
H5T_NATIVE_UINT32,
|
|
|
|
mem_small_ds_sid,
|
|
|
|
file_large_ds_sid,
|
|
|
|
xfer_plist,
|
|
|
|
small_ds_buf_1);
|
|
|
|
|
|
|
|
VRFY((ret >= 0), "H5Sread() slice from large ds succeeded.");
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
if ( mpi_rank == LOWER_DIM_SIZE_COMP_TEST_DEBUG_TARGET_RANK ) {
|
|
|
|
HDfprintf(stdout, "%s:%d: H5Dread() returns.\n", fcnName, mpi_rank);
|
|
|
|
}
|
|
|
|
#endif /* LOWER_DIM_SIZE_COMP_TEST__RUN_TEST__DEBUG */
|
|
|
|
|
|
|
|
/* verify that expected data is retrieved */
|
|
|
|
|
|
|
|
data_ok = TRUE;
|
|
|
|
|
|
|
|
expected_value = (uint32_t)
|
2018-02-15 00:08:09 +08:00
|
|
|
((large_sel_start[0] * large_dims[1] * large_dims[2] *
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
large_dims[3] * large_dims[4]) +
|
2018-02-15 00:08:09 +08:00
|
|
|
(large_sel_start[1] * large_dims[2] * large_dims[3] *
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
large_dims[4]) +
|
|
|
|
(large_sel_start[2] * large_dims[3] * large_dims[4]) +
|
|
|
|
(large_sel_start[3] * large_dims[4]) +
|
|
|
|
(large_sel_start[4]));
|
|
|
|
|
|
|
|
start_index = (int)(mpi_rank + 1) * (int)small_ds_slice_size;
|
|
|
|
|
|
|
|
stop_index = start_index + (int)small_ds_slice_size;
|
|
|
|
|
|
|
|
HDassert( 0 <= start_index );
|
|
|
|
HDassert( start_index < stop_index );
|
|
|
|
HDassert( stop_index <= (int)small_ds_size );
|
|
|
|
|
|
|
|
ptr_1 = small_ds_buf_1;
|
|
|
|
|
|
|
|
for ( i = 0; i < start_index; i++ ) {
|
|
|
|
|
|
|
|
if ( *ptr_1 != (uint32_t)0 ) {
|
|
|
|
|
|
|
|
data_ok = FALSE;
|
|
|
|
*ptr_1 = (uint32_t)0;
|
|
|
|
}
|
|
|
|
|
|
|
|
ptr_1++;
|
|
|
|
}
|
|
|
|
|
|
|
|
VRFY((data_ok == TRUE), "slice read from large ds data good(1).");
|
|
|
|
|
|
|
|
|
|
|
|
data_ok = lower_dim_size_comp_test__verify_data(ptr_1,
|
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__VERIFY_DATA__DEBUG
|
|
|
|
mpi_rank,
|
|
|
|
#endif /* LOWER_DIM_SIZE_COMP_TEST__VERIFY_DATA__DEBUG */
|
|
|
|
/* rank */ 2,
|
|
|
|
/* edge_size */ 10,
|
|
|
|
/* checker_edge_size */ 3,
|
|
|
|
expected_value,
|
|
|
|
/* buf_starts_in_checker */ TRUE);
|
|
|
|
|
|
|
|
VRFY((data_ok == TRUE), "slice read from large ds data good(2).");
|
|
|
|
|
|
|
|
data_ok = TRUE;
|
|
|
|
|
|
|
|
ptr_1 += small_ds_slice_size;
|
|
|
|
|
|
|
|
|
|
|
|
for ( i = stop_index; i < (int)small_ds_size; i++ ) {
|
|
|
|
|
|
|
|
if ( *ptr_1 != (uint32_t)0 ) {
|
|
|
|
|
|
|
|
#if LOWER_DIM_SIZE_COMP_TEST__VERIFY_DATA__DEBUG
|
|
|
|
if ( mpi_rank == LOWER_DIM_SIZE_COMP_TEST_DEBUG_TARGET_RANK ) {
|
2018-02-15 00:08:09 +08:00
|
|
|
HDfprintf(stdout, "%s:%d: unexpected value at index %d: %d.\n",
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
fcnName, mpi_rank, (int)i, (int)(*ptr_1));
|
|
|
|
}
|
|
|
|
#endif /* LOWER_DIM_SIZE_COMP_TEST__VERIFY_DATA__DEBUG */
|
|
|
|
|
|
|
|
data_ok = FALSE;
|
|
|
|
*ptr_1 = (uint32_t)0;
|
|
|
|
}
|
|
|
|
|
|
|
|
ptr_1++;
|
|
|
|
}
|
|
|
|
|
|
|
|
VRFY((data_ok == TRUE), "slice read from large ds data good(3).");
|
|
|
|
|
|
|
|
|
|
|
|
/* Close dataspaces */
|
|
|
|
ret = H5Sclose(full_mem_small_ds_sid);
|
|
|
|
VRFY((ret != FAIL), "H5Sclose(full_mem_small_ds_sid) succeeded");
|
|
|
|
|
|
|
|
ret = H5Sclose(full_file_small_ds_sid);
|
|
|
|
VRFY((ret != FAIL), "H5Sclose(full_file_small_ds_sid) succeeded");
|
|
|
|
|
|
|
|
ret = H5Sclose(mem_small_ds_sid);
|
|
|
|
VRFY((ret != FAIL), "H5Sclose(mem_small_ds_sid) succeeded");
|
|
|
|
|
|
|
|
ret = H5Sclose(file_small_ds_sid);
|
|
|
|
VRFY((ret != FAIL), "H5Sclose(file_small_ds_sid) succeeded");
|
|
|
|
|
|
|
|
|
|
|
|
ret = H5Sclose(full_mem_large_ds_sid);
|
|
|
|
VRFY((ret != FAIL), "H5Sclose(full_mem_large_ds_sid) succeeded");
|
|
|
|
|
|
|
|
ret = H5Sclose(full_file_large_ds_sid);
|
|
|
|
VRFY((ret != FAIL), "H5Sclose(full_file_large_ds_sid) succeeded");
|
|
|
|
|
|
|
|
ret = H5Sclose(mem_large_ds_sid);
|
|
|
|
VRFY((ret != FAIL), "H5Sclose(mem_large_ds_sid) succeeded");
|
|
|
|
|
|
|
|
ret = H5Sclose(file_large_ds_sid);
|
|
|
|
VRFY((ret != FAIL), "H5Sclose(file_large_ds_sid) succeeded");
|
|
|
|
|
|
|
|
|
|
|
|
/* Close Datasets */
|
|
|
|
ret = H5Dclose(small_dataset);
|
|
|
|
VRFY((ret != FAIL), "H5Dclose(small_dataset) succeeded");
|
|
|
|
|
|
|
|
ret = H5Dclose(large_dataset);
|
|
|
|
VRFY((ret != FAIL), "H5Dclose(large_dataset) succeeded");
|
|
|
|
|
|
|
|
|
|
|
|
/* close the file collectively */
|
|
|
|
MESG("about to close file.");
|
|
|
|
ret = H5Fclose(fid);
|
|
|
|
VRFY((ret != FAIL), "file close succeeded");
|
|
|
|
|
|
|
|
/* Free memory buffers */
|
|
|
|
if ( small_ds_buf_0 != NULL ) HDfree(small_ds_buf_0);
|
|
|
|
if ( small_ds_buf_1 != NULL ) HDfree(small_ds_buf_1);
|
|
|
|
|
|
|
|
if ( large_ds_buf_0 != NULL ) HDfree(large_ds_buf_0);
|
|
|
|
if ( large_ds_buf_1 != NULL ) HDfree(large_ds_buf_1);
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
} /* lower_dim_size_comp_test__run_test() */
|
|
|
|
|
|
|
|
|
|
|
|
/*-------------------------------------------------------------------------
|
2018-02-15 00:08:09 +08:00
|
|
|
* Function: lower_dim_size_comp_test()
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Purpose: Test to see if an error in the computation of the size
|
|
|
|
* of the lower dimensions in H5S_obtain_datatype() has
|
|
|
|
* been corrected.
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Return: void
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Programmer: JRM -- 11/11/09
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
*
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
*/
|
|
|
|
|
|
|
|
void
|
|
|
|
lower_dim_size_comp_test(void)
|
|
|
|
{
|
|
|
|
/* const char *fcnName = "lower_dim_size_comp_test()"; */
|
2019-02-13 11:51:15 +08:00
|
|
|
int chunk_edge_size = 0;
|
|
|
|
int use_collective_io;
|
|
|
|
|
|
|
|
HDcompile_assert(sizeof(uint32_t) == sizeof(unsigned));
|
|
|
|
for(use_collective_io = 0; use_collective_io <= 1; use_collective_io++) {
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
chunk_edge_size = 0;
|
|
|
|
lower_dim_size_comp_test__run_test(chunk_edge_size,
|
|
|
|
(hbool_t)use_collective_io,
|
2019-02-13 11:51:15 +08:00
|
|
|
H5T_NATIVE_UINT);
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
|
|
|
|
chunk_edge_size = 5;
|
|
|
|
lower_dim_size_comp_test__run_test(chunk_edge_size,
|
|
|
|
(hbool_t)use_collective_io,
|
2019-02-13 11:51:15 +08:00
|
|
|
H5T_NATIVE_UINT);
|
|
|
|
} /* end for */
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
|
|
|
|
return;
|
|
|
|
} /* lower_dim_size_comp_test() */
|
|
|
|
|
|
|
|
|
|
|
|
/*-------------------------------------------------------------------------
|
2018-02-15 00:08:09 +08:00
|
|
|
* Function: link_chunk_collective_io_test()
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Purpose: Test to verify that an error in MPI type management in
|
|
|
|
* H5D_link_chunk_collective_io() has been corrected.
|
|
|
|
* In this bug, we used to free MPI types regardless of
|
|
|
|
* whether they were basic or derived.
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* This test is based on a bug report kindly provided by
|
|
|
|
* Rob Latham of the MPICH team and ANL.
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* The basic thrust of the test is to cause a process
|
|
|
|
* to participate in a collective I/O in which it:
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* 1) Reads or writes exactly one chunk,
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* 2) Has no in memory buffer for any other chunk.
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* The test differers from Rob Latham's bug report in
|
|
|
|
* that is runs with an arbitrary number of proceeses,
|
|
|
|
* and uses a 1 dimensional dataset.
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Return: void
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
*
|
2018-02-15 00:08:09 +08:00
|
|
|
* Programmer: JRM -- 12/16/09
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
*
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
*/
|
|
|
|
|
2018-02-15 00:08:09 +08:00
|
|
|
#define LINK_CHUNK_COLLECTIVE_IO_TEST_CHUNK_SIZE 16
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
|
|
|
|
void
|
|
|
|
link_chunk_collective_io_test(void)
|
|
|
|
{
|
|
|
|
/* const char *fcnName = "link_chunk_collective_io_test()"; */
|
|
|
|
const char *filename;
|
|
|
|
hbool_t mis_match = FALSE;
|
2018-02-15 00:08:09 +08:00
|
|
|
int i;
|
|
|
|
int mrc;
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
int mpi_rank;
|
|
|
|
int mpi_size;
|
|
|
|
MPI_Comm mpi_comm = MPI_COMM_WORLD;
|
|
|
|
MPI_Info mpi_info = MPI_INFO_NULL;
|
|
|
|
hsize_t count[1] = {1};
|
|
|
|
hsize_t stride[1] = {2 * LINK_CHUNK_COLLECTIVE_IO_TEST_CHUNK_SIZE};
|
|
|
|
hsize_t block[1] = {LINK_CHUNK_COLLECTIVE_IO_TEST_CHUNK_SIZE};
|
|
|
|
hsize_t start[1];
|
|
|
|
hsize_t dims[1];
|
|
|
|
hsize_t chunk_dims[1] = {LINK_CHUNK_COLLECTIVE_IO_TEST_CHUNK_SIZE};
|
|
|
|
herr_t ret; /* Generic return value */
|
|
|
|
hid_t file_id;
|
|
|
|
hid_t acc_tpl;
|
|
|
|
hid_t dset_id;
|
|
|
|
hid_t file_ds_sid;
|
|
|
|
hid_t write_mem_ds_sid;
|
|
|
|
hid_t read_mem_ds_sid;
|
|
|
|
hid_t ds_dcpl_id;
|
|
|
|
hid_t xfer_plist;
|
|
|
|
double diff;
|
|
|
|
double expected_value;
|
|
|
|
double local_data_written[LINK_CHUNK_COLLECTIVE_IO_TEST_CHUNK_SIZE];
|
|
|
|
double local_data_read[LINK_CHUNK_COLLECTIVE_IO_TEST_CHUNK_SIZE];
|
|
|
|
|
|
|
|
MPI_Comm_size(MPI_COMM_WORLD, &mpi_size);
|
|
|
|
MPI_Comm_rank(MPI_COMM_WORLD, &mpi_rank);
|
|
|
|
|
|
|
|
HDassert( mpi_size > 0 );
|
|
|
|
|
|
|
|
/* get the file name */
|
|
|
|
filename = (const char *)GetTestParameters();
|
|
|
|
HDassert( filename != NULL );
|
|
|
|
|
|
|
|
/* setup file access template */
|
2014-03-22 07:02:24 +08:00
|
|
|
acc_tpl = create_faccess_plist(mpi_comm, mpi_info, facc_type);
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
VRFY((acc_tpl >= 0), "create_faccess_plist() succeeded");
|
|
|
|
|
|
|
|
/* create the file collectively */
|
|
|
|
file_id = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, acc_tpl);
|
|
|
|
VRFY((file_id >= 0), "H5Fcreate succeeded");
|
|
|
|
|
|
|
|
MESG("File opened.");
|
|
|
|
|
|
|
|
/* Release file-access template */
|
|
|
|
ret = H5Pclose(acc_tpl);
|
|
|
|
VRFY((ret >= 0), "H5Pclose(acc_tpl) succeeded");
|
|
|
|
|
|
|
|
/* setup dims */
|
|
|
|
dims[0] = ((hsize_t)mpi_size) * ((hsize_t)(LINK_CHUNK_COLLECTIVE_IO_TEST_CHUNK_SIZE));
|
|
|
|
|
2019-07-31 04:34:53 +08:00
|
|
|
/* setup mem and file dataspaces */
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
write_mem_ds_sid = H5Screate_simple(1, chunk_dims, NULL);
|
|
|
|
VRFY((write_mem_ds_sid != 0),
|
|
|
|
"H5Screate_simple() write_mem_ds_sid succeeded");
|
|
|
|
|
|
|
|
read_mem_ds_sid = H5Screate_simple(1, chunk_dims, NULL);
|
|
|
|
VRFY((read_mem_ds_sid != 0),
|
|
|
|
"H5Screate_simple() read_mem_ds_sid succeeded");
|
|
|
|
|
|
|
|
file_ds_sid = H5Screate_simple(1, dims, NULL);
|
|
|
|
VRFY((file_ds_sid != 0),
|
|
|
|
"H5Screate_simple() file_ds_sid succeeded");
|
|
|
|
|
|
|
|
/* setup data set creation property list */
|
|
|
|
ds_dcpl_id = H5Pcreate(H5P_DATASET_CREATE);
|
|
|
|
VRFY((ds_dcpl_id != FAIL), "H5Pcreate() ds_dcpl_id succeeded");
|
|
|
|
|
|
|
|
ret = H5Pset_layout(ds_dcpl_id, H5D_CHUNKED);
|
|
|
|
VRFY((ret != FAIL), "H5Pset_layout() ds_dcpl_id succeeded");
|
|
|
|
|
|
|
|
ret = H5Pset_chunk(ds_dcpl_id, 1, chunk_dims);
|
|
|
|
VRFY((ret != FAIL), "H5Pset_chunk() small_ds_dcpl_id succeeded");
|
|
|
|
|
|
|
|
/* create the data set */
|
|
|
|
dset_id = H5Dcreate2(file_id, "dataset", H5T_NATIVE_DOUBLE,
|
|
|
|
file_ds_sid, H5P_DEFAULT,
|
|
|
|
ds_dcpl_id, H5P_DEFAULT);
|
|
|
|
VRFY((dset_id >= 0), "H5Dcreate2() dataset succeeded");
|
|
|
|
|
|
|
|
/* close the dataset creation property list */
|
|
|
|
ret = H5Pclose(ds_dcpl_id);
|
|
|
|
VRFY((ret >= 0), "H5Pclose(ds_dcpl_id) succeeded");
|
|
|
|
|
|
|
|
/* setup local data */
|
|
|
|
expected_value = (double)(LINK_CHUNK_COLLECTIVE_IO_TEST_CHUNK_SIZE) *
|
|
|
|
(double)(mpi_rank);
|
|
|
|
for ( i = 0; i < LINK_CHUNK_COLLECTIVE_IO_TEST_CHUNK_SIZE; i++ ) {
|
|
|
|
|
|
|
|
local_data_written[i] = expected_value;
|
2018-02-15 00:08:09 +08:00
|
|
|
local_data_read[i] = 0.0;
|
|
|
|
expected_value += 1.0;
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
/* select the file and mem spaces */
|
|
|
|
start[0] = (hsize_t)(mpi_rank * LINK_CHUNK_COLLECTIVE_IO_TEST_CHUNK_SIZE);
|
|
|
|
ret = H5Sselect_hyperslab(file_ds_sid,
|
|
|
|
H5S_SELECT_SET,
|
|
|
|
start,
|
|
|
|
stride,
|
|
|
|
count,
|
|
|
|
block);
|
|
|
|
VRFY((ret >= 0), "H5Sselect_hyperslab(file_ds_sid, set) suceeded");
|
|
|
|
|
|
|
|
ret = H5Sselect_all(write_mem_ds_sid);
|
|
|
|
VRFY((ret != FAIL), "H5Sselect_all(mem_ds_sid) succeeded");
|
|
|
|
|
|
|
|
/* Note that we use NO SELECTION on the read memory dataspace */
|
|
|
|
|
|
|
|
/* setup xfer property list */
|
|
|
|
xfer_plist = H5Pcreate(H5P_DATASET_XFER);
|
|
|
|
VRFY((xfer_plist >= 0), "H5Pcreate(H5P_DATASET_XFER) succeeded");
|
|
|
|
|
|
|
|
ret = H5Pset_dxpl_mpio(xfer_plist, H5FD_MPIO_COLLECTIVE);
|
|
|
|
VRFY((ret >= 0), "H5Pset_dxpl_mpio succeeded");
|
|
|
|
|
|
|
|
/* write the data set */
|
2018-02-15 00:08:09 +08:00
|
|
|
ret = H5Dwrite(dset_id,
|
|
|
|
H5T_NATIVE_DOUBLE,
|
|
|
|
write_mem_ds_sid,
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
file_ds_sid,
|
2018-02-15 00:08:09 +08:00
|
|
|
xfer_plist,
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
local_data_written);
|
|
|
|
|
|
|
|
VRFY((ret >= 0), "H5Dwrite() dataset initial write succeeded");
|
2018-02-15 00:08:09 +08:00
|
|
|
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
/* sync with the other processes before checking data */
|
|
|
|
mrc = MPI_Barrier(MPI_COMM_WORLD);
|
|
|
|
VRFY((mrc==MPI_SUCCESS), "Sync after dataset write");
|
|
|
|
|
|
|
|
/* read this processes slice of the dataset back in */
|
|
|
|
ret = H5Dread(dset_id,
|
|
|
|
H5T_NATIVE_DOUBLE,
|
|
|
|
read_mem_ds_sid,
|
|
|
|
file_ds_sid,
|
|
|
|
xfer_plist,
|
|
|
|
local_data_read);
|
|
|
|
VRFY((ret >= 0), "H5Dread() dataset read succeeded");
|
|
|
|
|
|
|
|
/* close the xfer property list */
|
|
|
|
ret = H5Pclose(xfer_plist);
|
|
|
|
VRFY((ret >= 0), "H5Pclose(xfer_plist) succeeded");
|
|
|
|
|
|
|
|
/* verify the data */
|
|
|
|
mis_match = FALSE;
|
|
|
|
for ( i = 0; i < LINK_CHUNK_COLLECTIVE_IO_TEST_CHUNK_SIZE; i++ ) {
|
|
|
|
|
|
|
|
diff = local_data_written[i] - local_data_read[i];
|
|
|
|
diff = fabs(diff);
|
|
|
|
|
|
|
|
if ( diff >= 0.001 ) {
|
|
|
|
|
|
|
|
mis_match = TRUE;
|
2018-02-15 00:08:09 +08:00
|
|
|
}
|
[svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk. These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.
These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.
Many other misc. code cleanup are included as well...
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2010-07-19 13:05:45 +08:00
|
|
|
}
|
|
|
|
VRFY( (mis_match == FALSE), "dataset data good.");
|
|
|
|
|
|
|
|
/* Close dataspaces */
|
|
|
|
ret = H5Sclose(write_mem_ds_sid);
|
|
|
|
VRFY((ret != FAIL), "H5Sclose(write_mem_ds_sid) succeeded");
|
|
|
|
|
|
|
|
ret = H5Sclose(read_mem_ds_sid);
|
|
|
|
VRFY((ret != FAIL), "H5Sclose(read_mem_ds_sid) succeeded");
|
|
|
|
|
|
|
|
ret = H5Sclose(file_ds_sid);
|
|
|
|
VRFY((ret != FAIL), "H5Sclose(file_ds_sid) succeeded");
|
|
|
|
|
|
|
|
/* Close Dataset */
|
|
|
|
ret = H5Dclose(dset_id);
|
|
|
|
VRFY((ret != FAIL), "H5Dclose(dset_id) succeeded");
|
|
|
|
|
|
|
|
/* close the file collectively */
|
|
|
|
ret = H5Fclose(file_id);
|
|
|
|
VRFY((ret != FAIL), "file close succeeded");
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
} /* link_chunk_collective_io_test() */
|
|
|
|
|