From 0f1c1ae4b3c6ac7fad11b4c949f9f4c67cd2989a Mon Sep 17 00:00:00 2001 From: MuQun Yang Date: Tue, 12 Jul 2005 14:16:39 -0500 Subject: [svn-r11066] Purpose: Updating phase 2 work of collective IO Description: When the size is bigger than some value for MPI derived data type, mpich 1.2.5 and lower version won't work any more, so in the configuration file, we will check the version number and switch from collective IO to independent IO by turning off complex derived datatype. Solution: Platforms tested: linux 2.4, AIX 5.1, Linux 2.4 IA64 and IRIX 6.5 Misc. update: --- config/ia64-linux-gnu | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/config/ia64-linux-gnu b/config/ia64-linux-gnu index 11cfacb..f22bf21 100644 --- a/config/ia64-linux-gnu +++ b/config/ia64-linux-gnu @@ -137,5 +137,19 @@ case $CXX_BASENAME in PROFILE_CPPFLAGS= ;; esac - +# We know that for mpich 1.2.5 and previous version, complicated derived datatype is +# supported, we need to set the macro to hdf5_mpi_complex_derived_datatype_works to no. +# Notice that this fix will only work if the compiler name is mpicc and mpi package is +# mpich 1.x.x. +if [ -z "$hdf5_mpi_complex_derived_datatype_works" -a $CC_BASENAME = mpicc ]; then + ccversion=`$CC -v 2>&1 | sed -e 's/.*for //p'` + ccversion1=`echo $ccversion | cut -f1 -d.` + ccversion2=`echo $ccversion | cut -f2 -d.` + ccversiontemp=`echo $ccversion | cut -f3 -d.` + ccversion3=`echo $ccversiontemp | cut -c1` + ccversionval=`expr $ccversion1 \* 100 + $ccversion2 \* 10 + $ccversion3` + if [ $ccversionval -lt 126 ]; then + hdf5_mpi_complex_derived_datatype_works='no' + fi +fi -- cgit v0.12