mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Merge branch 'feature-rationalize-mpi-configs' into 'develop'
Feature rationalize mpi configs See merge request Development/openfoam!389
This commit is contained in:
29
.gitignore
vendored
29
.gitignore
vendored
@ -12,7 +12,7 @@
|
||||
# File-browser settings - anywhere
|
||||
.directory
|
||||
|
||||
# CVS recovered versions - anywhere
|
||||
# Backup/recovery versions - anywhere
|
||||
.#*
|
||||
|
||||
# Objects and archives - anywhere
|
||||
@ -23,7 +23,7 @@
|
||||
# Derived files
|
||||
lex.yy.c
|
||||
|
||||
# Corefiles
|
||||
# Core dumps
|
||||
core
|
||||
|
||||
# Dependency files - anywhere
|
||||
@ -47,22 +47,21 @@ platforms/
|
||||
# Reinstate wmake rules that might look like build directories
|
||||
!/wmake/rules/*/
|
||||
|
||||
# doxygen generated documentation
|
||||
# Doxygen generated
|
||||
doc/Doxygen/html
|
||||
doc/Doxygen/latex
|
||||
doc/Doxygen/man
|
||||
doc/Doxygen/DTAGS
|
||||
|
||||
# Generated files in the main directory (e.g. ReleaseNotes-?.?.html)
|
||||
# and in the doc directory
|
||||
# Generated files in the main and doc directories
|
||||
/*.html
|
||||
/doc/*.html
|
||||
|
||||
# Untracked configuration files
|
||||
# Untracked configuration/preferences files
|
||||
/etc/prefs.csh
|
||||
/etc/prefs.sh
|
||||
/etc/config.csh/prefs.csh
|
||||
/etc/config.sh/prefs.sh
|
||||
/etc/config.csh/prefs.*
|
||||
/etc/config.sh/prefs.*
|
||||
/wmake/rules/General/mplibUSER*
|
||||
|
||||
# Source packages - anywhere
|
||||
@ -73,19 +72,11 @@ doc/Doxygen/DTAGS
|
||||
*.tgz
|
||||
*.gtgz
|
||||
|
||||
# Ignore the persistent .build tag in the main directory
|
||||
/.build
|
||||
|
||||
# Ignore .timeStamp in the main directory
|
||||
/.timeStamp
|
||||
|
||||
# Ignore .tags in the main directory
|
||||
/.tags
|
||||
|
||||
# Ignore project files in the main directory
|
||||
# Ignore tags or project files in the main directory
|
||||
/.cproject
|
||||
/.project
|
||||
/.dir-locals.el
|
||||
/.project
|
||||
/.tags
|
||||
|
||||
# Ignore the test directory
|
||||
/tutorialsTest
|
||||
|
||||
@ -2,13 +2,7 @@
|
||||
PROJECT_INC =
|
||||
PROJECT_LIBS =
|
||||
|
||||
sinclude $(GENERAL_RULES)/mplib$(WM_MPLIB)
|
||||
sinclude $(DEFAULT_RULES)/mplib$(WM_MPLIB)
|
||||
|
||||
/* Default is PROJECT LIB/mpi target */
|
||||
ifeq (,$(FOAM_MPI_LIBBIN))
|
||||
FOAM_MPI_LIBBIN := $(FOAM_LIBBIN)/$(FOAM_MPI)
|
||||
endif
|
||||
include $(GENERAL_RULES)/mpi-rules
|
||||
|
||||
EXE_INC = \
|
||||
-I.. \
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
sinclude $(GENERAL_RULES)/mplib$(WM_MPLIB)
|
||||
sinclude $(DEFAULT_RULES)/mplib$(WM_MPLIB)
|
||||
include $(GENERAL_RULES)/mpi-rules
|
||||
|
||||
EXE_INC = $(PFLAGS) $(PINC) $(c++LESSWARN)
|
||||
EXE_LIBS = $(PLIBS)
|
||||
|
||||
@ -41,7 +41,7 @@ printHelp() {
|
||||
usage: ${0##*/} options
|
||||
|
||||
options:
|
||||
-dry-run Report but do not write config files
|
||||
-dry-run, -n Report but do not write config files
|
||||
-no-mpicc Bypass any use of mpicc
|
||||
-query-openmpi Report installation directory for system openmpi
|
||||
-write-openmpi Query system openmpi and write config files
|
||||
@ -75,7 +75,7 @@ die()
|
||||
#------------------------------------------------------------------------------
|
||||
# Options
|
||||
unset optDryRun
|
||||
useMpicc=true
|
||||
withMpicc="mpicc"
|
||||
|
||||
# Get installation directory for system openmpi
|
||||
# - from "mpicc --showme:link"
|
||||
@ -83,17 +83,19 @@ useMpicc=true
|
||||
#
|
||||
# The mpicc content looks like this:
|
||||
# ----
|
||||
# -pthread -L/usr/lib64/mpi/gcc/openmpi/lib64 -lmpi
|
||||
# ... -L/usr/lib64/mpi/gcc/openmpi/lib64 -lmpi
|
||||
# ... -L/usr/lib64/mpi/gcc/openmpi2/lib64 -lmpi
|
||||
# ... -L/usr/lib64/openmpi/lib -lmpi
|
||||
# ----
|
||||
|
||||
query_system_openmpi()
|
||||
{
|
||||
unset arch_path
|
||||
|
||||
if [ "$useMpicc" = true ]
|
||||
if [ -n "$withMpicc" ]
|
||||
then
|
||||
arch_path=$(mpicc --showme:link 2>/dev/null | sed -e 's#^.*-L\([^ ]*\).*#\1#')
|
||||
arch_path="${arch_path%/*}"
|
||||
arch_path=$(mpicc --showme:link 2>/dev/null | sed -e 's/^.*-L\([^ ]*\).*/\1/')
|
||||
arch_path="${arch_path%/*}" # prefix from libdir
|
||||
|
||||
if [ -n "$arch_path" ]
|
||||
then
|
||||
@ -112,14 +114,16 @@ query_system_openmpi()
|
||||
fi
|
||||
|
||||
# Include is under /usr/lib... (eg, debian, openSUSE)
|
||||
# Note this cannot handle (openmpi | openmpi1 | openmpi2 | ...) include directories
|
||||
# unless we also try to grab information out of PATH or LD_LIBRARY_PATH
|
||||
for testdir in \
|
||||
/usr/lib/"${DEB_TARGET_MULTIARCH:+${DEB_TARGET_MULTIARCH}/}"openmpi/include \
|
||||
/usr/lib64/mpi/gcc/openmpi/include \
|
||||
/usr/lib/"${DEB_TARGET_MULTIARCH:+${DEB_TARGET_MULTIARCH}/}"openmpi \
|
||||
/usr/lib64/mpi/gcc/openmpi \
|
||||
;
|
||||
do
|
||||
if [ -e "$testdir/mpi.h" ]
|
||||
if [ -e "$testdir/include/mpi.h" ]
|
||||
then
|
||||
echo "${testdir%/*}"
|
||||
echo "$testdir"
|
||||
return 0 # Clean exit
|
||||
fi
|
||||
done
|
||||
@ -137,6 +141,16 @@ query_system_openmpi()
|
||||
fi
|
||||
done
|
||||
|
||||
# Partial env from RedHat "module load mpi/openmpi-x86_64"
|
||||
#
|
||||
## MPI_COMPILER=openmpi-x86_64
|
||||
## MPI_HOME=/usr/lib64/openmpi
|
||||
## MPI_BIN=/usr/lib64/openmpi/bin
|
||||
## MPI_LIB=/usr/lib64/openmpi/lib
|
||||
## MPI_INCLUDE=/usr/include/openmpi-x86_64
|
||||
## MPI_SUFFIX=_openmpi
|
||||
|
||||
|
||||
# Failed (should not happen)
|
||||
# - report '/usr', but with error code 2
|
||||
echo "/usr"
|
||||
@ -151,60 +165,68 @@ create_files()
|
||||
{
|
||||
[ -n "$FOAM_MPI" ] || die "FOAM_MPI not set"
|
||||
|
||||
# MPI-name without trailing major version
|
||||
mpiName="${FOAM_MPI%[0-9]}"
|
||||
|
||||
# The prefs name
|
||||
prefsName="prefs.$mpiName"
|
||||
|
||||
if [ -d "$MPI_ARCH_PATH" ]
|
||||
then
|
||||
echo "Define $FOAM_MPI with $MPI_ARCH_PATH" 1>&2
|
||||
|
||||
case "$FOAM_MPI" in
|
||||
(openmpi-system)
|
||||
configDir="etc/config.sh"
|
||||
if [ "$optDryRun" = true ]
|
||||
case "$mpiName" in
|
||||
(sys-openmpi | openmpi-system)
|
||||
|
||||
# POSIX shell
|
||||
prefsFile="etc/config.sh/$prefsName"
|
||||
if [ -d "${prefsFile%/*}" ] || [ -n "$optDryRun" ]
|
||||
then
|
||||
cat << CONTENT 1>&2
|
||||
dry-run: $configDir/$FOAM_MPI
|
||||
(
|
||||
if [ -n "$optDryRun" ]
|
||||
then
|
||||
exec 1>&2
|
||||
else
|
||||
exec 1> "$prefsFile"
|
||||
fi
|
||||
|
||||
echo "${optDryRun}Write $prefsFile" 1>&2
|
||||
cat << CONTENT
|
||||
# $prefsFile
|
||||
#
|
||||
# Packaging configured value for $FOAM_MPI
|
||||
export MPI_ARCH_PATH="$MPI_ARCH_PATH"
|
||||
|
||||
CONTENT
|
||||
elif [ -d "$configDir" ]
|
||||
then
|
||||
echo "Write $configDir/$FOAM_MPI" 1>&2
|
||||
cat << CONTENT > "$configDir/$FOAM_MPI"
|
||||
# $configDir/$FOAM_MPI
|
||||
#
|
||||
# Packaging configured value for $FOAM_MPI
|
||||
|
||||
export MPI_ARCH_PATH="$MPI_ARCH_PATH"
|
||||
#----
|
||||
CONTENT
|
||||
)
|
||||
else
|
||||
echo "Cannot write $configDir/$FOAM_MPI - no directory" 1>&2
|
||||
echo "Cannot write $prefsFile - no directory" 1>&2
|
||||
fi
|
||||
|
||||
configDir="etc/config.csh"
|
||||
if [ "$optDryRun" = true ]
|
||||
|
||||
# C-shell
|
||||
prefsFile="etc/config.csh/$prefsName"
|
||||
if [ -d "${prefsFile%/*}" ] || [ -n "$optDryRun" ]
|
||||
then
|
||||
cat << CONTENT 1>&2
|
||||
dry-run: $configDir/$FOAM_MPI
|
||||
(
|
||||
if [ -n "$optDryRun" ]
|
||||
then
|
||||
exec 1>&2
|
||||
else
|
||||
exec 1> "$prefsFile"
|
||||
fi
|
||||
|
||||
echo "${optDryRun}Write $prefsFile" 1>&2
|
||||
cat << CONTENT
|
||||
# $prefsFile
|
||||
#
|
||||
# Packaging configured value for $FOAM_MPI
|
||||
setenv MPI_ARCH_PATH "$MPI_ARCH_PATH"
|
||||
|
||||
CONTENT
|
||||
elif [ -d "$configDir" ]
|
||||
then
|
||||
echo "Write $configDir/$FOAM_MPI" 1>&2
|
||||
cat << CONTENT > "$configDir/$FOAM_MPI"
|
||||
# $configDir/$FOAM_MPI
|
||||
#
|
||||
# Packaging configured value for $FOAM_MPI
|
||||
|
||||
setenv MPI_ARCH_PATH "$MPI_ARCH_PATH"
|
||||
#----
|
||||
CONTENT
|
||||
)
|
||||
else
|
||||
echo "Cannot write $configDir/$FOAM_MPI - no directory" 1>&2
|
||||
echo "Cannot write $prefsFile - no directory" 1>&2
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
@ -212,10 +234,7 @@ CONTENT
|
||||
echo "Warning: $FOAM_MPI with bad MPI_ARCH_PATH: $MPI_ARCH_PATH" 1>&2
|
||||
# TBD - remove old/bad entries?
|
||||
#
|
||||
# for file in "etc/config.sh/$FOAM_MPI" "etc/config.csh/$FOAM_MPI"
|
||||
# do
|
||||
# [ -f "$file" ] && rm -f "$file"
|
||||
# done
|
||||
# rm -f "etc/config.sh/$prefsName" "etc/config.csh/$prefsName"
|
||||
fi
|
||||
}
|
||||
|
||||
@ -226,19 +245,12 @@ CONTENT
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-h | -help* | --help*)
|
||||
printHelp
|
||||
;;
|
||||
'')
|
||||
# Discard empty arguments
|
||||
;;
|
||||
|
||||
-dry-run)
|
||||
optDryRun=true
|
||||
;;
|
||||
'') true ;; # Discard empty arguments
|
||||
-h | -help* | --help*) printHelp ;;
|
||||
-n | -dry-run) optDryRun="(dry-run) " ;;
|
||||
|
||||
-no-mpicc)
|
||||
unset useMpicc
|
||||
unset withMpicc
|
||||
;;
|
||||
|
||||
-query-openmpi | -query-system-openmpi)
|
||||
@ -249,8 +261,7 @@ do
|
||||
-write-openmpi | -write-system-openmpi)
|
||||
if MPI_ARCH_PATH=$(query_system_openmpi)
|
||||
then
|
||||
FOAM_MPI="openmpi-system"
|
||||
create_files
|
||||
FOAM_MPI="sys-openmpi" create_files
|
||||
else
|
||||
die "Failed query for system openmpi"
|
||||
fi
|
||||
|
||||
@ -91,7 +91,8 @@ export WM_COMPILE_OPTION=Opt
|
||||
# [WM_MPLIB] - MPI implementation:
|
||||
# = SYSTEMOPENMPI | OPENMPI | SYSTEMMPI | MPI | MPICH | MPICH-GM |
|
||||
# HPMPI | CRAY-MPICH | FJMPI | QSMPI | SGIMPI | INTELMPI | USERMPI
|
||||
# Also possible to use INTELMPI-xyz etc and define your own wmake rule
|
||||
# Specify SYSTEMOPENMPI1, SYSTEMOPENMPI2 for internal tracking (if desired)
|
||||
# Can also use INTELMPI-xyz etc and define your own wmake rule
|
||||
export WM_MPLIB=SYSTEMOPENMPI
|
||||
|
||||
|
||||
|
||||
@ -36,10 +36,17 @@ case ThirdParty:
|
||||
set default_mpfr_version=mpfr-system
|
||||
set default_mpc_version=mpc-system
|
||||
|
||||
# Clear any old values
|
||||
set gcc_version=''
|
||||
set clang_version=''
|
||||
|
||||
switch ("$WM_COMPILER")
|
||||
case Gcc:
|
||||
set gcc_version="$default_gcc_version"
|
||||
breaksw
|
||||
case Gcc102*:
|
||||
set gcc_version=gcc-10.2.0
|
||||
breaksw
|
||||
case Gcc101*:
|
||||
set gcc_version=gcc-10.1.0
|
||||
breaksw
|
||||
@ -121,8 +128,11 @@ case ThirdParty:
|
||||
case Clang:
|
||||
set clang_version="$default_clang_version"
|
||||
breaksw
|
||||
case Clang110*:
|
||||
set clang_version=llvm-11.0.0
|
||||
breaksw
|
||||
case Clang100*:
|
||||
set clang_version=llvm-10.0.0
|
||||
set clang_version=llvm-10.0.1
|
||||
breaksw
|
||||
case Clang90*:
|
||||
set clang_version=llvm-9.0.1
|
||||
@ -155,7 +165,13 @@ case ThirdParty:
|
||||
set clang_version=llvm-3.7.1
|
||||
breaksw
|
||||
|
||||
default:
|
||||
endsw
|
||||
|
||||
_foamEtc -config prefs.compiler ## Optional adjustments
|
||||
_foamEtc -config "compiler-$WM_COMPILER" ## Per-compiler override
|
||||
|
||||
# Trap errors
|
||||
if ( "${gcc_version}${clang_version}" == "" ) then
|
||||
/bin/cat << UNKNOWN_COMPILER
|
||||
===============================================================================
|
||||
Warning in $WM_PROJECT_DIR/etc/config.csh/compiler:
|
||||
@ -164,14 +180,11 @@ Unknown ThirdParty compiler type/version - '$WM_COMPILER'
|
||||
Please check your settings
|
||||
===============================================================================
|
||||
UNKNOWN_COMPILER
|
||||
breaksw
|
||||
endsw
|
||||
|
||||
# Per-compiler overrides in "compiler-$WM_COMPILER" files
|
||||
_foamEtc -config "compiler-$WM_COMPILER"
|
||||
endif
|
||||
breaksw
|
||||
endsw
|
||||
|
||||
|
||||
unset default_gcc_version default_clang_version
|
||||
unset default_gmp_version default_mpfr_version default_mpc_version
|
||||
|
||||
|
||||
@ -12,10 +12,12 @@
|
||||
#
|
||||
# File
|
||||
# config.csh/example/compiler-Gcc92
|
||||
# - sourced by OpenFOAM-*/etc/config.csh/compiler
|
||||
#
|
||||
# Description
|
||||
# Example of fine tuning compiler settings with a hook
|
||||
# Example of tuning compiler settings with a hook (C-shell).
|
||||
#
|
||||
# Copy to etc/config.csh (or ~/.OpenFOAM/config.csh) and it will be
|
||||
# sourced by OpenFOAM-*/etc/config.csh/compiler
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
|
||||
@ -5,11 +5,10 @@
|
||||
# \\ / A nd | www.openfoam.com
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# Copyright (C) 2018 OpenCFD Ltd.
|
||||
# Copyright (C) 2018-2020 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
#
|
||||
# File
|
||||
# config.csh/example/paraview
|
||||
|
||||
@ -6,26 +6,26 @@
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
# Copyright (C) 2017 OpenCFD Ltd.
|
||||
# Copyright (C) 2017-2020 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
#
|
||||
# File
|
||||
# config.csh/example/compiler
|
||||
# - sourced by OpenFOAM-*/etc/config.csh/settings
|
||||
# config.csh/example/prefs.compiler
|
||||
#
|
||||
# Description
|
||||
# Older example of fine tuning compiler settings for OpenFOAM
|
||||
# Example of tuning compiler settings with a hook (POSIX shell).
|
||||
#
|
||||
# The preferred mechanism is now with a "compiler-$WM_COMPILER" file
|
||||
# Copy to etc/config.sh (or ~/.OpenFOAM/config.sh) and it will be
|
||||
# sourced by OpenFOAM-*/etc/config.sh/compiler
|
||||
#
|
||||
# Note
|
||||
# The preferred mechanism is often a "compiler-$WM_COMPILER" file
|
||||
# in one of the etc/ directories.
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Load the standard versions
|
||||
eval `$WM_PROJECT_DIR/bin/foamEtcFile -csh -config -mode=o compiler`
|
||||
|
||||
# Modify/override compiler settings
|
||||
switch ("$WM_COMPILER")
|
||||
case Gcc70*:
|
||||
@ -13,14 +13,15 @@
|
||||
#
|
||||
# File
|
||||
# config.csh/example/prefs.csh
|
||||
# - sourced by OpenFOAM-*/etc/cshrc
|
||||
#
|
||||
# Description
|
||||
# Example of preset variables for the OpenFOAM configuration (C-Shell shell)
|
||||
# Example of preset variables for configuring OpenFOAM (C-shell)
|
||||
#
|
||||
# Copy to OpenFOAM-*/etc (or ~/.OpenFOAM) and it will be sourced by
|
||||
# OpenFOAM-*/etc/cshrc
|
||||
#
|
||||
# See also
|
||||
# 'foamEtcFile -help' or 'foamEtcFile -list' for information about the
|
||||
# paths searched
|
||||
# 'foamEtcFile -help' or 'foamEtcFile -list' for the paths searched
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
|
||||
@ -6,20 +6,22 @@
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
# Copyright (C) 2020 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
#
|
||||
# File
|
||||
# config.csh/example/openmpi
|
||||
# - sourced by OpenFOAM-*/etc/config.csh/mpi
|
||||
# config.csh/example/prefs.openmpi
|
||||
#
|
||||
# Description
|
||||
# Example of fine tuning openmpi settings for OpenFOAM
|
||||
# Tuning example for openmpi (C-shell)
|
||||
#
|
||||
# Copy to etc/config.csh (or ~/.OpenFOAM/config.csh) and it will be
|
||||
# sourced by OpenFOAM-*/etc/config.csh/mpi
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
setenv FOAM_MPI openmpi-3.0.0
|
||||
setenv FOAM_MPI openmpi-4.0.5
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
@ -18,314 +18,364 @@
|
||||
# Description
|
||||
# Setup for MPI communications library for OpenFOAM
|
||||
#
|
||||
# User adjustments are possible in these files:
|
||||
# - config.csh/openmpi-system
|
||||
# - config.csh/openmpi
|
||||
# - config.csh/mpi-user
|
||||
# - config.csh/mpi-system
|
||||
#
|
||||
# For USERMPI, the user is responsible for supplying an appropriate
|
||||
# wmake/rules/General/mplibUSERMPI file and managing all settings
|
||||
#
|
||||
# For INTELMPI, note that the (I_MPI_CC, I_MPI_CCX) environment variables
|
||||
# define the underlying compiler to be used
|
||||
#
|
||||
# User adjustments are controlled by these types of files:
|
||||
# - config.csh/prefs.intelmpi
|
||||
# - config.csh/prefs.mpich
|
||||
# - config.csh/prefs.mpich-gm
|
||||
# - config.csh/prefs.mvapich2
|
||||
# - config.csh/prefs.openmpi
|
||||
# - config.csh/prefs.sys-mpi
|
||||
# - config.csh/prefs.sys-openmpi
|
||||
# - config.csh/prefs.user-mpi
|
||||
#
|
||||
# Note
|
||||
# All pre-v2012 names (without the 'prefs.' prefix) are ignored.
|
||||
#
|
||||
# User adjustments may set MPI_ARCH_PATH to an empty string,
|
||||
# but are not permitted to unset it.
|
||||
#
|
||||
# Environment
|
||||
# MPI_BUFFER_SIZE overrides 'mpiBufferSize' (controlDict entry).
|
||||
# Eg, setenv MPI_BUFFER_SIZE 20000000
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
unsetenv MPI_ARCH_PATH MPI_HOME
|
||||
unsetenv MPI_HOME
|
||||
setenv FOAM_MPI dummy # Fallback value
|
||||
setenv MPI_ARCH_PATH # Empty, but defined
|
||||
set _foamMpiVersion # Track mpi (major) version as required
|
||||
|
||||
# Location for ThirdParty installations
|
||||
set _foamMpiPrefixDir="$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER"
|
||||
set _foamMpiWarning="openfoam (etc/config.csh/mpi) => " # Prefix for warnings
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
switch ("$WM_MPLIB")
|
||||
case SYSTEMOPENMPI*:
|
||||
# The system installed openmpi, locations discovery via mpicc.
|
||||
setenv FOAM_MPI openmpi-system
|
||||
_foamEtc -config openmpi-system # <- Adjustments (optional)
|
||||
|
||||
# Respect MPI_ARCH_PATH if set to valid directory (eg, user adjustments)
|
||||
if (! $?MPI_ARCH_PATH ) setenv MPI_ARCH_PATH
|
||||
# The system openmpi, discover locations via <mpicc>
|
||||
case SYSTEMOPENMPI[1-9]:
|
||||
# Preserve major version for the naming
|
||||
set _foamMpiVersion=`echo "$WM_MPLIB" | sed -e 's/^.*MPI//'`
|
||||
#[fallthrough]
|
||||
|
||||
case SYSTEMOPENMPI:
|
||||
setenv FOAM_MPI "sys-openmpi${_foamMpiVersion}"
|
||||
_foamEtc -config prefs.sys-openmpi ## Optional adjustments
|
||||
|
||||
# MPI_ARCH_PATH (prefs) if a valid dir, or discover via <mpicc>
|
||||
if ( -d "$MPI_ARCH_PATH" ) then
|
||||
_foamAddLibAuto $MPI_ARCH_PATH
|
||||
_foamAddLibAuto "$MPI_ARCH_PATH"
|
||||
else
|
||||
# Slight hack: strip off 'lib' to get presumed prefix for include and libs
|
||||
# Slight hack: strip off 'lib' to get prefix directory
|
||||
set libDir=`mpicc --showme:link | sed -e 's/.*-L\([^ ]*\).*/\1/'`
|
||||
|
||||
setenv MPI_ARCH_PATH "${libDir:h}"
|
||||
_foamAddLib $libDir
|
||||
setenv MPI_ARCH_PATH "${libDir:h}" # prefix from libdir
|
||||
_foamAddLib "$libDir"
|
||||
unset libDir
|
||||
endif
|
||||
|
||||
# TDB: extra openmpi major qualifier on name?
|
||||
## if ( "$FOAM_MPI" == "sys-openmpi" ) then
|
||||
## set _foamMpiVersion=`echo "$MPI_ARCH_PATH" | sed -e 's/^.*mpi//'`
|
||||
## switch ("$_foamMpiVersion")
|
||||
## case [1-9]:
|
||||
## setenv FOAM_MPI "${FOAM_MPI}${_foamMpiVersion}"
|
||||
## breaksw
|
||||
## endsw
|
||||
## endif
|
||||
breaksw
|
||||
|
||||
|
||||
case OPENMPI:
|
||||
setenv FOAM_MPI openmpi-4.0.3
|
||||
_foamEtc -config openmpi # <- Adjustments (optional)
|
||||
_foamEtc -config prefs.openmpi ## Optional adjustments
|
||||
|
||||
# Respect MPI_ARCH_PATH if set to valid directory (eg, user adjustments)
|
||||
if (! $?MPI_ARCH_PATH ) setenv MPI_ARCH_PATH
|
||||
if (! -d "$MPI_ARCH_PATH" ) then
|
||||
setenv MPI_ARCH_PATH $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$FOAM_MPI
|
||||
# MPI_ARCH_PATH (prefs) if a valid dir, or ThirdParty location
|
||||
if ( ! -d "$MPI_ARCH_PATH" ) then
|
||||
setenv MPI_ARCH_PATH "$_foamMpiPrefixDir/$FOAM_MPI"
|
||||
endif
|
||||
|
||||
# Inform openmpi where to find its install directory
|
||||
setenv OPAL_PREFIX $MPI_ARCH_PATH
|
||||
setenv OPAL_PREFIX "$MPI_ARCH_PATH"
|
||||
|
||||
if ($?FOAM_VERBOSE && $?prompt) then
|
||||
echo "Using $WM_MPLIB"
|
||||
echo " FOAM_MPI : $FOAM_MPI"
|
||||
echo " OPAL_PREFIX : $MPI_ARCH_PATH"
|
||||
endif
|
||||
|
||||
_foamAddPath $MPI_ARCH_PATH/bin
|
||||
_foamAddMan $MPI_ARCH_PATH/share/man
|
||||
_foamAddLibAuto $MPI_ARCH_PATH lib$WM_COMPILER_LIB_ARCH
|
||||
_foamAddPath "$MPI_ARCH_PATH"/bin
|
||||
_foamAddMan "$MPI_ARCH_PATH"/share/man
|
||||
_foamAddLibAuto "$MPI_ARCH_PATH" "lib$WM_COMPILER_LIB_ARCH"
|
||||
breaksw
|
||||
|
||||
|
||||
# Arbitrary, user-specified mpi implementation
|
||||
# - used by spack, which populates appropriate wmake rules
|
||||
case USERMPI:
|
||||
# Arbitrary, user-specified mpi implementation
|
||||
setenv FOAM_MPI mpi-user
|
||||
_foamEtc -config mpi-user # <- Adjustments (optional)
|
||||
setenv FOAM_MPI user-mpi
|
||||
_foamEtc -config prefs.user-mpi ## Optional adjustments
|
||||
breaksw
|
||||
|
||||
|
||||
# EasyBuild handles everything via <mpicc>
|
||||
case EASYBUILDMPI:
|
||||
setenv FOAM_MPI eb-mpi
|
||||
breaksw
|
||||
|
||||
|
||||
case SYSTEMMPI:
|
||||
setenv FOAM_MPI mpi-system
|
||||
_foamEtc -config mpi-system # <- Adjustments (optional)
|
||||
setenv FOAM_MPI sys-mpi
|
||||
_foamEtc -config prefs.sys-mpi ## Optional adjustments
|
||||
|
||||
if ( ! $?MPI_ROOT ) then
|
||||
echo
|
||||
echo "Warning in $WM_PROJECT_DIR/etc/config.csh/mpi:"
|
||||
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"
|
||||
# MPI_ARCH_PATH (prefs) or MPI_ROOT (inherited), in that order
|
||||
if ( "$MPI_ARCH_PATH" != "" ) then
|
||||
setenv MPI_ROOT "$MPI_ARCH_PATH"
|
||||
else if ( $?MPI_ROOT ) then
|
||||
setenv MPI_ARCH_PATH "$MPI_ROOT"
|
||||
endif
|
||||
|
||||
set _foamMpiWarning="${_foamMpiWarning}system MPI: "
|
||||
if ( ! -d "$MPI_ARCH_PATH" ) then
|
||||
echo "${_foamMpiWarning}has invalid MPI_ROOT"
|
||||
echo "Please set correctly. For example,"
|
||||
echo ' setenv MPI_ROOT "/opt/mpi"'
|
||||
echo
|
||||
else
|
||||
setenv MPI_ARCH_PATH $MPI_ROOT
|
||||
set _foamMpiWarning="${_foamMpiWarning}has unset "
|
||||
|
||||
if ( ! $?MPI_ARCH_FLAGS ) then
|
||||
echo
|
||||
echo "Warning in $WM_PROJECT_DIR/etc/config.csh/mpi:"
|
||||
echo " MPI_ARCH_FLAGS is not set. Example:"
|
||||
echo
|
||||
echo ' setenv MPI_ARCH_FLAGS "-DOMPI_SKIP_MPICXX"'
|
||||
echo "${_foamMpiWarning}MPI_ARCH_FLAGS"
|
||||
echo "Please set correctly. For example,"
|
||||
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/mpi:"
|
||||
echo " MPI_ARCH_INC is not set. Example:"
|
||||
echo
|
||||
echo ' setenv MPI_ARCH_INC "-isystem $MPI_ROOT/include"'
|
||||
echo "${_foamMpiWarning}MPI_ARCH_INC"
|
||||
echo "Please set correctly. For example,"
|
||||
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/mpi:"
|
||||
echo " MPI_ARCH_LIBS is not set. Example:"
|
||||
echo
|
||||
echo ' setenv MPI_ARCH_LIBS "-L$MPI_ROOT/lib -lmpi"'
|
||||
echo "${_foamMpiWarning}MPI_ARCH_LIBS"
|
||||
echo "Please set correctly. For example,"
|
||||
echo ' setenv MPI_ARCH_LIBS "-L$MPI_ROOT/lib -lmpi"'
|
||||
echo
|
||||
endif
|
||||
endif
|
||||
breaksw
|
||||
|
||||
|
||||
case MPICH:
|
||||
setenv FOAM_MPI mpich-3.3
|
||||
setenv MPI_ARCH_PATH $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$FOAM_MPI
|
||||
setenv MPI_HOME $MPI_ARCH_PATH
|
||||
_foamEtc -config prefs.mpich ## Optional adjustments
|
||||
|
||||
_foamAddPath $MPI_ARCH_PATH/bin
|
||||
_foamAddMan $MPI_ARCH_PATH/share/man
|
||||
_foamAddLibAuto $MPI_ARCH_PATH lib$WM_COMPILER_LIB_ARCH
|
||||
# MPI_ARCH_PATH (prefs) if a valid dir, or use ThirdParty location
|
||||
if ( ! -d "$MPI_ARCH_PATH" ) then
|
||||
setenv MPI_ARCH_PATH "$_foamMpiPrefixDir/$FOAM_MPI"
|
||||
endif
|
||||
|
||||
setenv MPI_HOME "$MPI_ARCH_PATH"
|
||||
|
||||
_foamAddPath "$MPI_ARCH_PATH"/bin
|
||||
_foamAddMan "$MPI_ARCH_PATH"/share/man
|
||||
_foamAddLibAuto "$MPI_ARCH_PATH" "lib$WM_COMPILER_LIB_ARCH"
|
||||
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/lib$WM_COMPILER_LIB_ARCH
|
||||
_foamEtc -config prefs.mpich-gm ## Optional adjustments
|
||||
|
||||
_foamAddPath $MPI_ARCH_PATH/bin
|
||||
_foamAddLib $MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH
|
||||
_foamAddLib $GM_LIB_PATH
|
||||
# MPI_ARCH_PATH (prefs) if a valid dir, or system location
|
||||
if ( ! -d "$MPI_ARCH_PATH" ) then
|
||||
setenv MPI_ARCH_PATH /opt/mpi
|
||||
endif
|
||||
|
||||
setenv MPICH_PATH "$MPI_ARCH_PATH"
|
||||
setenv GM_LIB_PATH "$MPICH_PATH/lib$WM_COMPILER_LIB_ARCH"
|
||||
|
||||
_foamAddPath "$MPI_ARCH_PATH"/bin
|
||||
_foamAddLib "$MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH"
|
||||
_foamAddLib "$GM_LIB_PATH"
|
||||
breaksw
|
||||
|
||||
case MVA2MPI: # MVAMPICH2
|
||||
|
||||
# MVAPICH2, renamed to contain 'MPI' in its name
|
||||
case MVA2MPI:
|
||||
setenv FOAM_MPI mvapich2-2.3
|
||||
_foamEtc -config prefs.mvapich2 ## Optional adjustments
|
||||
|
||||
_foamAddPath $MPI_ARCH_PATH/bin
|
||||
_foamAddMan $MPI_ARCH_PATH/share/man
|
||||
_foamAddLibAuto $MPI_ARCH_PATH lib$WM_COMPILER_LIB_ARCH
|
||||
# MPI_ARCH_PATH (prefs) if a valid dir, or ThirdParty location
|
||||
if ( ! -d "$MPI_ARCH_PATH" ) then
|
||||
setenv MPI_ARCH_PATH "$_foamMpiPrefixDir/$FOAM_MPI"
|
||||
endif
|
||||
|
||||
_foamAddPath "$MPI_ARCH_PATH"/bin
|
||||
_foamAddMan "$MPI_ARCH_PATH"/share/man
|
||||
_foamAddLibAuto "$MPI_ARCH_PATH" "lib$WM_COMPILER_LIB_ARCH"
|
||||
breaksw
|
||||
|
||||
|
||||
case CRAY-MPICH:
|
||||
if ( ! $?MPICH_DIR ) setenv MPICH_DIR /dev/null
|
||||
setenv FOAM_MPI cray-mpich
|
||||
setenv MPI_ARCH_PATH $MPICH_DIR
|
||||
|
||||
if ($?FOAM_VERBOSE && $?prompt) then
|
||||
echo "Using $WM_MPLIB"
|
||||
echo " FOAM_MPI : $FOAM_MPI"
|
||||
echo " MPICH_DIR : $MPI_ARCH_PATH"
|
||||
endif
|
||||
if ( ! $?MPICH_DIR ) setenv MPICH_DIR /dummy
|
||||
setenv MPI_ARCH_PATH "$MPICH_DIR"
|
||||
|
||||
if ( ! -d "$MPI_ARCH_PATH" ) then
|
||||
echo "Warning in $WM_PROJECT_DIR/etc/config.csh/mpi:"
|
||||
echo " Not a valid $WM_MPLIB installation directory."
|
||||
echo " Please set MPICH_DIR properly."
|
||||
echo " Currently using '$MPI_ARCH_PATH'"
|
||||
echo "%{_foamMpiWarning}invalid $WM_MPLIB directory" 1>&2
|
||||
echo " => $MPI_ARCH_PATH"
|
||||
echo "Please set MPICH_DIR correctly"
|
||||
endif
|
||||
|
||||
# _foamAddPath $MPI_ARCH_PATH/bin
|
||||
_foamAddLib $MPI_ARCH_PATH/lib
|
||||
# _foamAddPath "$MPI_ARCH_PATH"/bin
|
||||
_foamAddLib "$MPI_ARCH_PATH"/lib
|
||||
breaksw
|
||||
|
||||
|
||||
case HPMPI:
|
||||
setenv FOAM_MPI hpmpi
|
||||
setenv MPI_HOME /opt/hpmpi
|
||||
setenv MPI_ARCH_PATH $MPI_HOME
|
||||
|
||||
_foamAddPath $MPI_ARCH_PATH/bin
|
||||
setenv MPI_ARCH_PATH "$MPI_HOME"
|
||||
|
||||
set libDir=""
|
||||
switch (`uname -m`)
|
||||
case i686:
|
||||
_foamAddLib $MPI_ARCH_PATH/lib/linux_ia32
|
||||
breaksw
|
||||
case x86_64:
|
||||
_foamAddLib $MPI_ARCH_PATH/lib/linux_amd64
|
||||
set libDir=lib/linux_amd64
|
||||
breaksw
|
||||
case i686:
|
||||
set libDir=lib/linux_ia32
|
||||
breaksw
|
||||
case ia64:
|
||||
_foamAddLib $MPI_ARCH_PATH/lib/linux_ia64
|
||||
breaksw
|
||||
default:
|
||||
echo Unknown processor type `uname -m` for Linux
|
||||
set libDir=lib/linux_ia64
|
||||
breaksw
|
||||
endsw
|
||||
|
||||
if ( "${libDir}" != "" ) then
|
||||
_foamAddPath "$MPI_ARCH_PATH"/bin
|
||||
_foamAddLib "$MPI_ARCH_PATH/$libDir"
|
||||
else
|
||||
echo "openfoam: (`uname -m`) - unsupported HP-MPI processor type"
|
||||
endif
|
||||
unset libDir
|
||||
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
|
||||
_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
|
||||
_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/mpi:"
|
||||
echo " Not a valid $WM_MPLIB installation directory."
|
||||
echo " Please set MPI_ROOT properly (usually via the mpt module)"
|
||||
echo " Currently using '$MPI_ARCH_PATH'"
|
||||
if ( "${MPI_ROOT:h}/" == "$MPI_ROOT" ) then
|
||||
setenv MPI_ROOT "${MPI_ROOT:h}" # Remove trailing slash
|
||||
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 $WM_MPLIB"
|
||||
echo " FOAM_MPI : $FOAM_MPI"
|
||||
echo " MPI_ROOT : $MPI_ARCH_PATH"
|
||||
endif
|
||||
|
||||
_foamAddPath $MPI_ARCH_PATH/bin
|
||||
_foamAddLib $MPI_ARCH_PATH/lib
|
||||
breaksw
|
||||
|
||||
case INTELMPI*:
|
||||
if ( $?I_MPI_ROOT ) then
|
||||
# I_MPI_ROOT: The Intel MPI Library installation directory
|
||||
|
||||
# Remove trailing slash
|
||||
if ( "${I_MPI_ROOT:h}/" == $I_MPI_ROOT ) then
|
||||
setenv I_MPI_ROOT ${I_MPI_ROOT:h}
|
||||
endif
|
||||
setenv MPI_ARCH_PATH $I_MPI_ROOT
|
||||
setenv FOAM_MPI ${MPI_ARCH_PATH:t}
|
||||
|
||||
# If subdirectory is version number only, prefix with 'impi-'
|
||||
switch ("$FOAM_MPI")
|
||||
case [0-9]*:
|
||||
setenv FOAM_MPI "impi-$FOAM_MPI"
|
||||
breaksw
|
||||
endsw
|
||||
|
||||
if ($?FOAM_VERBOSE && $?prompt) then
|
||||
echo "Using $WM_MPLIB"
|
||||
echo " FOAM_MPI : $FOAM_MPI"
|
||||
echo " I_MPI_ROOT : $MPI_ARCH_PATH"
|
||||
endif
|
||||
else if ( $?MPI_ROOT ) then
|
||||
# MPI_ROOT: General specification
|
||||
|
||||
# Remove trailing slash
|
||||
if ( "${MPI_ROOT:h}/" == $MPI_ROOT ) then
|
||||
setenv MPI_ROOT ${MPI_ROOT:h}
|
||||
endif
|
||||
|
||||
setenv MPI_ARCH_PATH $MPI_ROOT
|
||||
setenv FOAM_MPI ${MPI_ARCH_PATH:t}
|
||||
|
||||
# If subdirectory is version number only, prefix with 'impi-'
|
||||
switch ("$FOAM_MPI")
|
||||
case [0-9]*:
|
||||
setenv FOAM_MPI "impi-$FOAM_MPI"
|
||||
breaksw
|
||||
endsw
|
||||
|
||||
if ($?FOAM_VERBOSE && $?prompt) then
|
||||
echo "Using $WM_MPLIB"
|
||||
echo " FOAM_MPI : $FOAM_MPI"
|
||||
echo " MPI_ROOT : $MPI_ARCH_PATH"
|
||||
endif
|
||||
else
|
||||
setenv MPI_ARCH_PATH /dummy
|
||||
endif
|
||||
setenv FOAM_MPI "${MPI_ROOT:t}"
|
||||
setenv MPI_ARCH_PATH "$MPI_ROOT"
|
||||
|
||||
if ( ! -d "$MPI_ARCH_PATH" ) then
|
||||
echo "Warning in $WM_PROJECT_DIR/etc/config.csh/mpi:"
|
||||
echo " Not a valid $WM_MPLIB installation directory."
|
||||
echo " Please set I_MPI_ROOT or MPI_ROOT properly."
|
||||
echo " Currently using '$MPI_ARCH_PATH'"
|
||||
echo "%{_foamMpiWarning}invalid $WM_MPLIB directory" 1>&2
|
||||
echo " => $MPI_ARCH_PATH"
|
||||
echo "Please set MPI_ROOT correctly"
|
||||
endif
|
||||
|
||||
_foamAddPath "$MPI_ARCH_PATH/intel64/bin"
|
||||
_foamAddLib "$MPI_ARCH_PATH/intel64/lib"
|
||||
_foamAddPath "$MPI_ARCH_PATH"/bin
|
||||
_foamAddLib "$MPI_ARCH_PATH"/lib
|
||||
breaksw
|
||||
|
||||
|
||||
case INTELMPI*:
|
||||
_foamEtc -config prefs.intelmpi ## Optional adjustments
|
||||
|
||||
if ( $?I_MPI_ROOT ) then
|
||||
# I_MPI_ROOT: Intel MPI Library installation directory
|
||||
setenv MPI_ARCH_PATH "${I_MPI_ROOT}"
|
||||
else if ( $?MPI_ROOT ) then
|
||||
# MPI_ROOT: General specification
|
||||
setenv MPI_ARCH_PATH "$MPI_ROOT"
|
||||
else if ( "$MPI_ARCH_PATH" != "" ) then
|
||||
# MPI_ARCH_PATH: Set I_MPI_ROOT accordingly
|
||||
export I_MPI_ROOT="$MPI_ARCH_PATH"
|
||||
|
||||
endif
|
||||
|
||||
if ( -d "$MPI_ARCH_PATH" ) then
|
||||
# Remove trailing slash
|
||||
if ( "${MPI_ARCH_PATH:h}/" == "$MPI_ARCH_PATH" ) then
|
||||
setenv MPI_ARCH_PATH "${MPI_ARCH_PATH:h}"
|
||||
endif
|
||||
|
||||
# Subdir name is FOAM_MPI name
|
||||
setenv FOAM_MPI "${MPI_ARCH_PATH:t}"
|
||||
|
||||
# If subdir is version number only, prefix with 'impi-'
|
||||
switch ("$FOAM_MPI")
|
||||
case [0-9]*:
|
||||
setenv FOAM_MPI "impi-$FOAM_MPI"
|
||||
breaksw
|
||||
endsw
|
||||
|
||||
else
|
||||
echo "${_foamMpiWarning}invalid $WM_MPLIB directory" 1>&2
|
||||
echo " => ${MPI_ARCH_PATH}" 1>&2
|
||||
echo "Please set I_MPI_ROOT or MPI_ROOT correctly."
|
||||
endif
|
||||
|
||||
_foamAddPath "$MPI_ARCH_PATH"/intel64/bin
|
||||
_foamAddLib "$MPI_ARCH_PATH"/intel64/lib
|
||||
breaksw
|
||||
|
||||
endsw
|
||||
|
||||
|
||||
# Add (non-dummy) MPI implementation
|
||||
# - dummy MPI already in lib-path and has no external libraries
|
||||
#------------------------------------------------------------------------------
|
||||
# Final
|
||||
|
||||
# A real (non-dummy) MPI
|
||||
if ( "$FOAM_MPI" != dummy ) then
|
||||
if ( $?FOAM_EXT_LIBBIN ) then # External libraries (allowed to be unset)
|
||||
_foamAddLib ${FOAM_EXT_LIBBIN}/${FOAM_MPI}
|
||||
if ($?FOAM_VERBOSE && $?prompt) then
|
||||
echo "Using mpi type : $WM_MPLIB"
|
||||
echo " FOAM_MPI : $FOAM_MPI"
|
||||
if ( "${MPI_ARCH_PATH}" == "" ) then
|
||||
echo " prefix : unset"
|
||||
else
|
||||
echo " prefix : $MPI_ARCH_PATH"
|
||||
endif
|
||||
endif
|
||||
_foamAddLib ${FOAM_LIBBIN}/${FOAM_MPI}
|
||||
|
||||
# OpenFOAM library interface to (non-dummy) MPI
|
||||
if ( $?FOAM_EXT_LIBBIN ) then
|
||||
# External libraries (can be unset)
|
||||
_foamAddLib "${FOAM_EXT_LIBBIN}/${FOAM_MPI}"
|
||||
endif
|
||||
_foamAddLib "${FOAM_LIBBIN}/${FOAM_MPI}"
|
||||
endif
|
||||
|
||||
# Alternative to 'mpiBufferSize' controlDict entry
|
||||
#setenv MPI_BUFFER_SIZE 20000000
|
||||
|
||||
# Cleanup
|
||||
unset _foamMpiPrefixDir _foamMpiWarning _foamMpiVersion
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
# Settings for OpenFOAM
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
setenv WM_ARCH `uname -s` # System name
|
||||
setenv WM_ARCH `uname -s` # System name
|
||||
|
||||
set archOption=64
|
||||
if ($?WM_ARCH_OPTION) then
|
||||
@ -28,7 +28,7 @@ endif
|
||||
|
||||
unsetenv WM_ARCH_OPTION # Compiling 32-bit on 64-bit system
|
||||
setenv WM_COMPILER_ARCH # Host compiler type (when different than target)
|
||||
setenv WM_COMPILER_LIB_ARCH # Additional ending for lib directories
|
||||
setenv WM_COMPILER_LIB_ARCH # Ending for lib directories
|
||||
if (! $?WM_COMPILE_OPTION ) setenv WM_COMPILE_OPTION
|
||||
|
||||
# Adjust according to system and architecture
|
||||
@ -37,54 +37,46 @@ case Linux:
|
||||
setenv WM_ARCH linux
|
||||
|
||||
switch (`uname -m`)
|
||||
case i686:
|
||||
case x86_64:
|
||||
if ( "$archOption" == "32" ) then
|
||||
setenv WM_ARCH_OPTION 32 # Propagate?
|
||||
setenv WM_COMPILER_ARCH 64 # 64-bit compiler, 32-bit target
|
||||
else
|
||||
setenv WM_ARCH linux64 # 64-bit compiler/target
|
||||
setenv WM_COMPILER_LIB_ARCH 64 # Use lib64
|
||||
endif
|
||||
breaksw
|
||||
|
||||
case x86_64:
|
||||
switch ("$archOption")
|
||||
case 32:
|
||||
setenv WM_ARCH_OPTION 32 # Need to propagate the value
|
||||
setenv WM_COMPILER_ARCH 64 # 64-bit compiler, 32-bit target
|
||||
breaksw
|
||||
case aarch64:
|
||||
setenv WM_ARCH linuxARM64
|
||||
setenv WM_COMPILER_LIB_ARCH 64 # Use lib64
|
||||
breaksw
|
||||
|
||||
case 64:
|
||||
setenv WM_ARCH linux64
|
||||
setenv WM_COMPILER_LIB_ARCH 64 # Target with lib64
|
||||
breaksw
|
||||
case armv7l:
|
||||
setenv WM_ARCH linuxARM7
|
||||
setenv WM_COMPILER_LIB_ARCH 32 # Use lib32
|
||||
breaksw
|
||||
|
||||
default:
|
||||
echo "Unknown WM_ARCH_OPTION '$archOption', should be 32|64"
|
||||
breaksw
|
||||
case ppc64:
|
||||
setenv WM_ARCH linuxPPC64
|
||||
setenv WM_COMPILER_LIB_ARCH 64 # Use lib64
|
||||
breaksw
|
||||
|
||||
endsw
|
||||
case ppc64le:
|
||||
setenv WM_ARCH linuxPPC64le
|
||||
setenv WM_COMPILER_LIB_ARCH 64 # Use lib64
|
||||
breaksw
|
||||
|
||||
case i686:
|
||||
setenv WM_ARCH linux
|
||||
breaksw
|
||||
|
||||
case ia64:
|
||||
setenv WM_ARCH linuxIA64
|
||||
breaksw
|
||||
|
||||
case armv7l:
|
||||
setenv WM_ARCH linuxARM7
|
||||
setenv WM_COMPILER_LIB_ARCH 32
|
||||
breaksw
|
||||
|
||||
case aarch64:
|
||||
setenv WM_ARCH linuxARM64
|
||||
setenv WM_COMPILER_LIB_ARCH 64
|
||||
breaksw
|
||||
|
||||
case ppc64:
|
||||
setenv WM_ARCH linuxPPC64
|
||||
setenv WM_COMPILER_LIB_ARCH 64
|
||||
breaksw
|
||||
|
||||
case ppc64le:
|
||||
setenv WM_ARCH linuxPPC64le
|
||||
setenv WM_COMPILER_LIB_ARCH 64
|
||||
breaksw
|
||||
|
||||
default:
|
||||
echo Unknown processor type `uname -m` for Linux
|
||||
echo "openfoam: (`uname -m`) - unknown Linux processor type"
|
||||
breaksw
|
||||
|
||||
endsw
|
||||
@ -93,17 +85,17 @@ case Linux:
|
||||
# Presume x86_64, with clang (not gcc) as system compiler
|
||||
case Darwin:
|
||||
setenv WM_ARCH darwin64
|
||||
if ("$WM_COMPILER" == Gcc) setenv WM_COMPILER Clang
|
||||
echo "Darwin support is clang/llvm only"
|
||||
if ( "$WM_COMPILER" == Gcc ) setenv WM_COMPILER Clang
|
||||
echo "openfoam: darwin support is clang/llvm only"
|
||||
breaksw
|
||||
|
||||
# Presume x86_64, with mingw cross-compiled
|
||||
case MINGW*:
|
||||
case MSYS*:
|
||||
WM_ARCH=win64
|
||||
if ("$WM_COMPILER" == Gcc) setenv WM_COMPILER Mingw
|
||||
if ( "$WM_COMPILER" == Gcc ) setenv WM_COMPILER Mingw
|
||||
setenv WM_COMPILER_LIB_ARCH 64 # Consistent with linux64Mingw
|
||||
echo "Windows support (mingw64) is runtime only"
|
||||
echo "openfoam: windows support (mingw64) is runtime only"
|
||||
;;
|
||||
|
||||
case SunOS*:
|
||||
@ -115,7 +107,7 @@ default:
|
||||
/bin/cat << UNSUPPORTED
|
||||
===============================================================================
|
||||
Operating system '$WM_ARCH' is unsupported by this OpenFOAM release.
|
||||
For further assistance, please contact www.OpenFOAM.com
|
||||
For further assistance, please contact www.openfoam.com
|
||||
===============================================================================
|
||||
UNSUPPORTED
|
||||
breaksw
|
||||
@ -238,10 +230,10 @@ case ThirdParty-Gcc*:
|
||||
if (! $?gmp_version ) set gmp_version=gmp-system
|
||||
if (! $?mpfr_version ) set mpfr_version=mpfr-system
|
||||
if (! $?mpc_version ) set mpc_version=mpc-system
|
||||
set gccDir=$archDir/$gcc_version
|
||||
set gmpDir=$archDir/$gmp_version
|
||||
set mpfrDir=$archDir/$mpfr_version
|
||||
set mpcDir=$archDir/$mpc_version
|
||||
set gccDir="$archDir/$gcc_version"
|
||||
set gmpDir="$archDir/$gmp_version"
|
||||
set mpfrDir="$archDir/$mpfr_version"
|
||||
set mpcDir="$archDir/$mpc_version"
|
||||
|
||||
# Check that the compiler directory can be found
|
||||
if ( ! -d "$gccDir" ) then
|
||||
@ -257,24 +249,24 @@ Cannot find '$WM_COMPILER' compiler installation
|
||||
GCC_NOT_FOUND
|
||||
endif
|
||||
|
||||
_foamAddMan $gccDir/man
|
||||
_foamAddPath $gccDir/bin
|
||||
_foamAddMan "$gccDir"/man
|
||||
_foamAddPath "$gccDir"/bin
|
||||
|
||||
# Add ThirdParty compiler libraries to run-time environment
|
||||
_foamAddLib $gccDir/lib$WM_COMPILER_LIB_ARCH
|
||||
_foamAddLib "$gccDir/lib$WM_COMPILER_LIB_ARCH"
|
||||
|
||||
# Add gmp/mpfr/mpc libraries to run-time environment.
|
||||
# Require that they exist, automatically find lib64/ or lib/.
|
||||
if ( "${gmpDir:t}" != "gmp-system" ) then
|
||||
_foamAddLibAuto $gmpDir
|
||||
setenv GMP_ARCH_PATH $gmpDir # For non-system CGAL
|
||||
_foamAddLibAuto "$gmpDir"
|
||||
setenv GMP_ARCH_PATH "$gmpDir" # For non-system CGAL
|
||||
endif
|
||||
if ( "${mpfrDir:t}" != "mpfr-system" ) then
|
||||
_foamAddLibAuto $mpfrDir
|
||||
setenv MPFR_ARCH_PATH $mpfrDir # For non-system CGAL
|
||||
_foamAddLibAuto "$mpfrDir"
|
||||
setenv MPFR_ARCH_PATH "$mpfrDir" # For non-system CGAL
|
||||
endif
|
||||
|
||||
_foamAddLibAuto $mpcDir
|
||||
_foamAddLibAuto "$mpcDir"
|
||||
|
||||
if ($?FOAM_VERBOSE && $?prompt) then
|
||||
echo "Using ThirdParty compiler"
|
||||
@ -283,7 +275,7 @@ GCC_NOT_FOUND
|
||||
breaksw
|
||||
|
||||
case ThirdParty-Clang*:
|
||||
set clangDir=$archDir/$clang_version
|
||||
set clangDir="$archDir/$clang_version"
|
||||
|
||||
# Check that the compiler directory can be found
|
||||
if ( ! -d "$clangDir" ) then
|
||||
@ -299,9 +291,9 @@ Cannot find '$WM_COMPILER' compiler installation
|
||||
CLANG_NOT_FOUND
|
||||
endif
|
||||
|
||||
_foamAddMan $clangDir/man
|
||||
_foamAddPath $clangDir/bin
|
||||
_foamAddLib $clangDir/lib # For things like libomp (openmp) etc
|
||||
_foamAddMan "$clangDir"/share/man
|
||||
_foamAddPath "$clangDir"/bin
|
||||
_foamAddLib "$clangDir"/lib # For things like libomp (openmp) etc
|
||||
|
||||
if ($?FOAM_VERBOSE && $?prompt) then
|
||||
echo "Using ThirdParty compiler"
|
||||
|
||||
@ -40,8 +40,12 @@ ThirdParty)
|
||||
mpfr_version="$default_mpfr_version"
|
||||
mpc_version="$default_mpc_version"
|
||||
|
||||
# Clear any old values
|
||||
unset gcc_version clang_version
|
||||
|
||||
case "$WM_COMPILER" in
|
||||
Gcc) gcc_version="$default_gcc_version" ;;
|
||||
Gcc102*) gcc_version=gcc-10.2.0 ;;
|
||||
Gcc101*) gcc_version=gcc-10.1.0 ;;
|
||||
Gcc93*) gcc_version=gcc-9.3.0 ;;
|
||||
Gcc92*) gcc_version=gcc-9.2.0 ;;
|
||||
@ -70,7 +74,8 @@ ThirdParty)
|
||||
Gcc48*) gcc_version=gcc-4.8.5 ;;
|
||||
|
||||
Clang) clang_version="$default_clang_version" ;;
|
||||
Clang100*) clang_version=llvm-10.0.0 ;;
|
||||
Clang110*) clang_version=llvm-11.0.0 ;;
|
||||
Clang100*) clang_version=llvm-10.0.1 ;;
|
||||
Clang90*) clang_version=llvm-9.0.1 ;;
|
||||
Clang80*) clang_version=llvm-8.0.1 ;;
|
||||
Clang71*) clang_version=llvm-7.1.0 ;;
|
||||
@ -82,7 +87,14 @@ ThirdParty)
|
||||
Clang38*) clang_version=llvm-3.8.1 ;;
|
||||
Clang37*) clang_version=llvm-3.7.1 ;;
|
||||
|
||||
*)
|
||||
esac
|
||||
|
||||
_foamEtc -config prefs.compiler ## Optional adjustments
|
||||
_foamEtc -config "compiler-$WM_COMPILER" ## Per-compiler override
|
||||
|
||||
# Trap errors
|
||||
if [ -z "$gcc_version$clang_version" ]
|
||||
then
|
||||
/bin/cat << UNKNOWN_COMPILER 1>&2
|
||||
===============================================================================
|
||||
Warning in $WM_PROJECT_DIR/etc/config.sh/compiler:
|
||||
@ -91,14 +103,11 @@ Unknown ThirdParty compiler type/version - '$WM_COMPILER'
|
||||
Please check your settings
|
||||
===============================================================================
|
||||
UNKNOWN_COMPILER
|
||||
;;
|
||||
esac
|
||||
|
||||
# Per-compiler overrides in "compiler-$WM_COMPILER" files
|
||||
_foamEtc -config "compiler-$WM_COMPILER"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
unset default_gcc_version default_clang_version
|
||||
unset default_gmp_version default_mpfr_version default_mpc_version
|
||||
|
||||
|
||||
@ -12,10 +12,12 @@
|
||||
#
|
||||
# File
|
||||
# config.sh/example/compiler-Gcc92
|
||||
# - sourced by OpenFOAM-*/etc/config.sh/compiler
|
||||
#
|
||||
# Description
|
||||
# Example of fine tuning compiler settings with a hook
|
||||
# Example of tuning compiler settings with a hook (POSIX shell).
|
||||
#
|
||||
# Copy to etc/config.sh (or ~/.OpenFOAM/config.sh) and it will be
|
||||
# sourced by OpenFOAM-*/etc/config.sh/compiler
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
|
||||
@ -5,11 +5,10 @@
|
||||
# \\ / A nd | www.openfoam.com
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# Copyright (C) 2018 OpenCFD Ltd.
|
||||
# Copyright (C) 2018-2020 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
#
|
||||
# File
|
||||
# config.sh/example/paraview
|
||||
|
||||
@ -6,26 +6,26 @@
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
# Copyright (C) 2017 OpenCFD Ltd.
|
||||
# Copyright (C) 2017-2020 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
#
|
||||
# File
|
||||
# config.sh/example/compiler
|
||||
# - sourced by OpenFOAM-*/etc/config.sh/settings
|
||||
# config.sh/example/prefs.compiler
|
||||
#
|
||||
# Description
|
||||
# Older example of fine tuning compiler settings for OpenFOAM.
|
||||
# Example of tuning compiler settings with a hook (C-shell).
|
||||
#
|
||||
# The preferred mechanism is now with a "compiler-$WM_COMPILER" file
|
||||
# Copy to etc/config.csh (or ~/.OpenFOAM/config.csh) and it will be
|
||||
# sourced by OpenFOAM-*/etc/config.csh/compiler
|
||||
#
|
||||
# Note
|
||||
# The preferred mechanism is often a "compiler-$WM_COMPILER" file
|
||||
# in one of the etc/ directories.
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Load the standard versions
|
||||
eval $($WM_PROJECT_DIR/bin/foamEtcFile -sh -config -mode=o compiler)
|
||||
|
||||
# Modify/override compiler settings
|
||||
case "$WM_COMPILER" in
|
||||
Gcc70*)
|
||||
@ -6,20 +6,22 @@
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
# Copyright (C) 2020 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
#
|
||||
# File
|
||||
# config.sh/example/openmpi
|
||||
# - sourced by OpenFOAM-*/etc/config.sh/mpi
|
||||
# config.sh/example/prefs.openmpi
|
||||
#
|
||||
# Description
|
||||
# Example of fine tuning openmpi settings for OpenFOAM
|
||||
# Tuning example for openmpi (POSIX shell).
|
||||
#
|
||||
# Copy to etc/config.sh (or ~/.OpenFOAM/config.sh) and it will be
|
||||
# sourced by OpenFOAM-*/etc/config.sh/mpi
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
export FOAM_MPI=openmpi-3.0.0
|
||||
export FOAM_MPI=openmpi-4.0.5
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
@ -6,21 +6,22 @@
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
# Copyright (C) 2020 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
#
|
||||
# File
|
||||
# config.sh/example/prefs.sh
|
||||
# - sourced by OpenFOAM-*/etc/bashrc
|
||||
#
|
||||
# Description
|
||||
# Example of preset variables for the OpenFOAM configuration (POSIX shell)
|
||||
# Example of preset variables for configuring OpenFOAM (POSIX shell)
|
||||
#
|
||||
# Copy to OpenFOAM-*/etc (or ~/.OpenFOAM) and it will be sourced by
|
||||
# OpenFOAM-*/etc/bashrc
|
||||
#
|
||||
# See also
|
||||
# 'foamEtcFile -help' or 'foamEtcFile -list' for information about the
|
||||
# paths searched
|
||||
# 'foamEtcFile -help' or 'foamEtcFile -list' for the paths searched
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
|
||||
@ -18,338 +18,404 @@
|
||||
# Description
|
||||
# Setup for MPI communications library for OpenFOAM
|
||||
#
|
||||
# User adjustments are possible in these files:
|
||||
# - config.sh/openmpi-system
|
||||
# - config.sh/openmpi
|
||||
# - config.sh/mpi-user
|
||||
# - config.sh/mpi-system
|
||||
#
|
||||
# For USERMPI, the user is responsible for supplying an appropriate
|
||||
# wmake/rules/General/mplibUSERMPI file and managing all settings
|
||||
#
|
||||
# For INTELMPI, note that the (I_MPI_CC, I_MPI_CCX) environment variables
|
||||
# define the underlying compiler to be used
|
||||
#
|
||||
# User adjustments are controlled by these types of files:
|
||||
# - config.sh/prefs.intelmpi
|
||||
# - config.sh/prefs.mpich
|
||||
# - config.sh/prefs.mpich-gm
|
||||
# - config.sh/prefs.msmpi
|
||||
# - config.sh/prefs.mvapich2
|
||||
# - config.sh/prefs.openmpi
|
||||
# - config.sh/prefs.sys-mpi
|
||||
# - config.sh/prefs.sys-openmpi
|
||||
# - config.sh/prefs.user-mpi
|
||||
#
|
||||
# Note
|
||||
# All pre-v2012 names (without the 'prefs.' prefix) are ignored.
|
||||
#
|
||||
# Environment
|
||||
# MPI_BUFFER_SIZE overrides 'mpiBufferSize' (controlDict entry).
|
||||
# Eg, export MPI_BUFFER_SIZE=20000000
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
unset MPI_ARCH_PATH MPI_HOME
|
||||
export FOAM_MPI=dummy # Fallback value
|
||||
unset _foamMpiVersion # Track mpi (major) version as required
|
||||
|
||||
# Location for ThirdParty installations
|
||||
_foamMpiPrefixDir="$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER"
|
||||
_foamMpiWarning="openfoam (etc/config.sh/mpi) => " # Prefix for warnings
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
case "$WM_MPLIB" in
|
||||
SYSTEMOPENMPI*)
|
||||
# The system installed openmpi, locations discovery via mpicc.
|
||||
export FOAM_MPI=openmpi-system
|
||||
|
||||
# The system openmpi, discover locations via <mpicc>
|
||||
# Preserve major version for the naming
|
||||
SYSTEMOPENMPI | SYSTEMOPENMPI[1-9])
|
||||
# Preserve major version for the naming
|
||||
_foamMpiVersion="${WM_MPLIB##*MPI}"
|
||||
|
||||
export FOAM_MPI="sys-openmpi${_foamMpiVersion}"
|
||||
|
||||
# Undefine OPAL_PREFIX if set to one of the paths on foamOldDirs
|
||||
if [ -z "$($foamClean -env=OPAL_PREFIX "$foamOldDirs")" ]
|
||||
then
|
||||
unset OPAL_PREFIX
|
||||
fi
|
||||
_foamEtc -config openmpi-system # <- Adjustments (optional)
|
||||
_foamEtc -config prefs.sys-openmpi ## Optional adjustments
|
||||
|
||||
# Respect MPI_ARCH_PATH if set to valid directory (eg, user adjustments)
|
||||
# MPI_ARCH_PATH (prefs) if a valid dir, or discover via <mpicc>
|
||||
if [ -d "$MPI_ARCH_PATH" ]
|
||||
then
|
||||
_foamAddLibAuto $MPI_ARCH_PATH
|
||||
_foamAddLibAuto "$MPI_ARCH_PATH"
|
||||
else
|
||||
# Slight hack: strip off 'lib' to get presumed prefix for include and libs
|
||||
# Slight hack: strip off 'lib' to get prefix directory
|
||||
libDir=$(mpicc --showme:link | sed -e 's/.*-L\([^ ]*\).*/\1/')
|
||||
|
||||
export MPI_ARCH_PATH="${libDir%/*}"
|
||||
_foamAddLib $libDir
|
||||
export MPI_ARCH_PATH="${libDir%/*}" # prefix from libdir
|
||||
_foamAddLib "$libDir"
|
||||
unset libDir
|
||||
fi
|
||||
|
||||
# TDB: extra openmpi major qualifier on name?
|
||||
## if [ "$FOAM_MPI" = "sys-openmpi" ]
|
||||
## then
|
||||
## _foamMpiVersion="${MPI_ARCH_PATH##*mpi}"
|
||||
## case "$_foamMpiVersion" in
|
||||
## ([1-9])
|
||||
## FOAM_MPI="${FOAM_MPI}${_foamMpiVersion}"
|
||||
## ;;
|
||||
## esac
|
||||
## fi
|
||||
;;
|
||||
|
||||
|
||||
OPENMPI)
|
||||
export FOAM_MPI=openmpi-4.0.3
|
||||
_foamEtc -config openmpi # <- Adjustments (optional)
|
||||
_foamEtc -config prefs.openmpi ## Optional adjustments
|
||||
|
||||
# Respect MPI_ARCH_PATH if set to valid directory (eg, user adjustments)
|
||||
# MPI_ARCH_PATH (prefs) if a valid dir, or ThirdParty location
|
||||
if [ ! -d "$MPI_ARCH_PATH" ]
|
||||
then
|
||||
export MPI_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$FOAM_MPI
|
||||
export MPI_ARCH_PATH="$_foamMpiPrefixDir/$FOAM_MPI"
|
||||
fi
|
||||
|
||||
# Inform openmpi where to find its install directory
|
||||
export OPAL_PREFIX=$MPI_ARCH_PATH
|
||||
|
||||
if [ -n "$FOAM_VERBOSE" ] && [ -n "$PS1" ]
|
||||
then
|
||||
echo "Using $WM_MPLIB" 1>&2
|
||||
echo " FOAM_MPI : $FOAM_MPI" 1>&2
|
||||
echo " OPAL_PREFIX : $MPI_ARCH_PATH" 1>&2
|
||||
fi
|
||||
export OPAL_PREFIX="$MPI_ARCH_PATH"
|
||||
|
||||
# Could be sourced from ThirdParty with incomplete environment
|
||||
if command -v _foamAddLibAuto >/dev/null # Normal sourcing
|
||||
then
|
||||
_foamAddPath $MPI_ARCH_PATH/bin
|
||||
_foamAddMan $MPI_ARCH_PATH/share/man
|
||||
_foamAddLibAuto $MPI_ARCH_PATH lib$WM_COMPILER_LIB_ARCH
|
||||
_foamAddPath "$MPI_ARCH_PATH"/bin
|
||||
_foamAddMan "$MPI_ARCH_PATH"/share/man
|
||||
_foamAddLibAuto "$MPI_ARCH_PATH" "lib$WM_COMPILER_LIB_ARCH"
|
||||
fi
|
||||
;;
|
||||
|
||||
|
||||
# Arbitrary, user-specified mpi implementation
|
||||
# - used by spack, which populates appropriate wmake rules
|
||||
USERMPI)
|
||||
# Arbitrary, user-specified mpi implementation
|
||||
export FOAM_MPI=mpi-user
|
||||
_foamEtc -config mpi-user # <- Adjustments (optional)
|
||||
export FOAM_MPI=user-mpi
|
||||
_foamEtc -config prefs.user-mpi ## Optional adjustments
|
||||
;;
|
||||
|
||||
|
||||
# EasyBuild handles everything via <mpicc>
|
||||
EASYBUILDMPI)
|
||||
export FOAM_MPI=eb-mpi
|
||||
;;
|
||||
|
||||
|
||||
SYSTEMMPI)
|
||||
export FOAM_MPI=mpi-system
|
||||
_foamEtc -config mpi-system # <- Adjustments (optional)
|
||||
export FOAM_MPI=sys-mpi
|
||||
_foamEtc -config prefs.sys-mpi ## Optional adjustments
|
||||
|
||||
if [ -z "$MPI_ROOT" ]
|
||||
# MPI_ARCH_PATH (prefs) or MPI_ROOT (inherited), in that order
|
||||
if [ -n "$MPI_ARCH_PATH" ]
|
||||
then
|
||||
echo 1>&2
|
||||
echo "Warning in $WM_PROJECT_DIR/etc/config.sh/mpi:" 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
|
||||
export MPI_ROOT="$MPI_ARCH_PATH"
|
||||
elif [ -n "$MPI_ROOT" ]
|
||||
then
|
||||
export MPI_ARCH_PATH="$MPI_ROOT"
|
||||
fi
|
||||
|
||||
_foamMpiWarning="${_foamMpiWarning}system MPI: "
|
||||
if [ ! -d "$MPI_ARCH_PATH" ]
|
||||
then
|
||||
echo "${_foamMpiWarning}has invalid MPI_ROOT" 1>&2
|
||||
echo "Please set correctly. For example," 1>&2
|
||||
echo ' export MPI_ROOT="/opt/mpi"' 1>&2
|
||||
echo 1>&2
|
||||
else
|
||||
export MPI_ARCH_PATH=$MPI_ROOT
|
||||
_foamMpiWarning="${_foamMpiWarning}has unset "
|
||||
|
||||
if [ -z "$MPI_ARCH_FLAGS" ]
|
||||
then
|
||||
echo 1>&2
|
||||
echo "Warning in $WM_PROJECT_DIR/etc/config.sh/mpi:" 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/mpi:" 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/mpi:" 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
|
||||
[ -n "$MPI_ARCH_FLAGS" ] || {
|
||||
exec 1>&2
|
||||
echo "${_foamMpiWarning}MPI_ARCH_FLAGS"
|
||||
echo "Please set correctly. For example,"
|
||||
echo ' export MPI_ARCH_FLAGS="-DOMPI_SKIP_MPICXX"'
|
||||
echo
|
||||
}
|
||||
[ -n "$MPI_ARCH_INC" ] || {
|
||||
exec 1>&2
|
||||
echo "${_foamMpiWarning}MPI_ARCH_INC"
|
||||
echo "Please set correctly. For example,"
|
||||
echo ' export MPI_ARCH_INC="-isystem $MPI_ROOT/include"'
|
||||
echo
|
||||
}
|
||||
[ -n "$MPI_ARCH_LIBS" ] || {
|
||||
exec 1>&2
|
||||
echo "${_foamMpiWarning}MPI_ARCH_LIBS"
|
||||
echo "Please set correctly. For example,"
|
||||
echo ' export MPI_ARCH_LIBS="-L$MPI_ROOT/lib -lmpi'
|
||||
echo
|
||||
}
|
||||
fi
|
||||
;;
|
||||
|
||||
|
||||
MPICH)
|
||||
export FOAM_MPI=mpich-3.3
|
||||
export MPI_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$FOAM_MPI
|
||||
export MPI_HOME=$MPI_ARCH_PATH
|
||||
_foamEtc -config prefs.mpich ## Optional adjustments
|
||||
|
||||
# MPI_ARCH_PATH (prefs) if a valid dir, or use ThirdParty location
|
||||
if [ ! -d "$MPI_ARCH_PATH" ]
|
||||
then
|
||||
export MPI_ARCH_PATH="$_foamMpiPrefixDir/$FOAM_MPI"
|
||||
fi
|
||||
|
||||
export MPI_HOME="$MPI_ARCH_PATH"
|
||||
|
||||
# Could be sourced from ThirdParty with incomplete environment
|
||||
if command -v _foamAddLibAuto >/dev/null # Normal sourcing
|
||||
then
|
||||
_foamAddPath $MPI_ARCH_PATH/bin
|
||||
_foamAddMan $MPI_ARCH_PATH/share/man
|
||||
_foamAddLibAuto $MPI_ARCH_PATH lib$WM_COMPILER_LIB_ARCH
|
||||
_foamAddPath "$MPI_ARCH_PATH"/bin
|
||||
_foamAddMan "$MPI_ARCH_PATH"/share/man
|
||||
_foamAddLibAuto "$MPI_ARCH_PATH" "lib$WM_COMPILER_LIB_ARCH"
|
||||
fi
|
||||
;;
|
||||
|
||||
|
||||
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/lib$WM_COMPILER_LIB_ARCH
|
||||
_foamEtc -config prefs.mpich-gm ## Optional adjustments
|
||||
|
||||
_foamAddPath $MPI_ARCH_PATH/bin
|
||||
_foamAddLib $MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH
|
||||
_foamAddLib $GM_LIB_PATH
|
||||
# MPI_ARCH_PATH (prefs) if a valid dir, or system location
|
||||
if [ ! -d "$MPI_ARCH_PATH" ]
|
||||
then
|
||||
export MPI_ARCH_PATH=/opt/mpi
|
||||
fi
|
||||
|
||||
export MPICH_PATH="$MPI_ARCH_PATH"
|
||||
export GM_LIB_PATH="$MPICH_PATH/lib$WM_COMPILER_LIB_ARCH"
|
||||
|
||||
_foamAddPath "$MPI_ARCH_PATH"/bin
|
||||
_foamAddLib "$MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH"
|
||||
_foamAddLib "$GM_LIB_PATH"
|
||||
;;
|
||||
|
||||
MVA2MPI) # MVAMPICH2
|
||||
|
||||
# MVAPICH2, renamed to contain 'MPI' in its name
|
||||
MVA2MPI)
|
||||
export FOAM_MPI=mvapich2-2.3
|
||||
export MPI_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$FOAM_MPI
|
||||
_foamEtc -config prefs.mvapich2 ## Optional adjustments
|
||||
|
||||
# MPI_ARCH_PATH (prefs) if a valid dir, or ThirdParty location
|
||||
if [ ! -d "$MPI_ARCH_PATH" ]
|
||||
then
|
||||
export MPI_ARCH_PATH="$_foamMpiPrefixDir/$FOAM_MPI"
|
||||
fi
|
||||
|
||||
# Could be sourced from ThirdParty with incomplete environment
|
||||
if command -v _foamAddLibAuto >/dev/null # Normal sourcing
|
||||
then
|
||||
_foamAddPath $MPI_ARCH_PATH/bin
|
||||
_foamAddMan $MPI_ARCH_PATH/share/man
|
||||
_foamAddLibAuto $MPI_ARCH_PATH lib$WM_COMPILER_LIB_ARCH
|
||||
_foamAddPath "$MPI_ARCH_PATH"/bin
|
||||
_foamAddMan "$MPI_ARCH_PATH"/share/man
|
||||
_foamAddLibAuto "$MPI_ARCH_PATH" "lib$WM_COMPILER_LIB_ARCH"
|
||||
fi
|
||||
;;
|
||||
|
||||
|
||||
CRAY-MPICH)
|
||||
export FOAM_MPI=cray-mpich
|
||||
export MPI_ARCH_PATH=$MPICH_DIR
|
||||
|
||||
if [ -n "$FOAM_VERBOSE" ] && [ -n "$PS1" ]
|
||||
then
|
||||
echo "Using $WM_MPLIB" 1>&2
|
||||
echo " FOAM_MPI : $FOAM_MPI" 1>&2
|
||||
echo " MPICH_DIR : $MPI_ARCH_PATH" 1>&2
|
||||
fi
|
||||
export MPI_ARCH_PATH="$MPICH_DIR"
|
||||
|
||||
[ -d "$MPI_ARCH_PATH" ] || {
|
||||
echo "Warning in $WM_PROJECT_DIR/etc/config.sh/mpi:" 1>&2
|
||||
echo " Not a valid $WM_MPLIB installation directory." 1>&2
|
||||
echo " Please set MPICH_DIR properly" 1>&2
|
||||
echo " Currently using '$MPI_ARCH_PATH'" 1>&2
|
||||
echo "%{_foamMpiWarning}invalid $WM_MPLIB directory" 1>&2
|
||||
echo " => ${MPI_ARCH_PATH:-unset}" 1>&2
|
||||
echo "Please set MPICH_DIR correctly" 1>&2
|
||||
}
|
||||
|
||||
# _foamAddPath $MPI_ARCH_PATH/bin
|
||||
_foamAddLib $MPI_ARCH_PATH/lib
|
||||
# _foamAddPath "$MPI_ARCH_PATH"/bin
|
||||
_foamAddLib "$MPI_ARCH_PATH"/lib
|
||||
;;
|
||||
|
||||
|
||||
HPMPI)
|
||||
export FOAM_MPI=hpmpi
|
||||
export MPI_HOME=/opt/hpmpi
|
||||
export MPI_ARCH_PATH=$MPI_HOME
|
||||
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
|
||||
;;
|
||||
unset libDir
|
||||
case "$(uname -m)" in
|
||||
x86_64) libDir=lib/linux_amd64 ;;
|
||||
i686) libDir=lib/linux_ia32 ;;
|
||||
ia64) libDir=lib/linux_ia64 ;;
|
||||
esac
|
||||
|
||||
if [ -n "$libDir" ]
|
||||
then
|
||||
_foamAddPath "$MPI_ARCH_PATH"/bin
|
||||
_foamAddLib "$MPI_ARCH_PATH/$libDir"
|
||||
else
|
||||
echo "openfoam: ($(uname -m)) - unsupported HP-MPI processor type" 1>&2
|
||||
fi
|
||||
unset libDir
|
||||
;;
|
||||
|
||||
|
||||
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
|
||||
_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
|
||||
_foamAddPath "$MPI_ARCH_PATH"/bin
|
||||
_foamAddLib "$MPI_ARCH_PATH"/lib
|
||||
;;
|
||||
|
||||
|
||||
SGIMPI)
|
||||
# No trailing slash
|
||||
: "${MPI_ROOT:=/dummy}"
|
||||
MPI_ROOT="${MPI_ROOT%/}" # Remove trailing slash
|
||||
|
||||
export MPI_ARCH_PATH="${MPI_ROOT%/}" # Remove trailing slash
|
||||
export FOAM_MPI="${MPI_ARCH_PATH##*/}"
|
||||
export FOAM_MPI="${MPI_ROOT##*/}"
|
||||
export MPI_ARCH_PATH="$MPI_ROOT"
|
||||
|
||||
[ -d "$MPI_ARCH_PATH" ] || {
|
||||
echo "Warning in $WM_PROJECT_DIR/etc/config.sh/mpi:" 1>&2
|
||||
echo " Not a valid $WM_MPLIB installation directory." 1>&2
|
||||
echo " Please set MPI_ROOT properly (usually via the mpt module)" 1>&2
|
||||
echo " Currently using '$MPI_ARCH_PATH'" 1>&2
|
||||
echo "%{_foamMpiWarning}invalid $WM_MPLIB directory" 1>&2
|
||||
echo " => ${MPI_ARCH_PATH:-unset}" 1>&2
|
||||
echo "Please set MPI_ROOT correctly" 1>&2
|
||||
}
|
||||
|
||||
if [ -n "$FOAM_VERBOSE" ] && [ -n "$PS1" ]
|
||||
then
|
||||
echo "Using $WM_MPLIB" 1>&2
|
||||
echo " FOAM_MPI : $FOAM_MPI" 1>&2
|
||||
echo " MPI_ROOT : $MPI_ARCH_PATH" 1>&2
|
||||
fi
|
||||
|
||||
_foamAddPath $MPI_ARCH_PATH/bin
|
||||
_foamAddLib $MPI_ARCH_PATH/lib
|
||||
_foamAddPath "$MPI_ARCH_PATH"/bin
|
||||
_foamAddLib "$MPI_ARCH_PATH"/lib
|
||||
;;
|
||||
|
||||
|
||||
INTELMPI*)
|
||||
_foamEtc -config prefs.intelmpi ## Optional adjustments
|
||||
|
||||
if [ -n "$I_MPI_ROOT" ]
|
||||
then
|
||||
# I_MPI_ROOT: The Intel MPI Library installation directory
|
||||
# I_MPI_ROOT: Intel MPI Library installation directory
|
||||
MPI_ARCH_PATH="${I_MPI_ROOT}" # Remove trailing slash
|
||||
|
||||
MPI_ARCH_PATH="${I_MPI_ROOT%/}" # Remove trailing slash
|
||||
FOAM_MPI="${MPI_ARCH_PATH##*/}"
|
||||
|
||||
# If subdirectory is version number only, prefix with 'impi-'
|
||||
case "$FOAM_MPI" in ([0-9]*) FOAM_MPI="impi-$FOAM_MPI";; esac
|
||||
|
||||
if [ -n "$FOAM_VERBOSE" ] && [ -n "$PS1" ]
|
||||
then
|
||||
echo "Using $WM_MPLIB" 1>&2
|
||||
echo " FOAM_MPI : $FOAM_MPI" 1>&2
|
||||
echo " I_MPI_ROOT : $MPI_ARCH_PATH" 1>&2
|
||||
fi
|
||||
else
|
||||
elif [ -n "$MPI_ROOT" ]
|
||||
then
|
||||
# MPI_ROOT: General specification
|
||||
MPI_ARCH_PATH="${MPI_ROOT%/}" # Remove trailing slash
|
||||
FOAM_MPI="${MPI_ARCH_PATH##*/}"
|
||||
MPI_ARCH_PATH="${MPI_ROOT}"
|
||||
|
||||
# If subdirectory is version number only, prefix with 'impi-'
|
||||
case "$FOAM_MPI" in ([0-9]*) FOAM_MPI="impi-$FOAM_MPI";; esac
|
||||
|
||||
if [ -n "$FOAM_VERBOSE" ] && [ -n "$PS1" ]
|
||||
then
|
||||
echo "Using $WM_MPLIB" 1>&2
|
||||
echo " FOAM_MPI : $FOAM_MPI" 1>&2
|
||||
echo " MPI_ROOT : $MPI_ARCH_PATH" 1>&2
|
||||
fi
|
||||
elif [ -n "$MPI_ARCH_PATH" ]
|
||||
then
|
||||
# MPI_ARCH_PATH: Set I_MPI_ROOT accordingly
|
||||
export I_MPI_ROOT="$MPI_ARCH_PATH"
|
||||
fi
|
||||
|
||||
[ -d "$MPI_ARCH_PATH" ] || {
|
||||
echo "Warning in $WM_PROJECT_DIR/etc/config.sh/mpi:" 1>&2
|
||||
echo " Not a valid $WM_MPLIB installation directory." 1>&2
|
||||
echo " Please set I_MPI_ROOT or MPI_ROOT properly." 1>&2
|
||||
echo " Currently using '$MPI_ARCH_PATH'" 1>&2
|
||||
}
|
||||
|
||||
if [ -d "$MPI_ARCH_PATH" ]
|
||||
then
|
||||
# Remove trailing slash
|
||||
MPI_ARCH_PATH="${MPI_ARCH_PATH%/}"
|
||||
|
||||
# Subdir name is FOAM_MPI name
|
||||
FOAM_MPI="${MPI_ARCH_PATH##*/}"
|
||||
|
||||
# If subdir is version number only, prefix with 'impi-'
|
||||
case "$FOAM_MPI" in ([0-9]*) FOAM_MPI="impi-$FOAM_MPI";; esac
|
||||
else
|
||||
echo "${_foamMpiWarning}invalid $WM_MPLIB directory" 1>&2
|
||||
echo " => ${MPI_ARCH_PATH:-unset}" 1>&2
|
||||
echo "Please set I_MPI_ROOT or MPI_ROOT correctly." 1>&2
|
||||
fi
|
||||
|
||||
export FOAM_MPI MPI_ARCH_PATH
|
||||
|
||||
_foamAddPath "$MPI_ARCH_PATH/intel64/bin"
|
||||
_foamAddLib "$MPI_ARCH_PATH/intel64/lib"
|
||||
_foamAddPath "$MPI_ARCH_PATH"/intel64/bin
|
||||
_foamAddLib "$MPI_ARCH_PATH"/intel64/lib
|
||||
;;
|
||||
|
||||
|
||||
MSMPI)
|
||||
export FOAM_MPI=msmpi
|
||||
_foamEtc -config mpi-msmpi # <- Adjustments (optional)
|
||||
_foamEtc -config prefs.msmpi ## Optional adjustments
|
||||
|
||||
# Respect MPI_ARCH_PATH if set to a valid directory (eg, user adjustments)
|
||||
# MPI_ARCH_PATH (prefs) if a valid dir, or ThirdParty location
|
||||
if [ ! -d "$MPI_ARCH_PATH" ]
|
||||
then
|
||||
export MPI_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$FOAM_MPI
|
||||
export MPI_ARCH_PATH="$_foamMpiPrefixDir/$FOAM_MPI"
|
||||
fi
|
||||
|
||||
# _foamAddPath "$MPI_ARCH_PATH/bin"
|
||||
_foamAddLib "$MPI_ARCH_PATH/lib/x64"
|
||||
# _foamAddPath "$MPI_ARCH_PATH"/bin
|
||||
_foamAddLib "$MPI_ARCH_PATH"/lib/x64
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
|
||||
# Add (non-dummy) MPI implementation
|
||||
# - dummy MPI already in lib-path and has no external libraries
|
||||
if [ "$FOAM_MPI" != dummy ] && command -v _foamAddLib >/dev/null
|
||||
#------------------------------------------------------------------------------
|
||||
# Final
|
||||
|
||||
# Ensure MPI_ARCH_PATH is marked for export
|
||||
[ -n "$MPI_ARCH_PATH" ] && export MPI_ARCH_PATH
|
||||
|
||||
|
||||
# A real (non-dummy) MPI
|
||||
if [ "$FOAM_MPI" != dummy ]
|
||||
then
|
||||
if [ -n "$FOAM_EXT_LIBBIN" ] # External libraries (allowed to be unset)
|
||||
if [ -n "$FOAM_VERBOSE" ] && [ -n "$PS1" ]
|
||||
then
|
||||
_foamAddLib $FOAM_EXT_LIBBIN/$FOAM_MPI
|
||||
echo "Using mpi type : $WM_MPLIB" 1>&2
|
||||
echo " FOAM_MPI : $FOAM_MPI" 1>&2
|
||||
echo " prefix : ${MPI_ARCH_PATH:-unset}" 1>&2
|
||||
fi
|
||||
|
||||
# OpenFOAM library interface to (non-dummy) MPI
|
||||
if command -v _foamAddLib >/dev/null
|
||||
then
|
||||
if [ -n "$FOAM_EXT_LIBBIN" ]
|
||||
then
|
||||
# External libraries (can be unset)
|
||||
_foamAddLib "$FOAM_EXT_LIBBIN/$FOAM_MPI"
|
||||
fi
|
||||
_foamAddLib "$FOAM_LIBBIN/$FOAM_MPI"
|
||||
fi
|
||||
_foamAddLib $FOAM_LIBBIN/$FOAM_MPI
|
||||
fi
|
||||
|
||||
# Alternative to 'mpiBufferSize' controlDict entry
|
||||
#export MPI_BUFFER_SIZE=20000000
|
||||
|
||||
# Cleanup
|
||||
unset _foamMpiPrefixDir _foamMpiVersion _foamMpiWarning
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -19,12 +19,12 @@
|
||||
# Settings for OpenFOAM.
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
export WM_ARCH="$(uname -s)" # System name
|
||||
export WM_ARCH="$(uname -s)" # System name
|
||||
|
||||
archOption="${WM_ARCH_OPTION:-64}"
|
||||
unset WM_ARCH_OPTION # Compiling 32-bit on 64-bit system
|
||||
unset WM_COMPILER_ARCH # Host compiler type (when different than target)
|
||||
unset WM_COMPILER_LIB_ARCH # Additional ending for lib directories
|
||||
unset WM_COMPILER_LIB_ARCH # Ending for lib directories
|
||||
|
||||
|
||||
# Adjust according to system and architecture
|
||||
@ -33,51 +33,47 @@ Linux)
|
||||
WM_ARCH=linux
|
||||
|
||||
case "$(uname -m)" in
|
||||
i686)
|
||||
x86_64)
|
||||
if [ "$archOption" = 32 ]
|
||||
then
|
||||
export WM_ARCH_OPTION=32 # Propagate?
|
||||
export WM_COMPILER_ARCH=64 # 64-bit compiler, 32-bit target
|
||||
else
|
||||
WM_ARCH=linux64 # 64-bit compiler/target
|
||||
export WM_COMPILER_LIB_ARCH=64 # Use lib64
|
||||
fi
|
||||
;;
|
||||
|
||||
x86_64)
|
||||
case "$archOption" in
|
||||
32)
|
||||
export WM_ARCH_OPTION=32 # Need to propagate the value
|
||||
export WM_COMPILER_ARCH=64 # 64-bit compiler, 32-bit target
|
||||
;;
|
||||
64)
|
||||
WM_ARCH=linux64
|
||||
export WM_COMPILER_LIB_ARCH=64 # Target with lib64
|
||||
;;
|
||||
*)
|
||||
echo "Unknown WM_ARCH_OPTION '$archOption', should be 32|64" 1>&2
|
||||
;;
|
||||
esac
|
||||
aarch64)
|
||||
WM_ARCH=linuxARM64
|
||||
export WM_COMPILER_LIB_ARCH=64 # Use lib64
|
||||
;;
|
||||
|
||||
armv7l)
|
||||
WM_ARCH=linuxARM7
|
||||
export WM_COMPILER_LIB_ARCH=32 # Use lib32
|
||||
;;
|
||||
|
||||
ppc64)
|
||||
WM_ARCH=linuxPPC64
|
||||
export WM_COMPILER_LIB_ARCH=64 # Use lib64
|
||||
;;
|
||||
|
||||
ppc64le)
|
||||
WM_ARCH=linuxPPC64le
|
||||
export WM_COMPILER_LIB_ARCH=64 # Use lib64
|
||||
;;
|
||||
|
||||
i686)
|
||||
WM_ARCH=linux
|
||||
;;
|
||||
|
||||
ia64)
|
||||
WM_ARCH=linuxIA64
|
||||
;;
|
||||
|
||||
armv7l)
|
||||
WM_ARCH=linuxARM7
|
||||
export WM_COMPILER_LIB_ARCH=32
|
||||
;;
|
||||
|
||||
aarch64)
|
||||
WM_ARCH=linuxARM64
|
||||
export WM_COMPILER_LIB_ARCH=64
|
||||
;;
|
||||
|
||||
ppc64)
|
||||
WM_ARCH=linuxPPC64
|
||||
export WM_COMPILER_LIB_ARCH=64
|
||||
;;
|
||||
|
||||
ppc64le)
|
||||
WM_ARCH=linuxPPC64le
|
||||
export WM_COMPILER_LIB_ARCH=64
|
||||
;;
|
||||
|
||||
*)
|
||||
echo Unknown processor type "$(uname -m)" for Linux 1>&2
|
||||
echo "openfoam: ($(uname -m)) - unknown Linux processor type" 1>&2
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
@ -86,7 +82,7 @@ Linux)
|
||||
Darwin)
|
||||
WM_ARCH=darwin64
|
||||
[ "$WM_COMPILER" = Gcc ] && WM_COMPILER=Clang
|
||||
echo "Darwin support is clang/llvm only" 1>&2
|
||||
echo "openfoam: darwin support is clang/llvm only" 1>&2
|
||||
;;
|
||||
|
||||
# Presume x86_64, with mingw cross-compiled
|
||||
@ -94,7 +90,7 @@ MINGW* | MSYS*)
|
||||
WM_ARCH=win64
|
||||
[ "$WM_COMPILER" = Gcc ] && WM_COMPILER=Mingw
|
||||
export WM_COMPILER_LIB_ARCH=64 # Consistent with linux64Mingw
|
||||
echo "Windows support (mingw64) is runtime only" 1>&2
|
||||
echo "openfoam: windows support (mingw64) is runtime only" 1>&2
|
||||
;;
|
||||
|
||||
SunOS*)
|
||||
@ -106,7 +102,7 @@ SunOS*)
|
||||
/bin/cat << UNSUPPORTED 1>&2
|
||||
===============================================================================
|
||||
Operating system '$WM_ARCH' is unsupported by this OpenFOAM release.
|
||||
For further assistance, please contact www.OpenFOAM.com
|
||||
For further assistance, please contact www.openfoam.com
|
||||
===============================================================================
|
||||
UNSUPPORTED
|
||||
;;
|
||||
@ -210,7 +206,7 @@ export FOAM_RUN="$WM_PROJECT_USER_DIR/run"
|
||||
# ~~~~~~~~~~~~~~~~~
|
||||
|
||||
# Default to system compiler
|
||||
: ${WM_COMPILER_TYPE:=system}; export WM_COMPILER_TYPE
|
||||
: "${WM_COMPILER_TYPE:=system}"; export WM_COMPILER_TYPE
|
||||
|
||||
# Non-POSIX systems and cross-compiling
|
||||
case "$WM_COMPILER" in
|
||||
@ -232,10 +228,10 @@ archDir="$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER_ARCH"
|
||||
|
||||
case "$WM_COMPILER_TYPE-$WM_COMPILER" in
|
||||
ThirdParty-Gcc*)
|
||||
gccDir=$archDir/$gcc_version
|
||||
gmpDir=$archDir/${gmp_version:-gmp-system}
|
||||
mpfrDir=$archDir/${mpfr_version:-mpfr-system}
|
||||
mpcDir=$archDir/${mpc_version:-mpc-system}
|
||||
gccDir="$archDir/$gcc_version"
|
||||
gmpDir="$archDir/${gmp_version:-gmp-system}"
|
||||
mpfrDir="$archDir/${mpfr_version:-mpfr-system}"
|
||||
mpcDir="$archDir/${mpc_version:-mpc-system}"
|
||||
|
||||
# Check that the compiler directory can be found
|
||||
[ -d "$gccDir" ] || /bin/cat << GCC_NOT_FOUND 1>&2
|
||||
@ -249,21 +245,21 @@ Cannot find '$WM_COMPILER' compiler installation
|
||||
===============================================================================
|
||||
GCC_NOT_FOUND
|
||||
|
||||
_foamAddMan $gccDir/man
|
||||
_foamAddPath $gccDir/bin
|
||||
_foamAddMan "$gccDir"/man
|
||||
_foamAddPath "$gccDir"/bin
|
||||
|
||||
# Add ThirdParty compiler libraries to run-time environment
|
||||
_foamAddLib $gccDir/lib$WM_COMPILER_LIB_ARCH
|
||||
_foamAddLib "$gccDir/lib$WM_COMPILER_LIB_ARCH"
|
||||
|
||||
# Add gmp/mpfr/mpc libraries to run-time environment.
|
||||
# Require that they exist, automatically find lib64/ or lib/.
|
||||
_foamAddLibAuto $gmpDir && \
|
||||
export GMP_ARCH_PATH=$gmpDir # For non-system CGAL
|
||||
_foamAddLibAuto "$gmpDir" && \
|
||||
export GMP_ARCH_PATH="$gmpDir" # For non-system CGAL
|
||||
|
||||
_foamAddLibAuto $mpfrDir && \
|
||||
export MPFR_ARCH_PATH=$mpfrDir # For non-system CGAL
|
||||
_foamAddLibAuto "$mpfrDir" && \
|
||||
export MPFR_ARCH_PATH="$mpfrDir" # For non-system CGAL
|
||||
|
||||
_foamAddLibAuto $mpcDir
|
||||
_foamAddLibAuto "$mpcDir"
|
||||
|
||||
if [ -n "$FOAM_VERBOSE" ] && [ -n "$PS1" ]
|
||||
then
|
||||
@ -273,7 +269,7 @@ GCC_NOT_FOUND
|
||||
;;
|
||||
|
||||
ThirdParty-Clang*)
|
||||
clangDir=$archDir/$clang_version
|
||||
clangDir="$archDir/$clang_version"
|
||||
|
||||
# Check that the compiler directory can be found
|
||||
[ -d "$clangDir" ] || /bin/cat << CLANG_NOT_FOUND 1>&2
|
||||
@ -287,9 +283,9 @@ Cannot find '$WM_COMPILER' compiler installation
|
||||
===============================================================================
|
||||
CLANG_NOT_FOUND
|
||||
|
||||
_foamAddMan $clangDir/share/man
|
||||
_foamAddPath $clangDir/bin
|
||||
_foamAddLib $clangDir/lib # For things like libomp (openmp) etc
|
||||
_foamAddMan "$clangDir"/share/man
|
||||
_foamAddPath "$clangDir"/bin
|
||||
_foamAddLib "$clangDir"/lib # For things like libomp (openmp) etc
|
||||
|
||||
if [ -n "$FOAM_VERBOSE" ] && [ -n "$PS1" ]
|
||||
then
|
||||
|
||||
@ -91,7 +91,8 @@ setenv WM_COMPILE_OPTION Opt
|
||||
# [WM_MPLIB] - MPI implementation:
|
||||
# = SYSTEMOPENMPI | OPENMPI | SYSTEMMPI | MPI | MPICH | MPICH-GM |
|
||||
# HPMPI | CRAY-MPICH | FJMPI | QSMPI | SGIMPI | INTELMPI | USERMPI
|
||||
# Also possible to use INTELMPI-xyz etc and define your own wmake rule
|
||||
# Specify SYSTEMOPENMPI1, SYSTEMOPENMPI2 for internal tracking (if desired)
|
||||
# Can also use INTELMPI-xyz etc and define your own wmake rule
|
||||
setenv WM_MPLIB SYSTEMOPENMPI
|
||||
|
||||
|
||||
|
||||
@ -1,10 +1,4 @@
|
||||
sinclude $(GENERAL_RULES)/mplib$(WM_MPLIB)
|
||||
sinclude $(DEFAULT_RULES)/mplib$(WM_MPLIB)
|
||||
|
||||
/* Default is PROJECT LIB/mpi target */
|
||||
ifeq (,$(FOAM_MPI_LIBBIN))
|
||||
FOAM_MPI_LIBBIN := $(FOAM_LIBBIN)/$(FOAM_MPI)
|
||||
endif
|
||||
include $(GENERAL_RULES)/mpi-rules
|
||||
|
||||
EXE_INC = $(PFLAGS) $(PINC) $(c++LESSWARN)
|
||||
|
||||
|
||||
@ -1,14 +1,8 @@
|
||||
/*
|
||||
* NB: mplib PINC must appear after PTSCOTCH_INC_DIR to ensure we
|
||||
* do not accidentally get a ptscotch header from the MPI distribution.
|
||||
* NB: PINC must appear after PTSCOTCH_INC_DIR to ensure we do not
|
||||
* accidentally get a ptscotch header from the MPI distribution
|
||||
*/
|
||||
sinclude $(GENERAL_RULES)/mplib$(WM_MPLIB)
|
||||
sinclude $(DEFAULT_RULES)/mplib$(WM_MPLIB)
|
||||
|
||||
/* Default is PROJECT LIB/mpi target */
|
||||
ifeq (,$(strip $(FOAM_MPI_LIBBIN)))
|
||||
FOAM_MPI_LIBBIN := $(FOAM_LIBBIN)/$(FOAM_MPI)
|
||||
endif
|
||||
include $(GENERAL_RULES)/mpi-rules
|
||||
|
||||
EXE_INC = \
|
||||
-I$(PTSCOTCH_INC_DIR) \
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
sinclude $(GENERAL_RULES)/mplib$(WM_MPLIB)
|
||||
sinclude $(DEFAULT_RULES)/mplib$(WM_MPLIB)
|
||||
include $(GENERAL_RULES)/mpi-rules
|
||||
|
||||
EXE_INC = \
|
||||
-I$(ZOLTAN_INC_DIR) \
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
#-------------------------------*- makefile -*---------------------------------
|
||||
#------------------------------------------------------------------------------
|
||||
# ADIOS2 includes/libraries
|
||||
|
||||
sinclude $(GENERAL_RULES)/mplib$(WM_MPLIB)
|
||||
sinclude $(DEFAULT_RULES)/mplib$(WM_MPLIB)
|
||||
include $(GENERAL_RULES)/mpi-rules
|
||||
|
||||
# May need to strip off rpath ...
|
||||
|
||||
|
||||
8
wmake/rules/General/mpi-mpicc-openmpi
Normal file
8
wmake/rules/General/mpi-mpicc-openmpi
Normal file
@ -0,0 +1,8 @@
|
||||
#------------------------------------------------------------------------------
|
||||
# Use openmpi mpicc to obtain settings - mpicc must be available
|
||||
|
||||
PFLAGS = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX
|
||||
PINC = $(shell mpicc --showme:compile)
|
||||
PLIBS = $(shell mpicc --showme:link)
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
32
wmake/rules/General/mpi-rules
Normal file
32
wmake/rules/General/mpi-rules
Normal file
@ -0,0 +1,32 @@
|
||||
#------------------------------------------------------------------------------
|
||||
# MPI rules
|
||||
|
||||
PFLAGS =
|
||||
PINC =
|
||||
PLIBS =
|
||||
|
||||
# The stem name. Eg, SYSTEMOPENMPI4 -> SYSTEMOPENMPI
|
||||
MPLIB_STEMNAME = $(shell echo "$(WM_MPLIB)" | sed -e 's/[-.0-9]*$$//')
|
||||
|
||||
ifneq ("$(MPLIB_STEMNAME)","$(WM_MPLIB)")
|
||||
sinclude $(GENERAL_RULES)/mplib$(MPLIB_STEMNAME)
|
||||
sinclude $(DEFAULT_RULES)/mplib$(MPLIB_STEMNAME)
|
||||
ifneq ("$(RULES)","$(DEFAULT_RULES)")
|
||||
sinclude $(RULES)/mplib$(MPLIB_STEMNAME)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ("","$(WM_MPLIB)")
|
||||
sinclude $(GENERAL_RULES)/mplib$(WM_MPLIB)
|
||||
sinclude $(DEFAULT_RULES)/mplib$(WM_MPLIB)
|
||||
ifneq ("$(RULES)","$(DEFAULT_RULES)")
|
||||
sinclude $(RULES)/mplib$(WM_MPLIB)
|
||||
endif
|
||||
endif
|
||||
|
||||
# Default target MPI libdir is PROJECT lib/<mpi-name>
|
||||
ifeq (,$(FOAM_MPI_LIBBIN))
|
||||
FOAM_MPI_LIBBIN := $(FOAM_LIBBIN)/$(FOAM_MPI)
|
||||
endif
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
@ -1 +0,0 @@
|
||||
no-mpi
|
||||
8
wmake/rules/General/mplib-ia32-HPMPI
Normal file
8
wmake/rules/General/mplib-ia32-HPMPI
Normal file
@ -0,0 +1,8 @@
|
||||
#------------------------------------------------------------------------------
|
||||
# HPMPI rules (i386)
|
||||
|
||||
PFLAGS =
|
||||
PINC = -isystem $(MPI_ARCH_PATH)/include -D_MPICC_H
|
||||
PLIBS = -L$(MPI_ARCH_PATH)/lib/linux_ia32 -lmpi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
8
wmake/rules/General/mplib-ia64-HPMPI
Normal file
8
wmake/rules/General/mplib-ia64-HPMPI
Normal file
@ -0,0 +1,8 @@
|
||||
#------------------------------------------------------------------------------
|
||||
# HPMPI rules (ia64)
|
||||
|
||||
PFLAGS =
|
||||
PINC = -isystem $(MPI_ARCH_PATH)/include -D_MPICC_H
|
||||
PLIBS = -L$(MPI_ARCH_PATH)/lib/linux_ia64 -lmpi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
8
wmake/rules/General/mplib-x86_64-HPMPI
Normal file
8
wmake/rules/General/mplib-x86_64-HPMPI
Normal file
@ -0,0 +1,8 @@
|
||||
#------------------------------------------------------------------------------
|
||||
# HPMPI rules (x86_64)
|
||||
|
||||
PFLAGS =
|
||||
PINC = -isystem $(MPI_ARCH_PATH)/include -D_MPICC_H
|
||||
PLIBS = -L$(MPI_ARCH_PATH)/lib/linux_amd64 -lmpi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
8
wmake/rules/General/mplib-x86_64-INTELMPI
Normal file
8
wmake/rules/General/mplib-x86_64-INTELMPI
Normal file
@ -0,0 +1,8 @@
|
||||
#------------------------------------------------------------------------------
|
||||
# INTELMPI rules (x86_64)
|
||||
|
||||
PFLAGS = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX
|
||||
PINC = -isystem $(MPI_ARCH_PATH)/intel64/include
|
||||
PLIBS = -L$(MPI_ARCH_PATH)/intel64/lib -lmpi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
@ -1 +1,6 @@
|
||||
#------------------------------------------------------------------------------
|
||||
# Cray MPICH is MPICH
|
||||
|
||||
include $(GENERAL_RULES)/mplibMPICH
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -1,3 +1,7 @@
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
PFLAGS = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX
|
||||
PINC = -isystem $(MPI_ARCH_PATH)/include
|
||||
PLIBS = -L$(MPI_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) -L$(MPI_ARCH_PATH)/lib -lmpi -lrt
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -1,3 +1,7 @@
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
PFLAGS =
|
||||
PINC = -isystem $(MPI_ARCH_PATH)/include
|
||||
PLIBS = -L$(MPI_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) -L$(MPI_ARCH_PATH)/lib -lmpich -L$(GM_LIB_PATH) -lgm
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -1,3 +1,7 @@
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
PFLAGS = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX
|
||||
PINC = -isystem $(MPI_ARCH_PATH)/include
|
||||
PLIBS = -L$(MPI_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) -L$(MPI_ARCH_PATH)/lib -lmpi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -1,3 +1,7 @@
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
PFLAGS = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX
|
||||
PINC = -isystem $(MPI_ARCH_PATH)/include
|
||||
PLIBS = -L$(MPI_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) -L$(MPI_ARCH_PATH)/lib -lmpi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -1,3 +1,7 @@
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
PFLAGS =
|
||||
PINC = -isystem $(MPI_ARCH_PATH)/include
|
||||
PLIBS = -L$(MPI_ARCH_PATH)/lib -lmpi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -1,3 +1,7 @@
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
PFLAGS = -DSGIMPI -DMPI_NO_CPPBIND
|
||||
PINC = -isystem $(MPI_ARCH_PATH)/include
|
||||
PLIBS = -L$(MPI_ARCH_PATH)/lib -lmpi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -1,5 +1,8 @@
|
||||
# Use the system installed mpi - depends on specific environment variables
|
||||
#------------------------------------------------------------------------------
|
||||
# System installed mpi - depends on specific environment variables
|
||||
|
||||
PFLAGS = $(MPI_ARCH_FLAGS)
|
||||
PINC = $(MPI_ARCH_INC)
|
||||
PLIBS = $(MPI_ARCH_LIBS)
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
# Use the system installed openmpi - mpicc must be installed
|
||||
#------------------------------------------------------------------------------
|
||||
# Use openmpi mpicc to obtain settings - mpicc must be available
|
||||
|
||||
PFLAGS = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX
|
||||
PINC = $(shell mpicc --showme:compile)
|
||||
PLIBS = $(shell mpicc --showme:link)
|
||||
include $(GENERAL_RULES)/mpi-mpicc-openmpi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
#------------------------------------------------------------------------------
|
||||
# Empty flags for not compiling/linking MPI
|
||||
|
||||
PFLAGS =
|
||||
PINC =
|
||||
PLIBS =
|
||||
PFLAGS =
|
||||
PINC =
|
||||
PLIBS =
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -1,3 +1 @@
|
||||
PFLAGS =
|
||||
PINC = -isystem $(MPI_ARCH_PATH)/include -D_MPICC_H
|
||||
PLIBS = -L$(MPI_ARCH_PATH)/lib/linux_amd64 -lmpi
|
||||
include $(GENERAL_RULES)/mplib-x86_64-HPMPI
|
||||
|
||||
@ -1,3 +1 @@
|
||||
PFLAGS = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX
|
||||
PINC = -isystem $(MPI_ARCH_PATH)/intel64/include
|
||||
PLIBS = -L$(MPI_ARCH_PATH)/intel64/lib -lmpi
|
||||
include $(GENERAL_RULES)/mplib-x86_64-INTELMPI
|
||||
|
||||
@ -1,3 +1 @@
|
||||
PFLAGS =
|
||||
PINC = -isystem $(MPI_ARCH_PATH)/include -D_MPICC_H
|
||||
PLIBS = -L$(MPI_ARCH_PATH)/lib/linux_amd64 -lmpi
|
||||
include $(GENERAL_RULES)/mplib-x86_64-HPMPI
|
||||
|
||||
@ -1,3 +1 @@
|
||||
PFLAGS = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX
|
||||
PINC = -isystem $(MPI_ARCH_PATH)/intel64/include
|
||||
PLIBS = -L$(MPI_ARCH_PATH)/intel64/lib -lmpi
|
||||
include $(GENERAL_RULES)/mplib-x86_64-INTELMPI
|
||||
|
||||
@ -1,3 +1 @@
|
||||
PFLAGS = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX
|
||||
PINC = -isystem $(MPI_ARCH_PATH)/intel64/include
|
||||
PLIBS = -L$(MPI_ARCH_PATH)/intel64/lib -lmpi
|
||||
include $(GENERAL_RULES)/mplib-x86_64-INTELMPI
|
||||
|
||||
@ -1,3 +1 @@
|
||||
PFLAGS =
|
||||
PINC = -isystem $(MPI_ARCH_PATH)/include -D_MPICC_H
|
||||
PLIBS = -L$(MPI_ARCH_PATH)/lib/linux_amd64 -lmpi
|
||||
include $(GENERAL_RULES)/mplib-x86_64-HPMPI
|
||||
|
||||
@ -1,3 +1 @@
|
||||
PFLAGS = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX
|
||||
PINC = -isystem $(MPI_ARCH_PATH)/intel64/include
|
||||
PLIBS = -L$(MPI_ARCH_PATH)/intel64/lib -lmpi
|
||||
include $(GENERAL_RULES)/mplib-x86_64-INTELMPI
|
||||
|
||||
@ -1,3 +1 @@
|
||||
PFLAGS =
|
||||
PINC = -isystem $(MPI_ARCH_PATH)/include -D_MPICC_H
|
||||
PLIBS = -L$(MPI_ARCH_PATH)/lib/linux_amd64 -lmpi
|
||||
include $(GENERAL_RULES)/mplib-x86_64-HPMPI
|
||||
|
||||
@ -1,3 +1 @@
|
||||
PFLAGS = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX
|
||||
PINC = -isystem $(MPI_ARCH_PATH)/intel64/include
|
||||
PLIBS = -L$(MPI_ARCH_PATH)/intel64/lib -lmpi
|
||||
include $(GENERAL_RULES)/mplib-x86_64-INTELMPI
|
||||
|
||||
@ -1,3 +1 @@
|
||||
PFLAGS =
|
||||
PINC = -isystem $(MPI_ARCH_PATH)/include -D_MPICC_H
|
||||
PLIBS = -L$(MPI_ARCH_PATH)/lib/linux_ia32 -lmpi
|
||||
include $(GENERAL_RULES)/mplib-ia32-HPMPI
|
||||
|
||||
@ -1,3 +1 @@
|
||||
PFLAGS =
|
||||
PINC = -isystem $(MPI_ARCH_PATH)/include -D_MPICC_H
|
||||
PLIBS = -L$(MPI_ARCH_PATH)/lib/linux_ia32 -lmpi
|
||||
include $(GENERAL_RULES)/mplib-ia32-HPMPI
|
||||
|
||||
@ -1,3 +1 @@
|
||||
PFLAGS =
|
||||
PINC = -isystem $(MPI_ARCH_PATH)/include -D_MPICC_H
|
||||
PLIBS = -L$(MPI_ARCH_PATH)/lib/linux_ia64 -lmpi
|
||||
include $(GENERAL_RULES)/mplib-ia64-HPMPI
|
||||
|
||||
@ -1,3 +1 @@
|
||||
PFLAGS =
|
||||
PINC = -isystem $(MPI_ARCH_PATH)/include -D_MPICC_H
|
||||
PLIBS = -L$(MPI_ARCH_PATH)/lib/linux_ia64 -lmpi
|
||||
include $(GENERAL_RULES)/mplib-ia64-HPMPI
|
||||
|
||||
@ -1,3 +0,0 @@
|
||||
PFLAGS = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX
|
||||
PINC = -isystem $(MPI_ARCH_PATH)/intel64/include
|
||||
PLIBS = -L$(MPI_ARCH_PATH)/intel64/lib -lmpi
|
||||
@ -1,3 +1 @@
|
||||
PFLAGS =
|
||||
PINC = -isystem $(MPI_ARCH_PATH)/include -D_MPICC_H
|
||||
PLIBS = -L$(MPI_ARCH_PATH)/lib/linux_ia32 -lmpi
|
||||
include $(GENERAL_RULES)/mplib-ia32-HPMPI
|
||||
|
||||
Reference in New Issue
Block a user