mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-03-19 16:50:46 +08:00
[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:
parent
1b1be9918c
commit
01b8b7cc52
@ -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*/
|
||||
|
14
src/H5S.c
14
src/H5S.c
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user