56 lines
1.8 KiB
PHP
56 lines
1.8 KiB
PHP
## Legacy GNU/OpenMPI toolchain configuration
|
|
|
|
## OpenMPI wrappers are installed but may not be on PATH.
|
|
OMPI_BIN ?= /usr/lib64/openmpi/bin
|
|
|
|
## Wrapper compilers
|
|
f90 = $(OMPI_BIN)/mpifort
|
|
f77 = $(OMPI_BIN)/mpifort
|
|
CXX = $(OMPI_BIN)/mpicxx
|
|
CC = $(OMPI_BIN)/mpicc
|
|
CLINKER = $(OMPI_BIN)/mpicxx
|
|
|
|
## Extra include flags are not needed when using the OpenMPI wrappers.
|
|
filein =
|
|
|
|
## BLAS/LAPACK backend:
|
|
## OpenBLAS on this system provides BLAS, CBLAS and LAPACK symbols.
|
|
BLAS_LAPACK_LIB ?= /lib64/libopenblaso.so.0
|
|
LDLIBS = $(BLAS_LAPACK_LIB) -lgfortran -lpthread -lm -ldl
|
|
|
|
## PGO build mode switch
|
|
## off : default legacy GNU build without PGO
|
|
## instrument : accepted for compatibility, currently same as off
|
|
PGO_MODE ?= off
|
|
|
|
## Interp_Points load balance profiling mode
|
|
## off : (default) no load balance instrumentation
|
|
## profile : Pass 1 — instrument Interp_Points to collect timing profile
|
|
## optimize : Pass 2 — read profile and apply block rebalancing
|
|
INTERP_LB_MODE ?= off
|
|
|
|
ifeq ($(INTERP_LB_MODE),profile)
|
|
INTERP_LB_FLAGS = -DINTERP_LB_PROFILE
|
|
else ifeq ($(INTERP_LB_MODE),optimize)
|
|
INTERP_LB_FLAGS = -DINTERP_LB_OPTIMIZE
|
|
else
|
|
INTERP_LB_FLAGS =
|
|
endif
|
|
|
|
## Kernel implementation switch
|
|
## 1 (default) : use C++ rewrite of bssn_rhs and helper kernels (faster)
|
|
## 0 : fall back to original Fortran kernels
|
|
USE_CXX_KERNELS ?= 1
|
|
|
|
## RK4 kernel implementation switch
|
|
## 1 (default) : use C/C++ rewrite of rungekutta4_rout
|
|
## 0 : use original Fortran rungekutta4_rout.o
|
|
USE_CXX_RK4 ?= 1
|
|
|
|
## OpenMP is only used for TwoPunctures on the legacy toolchain.
|
|
TP_OPENMP_FLAGS ?= -fopenmp
|
|
|
|
Cu = nvcc
|
|
CUDA_LIB_PATH = -L/usr/lib/cuda/lib64 -I/usr/include -I/usr/lib/cuda/include
|
|
CUDA_APP_FLAGS = -c -g -O3 --ptxas-options=-v -Dfortran3 -Dnewc
|