[svn-r628] MPI buffer and file type optimization is bypassed,

unless the environment variable HDF5_MPI_OPT_TYPES is nonzero.
This commit is contained in:
Robert Kim Yates 1998-08-28 14:08:33 -05:00
parent 1b1be9918c
commit 01b8b7cc52
3 changed files with 24 additions and 2 deletions

View File

@ -1378,7 +1378,8 @@ H5D_read(H5D_t *dataset, const H5T_t *mem_type, const H5S_t *mem_space,
* mem-and-file-dataspace-xfer functions
* (the latter in case the arguments to sconv_funcs
* turn out to be inappropriate for MPI-IO). */
if (dataset->ent.file->shared->access_parms->driver == H5F_LOW_MPIO) {
if (H5_mpi_opt_types_g &&
H5F_LOW_MPIO==dataset->ent.file->shared->access_parms->driver) {
sconv->read = H5S_mpio_spaces_read;
}
#endif /*HAVE_PARALLEL*/
@ -1730,7 +1731,8 @@ H5D_write(H5D_t *dataset, const H5T_t *mem_type, const H5S_t *mem_space,
* mem-and-file-dataspace-xfer functions
* (the latter in case the arguments to sconv_funcs
* turn out to be inappropriate for MPI-IO). */
if (dataset->ent.file->shared->access_parms->driver == H5F_LOW_MPIO) {
if (H5_mpi_opt_types_g &&
H5F_LOW_MPIO==dataset->ent.file->shared->access_parms->driver) {
sconv->write = H5S_mpio_spaces_write;
}
#endif /*HAVE_PARALLEL*/

View File

@ -16,6 +16,7 @@ static char RcsId[] = "@(#)$Revision$";
/* $Id$ */
#define _H5S_IN_H5S_C
#include <H5private.h> /* Generic Functions */
#include <H5Iprivate.h> /* ID Functions */
#include <H5Eprivate.h> /* Error handling */
@ -39,6 +40,11 @@ static H5S_conv_t **H5S_conv_g = NULL;
static size_t H5S_aconv_g = 0; /*entries allocated*/
static size_t H5S_nconv_g = 0; /*entries used*/
#ifdef HAVE_PARALLEL
/* Global var whose value comes from environment variable */
hbool_t H5_mpi_opt_types_g = FALSE;
#endif
/*--------------------------------------------------------------------------
NAME
@ -72,6 +78,14 @@ H5S_init_interface(void)
"unable to register one or more conversion functions");
}
{
/* Allow MPI buf-and-file-type optimizations? */
const char *s = getenv ("HDF5_MPI_OPT_TYPES");
if (s && isdigit(*s)) {
H5_mpi_opt_types_g = (int)HDstrtol (s, NULL, 0);
}
}
FUNC_LEAVE(ret_value);
}

View File

@ -344,6 +344,12 @@ hbool_t H5S_hyper_select_valid (const H5S_t *space);
const struct H5O_efl_t *efl, size_t elmt_size,
const H5S_t *file_space, const H5S_t *mem_space,
const H5D_transfer_t xfer_mode, const void *buf);
#ifndef _H5S_IN_H5S_C
/* Global var whose value comes from environment variable */
extern hbool_t H5_mpi_opt_types_g;
#endif /* _H5S_IN_H5S_C */
#endif
#endif