summaryrefslogtreecommitdiffstats
path: root/configure.ac
diff options
context:
space:
mode:
authorJordan Henderson <jhenderson@hdfgroup.org>2018-08-02 14:25:00 (GMT)
committerJordan Henderson <jhenderson@hdfgroup.org>2018-08-02 14:25:00 (GMT)
commit70de0b18e33656d46be7da1d6bcf0f53605b673c (patch)
tree78b984e24ee16b138d051157a663d09fdd005904 /configure.ac
parentcca9fbcff0e3d8ed4cd2a2b50d00531271214a26 (diff)
parent9aa2eaeb9ed9c94f63973cb55f13de256558497c (diff)
downloadhdf5-70de0b18e33656d46be7da1d6bcf0f53605b673c.zip
hdf5-70de0b18e33656d46be7da1d6bcf0f53605b673c.tar.gz
hdf5-70de0b18e33656d46be7da1d6bcf0f53605b673c.tar.bz2
Merge pull request #1167 in HDFFV/hdf5 from ~JHENDERSON/hdf5:bugfix/MPI2_only_fixes to develop
* commit '9aa2eaeb9ed9c94f63973cb55f13de256558497c': Add Autotools and CMake checks for big I/O MPI-3 functions Add hdf5settings section for parallel compression status in CMake builds Switch to CheckSymbolExists in CMake Add configure check for MPI_Mprobe and MPI_Imrecv functions
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac63
1 files changed, 63 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index ae09559..ff0f284 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2531,6 +2531,8 @@ esac
AC_SUBST([ADD_PARALLEL_FILES]) ADD_PARALLEL_FILES="no"
AC_SUBST([MPE]) MPE=no
AC_SUBST([INSTRUMENT_LIBRARY]) INSTRUMENT_LIBRARY=no
+AC_SUBST([PARALLEL_FILTERED_WRITES])
+AC_SUBST([LARGE_PARALLEL_IO])
if test -n "$PARALLEL"; then
## The 'testpar' directory should participate in the build
@@ -2686,6 +2688,61 @@ if test -n "$PARALLEL"; then
if test "X-$MPE" = "X-yes"; then
AC_DEFINE([HAVE_MPE], [1], [Define if we have MPE support])
fi
+
+ ## ----------------------------------------------------------------------
+ ## Check for the MPI-3 functions necessary for the Parallel Compression
+ ## feature. If these are not present, issue a warning that Parallel
+ ## Compression will be disabled.
+ ##
+ AC_MSG_CHECKING([for MPI_Mprobe and MPI_Imrecv functions])
+
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+ #include <mpi.h>
+ ]],
+ [[
+ MPI_Message message;
+ MPI_Init(0, (void *) 0);
+ MPI_Mprobe(0, 0, 0, &message, (void *) 0);
+ MPI_Imrecv((void *) 0, 0, 0, (void *) 0, (void *) 0);
+ ]]
+ )],
+ [AC_MSG_RESULT([yes])
+ PARALLEL_FILTERED_WRITES=yes],
+ [AC_MSG_RESULT([no])
+ AC_MSG_WARN([A simple MPI program using the MPI_Mprobe and MPI_Imrecv functions could not be compiled and linked.
+ Parallel writes of filtered data will be disabled.])
+ PARALLEL_FILTERED_WRITES=no]
+ )
+
+ ## ----------------------------------------------------------------------
+ ## Check for the MPI-3 functions necessary for the big I/O feature.
+ ## If these are not present, issue a warning that the big I/O feature
+ ## will be disabled.
+ ##
+ AC_MSG_CHECKING([for MPI_Get_elements_x and MPI_Type_size_x functions])
+
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+ #include <mpi.h>
+ ]],
+ [[
+ MPI_Count count;
+ MPI_Init(0, (void *) 0);
+ MPI_Get_elements_x(0, 0, &count);
+ MPI_Type_size_x(0, &count);
+ ]]
+ )],
+ [AC_MSG_RESULT([yes])
+ LARGE_PARALLEL_IO=yes],
+ [AC_MSG_RESULT([no])
+ AC_MSG_WARN([A simple MPI program using the MPI_Get_elements_x and MPI_Type_size_x functions could not be compiled and linked.
+ Reading/Writing >2GB of data in a single parallel I/O operation will be disabled.])
+ LARGE_PARALLEL_IO=no]
+ )
+
fi
## ----------------------------------------------------------------------
@@ -2976,6 +3033,12 @@ AC_SUBST([WORDS_BIGENDIAN])
## Parallel support? (set above except empty if none)
PARALLEL=${PARALLEL:-no}
+## Parallel writes to filtered datasets support?
+PARALLEL_FILTERED_WRITES=${PARALLEL_FILTERED_WRITES:-no}
+
+## >2GB writes in parallel support?
+LARGE_PARALLEL_IO=${LARGE_PARALLEL_IO:-no}
+
## Compiler with version information. This consists of the full path
## name of the compiler and the reported version number.
AC_SUBST([CC_VERSION])