From 5426599c91d22028c1afd0200e6319cdc54ffe0c Mon Sep 17 00:00:00 2001 From: Jordan Henderson Date: Thu, 19 Jan 2017 14:32:17 -0600 Subject: For sake of complexity, force multi chunk IO for parallel filtered read --- src/H5Dmpio.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/H5Dmpio.c b/src/H5Dmpio.c index 6d97cb1..f4b6c4a 100644 --- a/src/H5Dmpio.c +++ b/src/H5Dmpio.c @@ -817,8 +817,19 @@ H5D__chunk_collective_io(H5D_io_info_t *io_info, const H5D_type_info_t *type_inf case H5D_ONE_LINK_CHUNK_IO: case H5D_ONE_LINK_CHUNK_IO_MORE_OPT: if(io_info->dset->shared->dcpl_cache.pline.nused > 0) { - if(H5D__link_chunk_filtered_collective_io(io_info, type_info, fm, dx_plist) < 0) - HGOTO_ERROR(H5E_IO, H5E_CANTGET, FAIL, "couldn't finish filtered linked chunk MPI-IO") + if (io_info->op_type == H5D_IO_OP_READ) { + /* XXX: For now, Multi-chunk IO must be forced for parallel filtered read, + * so that data can be unfiltered as it is received. There is complexity + * in unfiltering the data when it is read all at once into a single + * buffer. + */ + if(H5D__multi_chunk_filtered_collective_io(io_info, type_info, fm, dx_plist) < 0) + HGOTO_ERROR(H5E_IO, H5E_CANTGET, FAIL, "couldn't finish optimized multiple filtered chunk MPI-IO") + } + else { + if(H5D__link_chunk_filtered_collective_io(io_info, type_info, fm, dx_plist) < 0) + HGOTO_ERROR(H5E_IO, H5E_CANTGET, FAIL, "couldn't finish filtered linked chunk MPI-IO") + } } else { if(H5D__link_chunk_collective_io(io_info, type_info, fm, sum_chunk, dx_plist) < 0) -- cgit v0.12