Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CI: Harden executables #290

Merged
merged 14 commits into from
Jun 9, 2024
Merged
6 changes: 3 additions & 3 deletions CarpetX/src/driver.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -1405,10 +1405,10 @@ GHExt::PatchData::LevelData::GroupData::GroupData(
robin_values.resize(numvars, 0);

amrex::BCRec bcrec;
for (int d = 0; d < dim; ++d) {
for (int f = 0; f < dim; ++f) {
for (int f = 0; f < 2; ++f) {
for (int d = 0; d < dim; ++d) {
const auto bc =
ghext->patchdata.at(patch).symmetries[d][f] == symmetry_t::periodic
ghext->patchdata.at(patch).symmetries[f][d] == symmetry_t::periodic
? amrex::BCType::int_dir
: amrex::BCType::ext_dir;
if (f == 0)
Expand Down
24 changes: 13 additions & 11 deletions TestODESolvers2/schedule.ccl
Original file line number Diff line number Diff line change
Expand Up @@ -7,26 +7,28 @@ STORAGE: state rhs error order
SCHEDULE TestODESolvers2_Initial AT initial
{
LANG: C
WRITES: state(everywhere)
WRITES: state(interior)
SYNC: state
} "Initialize state vector"

SCHEDULE TestODESolvers2_RHS IN ODESolvers_RHS
{
LANG: C
READS: state(everywhere)
WRITES: rhs(everywhere)
READS: state(interior)
WRITES: rhs(interior)
} "RHS function"

# SCHEDULE TestODESolvers2_Boundary AT poststep
# {
# LANG: C
# OPTIONS: global
# SYNC: state
# } "Apply boundary conditions to state vector"
SCHEDULE TestODESolvers2_Boundary IN ODESolvers_PostStep
{
LANG: C
OPTIONS: global
SYNC: state
} "Apply boundary conditions to state vector"

SCHEDULE TestODESolvers2_Error AT analysis
{
LANG: C
READS: state(everywhere)
WRITES: error(everywhere) order(everywhere)
READS: state(interior)
WRITES: error(interior) order(interior)
SYNC: error order
} "Calculate error in state vector"
18 changes: 9 additions & 9 deletions TestODESolvers2/src/odes.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -38,20 +38,20 @@ extern "C" void TestODESolvers2_Initial(CCTK_ARGUMENTS) {
const Loop::GF3D<CCTK_REAL, 1, 1, 1> exp1_(cctkGH, exp1);
const Loop::GF3D<CCTK_REAL, 1, 1, 1> exp2_(cctkGH, exp2);

Loop::loop_all<1, 1, 1>(cctkGH, [&](const Loop::PointDesc &p) {
Loop::loop_int<1, 1, 1>(cctkGH, [&](const Loop::PointDesc &p) {
time_(p.I) = cctk_time;
poly_(p.I) = pow(1 + cctk_time, porder);
exp1_(p.I) = exp(cctk_time);
exp2_(p.I) = exp(cctk_time / 2);
});
}

// extern "C" void TestODESolvers2_Boundary(CCTK_ARGUMENTS) {
// DECLARE_CCTK_ARGUMENTS_TestODESolvers2_Boundary;
// DECLARE_CCTK_PARAMETERS;
//
// // do nothing
// }
extern "C" void TestODESolvers2_Boundary(CCTK_ARGUMENTS) {
DECLARE_CCTK_ARGUMENTS_TestODESolvers2_Boundary;
DECLARE_CCTK_PARAMETERS;

// do nothing
}

extern "C" void TestODESolvers2_RHS(CCTK_ARGUMENTS) {
DECLARE_CCTK_ARGUMENTS_TestODESolvers2_RHS;
Expand All @@ -66,7 +66,7 @@ extern "C" void TestODESolvers2_RHS(CCTK_ARGUMENTS) {
const Loop::GF3D<CCTK_REAL, 1, 1, 1> exp1_rhs_(cctkGH, exp1_rhs);
const Loop::GF3D<CCTK_REAL, 1, 1, 1> exp2_rhs_(cctkGH, exp2_rhs);

Loop::loop_all<1, 1, 1>(cctkGH, [&](const Loop::PointDesc &p) {
Loop::loop_int<1, 1, 1>(cctkGH, [&](const Loop::PointDesc &p) {
if (porder > 0)
if (abs(time_(p.I) - cctk_time) >
10 * numeric_limits<CCTK_REAL>::epsilon())
Expand All @@ -92,7 +92,7 @@ extern "C" void TestODESolvers2_Error(CCTK_ARGUMENTS) {
const Loop::GF3D<CCTK_REAL, 1, 1, 1> poly_err_(cctkGH, poly_err);
const Loop::GF3D<CCTK_REAL, 1, 1, 1> exp_order_(cctkGH, exp_order);

Loop::loop_all<1, 1, 1>(cctkGH, [&](const Loop::PointDesc &p) {
Loop::loop_int<1, 1, 1>(cctkGH, [&](const Loop::PointDesc &p) {
time_err_(p.I) = time_(p.I) - cctk_time;
poly_err_(p.I) = poly_(p.I) - pow(1 + cctk_time, porder);
if (cctk_iteration == 0) {
Expand Down
7 changes: 7 additions & 0 deletions TestODESolvers2/test/test-constant.par
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,13 @@ CarpetX::blocking_factor_z = 1

CarpetX::ghost_size = 0

CarpetX::boundary_x = "dirichlet"
CarpetX::boundary_y = "dirichlet"
CarpetX::boundary_z = "dirichlet"
CarpetX::boundary_upper_x = "dirichlet"
CarpetX::boundary_upper_y = "dirichlet"
CarpetX::boundary_upper_z = "dirichlet"

CarpetX::dtfac = 1.0
Cactus::cctk_itlast = 1

Expand Down
7 changes: 7 additions & 0 deletions TestODESolvers2/test/test-dp87.par
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,13 @@ CarpetX::blocking_factor_z = 1

CarpetX::ghost_size = 0

CarpetX::boundary_x = "dirichlet"
CarpetX::boundary_y = "dirichlet"
CarpetX::boundary_z = "dirichlet"
CarpetX::boundary_upper_x = "dirichlet"
CarpetX::boundary_upper_y = "dirichlet"
CarpetX::boundary_upper_z = "dirichlet"

CarpetX::dtfac = 1.0
Cactus::cctk_itlast = 1

Expand Down
7 changes: 7 additions & 0 deletions TestODESolvers2/test/test-euler.par
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,13 @@ CarpetX::blocking_factor_z = 1

CarpetX::ghost_size = 0

CarpetX::boundary_x = "dirichlet"
CarpetX::boundary_y = "dirichlet"
CarpetX::boundary_z = "dirichlet"
CarpetX::boundary_upper_x = "dirichlet"
CarpetX::boundary_upper_y = "dirichlet"
CarpetX::boundary_upper_z = "dirichlet"

CarpetX::dtfac = 1.0
Cactus::cctk_itlast = 1

Expand Down
7 changes: 7 additions & 0 deletions TestODESolvers2/test/test-rk2.par
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,13 @@ CarpetX::blocking_factor_z = 1

CarpetX::ghost_size = 0

CarpetX::boundary_x = "dirichlet"
CarpetX::boundary_y = "dirichlet"
CarpetX::boundary_z = "dirichlet"
CarpetX::boundary_upper_x = "dirichlet"
CarpetX::boundary_upper_y = "dirichlet"
CarpetX::boundary_upper_z = "dirichlet"

CarpetX::dtfac = 1.0
Cactus::cctk_itlast = 1

Expand Down
7 changes: 7 additions & 0 deletions TestODESolvers2/test/test-rk3.par
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,13 @@ CarpetX::blocking_factor_z = 1

CarpetX::ghost_size = 0

CarpetX::boundary_x = "dirichlet"
CarpetX::boundary_y = "dirichlet"
CarpetX::boundary_z = "dirichlet"
CarpetX::boundary_upper_x = "dirichlet"
CarpetX::boundary_upper_y = "dirichlet"
CarpetX::boundary_upper_z = "dirichlet"

CarpetX::dtfac = 1.0
Cactus::cctk_itlast = 1

Expand Down
7 changes: 7 additions & 0 deletions TestODESolvers2/test/test-rk4.par
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,13 @@ CarpetX::blocking_factor_z = 1

CarpetX::ghost_size = 0

CarpetX::boundary_x = "dirichlet"
CarpetX::boundary_y = "dirichlet"
CarpetX::boundary_z = "dirichlet"
CarpetX::boundary_upper_x = "dirichlet"
CarpetX::boundary_upper_y = "dirichlet"
CarpetX::boundary_upper_z = "dirichlet"

CarpetX::dtfac = 1.0
Cactus::cctk_itlast = 1

Expand Down
7 changes: 7 additions & 0 deletions TestODESolvers2/test/test-rkf78.par
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,13 @@ CarpetX::blocking_factor_z = 1

CarpetX::ghost_size = 0

CarpetX::boundary_x = "dirichlet"
CarpetX::boundary_y = "dirichlet"
CarpetX::boundary_z = "dirichlet"
CarpetX::boundary_upper_x = "dirichlet"
CarpetX::boundary_upper_y = "dirichlet"
CarpetX::boundary_upper_z = "dirichlet"

CarpetX::dtfac = 1.0
Cactus::cctk_itlast = 1

Expand Down
7 changes: 7 additions & 0 deletions TestODESolvers2/test/test-ssprk3.par
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,13 @@ CarpetX::blocking_factor_z = 1

CarpetX::ghost_size = 0

CarpetX::boundary_x = "dirichlet"
CarpetX::boundary_y = "dirichlet"
CarpetX::boundary_z = "dirichlet"
CarpetX::boundary_upper_x = "dirichlet"
CarpetX::boundary_upper_y = "dirichlet"
CarpetX::boundary_upper_z = "dirichlet"

CarpetX::dtfac = 1.0
Cactus::cctk_itlast = 1

Expand Down
18 changes: 11 additions & 7 deletions scripts/actions-cpu-real32.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,14 @@ FPP = cpp
FC = gfortran
F90 = gfortran

CFLAGS = -pipe -g -std=gnu11
CXXFLAGS = -pipe -g -std=gnu++17
# Note: Use -fhardened for GCC14
# Note: GCC 13.2 with -ftrivial-auto-var-init=pattern mis-compiles (?) C++ lambdas

CFLAGS = -D_FORTIFY_SOURCE=3 -D_GLIBCXX_ASSERTIONS -fPIE -fcf-protection=full -fstack-clash-protection -fstack-protector-strong -ftrivial-auto-var-init=pattern -g -march=x86-64-v3 -pie -pipe -std=gnu11
CXXFLAGS = -D_FORTIFY_SOURCE=3 -D_GLIBCXX_ASSERTIONS -fPIE -fcf-protection=full -fstack-clash-protection -fstack-protector-strong -g -march=x86-64-v3 -pie -pipe -std=gnu++17
FPPFLAGS = -traditional
F90FLAGS = -pipe -g -fcray-pointer -ffixed-line-length-none
F90FLAGS = -fPIE -fcf-protection=full -fcray-pointer -ffixed-line-length-none -finit-character=65 -finit-integer=42424242 -finit-real=nan -fstack-clash-protection -fstack-protector-strong -g -march=x86-64-v3 -pie -pipe
LDFLAGS = -L/usr/lib/x86_64-linux-gnu -Wl,-rpath,/usr/local/lib -Wl,-z,relro,-z,now

C_LINE_DIRECTIVES = yes
F_LINE_DIRECTIVES = yes
Expand All @@ -31,12 +35,12 @@ CPP_DEBUG_FLAGS = -DCARPET_DEBUG
C_DEBUG_FLAGS = -fbounds-check -fsanitize=undefined -fstack-protector-all -ftrapv
CXX_DEBUG_FLAGS = -fbounds-check -fsanitize=undefined -fstack-protector-all -ftrapv
FPP_DEBUG_FLAGS = -DCARPET_DEBUG
F90_DEBUG_FLAGS = -fcheck=bounds,do,mem,pointer,recursion -finit-character=65 -finit-integer=42424242 -finit-real=nan -fsanitize=undefined -fstack-protector-all -ftrapv
F90_DEBUG_FLAGS = -fcheck=bounds,do,mem,pointer,recursion -fsanitize=undefined -fstack-protector-all -ftrapv

OPTIMISE = yes
C_OPTIMISE_FLAGS = -O3 -fcx-limited-range -fexcess-precision=fast -ffp-contract=fast -fno-math-errno -fno-rounding-math -fno-signaling-nans -funsafe-math-optimizations
CXX_OPTIMISE_FLAGS = -O3 -fcx-limited-range -fexcess-precision=fast -ffp-contract=fast -fno-math-errno -fno-rounding-math -fno-signaling-nans -funsafe-math-optimizations
F90_OPTIMISE_FLAGS = -O3 -fcx-limited-range -fexcess-precision=fast -ffp-contract=fast -fno-math-errno -fno-rounding-math -fno-signaling-nans -funsafe-math-optimizations
C_OPTIMISE_FLAGS = -O3 -fcx-limited-range -fexcess-precision=fast -ffp-contract=fast -fno-math-errno -fno-rounding-math -fno-signaling-nans
CXX_OPTIMISE_FLAGS = -O3 -fcx-limited-range -fexcess-precision=fast -ffp-contract=fast -fno-math-errno -fno-rounding-math -fno-signaling-nans
F90_OPTIMISE_FLAGS = -O3 -fcx-limited-range -fexcess-precision=fast -ffp-contract=fast -fno-math-errno -fno-rounding-math -fno-signaling-nans

OPENMP = yes
CPP_OPENMP_FLAGS = -fopenmp
Expand Down
3 changes: 3 additions & 0 deletions scripts/actions-cpu-real32.ini
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@ disabled-thorns = <<EOT
ExternalLibraries/LAPACK
ExternalLibraries/LORENE
ExternalLibraries/PAPI
# Builds too slowly
SpacetimeX/Weyl
SpacetimeX/SphericalHarmonics
EOT
enabled-thorns = <<EOT
CactusTest/TestAllTypes
Expand Down
14 changes: 8 additions & 6 deletions scripts/actions-cpu-real32.run
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,14 @@ env | sort >SIMFACTORY/ENVIRONMENT
echo "Starting:"
export CACTUS_STARTTIME=$(date +%s)

time \
mpiexec \
-n @NUM_PROCS@ \
@EXECUTABLE@ -L 3 @PARFILE@ \
>stdout.txt \
2>stderr.txt
# time \
# mpiexec \
# -n @NUM_PROCS@ \
# @EXECUTABLE@ -L 3 @PARFILE@ \
# >stdout.txt \
# 2>stderr.txt

time mpiexec -n @NUM_PROCS@ @EXECUTABLE@ -L 3 @PARFILE@

echo "Stopping:"
date
Expand Down
18 changes: 11 additions & 7 deletions scripts/actions-cpu-real64.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,14 @@ FPP = cpp
FC = gfortran
F90 = gfortran

CFLAGS = -pipe -g -std=gnu11
CXXFLAGS = -pipe -g -std=gnu++17
# Note: Use -fhardened for GCC14
# Note: GCC 13.2 with -ftrivial-auto-var-init=pattern mis-compiles (?) C++ lambdas

CFLAGS = -D_FORTIFY_SOURCE=3 -D_GLIBCXX_ASSERTIONS -fPIE -fcf-protection=full -fstack-clash-protection -fstack-protector-strong -ftrivial-auto-var-init=pattern -g -march=x86-64-v3 -pie -pipe -std=gnu11
CXXFLAGS = -D_FORTIFY_SOURCE=3 -D_GLIBCXX_ASSERTIONS -fPIE -fcf-protection=full -fstack-clash-protection -fstack-protector-strong -g -march=x86-64-v3 -pie -pipe -std=gnu++17
FPPFLAGS = -traditional
F90FLAGS = -pipe -g -fcray-pointer -ffixed-line-length-none
F90FLAGS = -fPIE -fcf-protection=full -fcray-pointer -ffixed-line-length-none -finit-character=65 -finit-integer=42424242 -finit-real=nan -fstack-clash-protection -fstack-protector-strong -g -march=x86-64-v3 -pie -pipe
LDFLAGS = -L/usr/lib/x86_64-linux-gnu -Wl,-rpath,/usr/local/lib -Wl,-z,relro,-z,now

C_LINE_DIRECTIVES = yes
F_LINE_DIRECTIVES = yes
Expand All @@ -31,12 +35,12 @@ CPP_DEBUG_FLAGS = -DCARPET_DEBUG
C_DEBUG_FLAGS = -fbounds-check -fsanitize=undefined -fstack-protector-all -ftrapv
CXX_DEBUG_FLAGS = -fbounds-check -fsanitize=undefined -fstack-protector-all -ftrapv
FPP_DEBUG_FLAGS = -DCARPET_DEBUG
F90_DEBUG_FLAGS = -fcheck=bounds,do,mem,pointer,recursion -finit-character=65 -finit-integer=42424242 -finit-real=nan -fsanitize=undefined -fstack-protector-all -ftrapv
F90_DEBUG_FLAGS = -fcheck=bounds,do,mem,pointer,recursion -fsanitize=undefined -fstack-protector-all -ftrapv

OPTIMISE = yes
C_OPTIMISE_FLAGS = -O3 -fcx-limited-range -fexcess-precision=fast -ffp-contract=fast -fno-math-errno -fno-rounding-math -fno-signaling-nans -funsafe-math-optimizations
CXX_OPTIMISE_FLAGS = -O3 -fcx-limited-range -fexcess-precision=fast -ffp-contract=fast -fno-math-errno -fno-rounding-math -fno-signaling-nans -funsafe-math-optimizations
F90_OPTIMISE_FLAGS = -O3 -fcx-limited-range -fexcess-precision=fast -ffp-contract=fast -fno-math-errno -fno-rounding-math -fno-signaling-nans -funsafe-math-optimizations
C_OPTIMISE_FLAGS = -O3 -fcx-limited-range -fexcess-precision=fast -ffp-contract=fast -fno-math-errno -fno-rounding-math -fno-signaling-nans
CXX_OPTIMISE_FLAGS = -O3 -fcx-limited-range -fexcess-precision=fast -ffp-contract=fast -fno-math-errno -fno-rounding-math -fno-signaling-nans
F90_OPTIMISE_FLAGS = -O3 -fcx-limited-range -fexcess-precision=fast -ffp-contract=fast -fno-math-errno -fno-rounding-math -fno-signaling-nans

OPENMP = yes
CPP_OPENMP_FLAGS = -fopenmp
Expand Down
3 changes: 3 additions & 0 deletions scripts/actions-cpu-real64.ini
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ disabled-thorns = <<EOT
ExternalLibraries/LAPACK
ExternalLibraries/LORENE
ExternalLibraries/PAPI
# Builds too slowly
SpacetimeX/Weyl
SpacetimeX/SphericalHarmonics
EOT
enabled-thorns = <<EOT
CactusTest/TestAllTypes
Expand Down
14 changes: 8 additions & 6 deletions scripts/actions-cpu-real64.run
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,14 @@ env | sort >SIMFACTORY/ENVIRONMENT
echo "Starting:"
export CACTUS_STARTTIME=$(date +%s)

time \
mpiexec \
-n @NUM_PROCS@ \
@EXECUTABLE@ -L 3 @PARFILE@ \
>stdout.txt \
2>stderr.txt
# time \
# mpiexec \
# -n @NUM_PROCS@ \
# @EXECUTABLE@ -L 3 @PARFILE@ \
# >stdout.txt \
# 2>stderr.txt

time mpiexec -n @NUM_PROCS@ @EXECUTABLE@ -L 3 @PARFILE@

echo "Stopping:"
date
Expand Down
6 changes: 3 additions & 3 deletions scripts/actions-cuda-real32.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,9 @@ FPP_DEBUG_FLAGS = -DCARPET_DEBUG
F90_DEBUG_FLAGS = -fcheck=bounds,do,mem,pointer,recursion -finit-character=65 -finit-integer=42424242 -finit-real=nan -fsanitize=undefined -fstack-protector-all -ftrapv

OPTIMISE = yes
C_OPTIMISE_FLAGS = -O3 -fcx-limited-range -fexcess-precision=fast -ffp-contract=fast -fno-math-errno -fno-rounding-math -fno-signaling-nans -funsafe-math-optimizations
CXX_OPTIMISE_FLAGS = -O3 -fcx-limited-range -fexcess-precision=fast -ffp-contract=fast -fno-math-errno -fno-rounding-math -fno-signaling-nans -funsafe-math-optimizations
F90_OPTIMISE_FLAGS = -O3 -fcx-limited-range -fexcess-precision=fast -ffp-contract=fast -fno-math-errno -fno-rounding-math -fno-signaling-nans -funsafe-math-optimizations
C_OPTIMISE_FLAGS = -O3 -fcx-limited-range -fexcess-precision=fast -ffp-contract=fast -fno-math-errno -fno-rounding-math -fno-signaling-nans
CXX_OPTIMISE_FLAGS = -O3 -fcx-limited-range -fexcess-precision=fast -ffp-contract=fast -fno-math-errno -fno-rounding-math -fno-signaling-nans
F90_OPTIMISE_FLAGS = -O3 -fcx-limited-range -fexcess-precision=fast -ffp-contract=fast -fno-math-errno -fno-rounding-math -fno-signaling-nans

OPENMP = yes
CPP_OPENMP_FLAGS = -fopenmp
Expand Down
14 changes: 8 additions & 6 deletions scripts/actions-cuda-real32.run
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,14 @@ env | sort >SIMFACTORY/ENVIRONMENT
echo "Starting:"
export CACTUS_STARTTIME=$(date +%s)

time \
mpiexec \
-n @NUM_PROCS@ \
@EXECUTABLE@ -L 3 @PARFILE@ \
>stdout.txt \
2>stderr.txt
# time \
# mpiexec \
# -n @NUM_PROCS@ \
# @EXECUTABLE@ -L 3 @PARFILE@ \
# >stdout.txt \
# 2>stderr.txt

time mpiexec -n @NUM_PROCS@ @EXECUTABLE@ -L 3 @PARFILE@

echo "Stopping:"
date
Expand Down
6 changes: 3 additions & 3 deletions scripts/actions-cuda-real64.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,9 @@ FPP_DEBUG_FLAGS = -DCARPET_DEBUG
F90_DEBUG_FLAGS = -fcheck=bounds,do,mem,pointer,recursion -finit-character=65 -finit-integer=42424242 -finit-real=nan -fsanitize=undefined -fstack-protector-all -ftrapv

OPTIMISE = yes
C_OPTIMISE_FLAGS = -O3 -fcx-limited-range -fexcess-precision=fast -ffp-contract=fast -fno-math-errno -fno-rounding-math -fno-signaling-nans -funsafe-math-optimizations
CXX_OPTIMISE_FLAGS = -O3 -fcx-limited-range -fexcess-precision=fast -ffp-contract=fast -fno-math-errno -fno-rounding-math -fno-signaling-nans -funsafe-math-optimizations
F90_OPTIMISE_FLAGS = -O3 -fcx-limited-range -fexcess-precision=fast -ffp-contract=fast -fno-math-errno -fno-rounding-math -fno-signaling-nans -funsafe-math-optimizations
C_OPTIMISE_FLAGS = -O3 -fcx-limited-range -fexcess-precision=fast -ffp-contract=fast -fno-math-errno -fno-rounding-math -fno-signaling-nans
CXX_OPTIMISE_FLAGS = -O3 -fcx-limited-range -fexcess-precision=fast -ffp-contract=fast -fno-math-errno -fno-rounding-math -fno-signaling-nans
F90_OPTIMISE_FLAGS = -O3 -fcx-limited-range -fexcess-precision=fast -ffp-contract=fast -fno-math-errno -fno-rounding-math -fno-signaling-nans

OPENMP = yes
CPP_OPENMP_FLAGS = -fopenmp
Expand Down
Loading