mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
CONFIG: rationalize mpi config tuning (#1910)
- prefix FOAM_MPI and library directories with 'sys-' for system
versions for uniform identication.
WM_MPLIB | libdir (FOAM_MPI) | old naming |
SYSTEMMPI | sys-mpi | mpi |
SYSTEMOPENMPI | sys-openmpi | openmpi-system |
- prefix preferences with 'prefs.' to make them more easily
identifiable, and update bin/tools/create-mpi-config accordingly
Old name: config.{csh,sh}/openmpi
New name: config.{csh,sh}/prefs.openmpi
- additional mpi preferences now available:
* prefs.intelmpi
* prefs.mpich
...
CONFIG: added hook for EASYBUILDMPI (eb-mpi), somewhat like USERMPI
- EasyBuild uses mpicc when compiling, so no explicit wmake rules are
used
ENH: support different major versions for system openmpi
- for example, with
WM_MPLIB=SYSTEMOPENMPI2
defines FOAM_MPI=sys-openmpi2 and thus creates lib/sys-openmpi2
ENH: centralize handling of mpi as 'mpi-rules'
Before:
sinclude $(GENERAL_RULES)/mplib$(WM_MPLIB)
sinclude $(DEFAULT_RULES)/mplib$(WM_MPLIB)
ifeq (,$(FOAM_MPI_LIBBIN))
FOAM_MPI_LIBBIN := $(FOAM_LIBBIN)/$(FOAM_MPI)
endif
After:
include $(GENERAL_RULES)/mpi-rules
- also allows variants such as SYSTEMOPENMPI2 to be handled separately
This commit is contained in:
@ -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