From cb0a0eb41eb61e75ddb7a10532e910394babe995 Mon Sep 17 00:00:00 2001 From: Albert Cheng Date: Thu, 2 Sep 1999 19:15:57 -0500 Subject: [svn-r1627] Cleanup some minor bugs in the MPIO file-driver ported by Robb. It is working now. Still need to tie up some loose ends. --- src/H5D.c | 20 ++++++++++---------- src/H5F.c | 2 +- src/H5FDmpio.c | 14 ++------------ src/H5FDmpio.h | 16 ++++++++-------- src/H5P.c | 4 ++-- 5 files changed, 23 insertions(+), 33 deletions(-) diff --git a/src/H5D.c b/src/H5D.c index 423e739..d4d0c37 100644 --- a/src/H5D.c +++ b/src/H5D.c @@ -1509,14 +1509,14 @@ H5D_read(H5D_t *dataset, const H5T_t *mem_type, const H5S_t *mem_space, #ifdef HAVE_PARALLEL { - /* Collective access is not permissible with the MPIO driver */ + /* Collective access is not permissible without the MPIO driver */ H5FD_mpio_dxpl_t *dx; - if (H5FD_MPIO==dataset->ent.file->shared->lf->driver_id && - H5FD_MPIO==xfer_parms->driver_id && + if (H5FD_MPIO==xfer_parms->driver_id && (dx=xfer_parms->driver_info) && H5FD_MPIO_COLLECTIVE==dx->xfer_mode) { - HGOTO_ERROR (H5E_DATASET, H5E_UNSUPPORTED, FAIL, - "collective access not permissible"); + if (H5FD_MPIO!=dataset->ent.file->shared->lf->driver_id) + HGOTO_ERROR (H5E_DATASET, H5E_UNSUPPORTED, FAIL, + "collective access for MPIO driver only"); } } #endif @@ -1916,14 +1916,14 @@ H5D_write(H5D_t *dataset, const H5T_t *mem_type, const H5S_t *mem_space, #ifdef HAVE_PARALLEL { - /* Collective access is not permissible with the MPIO driver */ + /* Collective access is not permissible without the MPIO driver */ H5FD_mpio_dxpl_t *dx; - if (H5FD_MPIO==dataset->ent.file->shared->lf->driver_id && - H5FD_MPIO==xfer_parms->driver_id && + if (H5FD_MPIO==xfer_parms->driver_id && (dx=xfer_parms->driver_info) && H5FD_MPIO_COLLECTIVE==dx->xfer_mode) { - HGOTO_ERROR (H5E_DATASET, H5E_UNSUPPORTED, FAIL, - "collective access not permissible"); + if (H5FD_MPIO!=dataset->ent.file->shared->lf->driver_id) + HGOTO_ERROR (H5E_DATASET, H5E_UNSUPPORTED, FAIL, + "collective access for MPIO driver only"); } } #endif diff --git a/src/H5F.c b/src/H5F.c index 7d57120..65ba6f6 100644 --- a/src/H5F.c +++ b/src/H5F.c @@ -729,7 +729,7 @@ H5F_new(H5F_file_t *shared, hid_t fcpl_id, hid_t fapl_id) * does not permit caching. (maybe able to relax it for * read only open.) */ - if (H5FD_MPIO==f->shared->lf->driver_id){ + if (H5FD_MPIO==fapl->driver_id){ f->shared->rdcc_nbytes = 0; f->shared->mdc_nelmts = 0; } diff --git a/src/H5FDmpio.c b/src/H5FDmpio.c index c3f47f0..7a75621 100644 --- a/src/H5FDmpio.c +++ b/src/H5FDmpio.c @@ -166,18 +166,6 @@ H5FD_mpio_init(void) { if (H5I_VFL!=H5Iget_type(H5FD_MPIO_g)) { H5FD_MPIO_g = H5FDregister(&H5FD_mpio_g); - -#if 1 - /* - * To be removed after Albert proof reads this driver. - * --rpm 1999-08-06 - */ - fprintf(stderr, "\ -H5FD_MPIO: this driver is currently under construction and may\n\ - not work as advertised. Please use hdf5-1.3.? if you need a\n\ - more stable development version (or use the hdf5-1.2.x release\n\ - version).\n"); -#endif } return H5FD_MPIO_g; } @@ -1060,8 +1048,10 @@ H5FD_mpio_read(H5FD_t *_file, hid_t dxpl_id, haddr_t addr, hsize_t size, } } +#ifdef NO /* Forget the EOF value (see H5FD_mpio_get_eof()) --rpm 1999-08-06 */ file->eof = HADDR_UNDEF; +#endif #ifdef H5FDmpio_DEBUG if (H5FD_mpio_Debug[(int)'t']) diff --git a/src/H5FDmpio.h b/src/H5FDmpio.h index 39431fc..fb61498 100644 --- a/src/H5FDmpio.h +++ b/src/H5FDmpio.h @@ -38,16 +38,16 @@ typedef struct H5FD_mpio_dxpl_t { #ifdef HAVE_PARALLEL __DLL__ hid_t H5FD_mpio_init(void); __DLL__ herr_t H5Pset_fapl_mpio(hid_t fapl_id, MPI_Comm comm, MPI_Info info); -__DLL__herr_t H5Pget_fapl_mpio(hid_t fapl_id, MPI_Comm *comm/*out*/, +__DLL__ herr_t H5Pget_fapl_mpio(hid_t fapl_id, MPI_Comm *comm/*out*/, MPI_Info *info/*out*/); -__DLL__herr_t H5Pset_dxpl_mpio(hid_t dxpl_id, H5FD_mpio_xfer_t xfer_mode); -__DLL__herr_t H5Pget_dxpl_mpio(hid_t dxpl_id, H5FD_mpio_xfer_t *xfer_mode/*out*/); -__DLL__htri_t H5FD_mpio_tas_allsame(H5FD_t *_file, hbool_t newval); -__DLL__MPI_Comm H5FD_mpio_communicator(H5FD_t *_file); -__DLL__herr_t H5FD_mpio_setup(H5FD_t *_file, MPI_Datatype btype, MPI_Datatype ftype, +__DLL__ herr_t H5Pset_dxpl_mpio(hid_t dxpl_id, H5FD_mpio_xfer_t xfer_mode); +__DLL__ herr_t H5Pget_dxpl_mpio(hid_t dxpl_id, H5FD_mpio_xfer_t *xfer_mode/*out*/); +__DLL__ htri_t H5FD_mpio_tas_allsame(H5FD_t *_file, hbool_t newval); +__DLL__ MPI_Comm H5FD_mpio_communicator(H5FD_t *_file); +__DLL__ herr_t H5FD_mpio_setup(H5FD_t *_file, MPI_Datatype btype, MPI_Datatype ftype, haddr_t disp, hbool_t use_types); -__DLL__herr_t H5FD_mpio_wait_for_left_neighbor(H5FD_t *file); -__DLL__herr_t H5FD_mpio_signal_right_neighbor(H5FD_t *file); +__DLL__ herr_t H5FD_mpio_wait_for_left_neighbor(H5FD_t *file); +__DLL__ herr_t H5FD_mpio_signal_right_neighbor(H5FD_t *file); #endif /*HAVE_PARALLEL*/ diff --git a/src/H5P.c b/src/H5P.c index 79cca42..77128bd 100644 --- a/src/H5P.c +++ b/src/H5P.c @@ -1339,8 +1339,8 @@ H5Pset_driver(hid_t plist_id, hid_t driver_id, const void *driver_info) } /* Remove old driver */ - assert(dxpl->driver_id>=0); - H5FD_dxpl_free(dxpl->driver_id, dxpl->driver_info); + if (dxpl->driver_id>=0) + H5FD_dxpl_free(dxpl->driver_id, dxpl->driver_info); /* Add new driver */ H5I_inc_ref(driver_id); -- cgit v0.12