Commit ea40b327 authored by Marc Howison's avatar Marc Howison

fixes to lustre optimizations

parent 90f85066
/* config.h.in. Generated from configure.ac by autoheader. */
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* "" */
#undef MY_BUILD_CPU
......@@ -60,40 +33,12 @@
/* Define to the version of this package. */
#undef PACKAGE_VERSION
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
/* Version number of package */
#undef VERSION
/* Enable extensions on AIX 3, Interix. */
/* Define to 1 if on AIX 3.
System headers sometimes define this.
We just want to avoid a redefinition error message. */
#ifndef _ALL_SOURCE
# undef _ALL_SOURCE
#endif
/* Enable GNU extensions on systems that have them. */
#ifndef _GNU_SOURCE
# undef _GNU_SOURCE
#endif
/* Enable threading extensions on Solaris. */
#ifndef _POSIX_PTHREAD_SEMANTICS
# undef _POSIX_PTHREAD_SEMANTICS
#endif
/* Enable extensions on HP NonStop. */
#ifndef _TANDEM_SOURCE
# undef _TANDEM_SOURCE
#endif
/* Enable general extensions on Solaris. */
#ifndef __EXTENSIONS__
# undef __EXTENSIONS__
#endif
/* Version number of package */
#undef VERSION
/* Define to 1 if on MINIX. */
#undef _MINIX
/* Define to 2 if the system does not provide POSIX.1 features except with
this defined. */
#undef _POSIX_1_SOURCE
/* Define to 1 if you need to in order for `stat' and other things to work. */
#undef _POSIX_SOURCE
......@@ -227,29 +227,32 @@ _H5Part_open_file (
if ( flags & H5PART_FS_LUSTRE )
{
/* extend the btree size so that metadata pieces are
* close to the alignment value */
unsigned int btree_ik = (align - 256) / 96;
unsigned int btree_bytes = 64 + 96*btree_ik;
if ( btree_bytes > align ) {
HANDLE_H5PART_INVALID_ERR(
"btree_ik", btree_ik );
goto error_cleanup;
}
* close to the alignment value */
if ( align > 0 )
{
unsigned int btree_ik = (align - 4096) / 96;
unsigned int btree_bytes = 64 + 96*btree_ik;
if ( btree_bytes > align ) {
HANDLE_H5PART_INVALID_ERR(
"btree_ik", btree_ik );
goto error_cleanup;
}
_H5Part_print_info (
"Setting HDF5 btree parameter to %u",
btree_ik );
_H5Part_print_info (
"Extending HDF5 btree size to %u bytes at rank 3",
btree_bytes );
_H5Part_print_info (
"Setting HDF5 btree parameter to %u",
btree_ik );
_H5Part_print_info (
"Extending HDF5 btree size to %u "
"bytes at rank 3", btree_bytes );
f->fcreate_prop = H5Pcreate(H5P_FILE_CREATE);
if ( f->fcreate_prop < 0 ) {
HANDLE_H5P_CREATE_ERR;
goto error_cleanup;
}
f->fcreate_prop = H5Pcreate(H5P_FILE_CREATE);
if ( f->fcreate_prop < 0 ) {
HANDLE_H5P_CREATE_ERR;
goto error_cleanup;
}
H5Pset_istore_k (f->fcreate_prop, btree_ik);
H5Pset_istore_k (f->fcreate_prop, btree_ik);
}
#ifdef H5PART_HAVE_HDF5_18
/* defer metadata cache flushing until file close */
......@@ -269,6 +272,36 @@ _H5Part_open_file (
#endif // H5_USE_16_API
}
/* select the HDF5 VFD */
if (flags & H5PART_VFD_MPIPOSIX) {
_H5Part_print_info ( "Selecting MPI-POSIX VFD" );
if (H5Pset_fapl_mpiposix ( f->access_prop, comm, 0 ) < 0) {
HANDLE_H5P_SET_FAPL_ERR;
goto error_cleanup;
}
}
else {
_H5Part_print_info ( "Selecting MPI-IO VFD" );
if (H5Pset_fapl_mpio ( f->access_prop, comm, info ) < 0) {
HANDLE_H5P_SET_FAPL_ERR;
goto error_cleanup;
}
if (flags & H5PART_VFD_MPIIO_IND) {
_H5Part_print_info ( "Using independent mode" );
} else {
_H5Part_print_info ( "Using collective mode" );
f->xfer_prop = H5Pcreate (H5P_DATASET_XFER);
if (f->xfer_prop < 0) {
HANDLE_H5P_CREATE_ERR;
goto error_cleanup;
}
if (H5Pset_dxpl_mpio ( f->xfer_prop, H5FD_MPIO_COLLECTIVE ) < 0) {
HANDLE_H5P_SET_DXPL_MPIO_ERR;
goto error_cleanup;
}
}
}
f->comm = comm;
#endif // PARALLEL_IO
} else {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment