forked from shedsaw/exciting-plus-rgvw-mod
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmake.inc.summit.tau-ibm.cpu
110 lines (86 loc) · 4.01 KB
/
make.inc.summit.tau-ibm.cpu
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#==============================================================================
# Exciting-Plus make.inc file for Summit (OLCF) with IBM XL compilers and TAU
# Last edited: May 6, 2020 (WYP)
#==============================================================================
MAKE = make
COMPILER = tau-ibm
# Compiler switch to turn on the preprocessor
CPP_OPTS = -qpreprocess
# Add your custom preprocessor defines here
#CPP_OPTS +=
# Common compile time options
F90_OPTS = $(CPP_OPTS)
# Add your common compile time options here
F90_OPTS += -qsuppress=1501-510 # Remove "compilation successful messages"
#==============================================================================
# MPI
#==============================================================================
F90 = ${TAU_DIR}/bin/tau_f90.sh -optMpi
CC = ${TAU_DIR}/bin/tau_cc.sh -optMpi
CXX = ${TAU_DIR}/bin/tau_cxx.sh -optMpi
MPI_CPP_OPTS = -WF,-qfpp,-D_MPI_
CPP_OPTS += $(MPI_CPP_OPTS)
# Note: MPIMOD_PATH still needed after Mar 10 2020 stack upgrade
# TODO: resolve OLCF ticket #419691
# This is where mpi.mod resides
MPIMOD_PATH = ${OLCF_SPECTRUM_MPI_ROOT}/lib/XL
F90_OPTS += -I$(MPIMOD_PATH)
#==============================================================================
# OpenMP
#==============================================================================
# These are passed at compile time and link time
# Don't forget to `export OMP_STACKSIZE=2G` at runtime
OMP_OPTS = -qsmp=omp:auto
F90_OPTS += $(OMP_OPTS)
#==============================================================================
# Compiler and linker options
#==============================================================================
# Profiling with '-O2' plus automatic ESSL, automatic OpenMP, loop unrolling
# Make sure to enable ESSL (see BLAS and LAPACK section)
# Note: with XL 16.1.1-5, '-qipa' crashes the link phase
F90_OPTS += -pg -g2 -O2 -qarch=pwr9 -qtune=pwr9:smt4 -qunroll -qessl
F90_LINK_OPTS = $(F90_OPTS) -qpic
EXE_SFX = prof
# Profiling, fully optimized
# Note: With XL 16.1.1-3, '-Ofast' gives weird results
# (30 extra electrons in the ground state for La2CuO4)
# TODO: test current and newer versions
#F90_OPTS += -pg -g2 -Ofast -qipa -qarch=pwr9 -qtune=pwr9:smt4 -qunroll -qessl
#F90_LINK_OPTS = $(F90_OPTS) -qpic
#EXE_SFX = fastprof
#==============================================================================
# BLAS and LAPACK
#==============================================================================
# Use IBM ESSL
# Make sure to `module load essl`
ESSL_PATH = ${OLCF_ESSL_ROOT}/lib64
LAPACK_LIB = -L$(ESSL_PATH) -lessl
#==============================================================================
# HDF5
#==============================================================================
# To disable, comment these three lines
# Make sure to `module load hdf5`
HDF5_INC = -I${OLCF_HDF5_ROOT}/include
HDF5_LIB = -L${OLCF_HDF5_ROOT}/lib -lhdf5_fortran -lhdf5_cpp -lhdf5_hl -lhdf5 -ldl
HDF5_CPP_OPTS = -WF,-qfpp,-D_HDF5_
CPP_OPTS += $(HDF5_CPP_OPTS)
F90_OPTS += $(HDF5_INC)
#==============================================================================
# Other libraries (retained here for historical purposes)
#==============================================================================
# ==- compile with libXC support ===
#CPP_OPTS := $(CPP_OPTS) -D_LIBXC_
#XC_LIB =
# ==- compile with NFFT support ===
#CPP_OPTS := $(CPP_OPTS) -D_NFFT_
#NFFT_INC = -I$(HOME)/local/include
#NFFT_LIB = $(HOME)/local/lib/libnfft3.a $(HOME)/local/lib/libfftw3.a
# === compile with Madness API ===
#CPP_OPTS := $(CPP_OPTS) -D_MAD_
#MADNESS_INC = -I$(HOME)/local/include
#MADNESS_LIB = -L$(HOME)/local/lib/ -lMADmra -lMADlinalg -lMADtensor -lMADmisc -lMADmuparser -lMADtinyxml -lMADworld -lmpichcxx -lstdc++
#==============================================================================
# List all libraries to link
#==============================================================================
# Note: TAU variables are defined in the TAU makefile
LIBS = $(LAPACK_LIB) $(HDF5_LIB) $(TAU_MPI_FLIBS) $(TAU_LIBS) $(TAU_CXXLIBS)