summaryrefslogtreecommitdiffstats
path: root/src/H5FDmpiposix.c
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2004-01-31 01:37:08 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2004-01-31 01:37:08 (GMT)
commit34b2fedf24ce57d0a5b1634060db1ca29a87d8b4 (patch)
tree6c888e5caaecc606505bdd7216bd60b6665935e0 /src/H5FDmpiposix.c
parent76bcf91b27cdb0cadf31d3b736bb93752db25d7d (diff)
downloadhdf5-34b2fedf24ce57d0a5b1634060db1ca29a87d8b4.zip
hdf5-34b2fedf24ce57d0a5b1634060db1ca29a87d8b4.tar.gz
hdf5-34b2fedf24ce57d0a5b1634060db1ca29a87d8b4.tar.bz2
[svn-r8125] Purpose:
Bug fix/optimization Description: Address slowdown in MPI-I/O file metadata operations that was introduced mid-stream. We now _require_ a POSIX compliant parallel file system for the MPI-I/O file driver (as well as for the MPI-POSIX file driver). Also optimized file open operation when the file is being created by reducing the number of collective & syncronizing calls. Platforms tested: FreeBSD 4.9 (sleipnir) w/parallel h5committest
Diffstat (limited to 'src/H5FDmpiposix.c')
-rw-r--r--src/H5FDmpiposix.c30
1 files changed, 4 insertions, 26 deletions
diff --git a/src/H5FDmpiposix.c b/src/H5FDmpiposix.c
index 8bca0bf..a51945d 100644
--- a/src/H5FDmpiposix.c
+++ b/src/H5FDmpiposix.c
@@ -224,17 +224,6 @@ static const H5FD_class_t H5FD_mpiposix_g = {
H5FD_FLMAP_SINGLE /*fl_map */
};
-#ifdef OLD_METADATA_WRITE
-/* Global var to allow elimination of redundant metadata writes
- * to be controlled by the value of an environment variable. */
-/* Use the elimination by default unless this is the Intel Red machine */
-#ifndef __PUMAGON__
-hbool_t H5_mpiposix_1_metawrite_g = TRUE;
-#else
-hbool_t H5_mpiposix_1_metawrite_g = FALSE;
-#endif
-#endif /* OLD_METADATA_WRITE */
-
/* Interface initialization */
#define PABLO_MASK H5FD_mpiposix_mask
#define INTERFACE_INIT H5FD_mpiposix_init
@@ -1425,12 +1414,9 @@ H5FD_mpiposix_write(H5FD_t *_file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr,
if (MPI_SUCCESS!= (mpi_code=MPI_Barrier(file->comm)))
HMPI_GOTO_ERROR(FAIL, "MPI_Barrier failed", mpi_code);
- /* Only p<round> will do the actual write if all procs in comm write same metadata */
-#ifdef OLD_METADATA_WRITE
- if (H5_mpiposix_1_metawrite_g)
-#endif /* OLD_METADATA_WRITE */
- if (file->mpi_rank != H5_PAR_META_WRITE)
- HGOTO_DONE(SUCCEED) /* skip the actual write */
+ /* Only one process will do the actual write if all procs in comm write same metadata */
+ if (file->mpi_rank != H5_PAR_META_WRITE)
+ HGOTO_DONE(SUCCEED) /* skip the actual write */
} /* end if */
#ifdef REPORT_IO
@@ -1502,19 +1488,11 @@ done:
} /* end if */
/* Guard against getting into metadata broadcast in failure cases */
else {
-#ifdef OLD_METADATA_WRITE
- /* if only p<round> writes, need to broadcast the ret_value to other processes */
- if ((type!=H5FD_MEM_DRAW) && H5_mpiposix_1_metawrite_g) {
- if (MPI_SUCCESS != (mpi_code= MPI_Bcast(&ret_value, sizeof(ret_value), MPI_BYTE, H5_PAR_META_WRITE, file->comm)))
- HMPI_GOTO_ERROR(FAIL, "MPI_Bcast failed", mpi_code);
- } /* end if */
-#else /* OLD_METADATA_WRITE */
- /* if only p<round> writes, need to broadcast the ret_value to other processes */
+ /* if only one process writes, need to broadcast the ret_value to other processes */
if (type!=H5FD_MEM_DRAW) {
if (MPI_SUCCESS != (mpi_code= MPI_Bcast(&ret_value, sizeof(ret_value), MPI_BYTE, H5_PAR_META_WRITE, file->comm)))
HMPI_GOTO_ERROR(FAIL, "MPI_Bcast failed", mpi_code);
} /* end if */
-#endif /* OLD_METADATA_WRITE */
} /* end else */
FUNC_LEAVE_NOAPI(ret_value);