summaryrefslogtreecommitdiffstats
path: root/src/H5Dmpio.c
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2007-12-06 19:24:30 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2007-12-06 19:24:30 (GMT)
commit74c005fdb21644607cd93b3c2dd9098d9cc7e7c5 (patch)
treee1c2dc64d2fbf66c17e9c67a8cd41b1a81e83ffe /src/H5Dmpio.c
parent110a7d4869b546f5b73ba726f749870e7cd04674 (diff)
downloadhdf5-74c005fdb21644607cd93b3c2dd9098d9cc7e7c5.zip
hdf5-74c005fdb21644607cd93b3c2dd9098d9cc7e7c5.tar.gz
hdf5-74c005fdb21644607cd93b3c2dd9098d9cc7e7c5.tar.bz2
[svn-r14326] Description:
- Keep skip list for tracking chunks with dataset (instead of creating/ destroying it for each I/O operation) and just delete the skip list nodes. - Avoid computations for normalizing selection offset when offset not set. - Avoid updating object modification time twice during dataset creation. - Avoid updating dataset layout message (and object modification time) until dataset is closed. 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 Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
Diffstat (limited to 'src/H5Dmpio.c')
-rw-r--r--src/H5Dmpio.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/H5Dmpio.c b/src/H5Dmpio.c
index ccfaac9..22f32ab 100644
--- a/src/H5Dmpio.c
+++ b/src/H5Dmpio.c
@@ -550,7 +550,7 @@ H5D_mpio_get_min_chunk(const H5D_io_info_t *io_info,
FUNC_ENTER_NOAPI_NOINIT(H5D_mpio_get_min_chunk);
/* Get the number of chunks to perform I/O on */
- num_chunkf = H5SL_count(fm->fsel);
+ num_chunkf = H5SL_count(fm->sel_chunks);
/* Determine the minimum # of chunks for all processes */
if (MPI_SUCCESS != (mpi_code = MPI_Allreduce(&num_chunkf, min_chunkf, 1, MPI_INT, MPI_MIN, io_info->comm)))
@@ -586,7 +586,7 @@ H5D_mpio_get_sum_chunk(const H5D_io_info_t *io_info,
/* Get the number of chunks to perform I/O on */
num_chunkf = 0;
- ori_num_chunkf = H5SL_count(fm->fsel);
+ ori_num_chunkf = H5SL_count(fm->sel_chunks);
H5_ASSIGN_OVERFLOW(num_chunkf,ori_num_chunkf,size_t,int);
/* Determine the summation of number of chunks for all processes */
@@ -856,7 +856,7 @@ H5D_link_chunk_collective_io(H5D_io_info_t *io_info,H5D_chunk_map_t *fm,const vo
H5D_chunk_info_t *chunk_info;
H5D_storage_t store;
- chunk_node = H5SL_first(fm->fsel);
+ chunk_node = H5SL_first(fm->sel_chunks);
if(chunk_node == NULL) {
if(H5D_istore_chunkmap(io_info, &chunk_base_addr, fm->down_chunks) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get chunk address");
@@ -884,7 +884,7 @@ H5D_link_chunk_collective_io(H5D_io_info_t *io_info,H5D_chunk_map_t *fm,const vo
}
/* Allocate chunking information */
- ori_num_chunk = H5SL_count(fm->fsel);
+ ori_num_chunk = H5SL_count(fm->sel_chunks);
H5_ASSIGN_OVERFLOW(num_chunk,ori_num_chunk,size_t,int);
#ifdef H5D_DEBUG
@@ -1114,7 +1114,7 @@ H5D_multi_chunk_collective_io(H5D_io_info_t *io_info,H5D_chunk_map_t *fm,const v
#endif
select_chunk = fm->select_chunk[i];
if(select_chunk == 1){/* Have selection elements in this chunk. Find the chunk info. */
- if(NULL ==(chunk_node = H5SL_first(fm->fsel)))
+ if(NULL ==(chunk_node = H5SL_first(fm->sel_chunks)))
HGOTO_ERROR(H5E_STORAGE, H5E_CANTGET, FAIL,"couldn't get chunk node from skipped list");
while(chunk_node){
@@ -1313,7 +1313,7 @@ H5D_multi_chunk_collective_io_no_opt(H5D_io_info_t *io_info,H5D_chunk_map_t *fm,
count_chunk = 0;
/* Get first node in chunk skip list */
- chunk_node=H5SL_first(fm->fsel);
+ chunk_node=H5SL_first(fm->sel_chunks);
/* Iterate through chunks to be operated on */
while(chunk_node) {
@@ -1618,7 +1618,7 @@ H5D_sort_chunk(H5D_io_info_t * io_info,
FUNC_ENTER_NOAPI_NOINIT(H5D_sort_chunk)
- num_chunks = H5SL_count(fm->fsel);
+ num_chunks = H5SL_count(fm->sel_chunks);
#ifdef H5D_DEBUG
if(H5DEBUG(D))
HDfprintf(H5DEBUG(D),"many_chunk_opt= %d\n",many_chunk_opt);
@@ -1657,7 +1657,7 @@ H5D_sort_chunk(H5D_io_info_t * io_info,
} /* end if */
/* Get first node in chunk skip list */
- if(NULL ==(chunk_node = H5SL_first(fm->fsel)))
+ if(NULL ==(chunk_node = H5SL_first(fm->sel_chunks)))
HGOTO_ERROR(H5E_STORAGE, H5E_CANTGET, FAIL,"couldn't get chunk node from skipped list");
/* Set dataset storage for I/O info */
io_info->store = &store;
@@ -1843,7 +1843,7 @@ H5D_obtain_mpio_mode(H5D_io_info_t* io_info,
mem_cleanup = 1;
- chunk_node = H5SL_first(fm->fsel);
+ chunk_node = H5SL_first(fm->sel_chunks);
/*Obtain the regularity and selection information for all chunks in this process. */
while(chunk_node){