From 4e4c5d3e0f16271330443688dc4afcf1a41aa830 Mon Sep 17 00:00:00 2001 From: Albert Cheng Date: Fri, 11 Jun 2010 18:37:33 -0500 Subject: [svn-r18992] Bug Fix: (ID 1921) PHDF5 changed to use "mpiexec", instead of mpirun, as the default MPI applications startup command as defined in the MPI-2 definition, section 4.1. Note that only mpich related (using mpicc command) definitions are changed to mpiexec. Other favors like hcc, AIX, champion, are not changed since I don't have a way to verify them yet. Tested: jam and amani, using both current and new mpich. Did not h5committested since this affects PHDF5 configure only. --- configure | 30 +++++++++++++++--------------- configure.in | 38 +++++++++++++++++++------------------- release_docs/RELEASE.txt | 3 +++ 3 files changed, 37 insertions(+), 34 deletions(-) diff --git a/configure b/configure index e45f45c..b2fc4ca 100755 --- a/configure +++ b/configure @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.in Id: configure.in 18709 2010-05-05 17:34:26Z mamcgree . +# From configure.in Id: configure.in 18976 2010-06-04 16:01:39Z lrknox . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.65 for HDF5 1.9.70. # @@ -7397,8 +7397,8 @@ fi case "$CC_BASENAME" in mpicc) PARALLEL=mpicc - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mpirun" >&5 -$as_echo_n "checking for mpirun... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mpiexec" >&5 +$as_echo_n "checking for mpiexec... " >&6; } cmd="`echo $CC | cut -f1 -d' '`" if (echo $cmd | grep / >/dev/null); then @@ -7411,13 +7411,13 @@ $as_echo_n "checking for mpirun... " >&6; } done fi - if test -x $path/mpirun; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $path/mpirun" >&5 -$as_echo "$path/mpirun" >&6; } + if test -x $path/mpiexec; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $path/mpiexec" >&5 +$as_echo "$path/mpiexec" >&6; } RUNSERIAL="${RUNSERIAL:-none}" if test -z "$RUNPARALLEL"; then - RUNPARALLEL="$path/mpirun -np \$\${NPROCS:=3}" + RUNPARALLEL="$path/mpiexec -n \$\${NPROCS:=3}" fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 @@ -7496,8 +7496,8 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu case "$FC" in *mpif90*) PARALLEL=mpif90 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mpirun" >&5 -$as_echo_n "checking for mpirun... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mpiexec" >&5 +$as_echo_n "checking for mpiexec... " >&6; } cmd=`echo $FC |cut -f1 -d' '` if (echo $cmd |grep / >/dev/null); then @@ -7510,13 +7510,13 @@ $as_echo_n "checking for mpirun... " >&6; } done fi - if test -x $path/mpirun; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $path/mpirun" >&5 -$as_echo "$path/mpirun" >&6; } + if test -x $path/mpiexec; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $path/mpiexec" >&5 +$as_echo "$path/mpiexec" >&6; } RUNSERIAL="${RUNSERIAL:-none}" if test -z "$RUNPARALLEL"; then - RUNPARALLEL="$path/mpirun -np \$\${NPROCS:=2}" + RUNPARALLEL="$path/mpiexec -n \$\${NPROCS:=2}" fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 @@ -21490,7 +21490,7 @@ case "$host_cpu-$host_vendor-$host_os" in AM_CPPFLAGS="-D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE $AM_CPPFLAGS" fi - H5_CPPFLAGS="-D_POSIX_SOURCE $H5_CPPFLAGS" + H5_CPPFLAGS="-D_POSIX_SOURCE $H5_CPPFLAGS" AM_CPPFLAGS="-D_BSD_SOURCE $AM_CPPFLAGS" ;; @@ -26383,7 +26383,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu fi if test "X$PARALLEL" = "Xyes" -a -z "$RUNPARALLEL"; then - RUNPARALLEL="mpirun -np \$\${NPROCS:=3}" + RUNPARALLEL="mpiexec -n \$\${NPROCS:=3}" fi ;; diff --git a/configure.in b/configure.in index 435b229..f3448b9 100644 --- a/configure.in +++ b/configure.in @@ -681,7 +681,7 @@ dnl RUNSERIAL -- This is a command which will be prepended to dnl the executable name to run the executable using dnl a single process. For serial versions of the dnl library this will normally be empty. For parallel -dnl versions it might be something like `mpirun -np 1'. +dnl versions it might be something like `mpiexec -n 1'. dnl The value of this variable is substituted in *.in dnl files. dnl @@ -706,15 +706,15 @@ dnl ---------------------------------------------------------------------- dnl If the compiler is obviously a parallel compiler then we're building dnl a parallel version of hdf5 and should define HAVE_PARALLEL. Furthermore, dnl the name of the compiler might tell us how to run the resulting -dnl executable. For `mpicc' the executable should be run with `mpirun' from +dnl executable. For `mpicc' the executable should be run with `mpiexec' from dnl the same directory as mpicc if it exists. dnl case "$CC_BASENAME" in mpicc) - dnl The mpich compiler. Use mpirun from the same directory if it + dnl The mpich compiler. Use mpiexec from the same directory if it dnl exists. PARALLEL=mpicc - AC_MSG_CHECKING([for mpirun]) + AC_MSG_CHECKING([for mpiexec]) dnl Find the path where mpicc is located. cmd="`echo $CC | cut -f1 -d' '`" @@ -728,13 +728,13 @@ case "$CC_BASENAME" in done fi - dnl Is there an mpirun at that path? - if test -x $path/mpirun; then - AC_MSG_RESULT([$path/mpirun]) + dnl Is there an mpiexec at that path? + if test -x $path/mpiexec; then + AC_MSG_RESULT([$path/mpiexec]) RUNSERIAL="${RUNSERIAL:-none}" if test -z "$RUNPARALLEL"; then - RUNPARALLEL="$path/mpirun -np \$\${NPROCS:=3}" + RUNPARALLEL="$path/mpiexec -n \$\${NPROCS:=3}" fi else AC_MSG_RESULT([none]) @@ -811,7 +811,7 @@ dnl If the Fortran compiler is obviously a parallel compiler then we're dnl building a parallel version of hdf5 and should define HAVE_PARALLEL. dnl Furthermore, the name of the compiler might tell us how to run the dnl resulting executable. For `mpif90' the executable should be run with -dnl `mpirun' from the same directory as mpif90 if it exists. +dnl `mpiexec' from the same directory as mpif90 if it exists. dnl if test "X$HDF_FORTRAN" = "Xyes"; then dnl Change to the Fortran 90 language @@ -819,10 +819,10 @@ if test "X$HDF_FORTRAN" = "Xyes"; then case "$FC" in *mpif90*) - dnl The Fortran mpich compiler. Use mpirun from the same directory + dnl The Fortran mpich compiler. Use mpiexec from the same directory dnl if it exists. PARALLEL=mpif90 - AC_MSG_CHECKING([for mpirun]) + AC_MSG_CHECKING([for mpiexec]) dnl Find the path where mpif90 is located. cmd=`echo $FC |cut -f1 -d' '` @@ -836,13 +836,13 @@ if test "X$HDF_FORTRAN" = "Xyes"; then done fi - dnl Is there an mpirun at that path? - if test -x $path/mpirun; then - AC_MSG_RESULT([$path/mpirun]) + dnl Is there an mpiexec at that path? + if test -x $path/mpiexec; then + AC_MSG_RESULT([$path/mpiexec]) RUNSERIAL="${RUNSERIAL:-none}" if test -z "$RUNPARALLEL"; then - RUNPARALLEL="$path/mpirun -np \$\${NPROCS:=2}" + RUNPARALLEL="$path/mpiexec -n \$\${NPROCS:=2}" fi else AC_MSG_RESULT([none]) @@ -2593,9 +2593,9 @@ case "X-$enable_parallel" in AC_LANG_POP(Fortran) fi - dnl Set RUNPARALLEL to mpirun if not set yet. + dnl Set RUNPARALLEL to mpiexec if not set yet. dnl Check for building on Cray if RUNPARALLEL is not yet set by checking - dnl for 'aprun' command (which is the parallel job launcher, like mpirun). + dnl for 'aprun' command (which is the parallel job launcher, like mpiexec). if test "X$PARALLEL" = "Xyes" -a -z "$RUNPARALLEL"; then dnl Find the path where aprun is located. for path in `echo $PATH | ${TR} ":" " "`; do @@ -2606,9 +2606,9 @@ case "X-$enable_parallel" in done fi - dnl Set RUNPARALLEL to mpirun if not set yet. + dnl Set RUNPARALLEL to mpiexec if not set yet. if test "X$PARALLEL" = "Xyes" -a -z "$RUNPARALLEL"; then - RUNPARALLEL="mpirun -np \$\${NPROCS:=3}" + RUNPARALLEL="mpiexec -n \$\${NPROCS:=3}" fi ;; diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index 141c113..7e65a8f 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -39,6 +39,9 @@ New Features Configuration: ------------- + - PHDF5 changed to use "mpiexec", instead of mpirun, as the default MPI + applications startup command as defined in the MPI-2 definition, section + 4.1. (AKC - 2010/6/11 - Bug 1921) - Configure now adds appropriate defines for supporting large (64-bit) files on all systems, where supported, by default, instead of only linux. This largefile support is controllable with the --enable-largefile -- cgit v0.12