-
Notifications
You must be signed in to change notification settings - Fork 0
/
gnu.cfg
160 lines (134 loc) · 4.62 KB
/
gnu.cfg
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
######################################################################
# Example configuration file for the GNU Compilers
#
# Defines: "model" => "mpi", "acc", "omp", "tgt", "tgtgpu" default "mpi"
# "label" => ext base label, default "nv"
#
# MPI-only Command:
# runhpc -c Example_gnu --reportable -T base --define model=mpi --ranks=40 small
#
# OpenACC Command:
# runhpc -c Example_gnu --reportable -T base --define model=acc --ranks=4 small
#
# OpenMP Command:
# runhpc -c Example_gnu --reportable -T base --define model=omp --ranks=1 --threads=40 small
#
# OpenMP Target Offload to Host Command:
# runhpc -c Example_gnu --reportable -T base --define model=tgt --ranks=1 --threads=40 small
#
# OpenMP Target Offload to NVIDIA GPU Command:
# runhpc -c Example_gnu --reportable -T base --define model=tgtnv --ranks=4 small
#
#######################################################################
%ifndef %{label} # IF label is not set use gnu
% define label gnu
%endif
%ifndef %{model} # IF model is not set use mpi
% define model mpi
%endif
teeout = yes
makeflags=-j 40
# Tester Information
license_num = 7387
test_sponsor = University of Toronto
tester = University of Toronto
######################################################
# SUT Section
######################################################
include: niagara.inc
#[Software]
sw_compiler000 = C/C++/Fortran: Version 11.3.0 of
sw_compiler001 = GNU Compilers
sw_mpi_library = OpenMPI Version 4.1.4
sw_mpi_other = None
sw_other = None
#[General notes]
notes_000 = Environment Settings:
notes_005 = Any extra settings
#[Submit Notes]
notes_submit_000 = mpirun -np $ranks $command
#######################################################################
# End of SUT section
######################################################################
######################################################################
# The header section of the config file. Must appear
# before any instances of "section markers" (see below)
#
# ext = how the binaries you generated will be identified
# tune = specify "base" or "peak" or "all"
label = %{label}_%{model}
tune = base
output_format = text
use_submit_for_speed = 1
# Compiler Settings
default:
CC = mpicc
CXX = mpicxx
FC = mpif90
# Compiler Version Flags
CC_VERSION_OPTION = --version
CXX_VERSION_OPTION = --version
FC_VERSION_OPTION = --version
# MPI options and binding environment, dependent upon Model being run
# Adjust to match your system
# OpenMP (CPU) Settings
%if %{model} eq 'omp'
preENV_OMP_PROC_BIND=true
preENV_OMP_PLACES=0,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
%endif
#OpenMP Targeting Host Settings
%if %{model} eq 'tgt'
preENV_OMP_PROC_BIND=true
preENV_OMP_PLACES=0,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
%endif
MPIRUN_OPTS = --bind-to none -v
submit = mpirun ${MPIRUN_OPTS} -np $ranks $command
#######################################################################
# Optimization
# Note that SPEC baseline rules require that all uses of a given compiler
# use the same flags in the same order. See the SPEChpc Run Rules
# for more details
# http://www.spec.org/hpc2021/Docs/runrules.html
#
# OPTIMIZE = flags applicable to all compilers
# FOPTIMIZE = flags appliable to the Fortran compiler
# COPTIMIZE = flags appliable to the C compiler
# CXXOPTIMIZE = flags appliable to the C++ compiler
#
# See your compiler manual for information on the flags available
# for your compiler
# Compiler flags applied to all models
default=base=default:
COPTIMIZE = -Ofast -march=native -lm # use -mcpu=native for ARM
CXXOPTIMIZE = -Ofast -march=native -std=c++14
FOPTIMIZE = -Ofast -march=native -fno-stack-protector
FPORTABILITY = -ffree-line-length-none
%if %{model} eq 'mpi'
pmodel=MPI
%endif
# OpenACC flags
%if %{model} eq 'acc'
pmodel=ACC
OPTIMIZE += -fopenacc -foffload=-lm
%endif
# OpenMP (CPU) flags
%if %{model} eq 'omp'
pmodel=OMP
OPTIMIZE += -fopenmp
%endif
# OpenMP Targeting host flags
%if %{model} eq 'tgt'
pmodel=TGT
OPTIMIZE += -fopenmp
%endif
# OpenMP Targeting Nvidia GPU flags
%if %{model} eq 'tgtnv'
pmodel=TGT
OPTIMIZE += -fopenmp -fopenmp-targets=nvptx64-nvidia-cuda
%endif
# No peak flags set, so make peak use the same flags as base
default=peak=default:
basepeak=1
#######################################################################
# Portability
#######################################################################