[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.
This commit is contained in:
Albert Cheng 1999-09-02 19:15:57 -05:00
parent d0c5506d95
commit cb0a0eb41e
5 changed files with 23 additions and 33 deletions

View File

@ -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

View File

@ -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;
}

View File

@ -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'])

View File

@ -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*/

View File

@ -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);