From 2c92c3ca18ca65ee0bf1e02235ba668808d39030 Mon Sep 17 00:00:00 2001 From: Quincey Koziol Date: Fri, 11 Jul 2003 13:01:05 -0500 Subject: [svn-r7210] Purpose: Refactoring code Description: Refactored "IS_H5FD_MPIO || IS_H5FD_MPIPOSIX || IS_H5FD_FPHDF5" combination of macros in many places into single IS_H5FD_MPI macro, which has the same definition, but should be easier to maintain. Platforms tested: FreeBSD 4.8 (sleipnir) h5committest --- src/H5AC.c | 45 +++++++++++++++++++-------------------------- src/H5Dcontig.c | 20 +++++++------------- src/H5Dio.c | 29 +++++++++-------------------- src/H5Distore.c | 16 +++++----------- src/H5Dseq.c | 26 +++++++++++--------------- src/H5FDprivate.h | 18 ++++++++++++++++++ src/H5Fcontig.c | 20 +++++++------------- src/H5Fistore.c | 16 +++++----------- src/H5Fseq.c | 26 +++++++++++--------------- src/H5Smpio.c | 31 ++++++++++--------------------- 10 files changed, 102 insertions(+), 145 deletions(-) diff --git a/src/H5AC.c b/src/H5AC.c index 2d6662b..f7a41cd 100644 --- a/src/H5AC.c +++ b/src/H5AC.c @@ -45,19 +45,12 @@ #include "H5Dprivate.h" /* Dataset functions */ #include "H5Eprivate.h" /* Error handling */ #include "H5Fpkg.h" /* Files */ +#include "H5FDprivate.h" /* File drivers */ #include "H5FLprivate.h" /* Free Lists */ #include "H5Iprivate.h" /* IDs */ #include "H5MMprivate.h" /* Memory management */ #include "H5Pprivate.h" /* Property lists */ -/* - * The MPIO, MPIPOSIX, & FPHDF5 drivers are needed because there are - * places where we check for the parallel I/O transfer mode. - */ -#include "H5FDfphdf5.h" -#include "H5FDmpio.h" -#include "H5FDmpiposix.h" - /* Interface initialization */ static int interface_initialize_g = 0; #define INTERFACE_INIT H5AC_init_interface @@ -535,8 +528,8 @@ H5AC_find(H5F_t *f, hid_t dxpl_id, const H5AC_class_t *type, haddr_t addr, info = cache->slot + idx; #ifdef H5_HAVE_PARALLEL - /* If MPIO, MPIPOSIX, or FPHDF5 is used, do special parallel I/O actions */ - if(IS_H5FD_MPIO(f) || IS_H5FD_MPIPOSIX(f) || IS_H5FD_FPHDF5(f)) { + /* If MPI based VFD is used, do special parallel I/O actions */ + if(IS_H5FD_MPI(f)) { H5AC_dest_func_t dest; /* Get local pointer to file's dirty cache information */ @@ -613,8 +606,8 @@ H5AC_find(H5F_t *f, hid_t dxpl_id, const H5AC_class_t *type, haddr_t addr, HGOTO_ERROR(H5E_CACHE, H5E_CANTLOAD, NULL, "unable to load object") #ifdef H5_HAVE_PARALLEL - /* If MPIO, MPIPOSIX, or FPHDF5 is used, do special parallel I/O actions */ - if(IS_H5FD_MPIO(f) || IS_H5FD_MPIPOSIX(f) || IS_H5FD_FPHDF5(f)) { + /* If MPI based VFD is used, do special parallel I/O actions */ + if(IS_H5FD_MPI(f)) { H5P_genplist_t *dxpl; /* Dataset transfer property list */ H5FD_mpio_xfer_t xfer_mode; /* I/O transfer mode property value */ @@ -795,8 +788,8 @@ H5AC_flush(H5F_t *f, hid_t dxpl_id, const H5AC_class_t *type, haddr_t addr, unsi if (NULL==(map=H5FL_ARR_MALLOC(unsigned,cache->nslots))) HGOTO_ERROR (H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed") #ifdef H5_HAVE_PARALLEL - /* If MPIO, MPIPOSIX, or FPHDF5 is used, do special parallel I/O actions */ - if(IS_H5FD_MPIO(f) || IS_H5FD_MPIPOSIX(f) || IS_H5FD_FPHDF5(f)) { + /* If MPI based VFD is used, do special parallel I/O actions */ + if(IS_H5FD_MPI(f)) { H5AC_info_t **dinfo; #ifdef H5AC_DEBUG H5AC_subid_t type_id; @@ -922,8 +915,8 @@ H5AC_flush(H5F_t *f, hid_t dxpl_id, const H5AC_class_t *type, haddr_t addr, unsi u = H5AC_HASH(f, addr); info = cache->slot + u; #ifdef H5_HAVE_PARALLEL - /* If MPIO, MPIPOSIX, or FPHDF5 is used, do special parallel I/O actions */ - if(IS_H5FD_MPIO(f) || IS_H5FD_MPIPOSIX(f) || IS_H5FD_FPHDF5(f)) { + /* If MPI based VFD is used, do special parallel I/O actions */ + if(IS_H5FD_MPI(f)) { H5AC_info_t **dinfo; #ifdef H5AC_DEBUG H5AC_subid_t type_id; @@ -1071,8 +1064,8 @@ H5AC_set(H5F_t *f, hid_t dxpl_id, const H5AC_class_t *type, haddr_t addr, void * #endif #ifdef H5_HAVE_PARALLEL - /* If MPIO, MPIPOSIX, or FPHDF5 is used, do special parallel I/O actions */ - if(IS_H5FD_MPIO(f) || IS_H5FD_MPIPOSIX(f) || IS_H5FD_FPHDF5(f)) { + /* If MPI based VFD is used, do special parallel I/O actions */ + if(IS_H5FD_MPI(f)) { H5AC_info_t **dinfo; #ifdef H5AC_DEBUG H5AC_subid_t type_id; @@ -1244,8 +1237,8 @@ H5AC_rename(H5F_t *f, hid_t dxpl_id, const H5AC_class_t *type, haddr_t old_addr, } #ifdef H5_HAVE_PARALLEL - /* If MPIO, MPIPOSIX, or FPHDF5 is used, do special parallel I/O actions */ - if(IS_H5FD_MPIO(f) || IS_H5FD_MPIPOSIX(f) || IS_H5FD_FPHDF5(f)) { + /* If MPI based VFD is used, do special parallel I/O actions */ + if(IS_H5FD_MPI(f)) { H5AC_info_t **new_dinfo; #ifdef H5AC_DEBUG H5AC_subid_t type_id; @@ -1342,8 +1335,8 @@ H5AC_rename(H5F_t *f, hid_t dxpl_id, const H5AC_class_t *type, haddr_t old_addr, (*new_info)->addr = new_addr; #ifdef H5_HAVE_PARALLEL - /* If MPIO, MPIPOSIX, or FPHDF5 is used, do special parallel I/O actions */ - if(IS_H5FD_MPIO(f) || IS_H5FD_MPIPOSIX(f) || IS_H5FD_FPHDF5(f)) { + /* If MPI based VFD is used, do special parallel I/O actions */ + if(IS_H5FD_MPI(f)) { H5AC_info_t **old_dinfo; #ifdef H5AC_DEBUG H5AC_subid_t type_id; @@ -1454,8 +1447,8 @@ H5AC_protect(H5F_t *f, hid_t dxpl_id, const H5AC_class_t *type, haddr_t addr, #endif /* H5AC_DEBUG */ #ifdef H5_HAVE_PARALLEL - /* If MPIO, MPIPOSIX, or FPHDF5 is used, do special parallel I/O actions */ - if(IS_H5FD_MPIO(f) || IS_H5FD_MPIPOSIX(f) || IS_H5FD_FPHDF5(f)) { + /* If MPI based VFD is used, do special parallel I/O actions */ + if(IS_H5FD_MPI(f)) { H5AC_info_t **dinfo; /* Get pointer to new 'held' information */ @@ -1676,8 +1669,8 @@ H5AC_unprotect(H5F_t *f, hid_t dxpl_id, const H5AC_class_t *type, haddr_t addr, /* Don't restore deleted objects to the cache */ if(!deleted) { #ifdef H5_HAVE_PARALLEL - /* If MPIO, MPIPOSIX, or FPHDF5 is used, do special parallel I/O actions */ - if(IS_H5FD_MPIO(f) || IS_H5FD_MPIPOSIX(f) || IS_H5FD_FPHDF5(f)) { + /* If MPI based VFD is used, do special parallel I/O actions */ + if(IS_H5FD_MPI(f)) { H5AC_info_t **dinfo; #ifdef H5AC_DEBUG H5AC_subid_t type_id; diff --git a/src/H5Dcontig.c b/src/H5Dcontig.c index 5427875..64a4377 100644 --- a/src/H5Dcontig.c +++ b/src/H5Dcontig.c @@ -31,23 +31,17 @@ #include "H5private.h" /* Generic Functions */ #include "H5Dprivate.h" /* Dataset functions */ #include "H5Eprivate.h" /* Error handling */ -#include "H5Fpkg.h" -#include "H5FDprivate.h" /*file driver */ -#include "H5FLprivate.h" /*Free Lists */ -#include "H5MFprivate.h" /*file memory management */ +#include "H5Fpkg.h" /* Files */ +#include "H5FDprivate.h" /* File drivers */ +#include "H5FLprivate.h" /* Free Lists */ +#include "H5MFprivate.h" /* File memory management */ #include "H5Oprivate.h" /* Object headers */ #include "H5Pprivate.h" /* Property lists */ #include "H5Sprivate.h" /* Dataspace functions */ #include "H5Vprivate.h" /* Vector and array functions */ -/* MPIO, MPIPOSIX, & FPHDF5 drivers needed for special checks */ -#include "H5FDfphdf5.h" -#include "H5FDmpio.h" -#include "H5FDmpiposix.h" - /* Private prototypes */ -static herr_t -H5F_contig_write(H5F_t *f, hsize_t max_data, haddr_t addr, +static herr_t H5F_contig_write(H5F_t *f, hsize_t max_data, haddr_t addr, const size_t size, hid_t dxpl_id, const void *buf); /* Interface initialization */ @@ -158,7 +152,7 @@ H5F_contig_fill(H5F_t *f, hid_t dxpl_id, struct H5O_layout_t *layout, assert(elmt_size>0); #ifdef H5_HAVE_PARALLEL - /* Retrieve up MPI parameters */ + /* Retrieve MPI parameters */ if(IS_H5FD_MPIO(f)) { /* Get the MPI communicator */ if (MPI_COMM_NULL == (mpi_comm=H5FD_mpio_communicator(f->shared->lf))) @@ -256,7 +250,7 @@ H5F_contig_fill(H5F_t *f, hid_t dxpl_id, struct H5O_layout_t *layout, #ifdef H5_HAVE_PARALLEL /* Check if this file is accessed with an MPI-capable file driver */ if(using_mpi) { - /* Round-robin write the chunks out from only one process */ + /* Write the chunks out from only one process */ if(H5_PAR_META_WRITE==mpi_rank) { if (H5F_contig_write(f, (hsize_t)size, addr, size, dxpl_id, buf)<0) HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to write fill value to dataset"); diff --git a/src/H5Dio.c b/src/H5Dio.c index 33ea366..8179b4c 100644 --- a/src/H5Dio.c +++ b/src/H5Dio.c @@ -21,6 +21,7 @@ #include "H5private.h" /* Generic Functions */ #include "H5Dpkg.h" /* Dataset functions */ #include "H5Eprivate.h" /* Error handling */ +#include "H5FDprivate.h" /* File drivers */ #include "H5FLprivate.h" /* Free Lists */ #include "H5Iprivate.h" /* IDs */ #include "H5MMprivate.h" /* Memory management */ @@ -30,15 +31,6 @@ /*#define H5D_DEBUG*/ -/* - * The MPIO, MPIPOSIX, & FPHDF5 drivers are needed because there are - * file and places where we check for things that aren't handled by these - * drivers. - */ -#include "H5FDfphdf5.h" -#include "H5FDmpio.h" -#include "H5FDmpiposix.h" - #ifdef H5_HAVE_PARALLEL /* Remove this if H5R_DATASET_REGION is no longer used in this file */ # include "H5Rpublic.h" @@ -566,9 +558,8 @@ H5D_read(H5D_t *dataset, const H5T_t *mem_type, const H5S_t *mem_space, doing_mpio++; xfer_mode=(H5FD_mpio_xfer_t)H5P_peek_unsigned(dx_plist, H5D_XFER_IO_XFER_MODE_NAME); } /* end if */ - /* Collective access is not permissible without the MPIO or MPIPOSIX driver */ - if (doing_mpio && xfer_mode==H5FD_MPIO_COLLECTIVE && - !(IS_H5FD_MPIO(dataset->ent.file) || IS_H5FD_MPIPOSIX(dataset->ent.file) || IS_H5FD_FPHDF5(dataset->ent.file))) + /* Collective access is not permissible without a MPI based VFD */ + if (doing_mpio && xfer_mode==H5FD_MPIO_COLLECTIVE && !IS_H5FD_MPI(dataset->ent.file)) HGOTO_ERROR (H5E_DATASET, H5E_UNSUPPORTED, FAIL, "collective access for MPIO & MPIPOSIX drivers only"); /* Set the "parallel I/O possible" flag, for H5S_find() */ @@ -765,16 +756,15 @@ H5D_write(H5D_t *dataset, const H5T_t *mem_type, const H5S_t *mem_space, assert(mem_type); assert(buf); - /* If MPIO, MPIPOSIX, or FPHDF5 is used, no VL datatype support yet. */ + /* If MPI based VFD is used, no VL datatype support yet. */ /* This is because they use the global heap in the file and we don't */ /* support parallel access of that yet */ - if ( (IS_H5FD_MPIO(dataset->ent.file) || IS_H5FD_MPIPOSIX(dataset->ent.file) || IS_H5FD_FPHDF5(dataset->ent.file)) && - H5T_get_class(mem_type)==H5T_VLEN) + if (IS_H5FD_MPI(dataset->ent.file) && H5T_get_class(mem_type)==H5T_VLEN) HGOTO_ERROR (H5E_DATASET, H5E_UNSUPPORTED, FAIL, "Parallel IO does not support writing VL datatypes yet"); - /* If MPIO, MPIPOSIX, or FPHDF5 is used, no dataset region reference datatype support yet. */ + /* If MPI based VFD is used, no VL datatype support yet. */ /* This is because they use the global heap in the file and we don't */ /* support parallel access of that yet */ - if ((IS_H5FD_MPIO(dataset->ent.file) || IS_H5FD_MPIPOSIX(dataset->ent.file) || IS_H5FD_FPHDF5(dataset->ent.file)) && + if (IS_H5FD_MPI(dataset->ent.file) && H5T_get_class(mem_type)==H5T_REFERENCE && H5T_get_ref_type(mem_type)==H5R_DATASET_REGION) HGOTO_ERROR (H5E_DATASET, H5E_UNSUPPORTED, FAIL, "Parallel IO does not support writing region reference datatypes yet"); @@ -806,9 +796,8 @@ H5D_write(H5D_t *dataset, const H5T_t *mem_type, const H5S_t *mem_space, xfer_mode=(H5FD_mpio_xfer_t)H5P_peek_unsigned(dx_plist, H5D_XFER_IO_XFER_MODE_NAME); } /* end if */ - /* Collective access is not permissible without the MPIO or MPIPOSIX driver */ - if (doing_mpio && xfer_mode==H5FD_MPIO_COLLECTIVE && - !(IS_H5FD_MPIO(dataset->ent.file) || IS_H5FD_MPIPOSIX(dataset->ent.file) || IS_H5FD_FPHDF5(dataset->ent.file))) + /* Collective access is not permissible without a MPI based VFD */ + if (doing_mpio && xfer_mode==H5FD_MPIO_COLLECTIVE && !IS_H5FD_MPI(dataset->ent.file)) HGOTO_ERROR (H5E_DATASET, H5E_UNSUPPORTED, FAIL, "collective access for MPIO driver only"); /* If dataset is compact, collective access is only allowed when file space diff --git a/src/H5Distore.c b/src/H5Distore.c index 06e5d70..d5c2855 100644 --- a/src/H5Distore.c +++ b/src/H5Distore.c @@ -52,6 +52,7 @@ #include "H5Dprivate.h" /* Datasets */ #include "H5Eprivate.h" /* Error handling */ #include "H5Fpkg.h" /* Files */ +#include "H5FDprivate.h" /* File drivers */ #include "H5FLprivate.h" /* Free Lists */ #include "H5Iprivate.h" /* IDs */ #include "H5MFprivate.h" /* File space management */ @@ -61,11 +62,6 @@ #include "H5Sprivate.h" /* Dataspaces */ #include "H5Vprivate.h" /* Vector and array functions */ -/* MPIO, MPIPOSIX, & FPHDF5 drivers needed for special checks */ -#include "H5FDfphdf5.h" -#include "H5FDmpio.h" -#include "H5FDmpiposix.h" - /* * Feature: If this constant is defined then every cache preemption and load * causes a character to be printed on the standard error stream: @@ -1897,15 +1893,13 @@ HDfprintf(stderr,"%s: mem_offset_arr[%Zu]=%Hu\n",FUNC,*mem_curr_seq,mem_offset_a * for the chunk has been defined, then don't load the chunk into the * cache, just write the data to it directly. * - * If MPIO, MPIPOSIX, or FPHDF5 is used, must bypass the + * If MPI based VFD is used, must bypass the * chunk-cache scheme because other MPI processes could be * writing to other elements in the same chunk. Do a direct * write-through of only the elements requested. */ - if ((chunk_size>f->shared->rdcc_nbytes && pline.nfilters==0 && - chunk_addr!=HADDR_UNDEF) - || ((IS_H5FD_MPIO(f) ||IS_H5FD_MPIPOSIX(f) || IS_H5FD_FPHDF5(f)) && - (H5F_ACC_RDWR & f->shared->flags))) { + if ((chunk_size>f->shared->rdcc_nbytes && pline.nfilters==0 && chunk_addr!=HADDR_UNDEF) + || (IS_H5FD_MPI(f) && (H5F_ACC_RDWR & f->shared->flags))) { #ifdef H5_HAVE_PARALLEL /* Additional sanity check when operating in parallel */ if (chunk_addr==HADDR_UNDEF || pline.nfilters>0) @@ -2345,7 +2339,7 @@ H5F_istore_allocate(H5F_t *f, hid_t dxpl_id, const H5O_layout_t *layout, #ifdef H5_HAVE_PARALLEL /* Check if this file is accessed with an MPI-capable file driver */ if(using_mpi) { - /* Round-robin write the chunks out from only one process */ + /* Write the chunks out from only one process */ if(H5_PAR_META_WRITE==mpi_rank) { if (H5F_block_write(f, H5FD_MEM_DRAW, udata.addr, udata.key.nbytes, dxpl_id, chunk)<0) HGOTO_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "unable to write raw data to file"); diff --git a/src/H5Dseq.c b/src/H5Dseq.c index a007ebb..9ac6c17 100644 --- a/src/H5Dseq.c +++ b/src/H5Dseq.c @@ -29,21 +29,17 @@ /* (Put before include files to avoid problems with inline functions) */ #define PABLO_MASK H5Fseq_mask -#include "H5private.h" -#include "H5Dprivate.h" -#include "H5Eprivate.h" -#include "H5Fpkg.h" -#include "H5FDprivate.h" /*file driver */ -#include "H5Iprivate.h" -#include "H5MFprivate.h" -#include "H5MMprivate.h" /*memory management */ -#include "H5Oprivate.h" -#include "H5Pprivate.h" -#include "H5Vprivate.h" - -/* MPIO & MPIPOSIX driver functions are needed for some special checks */ -#include "H5FDmpio.h" -#include "H5FDmpiposix.h" +#include "H5private.h" /* Generic Functions */ +#include "H5Dprivate.h" /* Datasets */ +#include "H5Eprivate.h" /* Error handling */ +#include "H5Fpkg.h" /* Files */ +#include "H5FDprivate.h" /* File drivers */ +#include "H5Iprivate.h" /* IDs */ +#include "H5MFprivate.h" /* File space management */ +#include "H5MMprivate.h" /* Memory management */ +#include "H5Oprivate.h" /* Object headers */ +#include "H5Pprivate.h" /* Property lists */ +#include "H5Vprivate.h" /* Vector and array functions */ /* Interface initialization */ #define INTERFACE_INIT NULL diff --git a/src/H5FDprivate.h b/src/H5FDprivate.h index 7993e91..22d445c 100644 --- a/src/H5FDprivate.h +++ b/src/H5FDprivate.h @@ -19,10 +19,28 @@ #ifndef _H5FDprivate_H #define _H5FDprivate_H +/* Include package's public header */ #include "H5FDpublic.h" +/* Private headers needed by this file */ + +/* + * The MPIO, MPIPOSIX, & FPHDF5 drivers are needed because there are + * places where we check for things that aren't handled by these drivers. + */ +#include "H5FDfphdf5.h" +#include "H5FDmpio.h" +#include "H5FDmpiposix.h" + +/* Macros */ + #define H5FD_has_cmp(id) (NULL!=H5FD_get_class(id)->cmp) +/* Single macro to check for all file drivers that use MPI */ +#define IS_H5FD_MPI(file) \ + (IS_H5FD_MPIO(file) || IS_H5FD_MPIPOSIX(file) || IS_H5FD_FPHDF5(file)) + +/* Prototypes */ H5_DLL int H5FD_term_interface(void); H5_DLL H5FD_class_t *H5FD_get_class(hid_t id); H5_DLL hsize_t H5FD_sb_size(H5FD_t *file); diff --git a/src/H5Fcontig.c b/src/H5Fcontig.c index 5427875..64a4377 100644 --- a/src/H5Fcontig.c +++ b/src/H5Fcontig.c @@ -31,23 +31,17 @@ #include "H5private.h" /* Generic Functions */ #include "H5Dprivate.h" /* Dataset functions */ #include "H5Eprivate.h" /* Error handling */ -#include "H5Fpkg.h" -#include "H5FDprivate.h" /*file driver */ -#include "H5FLprivate.h" /*Free Lists */ -#include "H5MFprivate.h" /*file memory management */ +#include "H5Fpkg.h" /* Files */ +#include "H5FDprivate.h" /* File drivers */ +#include "H5FLprivate.h" /* Free Lists */ +#include "H5MFprivate.h" /* File memory management */ #include "H5Oprivate.h" /* Object headers */ #include "H5Pprivate.h" /* Property lists */ #include "H5Sprivate.h" /* Dataspace functions */ #include "H5Vprivate.h" /* Vector and array functions */ -/* MPIO, MPIPOSIX, & FPHDF5 drivers needed for special checks */ -#include "H5FDfphdf5.h" -#include "H5FDmpio.h" -#include "H5FDmpiposix.h" - /* Private prototypes */ -static herr_t -H5F_contig_write(H5F_t *f, hsize_t max_data, haddr_t addr, +static herr_t H5F_contig_write(H5F_t *f, hsize_t max_data, haddr_t addr, const size_t size, hid_t dxpl_id, const void *buf); /* Interface initialization */ @@ -158,7 +152,7 @@ H5F_contig_fill(H5F_t *f, hid_t dxpl_id, struct H5O_layout_t *layout, assert(elmt_size>0); #ifdef H5_HAVE_PARALLEL - /* Retrieve up MPI parameters */ + /* Retrieve MPI parameters */ if(IS_H5FD_MPIO(f)) { /* Get the MPI communicator */ if (MPI_COMM_NULL == (mpi_comm=H5FD_mpio_communicator(f->shared->lf))) @@ -256,7 +250,7 @@ H5F_contig_fill(H5F_t *f, hid_t dxpl_id, struct H5O_layout_t *layout, #ifdef H5_HAVE_PARALLEL /* Check if this file is accessed with an MPI-capable file driver */ if(using_mpi) { - /* Round-robin write the chunks out from only one process */ + /* Write the chunks out from only one process */ if(H5_PAR_META_WRITE==mpi_rank) { if (H5F_contig_write(f, (hsize_t)size, addr, size, dxpl_id, buf)<0) HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to write fill value to dataset"); diff --git a/src/H5Fistore.c b/src/H5Fistore.c index 06e5d70..d5c2855 100644 --- a/src/H5Fistore.c +++ b/src/H5Fistore.c @@ -52,6 +52,7 @@ #include "H5Dprivate.h" /* Datasets */ #include "H5Eprivate.h" /* Error handling */ #include "H5Fpkg.h" /* Files */ +#include "H5FDprivate.h" /* File drivers */ #include "H5FLprivate.h" /* Free Lists */ #include "H5Iprivate.h" /* IDs */ #include "H5MFprivate.h" /* File space management */ @@ -61,11 +62,6 @@ #include "H5Sprivate.h" /* Dataspaces */ #include "H5Vprivate.h" /* Vector and array functions */ -/* MPIO, MPIPOSIX, & FPHDF5 drivers needed for special checks */ -#include "H5FDfphdf5.h" -#include "H5FDmpio.h" -#include "H5FDmpiposix.h" - /* * Feature: If this constant is defined then every cache preemption and load * causes a character to be printed on the standard error stream: @@ -1897,15 +1893,13 @@ HDfprintf(stderr,"%s: mem_offset_arr[%Zu]=%Hu\n",FUNC,*mem_curr_seq,mem_offset_a * for the chunk has been defined, then don't load the chunk into the * cache, just write the data to it directly. * - * If MPIO, MPIPOSIX, or FPHDF5 is used, must bypass the + * If MPI based VFD is used, must bypass the * chunk-cache scheme because other MPI processes could be * writing to other elements in the same chunk. Do a direct * write-through of only the elements requested. */ - if ((chunk_size>f->shared->rdcc_nbytes && pline.nfilters==0 && - chunk_addr!=HADDR_UNDEF) - || ((IS_H5FD_MPIO(f) ||IS_H5FD_MPIPOSIX(f) || IS_H5FD_FPHDF5(f)) && - (H5F_ACC_RDWR & f->shared->flags))) { + if ((chunk_size>f->shared->rdcc_nbytes && pline.nfilters==0 && chunk_addr!=HADDR_UNDEF) + || (IS_H5FD_MPI(f) && (H5F_ACC_RDWR & f->shared->flags))) { #ifdef H5_HAVE_PARALLEL /* Additional sanity check when operating in parallel */ if (chunk_addr==HADDR_UNDEF || pline.nfilters>0) @@ -2345,7 +2339,7 @@ H5F_istore_allocate(H5F_t *f, hid_t dxpl_id, const H5O_layout_t *layout, #ifdef H5_HAVE_PARALLEL /* Check if this file is accessed with an MPI-capable file driver */ if(using_mpi) { - /* Round-robin write the chunks out from only one process */ + /* Write the chunks out from only one process */ if(H5_PAR_META_WRITE==mpi_rank) { if (H5F_block_write(f, H5FD_MEM_DRAW, udata.addr, udata.key.nbytes, dxpl_id, chunk)<0) HGOTO_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "unable to write raw data to file"); diff --git a/src/H5Fseq.c b/src/H5Fseq.c index a007ebb..9ac6c17 100644 --- a/src/H5Fseq.c +++ b/src/H5Fseq.c @@ -29,21 +29,17 @@ /* (Put before include files to avoid problems with inline functions) */ #define PABLO_MASK H5Fseq_mask -#include "H5private.h" -#include "H5Dprivate.h" -#include "H5Eprivate.h" -#include "H5Fpkg.h" -#include "H5FDprivate.h" /*file driver */ -#include "H5Iprivate.h" -#include "H5MFprivate.h" -#include "H5MMprivate.h" /*memory management */ -#include "H5Oprivate.h" -#include "H5Pprivate.h" -#include "H5Vprivate.h" - -/* MPIO & MPIPOSIX driver functions are needed for some special checks */ -#include "H5FDmpio.h" -#include "H5FDmpiposix.h" +#include "H5private.h" /* Generic Functions */ +#include "H5Dprivate.h" /* Datasets */ +#include "H5Eprivate.h" /* Error handling */ +#include "H5Fpkg.h" /* Files */ +#include "H5FDprivate.h" /* File drivers */ +#include "H5Iprivate.h" /* IDs */ +#include "H5MFprivate.h" /* File space management */ +#include "H5MMprivate.h" /* Memory management */ +#include "H5Oprivate.h" /* Object headers */ +#include "H5Pprivate.h" /* Property lists */ +#include "H5Vprivate.h" /* Vector and array functions */ /* Interface initialization */ #define INTERFACE_INIT NULL diff --git a/src/H5Smpio.c b/src/H5Smpio.c index 224f15a..01dba0a 100644 --- a/src/H5Smpio.c +++ b/src/H5Smpio.c @@ -24,27 +24,16 @@ #define H5F_PACKAGE /*suppress error about including H5Fpkg */ #define H5S_PACKAGE /*suppress error about including H5Spkg */ -#include "H5private.h" /* Internal types, etc. */ -#include "H5Eprivate.h" /* Error reporting */ -#include "H5Fpkg.h" /* Ugly, but necessary for the MPIO I/O accesses */ -#include "H5FDmpio.h" /* MPIO file driver */ -#include "H5FDprivate.h" /* Necessary for the H5FD_write & H5FD_read prototypes.. */ -#include "H5Iprivate.h" /* Object IDs */ -#include "H5Pprivate.h" /* Property Lists */ -#include "H5Spkg.h" /* Dataspaces */ - -#ifndef H5_HAVE_PARALLEL -/* - * The H5S_mpio_xxxx functions are for parallel I/O only and are - * valid only when H5_HAVE_PARALLEL is #defined. This empty #ifndef - * body is used to allow this source file be included in the serial - * distribution. - * Some compilers/linkers may complain about "empty" object file. - * If that happens, uncomment the following statement to pacify - * them. - */ -/* const hbool_t H5S_mpio_avail = FALSE; */ -#else /* H5_HAVE_PARALLEL */ +#include "H5private.h" /* Generic Functions */ +#include "H5Eprivate.h" /* Error handling */ +#include "H5Fpkg.h" /* Files */ +#include "H5FDprivate.h" /* File drivers */ +#include "H5Iprivate.h" /* IDs */ +#include "H5Pprivate.h" /* Property lists */ +#include "H5Spkg.h" /* Dataspaces */ + +#ifdef H5_HAVE_PARALLEL + /* Interface initialization */ #define PABLO_MASK H5Sall_mask #define INTERFACE_INIT NULL -- cgit v0.12