Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
982c77b
firedrake-configure options for Ubuntu 2026.04
JHopeCollins May 7, 2026
586b1a8
test Ubuntu 26.04 on CI
JHopeCollins May 7, 2026
5e46bf0
proper string for multiple petsc configure args
JHopeCollins May 7, 2026
431b57b
CI: print petsc configure.log on failure
JHopeCollins May 7, 2026
50c88df
restore ubuntu:latest in CI
JHopeCollins May 7, 2026
006bb6b
firedrake-configure ubuntu:26.04 do not set ptscotch version
JHopeCollins May 7, 2026
edac843
firedrake-configure: no download-hypre for Ubuntu 26.04 and 24.04 is …
JHopeCollins May 7, 2026
bfc8277
firedrake-configure ubuntu26.04 gpu config??
JHopeCollins May 7, 2026
90155e5
messed up printing configure.log on build failure
JHopeCollins May 7, 2026
e1b4141
ubuntu:26.04 aarch configuration
JHopeCollins May 7, 2026
566b802
ubuntu26.04 configuration: ignore incompatible pointer types for pygr…
JHopeCollins May 7, 2026
9c9c74f
typo and comment explaining CFLAGS in ubuntu26.04 configuration
JHopeCollins May 7, 2026
f2e8ed7
Just avoid pygraphviz in tests to avoid passing dodgy CFLAG
connorjward May 11, 2026
268da63
Try downloading hdf5
connorjward May 11, 2026
e59a58c
Also set CC
connorjward May 11, 2026
a5bdd6e
try another thing
connorjward May 11, 2026
fff9f37
fixup
connorjward May 11, 2026
2e9b210
improve messaging
connorjward May 11, 2026
7c0e758
Disable -O3 for GCC 15
connorjward May 13, 2026
66b9256
Merge remote-tracking branch 'origin/release' into JHopeCollins/fired…
connorjward May 13, 2026
456a49f
fixup
connorjward May 13, 2026
a1b4287
Disable -O3 for GCC 15
connorjward May 13, 2026
0cf0ed2
Add ref to issue about max version
connorjward May 13, 2026
7fa73a7
fixup
connorjward May 13, 2026
9d50d41
Try CUDA 13.2
connorjward May 13, 2026
6d424ff
Redo GPU CI
connorjward May 13, 2026
8867369
fixup
connorjward May 13, 2026
b345a79
Merge remote-tracking branch 'origin/release' into JHopeCollins/fired…
connorjward May 13, 2026
bd940e6
fixup
connorjward May 13, 2026
075a6de
Add extra cuda package
connorjward May 13, 2026
44aa48d
Merge remote-tracking branch 'origin/connorjward/gcc15' into JHopeCol…
connorjward May 13, 2026
69faa5f
Set env in PETSc step too
connorjward May 13, 2026
8b62735
Set O1 on Linux runners because O2 causes failures in complex mode
connorjward May 14, 2026
60181c8
fixup
connorjward May 14, 2026
1203744
Merge remote-tracking branch 'origin/release' into JHopeCollins/fired…
connorjward May 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 4 additions & 5 deletions .github/workflows/core.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,17 +73,16 @@ jobs:
arch: [default, complex]
runs-on: [self-hosted, Linux]
container:
# TODO: set to 'ubuntu:latest'
image: ubuntu:noble
image: ubuntu:latest
env:
OMPI_ALLOW_RUN_AS_ROOT: 1
OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1
OMP_NUM_THREADS: 1
OPENBLAS_NUM_THREADS: 1
FIREDRAKE_CI: 1
PYOP2_SPMD_STRICT: 1
# Disable fast math as it exposes compiler bugs
PYOP2_CFLAGS: -fno-fast-math
# Disable some compiler optimisations as they cause runner-specific bugs
PYOP2_CFLAGS: -O1 -fno-fast-math
# NOTE: One should occasionally update test_durations.json by running
# 'make test_durations' inside a 'firedrake:latest' Docker image.
EXTRA_PYTEST_ARGS: --splitting-algorithm least_duration --timeout=600 --timeout-method=thread -o faulthandler_timeout=660 --durations-path=./firedrake-repo/tests/test_durations.json --durations=50
Expand Down Expand Up @@ -300,7 +299,7 @@ jobs:
name: Build and test Firedrake (Linux CUDA)
runs-on: [self-hosted, Linux, gpu]
container:
# TODO: set to 'ubuntu:latest'
# TODO: set to 'ubuntu:latest'
image: ubuntu:noble
options: --gpus all
if: inputs.test_gpu
Expand Down
2 changes: 2 additions & 0 deletions docs/notebooks/11-extract-adjoint-solutions.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -54826,6 +54826,7 @@
"metadata": {},
"outputs": [],
"source": [
"# NBVAL_SKIP\n",
"tape.visualise(\"tape.pdf\")"
]
},
Expand All @@ -54849,6 +54850,7 @@
}
],
"source": [
"# NBVAL_SKIP\n",
"from pdf2image import convert_from_path\n",
"\n",
"images = convert_from_path(\"tape.pdf\")\n",
Expand Down
2 changes: 1 addition & 1 deletion firedrake/checkpointing.py
Original file line number Diff line number Diff line change
Expand Up @@ -1547,7 +1547,7 @@ def _load_function_topology(self, tmesh, element, tf_name, idx=None):
if timestepping:
assert idx is not None, "In timestepping mode: idx parameter must be set"
else:
assert idx is None, "In non-timestepping mode: idx parameter msut not be set"
assert idx is None, "In non-timestepping mode: idx parameter must not be set"
else:
raise RuntimeError(f"Function {path} not found in {self.filename}")
with tf.dat.vec_wo as vec:
Expand Down
77 changes: 33 additions & 44 deletions pyop2/compilation.py
Original file line number Diff line number Diff line change
Expand Up @@ -278,33 +278,35 @@ def ld(self):
return self._ld

@property
def cflags(self):
cflags = self._cflags + self._extra_compiler_flags + self.bugfix_cflags
if self._debug:
cflags += self._debugflags
else:
cflags += self._optflags
cflags += tuple(shlex.split(configuration["cflags"]))
return cflags
def cflags(self) -> tuple[str, ...]:
return (
*self._cflags,
*(self._debugflags if self._debug else self._optflags),
*self.bugfix_cflags,
*self._extra_compiler_flags,
*shlex.split(configuration["cflags"]),
)

@property
def cxxflags(self):
cxxflags = self._cxxflags + self._extra_compiler_flags + self.bugfix_cflags
if self._debug:
cxxflags += self._debugflags
else:
cxxflags += self._optflags
cxxflags += tuple(shlex.split(configuration["cxxflags"]))
return cxxflags
def cxxflags(self) -> tuple[str, ...]:
return (
*self._cxxflags,
*(self._debugflags if self._debug else self._optflags),
*self.bugfix_cflags,
*self._extra_compiler_flags,
*shlex.split(configuration["cxxflags"]),
)

@property
def ldflags(self):
ldflags = self._ldflags + self._extra_linker_flags
ldflags += tuple(shlex.split(configuration["ldflags"]))
return ldflags
def ldflags(self) -> tuple[str, ...]:
return (
*self._ldflags,
*self._extra_linker_flags,
*shlex.split(configuration["ldflags"]),
)

@property
def bugfix_cflags(self):
def bugfix_cflags(self) -> tuple[str, ...]:
return ()


Expand Down Expand Up @@ -348,30 +350,17 @@ class LinuxGnuCompiler(Compiler):
_debugflags = ("-O0", "-g")

@property
def bugfix_cflags(self):
def bugfix_cflags(self) -> tuple[str, ...]:
"""Flags to work around bugs in compilers."""
ver = self._version
cflags = ()
if Version("4.8.0") <= ver < Version("4.9.0"):
# GCC bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61068
cflags = ("-fno-ivopts",)
if Version("5.0") <= ver <= Version("5.4.0"):
cflags = ("-fno-tree-loop-vectorize",)
if Version("6.0.0") <= ver < Version("6.5.0"):
# GCC bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79920
cflags = ("-fno-tree-loop-vectorize",)
if Version("7.1.0") <= ver < Version("7.1.2"):
# GCC bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81633
cflags = ("-fno-tree-loop-vectorize",)
if Version("7.3") <= ver <= Version("7.5"):
# GCC bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90055
# See also https://github.com/firedrakeproject/firedrake/issues/1442
# And https://github.com/firedrakeproject/firedrake/issues/1717
# Bug also on skylake with the vectoriser in this
# combination (disappears without
# -fno-tree-loop-vectorize!)
cflags = ("-fno-tree-loop-vectorize", "-mno-avx512f")
return cflags
cflags = []
if not self._debug and self._version >= Version("15"):
# Disable '-O3' for GCC versions >=15 because it causes issues with
# complex interpolation kernels
# TODO: revisit this in later GCC releases to see if we can set a
# maximum version constraint
# (see https://github.com/firedrakeproject/firedrake/issues/5107)
cflags.append("-O2")
return tuple(cflags)


class LinuxClangCompiler(Compiler):
Expand Down
6 changes: 4 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,8 @@ ci = [
"networkx",
"ngsPETSc>=0.2.0",
"pdf2image",
"pygraphviz",
# TODO: restore this (see https://github.com/firedrakeproject/firedrake/issues/5106)
# "pygraphviz",
"pylit",
"pytest",
"pytest-order",
Expand All @@ -129,7 +130,8 @@ docker = [ # Used in firedrake-vanilla container
"nbval",
"networkx",
"pdf2image",
"pygraphviz",
# TODO: restore this (see https://github.com/firedrakeproject/firedrake/issues/5106)
# "pygraphviz",
"pylit",
"pytest",
"pytest-order",
Expand Down
Loading
Loading