summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlbert Cheng <acheng@hdfgroup.org>1999-09-03 00:15:57 (GMT)
committerAlbert Cheng <acheng@hdfgroup.org>1999-09-03 00:15:57 (GMT)
commitcb0a0eb41eb61e75ddb7a10532e910394babe995 (patch)
treec0122b29efeacfc3d8da4c8b07bdd7ce0065db9e
parentd0c5506d95aee19238c21d5cde4ee19ba0539f2a (diff)
downloadhdf5-cb0a0eb41eb61e75ddb7a10532e910394babe995.zip
hdf5-cb0a0eb41eb61e75ddb7a10532e910394babe995.tar.gz
hdf5-cb0a0eb41eb61e75ddb7a10532e910394babe995.tar.bz2
[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.
-rw-r--r--src/H5D.c20
-rw-r--r--src/H5F.c2
-rw-r--r--src/H5FDmpio.c14
-rw-r--r--src/H5FDmpio.h16
-rw-r--r--src/H5P.c4
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);