From 47c3791addd6d6ca4fdc39cbb7555d867f4093a0 Mon Sep 17 00:00:00 2001 From: Quincey Koziol Date: Tue, 28 Oct 2003 09:40:09 -0500 Subject: [svn-r7763] Purpose: Bug fix Description: Code was using an internal DXPL with collective I/O turned on during independent I/O operations to fill dataset on disk. Solution: Switched to internal DXPL with independent I/O Platforms tested: FreeBSD 4.9 (sleipnir) FreeBSD 4.9 (sleipnir) w/parallel Linux 2.4 (verbena) w/fortran & C++ Solaris 2.7 (arabica) w/64-bit extensions enabled --- src/H5Dcontig.c | 3 ++- src/H5Distore.c | 3 ++- src/H5Fcontig.c | 3 ++- src/H5Fistore.c | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/H5Dcontig.c b/src/H5Dcontig.c index 5f0c72d..777e7c6 100644 --- a/src/H5Dcontig.c +++ b/src/H5Dcontig.c @@ -251,8 +251,9 @@ H5F_contig_fill(H5F_t *f, hid_t dxpl_id, struct H5O_layout_t *layout, /* Check if this file is accessed with an MPI-capable file driver */ if(using_mpi) { /* Write the chunks out from only one process */ + /* !! Use the internal "independent" DXPL!! -QAK */ if(H5_PAR_META_WRITE==mpi_rank) { - if (H5F_contig_write(f, (hsize_t)size, addr, size, dxpl_id, buf)<0) + if (H5F_contig_write(f, (hsize_t)size, addr, size, H5AC_ind_dxpl_id, buf)<0) HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to write fill value to dataset"); } /* end if */ diff --git a/src/H5Distore.c b/src/H5Distore.c index 909007a..90b9168 100644 --- a/src/H5Distore.c +++ b/src/H5Distore.c @@ -2341,8 +2341,9 @@ H5F_istore_allocate(H5F_t *f, hid_t dxpl_id, const H5O_layout_t *layout, /* Check if this file is accessed with an MPI-capable file driver */ if(using_mpi) { /* Write the chunks out from only one process */ + /* !! Use the internal "independent" DXPL!! -QAK */ if(H5_PAR_META_WRITE==mpi_rank) { - if (H5F_block_write(f, H5FD_MEM_DRAW, udata.addr, udata.key.nbytes, dxpl_id, chunk)<0) + if (H5F_block_write(f, H5FD_MEM_DRAW, udata.addr, udata.key.nbytes, H5AC_ind_dxpl_id, chunk)<0) HGOTO_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "unable to write raw data to file"); } /* end if */ diff --git a/src/H5Fcontig.c b/src/H5Fcontig.c index 5f0c72d..777e7c6 100644 --- a/src/H5Fcontig.c +++ b/src/H5Fcontig.c @@ -251,8 +251,9 @@ H5F_contig_fill(H5F_t *f, hid_t dxpl_id, struct H5O_layout_t *layout, /* Check if this file is accessed with an MPI-capable file driver */ if(using_mpi) { /* Write the chunks out from only one process */ + /* !! Use the internal "independent" DXPL!! -QAK */ if(H5_PAR_META_WRITE==mpi_rank) { - if (H5F_contig_write(f, (hsize_t)size, addr, size, dxpl_id, buf)<0) + if (H5F_contig_write(f, (hsize_t)size, addr, size, H5AC_ind_dxpl_id, buf)<0) HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to write fill value to dataset"); } /* end if */ diff --git a/src/H5Fistore.c b/src/H5Fistore.c index 909007a..90b9168 100644 --- a/src/H5Fistore.c +++ b/src/H5Fistore.c @@ -2341,8 +2341,9 @@ H5F_istore_allocate(H5F_t *f, hid_t dxpl_id, const H5O_layout_t *layout, /* Check if this file is accessed with an MPI-capable file driver */ if(using_mpi) { /* Write the chunks out from only one process */ + /* !! Use the internal "independent" DXPL!! -QAK */ if(H5_PAR_META_WRITE==mpi_rank) { - if (H5F_block_write(f, H5FD_MEM_DRAW, udata.addr, udata.key.nbytes, dxpl_id, chunk)<0) + if (H5F_block_write(f, H5FD_MEM_DRAW, udata.addr, udata.key.nbytes, H5AC_ind_dxpl_id, chunk)<0) HGOTO_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "unable to write raw data to file"); } /* end if */ -- cgit v0.12