From bee5c236e56815d5d53dcb96f9cd3cbb64b4713a Mon Sep 17 00:00:00 2001 From: MuQun Yang Date: Tue, 12 Jul 2005 14:14:18 -0500 Subject: [svn-r11065] 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/linux-gnulibc1 | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/config/linux-gnulibc1 b/config/linux-gnulibc1 index 49054a1..454a829 100644 --- a/config/linux-gnulibc1 +++ b/config/linux-gnulibc1 @@ -112,3 +112,20 @@ if test -z "$CXX"; then CXX=g++ CXX_BASENAME=g++ fi + +# 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