From 9a7c6287a80b42fce09c17365f84ea6938d8c763 Mon Sep 17 00:00:00 2001 From: Henry Weller <http://cfd.direct> Date: Wed, 10 Feb 2016 20:46:24 +0000 Subject: [PATCH] etc/config.*: Separate MPI settings into separate files and upgrade OpenMPI to 10.0.2 --- etc/bashrc | 1 + etc/config.csh/mpi | 277 ++++++++++++++++++++++++++++++++++++++++ etc/config.csh/settings | 245 ----------------------------------- etc/config.sh/mpi | 270 +++++++++++++++++++++++++++++++++++++++ etc/config.sh/settings | 241 ---------------------------------- etc/cshrc | 1 + 6 files changed, 549 insertions(+), 486 deletions(-) create mode 100644 etc/config.csh/mpi create mode 100644 etc/config.sh/mpi diff --git a/etc/bashrc b/etc/bashrc index 892d23e7199..632e1670fa0 100644 --- a/etc/bashrc +++ b/etc/bashrc @@ -217,6 +217,7 @@ _foamSource $WM_PROJECT_DIR/etc/config.sh/aliases # Source user setup files for optional packages # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/mpi` _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/paraview` _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/ensight` _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/gperftools` diff --git a/etc/config.csh/mpi b/etc/config.csh/mpi new file mode 100644 index 00000000000..867ac4c55d5 --- /dev/null +++ b/etc/config.csh/mpi @@ -0,0 +1,277 @@ +#----------------------------------*-sh-*-------------------------------------- +# ========= | +# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox +# \\ / O peration | +# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation +# \\/ M anipulation | +#------------------------------------------------------------------------------ +# License +# This file is part of OpenFOAM. +# +# OpenFOAM is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. +# +# File +# etc/config.csh/mpi +# +# Description +# Startup file for communications library (MPI) for OpenFOAM +# Sourced from OpenFOAM-<VERSION>/etc/bashrc +# +#------------------------------------------------------------------------------ + +# Communications library +# ~~~~~~~~~~~~~~~~~~~~~~ + +unsetenv MPI_ARCH_PATH MPI_HOME FOAM_MPI_LIBBIN + +switch ("$WM_MPLIB") +case SYSTEMOPENMPI: + # Use the system installed openmpi, get library directory via mpicc + setenv FOAM_MPI openmpi-system + + set libDir=`mpicc --showme:link | sed -e 's/.*-L\([^ ]*\).*/\1/'` + + # Bit of a hack: strip off 'lib' and hope this is the path to openmpi + # Include files and libraries. + setenv MPI_ARCH_PATH "${libDir:h}" + + _foamAddLib $libDir + unset libDir + breaksw + +case OPENMPI: + setenv FOAM_MPI openmpi-1.10.2 + # Optional configuration tweaks: + _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.csh/openmpi` + + setenv MPI_ARCH_PATH $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$FOAM_MPI + + # Tell OpenMPI where to find its install directory + setenv OPAL_PREFIX $MPI_ARCH_PATH + + _foamAddPath $MPI_ARCH_PATH/bin + + # 64-bit on OpenSuSE 12.1 uses lib64 others use lib + _foamAddLib $MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH + _foamAddLib $MPI_ARCH_PATH/lib + + _foamAddMan $MPI_ARCH_PATH/share/man + breaksw + +case SYSTEMMPI: + setenv FOAM_MPI mpi-system + + if ( ! ($?MPI_ROOT) ) then + echo + echo "Warning in $WM_PROJECT_DIR/etc/config.csh/settings:" + echo " Please set the environment variable MPI_ROOT to point to" \ + " the base folder for the system MPI in use." + echo " Example:" + echo + echo " setenv MPI_ROOT /opt/mpi" + echo + else + setenv MPI_ARCH_PATH $MPI_ROOT + + if ( ! ($?MPI_ARCH_FLAGS) ) then + echo + echo "Warning in $WM_PROJECT_DIR/etc/config.csh/settings:" + echo " MPI_ARCH_FLAGS is not set. Example:" + echo + echo ' setenv MPI_ARCH_FLAGS "-DOMPI_SKIP_MPICXX"' + echo + endif + + if ( ! ($?MPI_ARCH_INC) ) then + echo + echo "Warning in $WM_PROJECT_DIR/etc/config.csh/settings:" + echo " MPI_ARCH_INC is not set. Example:" + echo + echo ' setenv MPI_ARCH_INC "-isystem $MPI_ROOT/include"' + echo + endif + + if ( ! ($?MPI_ARCH_LIBS) ) then + echo + echo "Warning in $WM_PROJECT_DIR/etc/config.csh/settings:" + echo " MPI_ARCH_LIBS is not set. Example:" + echo + echo ' setenv MPI_ARCH_LIBS "-L$MPI_ROOT/lib -lmpi"' + echo + endif + endif + breaksw + +case MPICH: + setenv FOAM_MPI mpich2-1.1.1p1 + setenv MPI_HOME $WM_THIRD_PARTY_DIR/$FOAM_MPI + setenv MPI_ARCH_PATH $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$FOAM_MPI + + _foamAddPath $MPI_ARCH_PATH/bin + + # 64-bit on OpenSuSE 12.1 uses lib64 others use lib + _foamAddLib $MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH + _foamAddLib $MPI_ARCH_PATH/lib + + _foamAddMan $MPI_ARCH_PATH/share/man + breaksw + +case MPICH-GM: + setenv FOAM_MPI mpich-gm + setenv MPI_ARCH_PATH /opt/mpi + setenv MPICH_PATH $MPI_ARCH_PATH + setenv GM_LIB_PATH /opt/gm/lib64 + + _foamAddPath $MPI_ARCH_PATH/bin + + # 64-bit on OpenSuSE 12.1 uses lib64 others use lib + _foamAddLib $MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH + _foamAddLib $MPI_ARCH_PATH/lib + + _foamAddLib $GM_LIB_PATH + breaksw + +case HPMPI: + setenv FOAM_MPI hpmpi + setenv MPI_HOME /opt/hpmpi + setenv MPI_ARCH_PATH $MPI_HOME + + _foamAddPath $MPI_ARCH_PATH/bin + + switch (`uname -m`) + case i686: + _foamAddLib $MPI_ARCH_PATH/lib/linux_ia32 + breaksw + case x86_64: + _foamAddLib $MPI_ARCH_PATH/lib/linux_amd64 + breaksw + case ia64: + _foamAddLib $MPI_ARCH_PATH/lib/linux_ia64 + breaksw + default: + echo Unknown processor type `uname -m` for Linux + breaksw + endsw + breaksw + +case MPI: + setenv FOAM_MPI mpi + setenv MPI_ARCH_PATH /opt/mpi + breaksw + +case FJMPI: + setenv FOAM_MPI fjmpi + setenv MPI_ARCH_PATH /opt/FJSVmpi2 + + _foamAddPath $MPI_ARCH_PATH/bin + _foamAddLib $MPI_ARCH_PATH/lib/sparcv9 + _foamAddLib /opt/FSUNf90/lib/sparcv9 + _foamAddLib /opt/FJSVpnidt/lib + breaksw + +case QSMPI: + setenv FOAM_MPI qsmpi + setenv MPI_ARCH_PATH /usr/lib/mpi + + _foamAddPath $MPI_ARCH_PATH/bin + _foamAddLib $MPI_ARCH_PATH/lib + breaksw + +case SGIMPI: + if ( ! $?MPI_ROOT) setenv MPI_ROOT /dummy + + if ( ! -d "$MPI_ROOT" ) then + echo "Warning in $WM_PROJECT_DIR/etc/config.csh/settings:" + echo " MPI_ROOT not a valid mpt installation directory." + echo " Please set MPI_ROOT to the mpt installation directory." + echo " (usually done by loading the mpt module)" + echo " MPI_ROOT currently set to '$MPI_ROOT'" + endif + + if ( "${MPI_ROOT:h}/" == $MPI_ROOT ) then + setenv MPI_ROOT ${MPI_ROOT:h} + endif + + setenv FOAM_MPI ${MPI_ROOT:t} + setenv MPI_ARCH_PATH $MPI_ROOT + + + if ($?FOAM_VERBOSE && $?prompt) then + echo "Using SGI MPT:" + echo " MPI_ROOT : $MPI_ROOT" + echo " FOAM_MPI : $FOAM_MPI" + endif + + + _foamAddPath $MPI_ARCH_PATH/bin + _foamAddLib $MPI_ARCH_PATH/lib + breaksw + +case INTELMPI: + if ( ! $?MPI_ROOT) setenv MPI_ROOT /dummy + + if ( ! -d "$MPI_ROOT" ) then + echo "Warning in $WM_PROJECT_DIR/etc/config.csh/settings:" + echo " MPI_ROOT not a valid mpt installation directory." + echo " Please set MPI_ROOT to the mpt installation directory." + echo " (usually done by loading the mpt module)" + echo " MPI_ROOT currently set to '$MPI_ROOT'" + endif + + if ( "${MPI_ROOT:h}/" == $MPI_ROOT ) then + setenv MPI_ROOT ${MPI_ROOT:h} + endif + + setenv FOAM_MPI ${MPI_ROOT:t} + setenv MPI_ARCH_PATH $MPI_ROOT + + + if ($?FOAM_VERBOSE && $?prompt) then + echo "Using INTEL MPT:" + echo " MPI_ROOT : $MPI_ROOT" + echo " FOAM_MPI : $FOAM_MPI" + endif + + + _foamAddPath $MPI_ARCH_PATH/bin64 + _foamAddLib $MPI_ARCH_PATH/lib64 + breaksw + +default: + setenv FOAM_MPI dummy + breaksw +endsw + + +# Add (non-dummy) MPI implementation +# Dummy MPI already added to LD_LIBRARY_PATH and has no external libraries +if ( "$FOAM_MPI" != dummy ) then + _foamAddLib ${FOAM_LIBBIN}/${FOAM_MPI}:${FOAM_EXT_LIBBIN}/${FOAM_MPI} +endif + + + +# Set the minimum MPI buffer size (used by all platforms except SGI MPI) +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +if ( ! $?minBufferSize ) set minBufferSize=20000000 + +if ( $?MPI_BUFFER_SIZE ) then + if ( $MPI_BUFFER_SIZE < $minBufferSize ) then + setenv MPI_BUFFER_SIZE $minBufferSize + endif +else + setenv MPI_BUFFER_SIZE $minBufferSize +endif + +# ----------------------------------------------------------------- end-of-file diff --git a/etc/config.csh/settings b/etc/config.csh/settings index d1d9dac6113..c99a55985f6 100644 --- a/etc/config.csh/settings +++ b/etc/config.csh/settings @@ -337,251 +337,6 @@ default: endsw -# Communications library -# ~~~~~~~~~~~~~~~~~~~~~~ - -unsetenv MPI_ARCH_PATH MPI_HOME FOAM_MPI_LIBBIN - -switch ("$WM_MPLIB") -case SYSTEMOPENMPI: - # Use the system installed openmpi, get library directory via mpicc - setenv FOAM_MPI openmpi-system - - set libDir=`mpicc --showme:link | sed -e 's/.*-L\([^ ]*\).*/\1/'` - - # Bit of a hack: strip off 'lib' and hope this is the path to openmpi - # Include files and libraries. - setenv MPI_ARCH_PATH "${libDir:h}" - - _foamAddLib $libDir - unset libDir - breaksw - -case OPENMPI: - setenv FOAM_MPI openmpi-1.10.0 - # Optional configuration tweaks: - _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.csh/openmpi` - - setenv MPI_ARCH_PATH $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$FOAM_MPI - - # Tell OpenMPI where to find its install directory - setenv OPAL_PREFIX $MPI_ARCH_PATH - - _foamAddPath $MPI_ARCH_PATH/bin - - # 64-bit on OpenSuSE 12.1 uses lib64 others use lib - _foamAddLib $MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH - _foamAddLib $MPI_ARCH_PATH/lib - - _foamAddMan $MPI_ARCH_PATH/share/man - breaksw - -case SYSTEMMPI: - setenv FOAM_MPI mpi-system - - if ( ! ($?MPI_ROOT) ) then - echo - echo "Warning in $WM_PROJECT_DIR/etc/config.csh/settings:" - echo " Please set the environment variable MPI_ROOT to point to" \ - " the base folder for the system MPI in use." - echo " Example:" - echo - echo " setenv MPI_ROOT /opt/mpi" - echo - else - setenv MPI_ARCH_PATH $MPI_ROOT - - if ( ! ($?MPI_ARCH_FLAGS) ) then - echo - echo "Warning in $WM_PROJECT_DIR/etc/config.csh/settings:" - echo " MPI_ARCH_FLAGS is not set. Example:" - echo - echo ' setenv MPI_ARCH_FLAGS "-DOMPI_SKIP_MPICXX"' - echo - endif - - if ( ! ($?MPI_ARCH_INC) ) then - echo - echo "Warning in $WM_PROJECT_DIR/etc/config.csh/settings:" - echo " MPI_ARCH_INC is not set. Example:" - echo - echo ' setenv MPI_ARCH_INC "-isystem $MPI_ROOT/include"' - echo - endif - - if ( ! ($?MPI_ARCH_LIBS) ) then - echo - echo "Warning in $WM_PROJECT_DIR/etc/config.csh/settings:" - echo " MPI_ARCH_LIBS is not set. Example:" - echo - echo ' setenv MPI_ARCH_LIBS "-L$MPI_ROOT/lib -lmpi"' - echo - endif - endif - breaksw - -case MPICH: - setenv FOAM_MPI mpich2-1.1.1p1 - setenv MPI_HOME $WM_THIRD_PARTY_DIR/$FOAM_MPI - setenv MPI_ARCH_PATH $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$FOAM_MPI - - _foamAddPath $MPI_ARCH_PATH/bin - - # 64-bit on OpenSuSE 12.1 uses lib64 others use lib - _foamAddLib $MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH - _foamAddLib $MPI_ARCH_PATH/lib - - _foamAddMan $MPI_ARCH_PATH/share/man - breaksw - -case MPICH-GM: - setenv FOAM_MPI mpich-gm - setenv MPI_ARCH_PATH /opt/mpi - setenv MPICH_PATH $MPI_ARCH_PATH - setenv GM_LIB_PATH /opt/gm/lib64 - - _foamAddPath $MPI_ARCH_PATH/bin - - # 64-bit on OpenSuSE 12.1 uses lib64 others use lib - _foamAddLib $MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH - _foamAddLib $MPI_ARCH_PATH/lib - - _foamAddLib $GM_LIB_PATH - breaksw - -case HPMPI: - setenv FOAM_MPI hpmpi - setenv MPI_HOME /opt/hpmpi - setenv MPI_ARCH_PATH $MPI_HOME - - _foamAddPath $MPI_ARCH_PATH/bin - - switch (`uname -m`) - case i686: - _foamAddLib $MPI_ARCH_PATH/lib/linux_ia32 - breaksw - case x86_64: - _foamAddLib $MPI_ARCH_PATH/lib/linux_amd64 - breaksw - case ia64: - _foamAddLib $MPI_ARCH_PATH/lib/linux_ia64 - breaksw - default: - echo Unknown processor type `uname -m` for Linux - breaksw - endsw - breaksw - -case MPI: - setenv FOAM_MPI mpi - setenv MPI_ARCH_PATH /opt/mpi - breaksw - -case FJMPI: - setenv FOAM_MPI fjmpi - setenv MPI_ARCH_PATH /opt/FJSVmpi2 - - _foamAddPath $MPI_ARCH_PATH/bin - _foamAddLib $MPI_ARCH_PATH/lib/sparcv9 - _foamAddLib /opt/FSUNf90/lib/sparcv9 - _foamAddLib /opt/FJSVpnidt/lib - breaksw - -case QSMPI: - setenv FOAM_MPI qsmpi - setenv MPI_ARCH_PATH /usr/lib/mpi - - _foamAddPath $MPI_ARCH_PATH/bin - _foamAddLib $MPI_ARCH_PATH/lib - breaksw - -case SGIMPI: - if ( ! $?MPI_ROOT) setenv MPI_ROOT /dummy - - if ( ! -d "$MPI_ROOT" ) then - echo "Warning in $WM_PROJECT_DIR/etc/config.csh/settings:" - echo " MPI_ROOT not a valid mpt installation directory." - echo " Please set MPI_ROOT to the mpt installation directory." - echo " (usually done by loading the mpt module)" - echo " MPI_ROOT currently set to '$MPI_ROOT'" - endif - - if ( "${MPI_ROOT:h}/" == $MPI_ROOT ) then - setenv MPI_ROOT ${MPI_ROOT:h} - endif - - setenv FOAM_MPI ${MPI_ROOT:t} - setenv MPI_ARCH_PATH $MPI_ROOT - - - if ($?FOAM_VERBOSE && $?prompt) then - echo "Using SGI MPT:" - echo " MPI_ROOT : $MPI_ROOT" - echo " FOAM_MPI : $FOAM_MPI" - endif - - - _foamAddPath $MPI_ARCH_PATH/bin - _foamAddLib $MPI_ARCH_PATH/lib - breaksw - -case INTELMPI: - if ( ! $?MPI_ROOT) setenv MPI_ROOT /dummy - - if ( ! -d "$MPI_ROOT" ) then - echo "Warning in $WM_PROJECT_DIR/etc/config.csh/settings:" - echo " MPI_ROOT not a valid mpt installation directory." - echo " Please set MPI_ROOT to the mpt installation directory." - echo " (usually done by loading the mpt module)" - echo " MPI_ROOT currently set to '$MPI_ROOT'" - endif - - if ( "${MPI_ROOT:h}/" == $MPI_ROOT ) then - setenv MPI_ROOT ${MPI_ROOT:h} - endif - - setenv FOAM_MPI ${MPI_ROOT:t} - setenv MPI_ARCH_PATH $MPI_ROOT - - - if ($?FOAM_VERBOSE && $?prompt) then - echo "Using INTEL MPT:" - echo " MPI_ROOT : $MPI_ROOT" - echo " FOAM_MPI : $FOAM_MPI" - endif - - - _foamAddPath $MPI_ARCH_PATH/bin64 - _foamAddLib $MPI_ARCH_PATH/lib64 - breaksw - -default: - setenv FOAM_MPI dummy - breaksw -endsw - - -# Add (non-dummy) MPI implementation -# Dummy MPI already added to LD_LIBRARY_PATH and has no external libraries -if ( "$FOAM_MPI" != dummy ) then - _foamAddLib ${FOAM_LIBBIN}/${FOAM_MPI}:${FOAM_EXT_LIBBIN}/${FOAM_MPI} -endif - - - -# Set the minimum MPI buffer size (used by all platforms except SGI MPI) -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -if ( ! $?minBufferSize ) set minBufferSize=20000000 - -if ( $?MPI_BUFFER_SIZE ) then - if ( $MPI_BUFFER_SIZE < $minBufferSize ) then - setenv MPI_BUFFER_SIZE $minBufferSize - endif -else - setenv MPI_BUFFER_SIZE $minBufferSize -endif - - # Cleanup environment: # ~~~~~~~~~~~~~~~~~~~~ #- keep _foamAddPath _foamAddLib _foamAddMan diff --git a/etc/config.sh/mpi b/etc/config.sh/mpi new file mode 100644 index 00000000000..fc7b3b5176f --- /dev/null +++ b/etc/config.sh/mpi @@ -0,0 +1,270 @@ +#----------------------------------*-sh-*-------------------------------------- +# ========= | +# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox +# \\ / O peration | +# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation +# \\/ M anipulation | +#------------------------------------------------------------------------------ +# License +# This file is part of OpenFOAM. +# +# OpenFOAM is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. +# +# File +# etc/config.sh/mpi +# +# Description +# Startup file for communications library (MPI) for OpenFOAM +# Sourced from OpenFOAM-<VERSION>/etc/bashrc +# +#------------------------------------------------------------------------------ + +unset MPI_ARCH_PATH MPI_HOME FOAM_MPI_LIBBIN + +case "$WM_MPLIB" in +SYSTEMOPENMPI) + # Use the system installed openmpi, get library directory via mpicc + export FOAM_MPI=openmpi-system + + libDir=`mpicc --showme:link | sed -e 's/.*-L\([^ ]*\).*/\1/'` + + # Bit of a hack: strip off 'lib' and hope this is the path to openmpi + # include files and libraries. + export MPI_ARCH_PATH="${libDir%/*}" + + _foamAddLib $libDir + unset libDir + ;; + +OPENMPI) + export FOAM_MPI=openmpi-1.10.2 + # Optional configuration tweaks: + _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/openmpi` + + export MPI_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$FOAM_MPI + + # Tell OpenMPI where to find its install directory + export OPAL_PREFIX=$MPI_ARCH_PATH + + _foamAddPath $MPI_ARCH_PATH/bin + + # 64-bit on OpenSuSE 12.1 uses lib64 others use lib + _foamAddLib $MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH + _foamAddLib $MPI_ARCH_PATH/lib + + _foamAddMan $MPI_ARCH_PATH/share/man + ;; + +SYSTEMMPI) + export FOAM_MPI=mpi-system + + if [ -z "$MPI_ROOT" ] + then + echo 1>&2 + echo "Warning in $WM_PROJECT_DIR/etc/config.sh/settings:" 1>&2 + echo " Please set the environment variable MPI_ROOT to point to" \ + " the base folder for the system MPI in use." 1>&2 + echo " Example:" 1>&2 + echo 1>&2 + echo " export MPI_ROOT=/opt/mpi" 1>&2 + echo 1>&2 + else + export MPI_ARCH_PATH=$MPI_ROOT + + if [ -z "$MPI_ARCH_FLAGS" ] + then + echo 1>&2 + echo "Warning in $WM_PROJECT_DIR/etc/config.sh/settings:" 1>&2 + echo " MPI_ARCH_FLAGS is not set. Example:" 1>&2 + echo 1>&2 + echo " export MPI_ARCH_FLAGS=\"-DOMPI_SKIP_MPICXX\"" 1>&2 + echo 1>&2 + fi + + if [ -z "$MPI_ARCH_INC" ] + then + echo 1>&2 + echo "Warning in $WM_PROJECT_DIR/etc/config.sh/settings:" 1>&2 + echo " MPI_ARCH_INC is not set. Example:" 1>&2 + echo 1>&2 + echo " export MPI_ARCH_INC=\"-isystem \$MPI_ROOT/include\"" 1>&2 + echo 1>&2 + fi + + if [ -z "$MPI_ARCH_LIBS" ] + then + echo 1>&2 + echo "Warning in $WM_PROJECT_DIR/etc/config.sh/settings:" 1>&2 + echo " MPI_ARCH_LIBS is not set. Example:" 1>&2 + echo 1>&2 + echo " export MPI_ARCH_LIBS=\"-L\$MPI_ROOT/lib -lmpi\"" 1>&2 + echo 1>&2 + fi + fi + ;; + +MPICH) + export FOAM_MPI=mpich2-1.1.1p1 + export MPI_HOME=$WM_THIRD_PARTY_DIR/$FOAM_MPI + export MPI_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$FOAM_MPI + + _foamAddPath $MPI_ARCH_PATH/bin + + # 64-bit on OpenSuSE 12.1 uses lib64 others use lib + _foamAddLib $MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH + _foamAddLib $MPI_ARCH_PATH/lib + + _foamAddMan $MPI_ARCH_PATH/share/man + ;; + +MPICH-GM) + export FOAM_MPI=mpich-gm + export MPI_ARCH_PATH=/opt/mpi + export MPICH_PATH=$MPI_ARCH_PATH + export GM_LIB_PATH=/opt/gm/lib64 + + _foamAddPath $MPI_ARCH_PATH/bin + + # 64-bit on OpenSuSE 12.1 uses lib64 others use lib + _foamAddLib $MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH + _foamAddLib $MPI_ARCH_PATH/lib + + _foamAddLib $GM_LIB_PATH + ;; + +HPMPI) + export FOAM_MPI=hpmpi + export MPI_HOME=/opt/hpmpi + export MPI_ARCH_PATH=$MPI_HOME + + _foamAddPath $MPI_ARCH_PATH/bin + + case `uname -m` in + i686) + _foamAddLib $MPI_ARCH_PATH/lib/linux_ia32 + ;; + + x86_64) + _foamAddLib $MPI_ARCH_PATH/lib/linux_amd64 + ;; + ia64) + _foamAddLib $MPI_ARCH_PATH/lib/linux_ia64 + ;; + *) + echo Unknown processor type `uname -m` 1>&2 + ;; + esac + ;; + +MPI) + export FOAM_MPI=mpi + export MPI_ARCH_PATH=/opt/mpi + ;; + +FJMPI) + export FOAM_MPI=fjmpi + export MPI_ARCH_PATH=/opt/FJSVmpi2 + + _foamAddPath $MPI_ARCH_PATH/bin + _foamAddLib $MPI_ARCH_PATH/lib/sparcv9 + _foamAddLib /opt/FSUNf90/lib/sparcv9 + _foamAddLib /opt/FJSVpnidt/lib + ;; + +QSMPI) + export FOAM_MPI=qsmpi + export MPI_ARCH_PATH=/usr/lib/mpi + + _foamAddPath $MPI_ARCH_PATH/bin + _foamAddLib $MPI_ARCH_PATH/lib + ;; + +SGIMPI) + # No trailing slash + [ "${MPI_ROOT%/}" = "${MPI_ROOT}" ] || MPI_ROOT="${MPI_ROOT%/}" + + export FOAM_MPI="${MPI_ROOT##*/}" + export MPI_ARCH_PATH=$MPI_ROOT + + if [ ! -d "$MPI_ROOT" -o -z "$MPI_ARCH_PATH" ] + then + echo "Warning in $WM_PROJECT_DIR/etc/config.sh/settings:" 1>&2 + echo " MPI_ROOT not a valid mpt installation directory or ending" \ + " in a '/'." 1>&2 + echo " Please set MPI_ROOT to the mpt installation directory." 1>&2 + echo " MPI_ROOT currently set to '$MPI_ROOT'" 1>&2 + fi + + if [ "$FOAM_VERBOSE" -a "$PS1" ] + then + echo "Using SGI MPT:" 1>&2 + echo " MPI_ROOT : $MPI_ROOT" 1>&2 + echo " FOAM_MPI : $FOAM_MPI" 1>&2 + fi + + _foamAddPath $MPI_ARCH_PATH/bin + _foamAddLib $MPI_ARCH_PATH/lib + ;; + +INTELMPI) + # No trailing slash + [ "${MPI_ROOT%/}" = "${MPI_ROOT}" ] || MPI_ROOT="${MPI_ROOT%/}" + + export FOAM_MPI="${MPI_ROOT##*/}" + export MPI_ARCH_PATH=$MPI_ROOT + + if [ ! -d "$MPI_ROOT" -o -z "$MPI_ARCH_PATH" ] + then + echo "Warning in $WM_PROJECT_DIR/etc/config.sh/settings:" 1>&2 + echo " MPI_ROOT not a valid mpt installation directory or ending" \ + " in a '/'." 1>&2 + echo " Please set MPI_ROOT to the mpt installation directory." 1>&2 + echo " MPI_ROOT currently set to '$MPI_ROOT'" 1>&2 + fi + + if [ "$FOAM_VERBOSE" -a "$PS1" ] + then + echo "Using INTEL MPI:" 1>&2 + echo " MPI_ROOT : $MPI_ROOT" 1>&2 + echo " FOAM_MPI : $FOAM_MPI" 1>&2 + fi + + _foamAddPath $MPI_ARCH_PATH/bin64 + _foamAddLib $MPI_ARCH_PATH/lib64 + ;; +*) + export FOAM_MPI=dummy + ;; +esac + +# Add (non-dummy) MPI implementation +# Dummy MPI already added to LD_LIBRARY_PATH and has no external libraries +if [ "$FOAM_MPI" != dummy ] +then + _foamAddLib $FOAM_LIBBIN/$FOAM_MPI:$FOAM_EXT_LIBBIN/$FOAM_MPI +fi + + + +# Set the minimum MPI buffer size (used by all platforms except SGI MPI) +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +: ${minBufferSize:=20000000} + +if [ "${MPI_BUFFER_SIZE:=$minBufferSize}" -lt $minBufferSize ] +then + MPI_BUFFER_SIZE=$minBufferSize +fi +export MPI_BUFFER_SIZE + +# ----------------------------------------------------------------------------- diff --git a/etc/config.sh/settings b/etc/config.sh/settings index 0a613c935da..cd0fb0adf54 100644 --- a/etc/config.sh/settings +++ b/etc/config.sh/settings @@ -360,247 +360,6 @@ system) esac -# Communications library -# ~~~~~~~~~~~~~~~~~~~~~~ - -unset MPI_ARCH_PATH MPI_HOME FOAM_MPI_LIBBIN - -case "$WM_MPLIB" in -SYSTEMOPENMPI) - # Use the system installed openmpi, get library directory via mpicc - export FOAM_MPI=openmpi-system - - libDir=`mpicc --showme:link | sed -e 's/.*-L\([^ ]*\).*/\1/'` - - # Bit of a hack: strip off 'lib' and hope this is the path to openmpi - # include files and libraries. - export MPI_ARCH_PATH="${libDir%/*}" - - _foamAddLib $libDir - unset libDir - ;; - -OPENMPI) - export FOAM_MPI=openmpi-1.10.0 - # Optional configuration tweaks: - _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/openmpi` - - export MPI_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$FOAM_MPI - - # Tell OpenMPI where to find its install directory - export OPAL_PREFIX=$MPI_ARCH_PATH - - _foamAddPath $MPI_ARCH_PATH/bin - - # 64-bit on OpenSuSE 12.1 uses lib64 others use lib - _foamAddLib $MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH - _foamAddLib $MPI_ARCH_PATH/lib - - _foamAddMan $MPI_ARCH_PATH/share/man - ;; - -SYSTEMMPI) - export FOAM_MPI=mpi-system - - if [ -z "$MPI_ROOT" ] - then - echo 1>&2 - echo "Warning in $WM_PROJECT_DIR/etc/config.sh/settings:" 1>&2 - echo " Please set the environment variable MPI_ROOT to point to" \ - " the base folder for the system MPI in use." 1>&2 - echo " Example:" 1>&2 - echo 1>&2 - echo " export MPI_ROOT=/opt/mpi" 1>&2 - echo 1>&2 - else - export MPI_ARCH_PATH=$MPI_ROOT - - if [ -z "$MPI_ARCH_FLAGS" ] - then - echo 1>&2 - echo "Warning in $WM_PROJECT_DIR/etc/config.sh/settings:" 1>&2 - echo " MPI_ARCH_FLAGS is not set. Example:" 1>&2 - echo 1>&2 - echo " export MPI_ARCH_FLAGS=\"-DOMPI_SKIP_MPICXX\"" 1>&2 - echo 1>&2 - fi - - if [ -z "$MPI_ARCH_INC" ] - then - echo 1>&2 - echo "Warning in $WM_PROJECT_DIR/etc/config.sh/settings:" 1>&2 - echo " MPI_ARCH_INC is not set. Example:" 1>&2 - echo 1>&2 - echo " export MPI_ARCH_INC=\"-isystem \$MPI_ROOT/include\"" 1>&2 - echo 1>&2 - fi - - if [ -z "$MPI_ARCH_LIBS" ] - then - echo 1>&2 - echo "Warning in $WM_PROJECT_DIR/etc/config.sh/settings:" 1>&2 - echo " MPI_ARCH_LIBS is not set. Example:" 1>&2 - echo 1>&2 - echo " export MPI_ARCH_LIBS=\"-L\$MPI_ROOT/lib -lmpi\"" 1>&2 - echo 1>&2 - fi - fi - ;; - -MPICH) - export FOAM_MPI=mpich2-1.1.1p1 - export MPI_HOME=$WM_THIRD_PARTY_DIR/$FOAM_MPI - export MPI_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$FOAM_MPI - - _foamAddPath $MPI_ARCH_PATH/bin - - # 64-bit on OpenSuSE 12.1 uses lib64 others use lib - _foamAddLib $MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH - _foamAddLib $MPI_ARCH_PATH/lib - - _foamAddMan $MPI_ARCH_PATH/share/man - ;; - -MPICH-GM) - export FOAM_MPI=mpich-gm - export MPI_ARCH_PATH=/opt/mpi - export MPICH_PATH=$MPI_ARCH_PATH - export GM_LIB_PATH=/opt/gm/lib64 - - _foamAddPath $MPI_ARCH_PATH/bin - - # 64-bit on OpenSuSE 12.1 uses lib64 others use lib - _foamAddLib $MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH - _foamAddLib $MPI_ARCH_PATH/lib - - _foamAddLib $GM_LIB_PATH - ;; - -HPMPI) - export FOAM_MPI=hpmpi - export MPI_HOME=/opt/hpmpi - export MPI_ARCH_PATH=$MPI_HOME - - _foamAddPath $MPI_ARCH_PATH/bin - - case `uname -m` in - i686) - _foamAddLib $MPI_ARCH_PATH/lib/linux_ia32 - ;; - - x86_64) - _foamAddLib $MPI_ARCH_PATH/lib/linux_amd64 - ;; - ia64) - _foamAddLib $MPI_ARCH_PATH/lib/linux_ia64 - ;; - *) - echo Unknown processor type `uname -m` 1>&2 - ;; - esac - ;; - -MPI) - export FOAM_MPI=mpi - export MPI_ARCH_PATH=/opt/mpi - ;; - -FJMPI) - export FOAM_MPI=fjmpi - export MPI_ARCH_PATH=/opt/FJSVmpi2 - - _foamAddPath $MPI_ARCH_PATH/bin - _foamAddLib $MPI_ARCH_PATH/lib/sparcv9 - _foamAddLib /opt/FSUNf90/lib/sparcv9 - _foamAddLib /opt/FJSVpnidt/lib - ;; - -QSMPI) - export FOAM_MPI=qsmpi - export MPI_ARCH_PATH=/usr/lib/mpi - - _foamAddPath $MPI_ARCH_PATH/bin - _foamAddLib $MPI_ARCH_PATH/lib - ;; - -SGIMPI) - # No trailing slash - [ "${MPI_ROOT%/}" = "${MPI_ROOT}" ] || MPI_ROOT="${MPI_ROOT%/}" - - export FOAM_MPI="${MPI_ROOT##*/}" - export MPI_ARCH_PATH=$MPI_ROOT - - if [ ! -d "$MPI_ROOT" -o -z "$MPI_ARCH_PATH" ] - then - echo "Warning in $WM_PROJECT_DIR/etc/config.sh/settings:" 1>&2 - echo " MPI_ROOT not a valid mpt installation directory or ending" \ - " in a '/'." 1>&2 - echo " Please set MPI_ROOT to the mpt installation directory." 1>&2 - echo " MPI_ROOT currently set to '$MPI_ROOT'" 1>&2 - fi - - if [ "$FOAM_VERBOSE" -a "$PS1" ] - then - echo "Using SGI MPT:" 1>&2 - echo " MPI_ROOT : $MPI_ROOT" 1>&2 - echo " FOAM_MPI : $FOAM_MPI" 1>&2 - fi - - _foamAddPath $MPI_ARCH_PATH/bin - _foamAddLib $MPI_ARCH_PATH/lib - ;; - -INTELMPI) - # No trailing slash - [ "${MPI_ROOT%/}" = "${MPI_ROOT}" ] || MPI_ROOT="${MPI_ROOT%/}" - - export FOAM_MPI="${MPI_ROOT##*/}" - export MPI_ARCH_PATH=$MPI_ROOT - - if [ ! -d "$MPI_ROOT" -o -z "$MPI_ARCH_PATH" ] - then - echo "Warning in $WM_PROJECT_DIR/etc/config.sh/settings:" 1>&2 - echo " MPI_ROOT not a valid mpt installation directory or ending" \ - " in a '/'." 1>&2 - echo " Please set MPI_ROOT to the mpt installation directory." 1>&2 - echo " MPI_ROOT currently set to '$MPI_ROOT'" 1>&2 - fi - - if [ "$FOAM_VERBOSE" -a "$PS1" ] - then - echo "Using INTEL MPI:" 1>&2 - echo " MPI_ROOT : $MPI_ROOT" 1>&2 - echo " FOAM_MPI : $FOAM_MPI" 1>&2 - fi - - _foamAddPath $MPI_ARCH_PATH/bin64 - _foamAddLib $MPI_ARCH_PATH/lib64 - ;; -*) - export FOAM_MPI=dummy - ;; -esac - -# Add (non-dummy) MPI implementation -# Dummy MPI already added to LD_LIBRARY_PATH and has no external libraries -if [ "$FOAM_MPI" != dummy ] -then - _foamAddLib $FOAM_LIBBIN/$FOAM_MPI:$FOAM_EXT_LIBBIN/$FOAM_MPI -fi - - - -# Set the minimum MPI buffer size (used by all platforms except SGI MPI) -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -: ${minBufferSize:=20000000} - -if [ "${MPI_BUFFER_SIZE:=$minBufferSize}" -lt $minBufferSize ] -then - MPI_BUFFER_SIZE=$minBufferSize -fi -export MPI_BUFFER_SIZE - - # Cleanup environment: # ~~~~~~~~~~~~~~~~~~~~ #keep _foamAddPath _foamAddLib _foamAddMan diff --git a/etc/cshrc b/etc/cshrc index 39ee93d9a7d..80c32cfa2b1 100644 --- a/etc/cshrc +++ b/etc/cshrc @@ -207,6 +207,7 @@ _foamSource $WM_PROJECT_DIR/etc/config.csh/aliases # Source user setup files for optional packages # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.csh/mpi` _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.csh/paraview` _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.csh/ensight` _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.csh/CGAL` -- GitLab