diff options
author | MuQun Yang <ymuqun@hdfgroup.org> | 2005-09-08 22:10:18 (GMT) |
---|---|---|
committer | MuQun Yang <ymuqun@hdfgroup.org> | 2005-09-08 22:10:18 (GMT) |
commit | 02db013002c44fbdf01c6c78847d8eca287eee57 (patch) | |
tree | f9495b707b7c847962c11ac9110adf817695a612 | |
parent | 7c0dfc0e1ff740f9e1646145c598c53279cd2701 (diff) | |
download | hdf5-02db013002c44fbdf01c6c78847d8eca287eee57.zip hdf5-02db013002c44fbdf01c6c78847d8eca287eee57.tar.gz hdf5-02db013002c44fbdf01c6c78847d8eca287eee57.tar.bz2 |
[svn-r11376] Purpose:
To support collective IO for irregular selection in the upcoming 1.6.4 release
Description:
To add a macro to detect complicate derived datatype for some platform.
Solution:
See release.txt for more description about this.
Platforms tested:
AIX 5.1(32bit and 64bit)
Linux 2.4(heping)-mpich 1.2.6
Linux 2.4(NCSA teragrid) -mpich 1.2.5
Altrix(cobalt)
IRIX 6.5- c compiler version 7.4.3(NCAR SGI)
Linux 2.4(tune) - CMPI 2.1.0
Misc. update:
-rw-r--r-- | config/ia64-linux-gnu | 16 | ||||
-rw-r--r-- | config/irix6.x | 17 | ||||
-rw-r--r-- | config/linux-gnulibc1 | 16 | ||||
-rw-r--r-- | config/powerpc-ibm-aix4.x | 2 | ||||
-rw-r--r-- | config/powerpc-ibm-aix5.x | 5 |
5 files changed, 56 insertions, 0 deletions
diff --git a/config/ia64-linux-gnu b/config/ia64-linux-gnu index 76f669f3..67dab13 100644 --- a/config/ia64-linux-gnu +++ b/config/ia64-linux-gnu @@ -34,3 +34,19 @@ case $CC_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 diff --git a/config/irix6.x b/config/irix6.x index c8918a1..a9d93e1 100644 --- a/config/irix6.x +++ b/config/irix6.x @@ -80,3 +80,20 @@ case "X-$CC_BASENAME" in PROFILE_CPPFLAGS= ;; esac + +# For IRIX 6.5, any version that is older than MIPSpro 7.3.1.3m, +# the MPI derived datatype is not working. +# Versions 7.4.2m or newer work. +# Fix $hdf5_mpi_complex_derived_datatype_works if it is not set and is using cc. +if [ -z "$hdf5_mpi_complex_derived_datatype_works" -a $CC_BASENAME = cc ]; then + ccversion=`$CC -version 2>&1 | sed -e 's/.*Version //p'` + ccversion1=`echo $ccversion | cut -f1 -d.` + ccversion2=`echo $ccversion | cut -f2 -d.` + # Assume all versions 7.4.* or newer are okay + # and assume ccversion2 is never larger than 99. + ccversionval=`expr $ccversion1 \* 100 + $ccversion2` + if [ $ccversionval -lt 704 ]; then + hdf5_mpi_complex_derived_datatype_works='no' + fi +fi + diff --git a/config/linux-gnulibc1 b/config/linux-gnulibc1 index bec3fa4..06d0bbf 100644 --- a/config/linux-gnulibc1 +++ b/config/linux-gnulibc1 @@ -21,3 +21,19 @@ fi # Figure out Intel C compiler flags . $srcdir/config/intel-flags +# 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
\ No newline at end of file diff --git a/config/powerpc-ibm-aix4.x b/config/powerpc-ibm-aix4.x index 8b8ae02..2c71673 100644 --- a/config/powerpc-ibm-aix4.x +++ b/config/powerpc-ibm-aix4.x @@ -82,3 +82,5 @@ ac_cv_sizeof_uint_fast64_t=${ac_cv_sizeof_uint_fast64_t=8} # Don't cache size_t and off_t because they depend on if -D_LARGE_FILES is used #ac_cv_sizeof_size_t=${ac_cv_sizeof_size_t=4} #ac_cv_sizeof_off_t=${ac_cv_sizeof_off_t=8} + +hdf5_mpi_complex_derived_datatype_works=${hdf5_mpi_complex_derived_datatype_works='no'}
\ No newline at end of file diff --git a/config/powerpc-ibm-aix5.x b/config/powerpc-ibm-aix5.x index 485ef6c..50761aa 100644 --- a/config/powerpc-ibm-aix5.x +++ b/config/powerpc-ibm-aix5.x @@ -107,3 +107,8 @@ ac_cv_sizeof_uint_fast64_t=${ac_cv_sizeof_uint_fast64_t=8} # Don't cache size_t and off_t because they depend on if -D_LARGE_FILES is used #ac_cv_sizeof_size_t=${ac_cv_sizeof_size_t=4} #ac_cv_sizeof_off_t=${ac_cv_sizeof_off_t=8} + +# With poe version 3.2.0.19 or lower(using lpp -l all | grep ppe.poe to check the version number, +# IBM MPI-IO implementation has a bug, +#it cannot generate correct MPI derived datatype. Please uncomment the following line: +#hdf5_mpi_complex_derived_datatype_works=${hdf5_mpi_complex_derived_datatype_works='no'} |