From 905c9cb9d5bccee48f214ca44292f8f5d888dd51 Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Thu, 16 Jul 2026 11:41:25 +0100 Subject: [PATCH 01/14] workflows --- .github/workflows/core.yml | 16 ++++++++++++++++ .github/workflows/pr.yml | 1 + .github/workflows/push.yml | 1 + 3 files changed, 18 insertions(+) diff --git a/.github/workflows/core.yml b/.github/workflows/core.yml index b7db61e65e..67b0df9d60 100644 --- a/.github/workflows/core.yml +++ b/.github/workflows/core.yml @@ -23,6 +23,10 @@ on: description: Whether to test a complex build type: boolean required: true + test_64bit: + description: Whether to test a 64-bit integer build + type: boolean + required: true test_cuda: description: Whether to test using CUDA-enabled PETSc type: boolean @@ -54,6 +58,10 @@ on: description: Whether to test a complex build type: boolean required: true + test_64bit: + description: Whether to test a 64-bit integer build + type: boolean + required: true test_cuda: description: Whether to test using CUDA-enabled PETSc type: boolean @@ -264,6 +272,14 @@ jobs: if [ ${{ inputs.test_complex }} == 'true' ]; then matrix='{"scalar_type": "complex", "gpu": "none"}' fi + if [ ${{ inputs.test_64bit }} == 'true' ]; then + arch='{"scalar_type": "default", "gpu": "none", "int_type": "64bit"}' + if [ "$matrix" ]; then + matrix="$matrix, $arch" + else + matrix="$arch" + fi + fi if [ ${{ inputs.test_cuda }} == 'true' ]; then arch='{"scalar_type": "default", "gpu": "cuda"}' if [ "$matrix" ]; then diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 8f250c86f7..343664f329 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -23,6 +23,7 @@ jobs: # Run all tests of a specific configuration (e.g. complex) if the right label # is on the PR, otherwise do nothing. test_complex: ${{ contains(github.event.pull_request.labels.*.name, 'ci:complex') }} + test_64bit: ${{ contains(github.event.pull_request.labels.*.name, 'ci:64bit') }} test_cuda: ${{ contains(github.event.pull_request.labels.*.name, 'ci:cuda') }} test_macos: ${{ contains(github.event.pull_request.labels.*.name, 'ci:macos') }} secrets: inherit diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 5719c624ff..cb31a0134a 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -14,6 +14,7 @@ jobs: source_ref: ${{ github.ref_name }} base_ref: ${{ github.ref_name }} test_complex: true + test_64bit: true test_cuda: true test_macos: true deploy_website: true From 375544f2806a48cb07e46c028bc1b46fa187a24f Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Thu, 16 Jul 2026 11:46:42 +0100 Subject: [PATCH 02/14] rename --- .github/workflows/core.yml | 6 +++--- .github/workflows/pr.yml | 2 +- .github/workflows/push.yml | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/core.yml b/.github/workflows/core.yml index 67b0df9d60..5b81e8831e 100644 --- a/.github/workflows/core.yml +++ b/.github/workflows/core.yml @@ -23,7 +23,7 @@ on: description: Whether to test a complex build type: boolean required: true - test_64bit: + test_int64: description: Whether to test a 64-bit integer build type: boolean required: true @@ -58,7 +58,7 @@ on: description: Whether to test a complex build type: boolean required: true - test_64bit: + test_int64: description: Whether to test a 64-bit integer build type: boolean required: true @@ -272,7 +272,7 @@ jobs: if [ ${{ inputs.test_complex }} == 'true' ]; then matrix='{"scalar_type": "complex", "gpu": "none"}' fi - if [ ${{ inputs.test_64bit }} == 'true' ]; then + if [ ${{ inputs.test_int64 }} == 'true' ]; then arch='{"scalar_type": "default", "gpu": "none", "int_type": "64bit"}' if [ "$matrix" ]; then matrix="$matrix, $arch" diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 343664f329..ad2665061d 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -23,7 +23,7 @@ jobs: # Run all tests of a specific configuration (e.g. complex) if the right label # is on the PR, otherwise do nothing. test_complex: ${{ contains(github.event.pull_request.labels.*.name, 'ci:complex') }} - test_64bit: ${{ contains(github.event.pull_request.labels.*.name, 'ci:64bit') }} + test_int64: ${{ contains(github.event.pull_request.labels.*.name, 'ci:int64') }} test_cuda: ${{ contains(github.event.pull_request.labels.*.name, 'ci:cuda') }} test_macos: ${{ contains(github.event.pull_request.labels.*.name, 'ci:macos') }} secrets: inherit diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index cb31a0134a..f55da62a99 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -14,7 +14,7 @@ jobs: source_ref: ${{ github.ref_name }} base_ref: ${{ github.ref_name }} test_complex: true - test_64bit: true + test_int64: true test_cuda: true test_macos: true deploy_website: true From 3f8a50cb9ab74a6875c1e57c7ce7d223ca0a73d7 Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Thu, 16 Jul 2026 11:55:57 +0100 Subject: [PATCH 03/14] add archs to firedrake-configure --- scripts/firedrake-configure | 172 +++++++++++++++++++++++++++++++++--- 1 file changed, 162 insertions(+), 10 deletions(-) diff --git a/scripts/firedrake-configure b/scripts/firedrake-configure index 4bcafad20e..e4b210ccd5 100755 --- a/scripts/firedrake-configure +++ b/scripts/firedrake-configure @@ -250,6 +250,11 @@ class ScalarType(enum.Enum): COMPLEX = "complex" +class IntType(enum.Enum): + DEFAULT = "default" + INT64 = "64bit" + + class GPUPlatform(enum.Enum): NO_GPU = "none" CUDA = "cuda" @@ -401,14 +406,14 @@ class CommunityArch(Arch): """ -ArchKey = tuple[OS, ScalarType, GPUPlatform] +ArchKey = tuple[OS, ScalarType, IntType, GPUPlatform] # Configurations with official support that are tested in CI OFFICIAL_ARCHS: Mapping[ArchKey, Arch] = { # Ubuntu 26.04 x86 - (OS.UBUNTU_2604_X86_64, ScalarType.DEFAULT, GPUPlatform.NO_GPU): Arch( + (OS.UBUNTU_2604_X86_64, ScalarType.DEFAULT, IntType.DEFAULT, GPUPlatform.NO_GPU): Arch( name="default", system_packages=[ "bison", @@ -470,7 +475,7 @@ OFFICIAL_ARCHS: Mapping[ArchKey, Arch] = { ], ), - (OS.UBUNTU_2604_X86_64, ScalarType.COMPLEX, GPUPlatform.NO_GPU): Arch( + (OS.UBUNTU_2604_X86_64, ScalarType.COMPLEX, IntType.DEFAULT, GPUPlatform.NO_GPU): Arch( name="complex", system_packages=[ "bison", @@ -530,9 +535,74 @@ OFFICIAL_ARCHS: Mapping[ArchKey, Arch] = { ], ), + (OS.UBUNTU_2604_X86_64, ScalarType.DEFAULT, IntType.INT64, GPUPlatform.NO_GPU): Arch( + name="int64", + system_packages=[ + "bison", + "build-essential", + "cmake", + "flex", + "gfortran", + "git", + "ninja-build", + "pkg-config", + "python3-dev", + "python3-pip", + + # PETSc external packages + "libfftw3-dev", + "libfftw3-mpi-dev", + "libhdf5-mpi-dev", + "libhwloc-dev", + "libhypre-dev", + "libmumps-ptscotch-dev", + "libmetis-dev", + "libnetcdf-dev", + "libopenblas-dev", + "libopenmpi-dev", + "libpnetcdf-dev", + "libptscotch-dev", + "libscalapack-openmpi-dev", + "libsuitesparse-dev", + "libsuperlu-dev", + "libsuperlu-dist-dev", + ], + extra_petsc_configure_options=[ + "--with-64-bit-indices", + "--with-bison", + "--with-fftw", + "--with-hdf5", + "--with-hwloc", + "--with-hypre", + "--with-metis", + "--with-mumps", + "--with-netcdf", + "--with-pnetcdf", + "--with-ptscotch", + "--with-ptscotch-lib='-lptesmumps -lptscotch -lptscotcherr -lesmumps -lscotch -lscotcherr'", + "--with-ptscotch-include=/usr/include/scotch", + "--with-scalapack-lib=-lscalapack-openmpi", + "--with-suitesparse", + "--with-superlu_dist", + "--with-zlib", + ], + cflags=["-O3", "-march=native", "-mtune=native"], + cxxflags=["-O3", "-march=native", "-mtune=native"], + fflags=["-O3", "-march=native", "-mtune=native"], + include_dirs=[ + "/usr/include/hdf5/openmpi", + "/usr/include/hypre", + "/usr/include/superlu", + "/usr/include/superlu-dist", + ], + library_dirs=[ + "/usr/lib/x86_64-linux-gnu/hdf5/openmpi", + ], + ), + # Ubuntu 26.04 aarch64 - (OS.UBUNTU_2604_AARCH64, ScalarType.DEFAULT, GPUPlatform.NO_GPU): Arch( + (OS.UBUNTU_2604_AARCH64, ScalarType.DEFAULT, IntType.DEFAULT, GPUPlatform.NO_GPU): Arch( name="default", system_packages=[ "bison", @@ -594,7 +664,7 @@ OFFICIAL_ARCHS: Mapping[ArchKey, Arch] = { ], ), - (OS.UBUNTU_2604_AARCH64, ScalarType.COMPLEX, GPUPlatform.NO_GPU): Arch( + (OS.UBUNTU_2604_AARCH64, ScalarType.COMPLEX, IntType.DEFAULT, GPUPlatform.NO_GPU): Arch( name="complex", system_packages=[ "bison", @@ -656,7 +726,7 @@ OFFICIAL_ARCHS: Mapping[ArchKey, Arch] = { # Ubuntu 26.04 x86 CUDA - (OS.UBUNTU_2404_X86_64, ScalarType.DEFAULT, GPUPlatform.CUDA): Arch( + (OS.UBUNTU_2404_X86_64, ScalarType.DEFAULT, IntType.DEFAULT, GPUPlatform.CUDA): Arch( name="default-cuda", system_packages=[ "bison", @@ -736,7 +806,7 @@ OFFICIAL_ARCHS: Mapping[ArchKey, Arch] = { # macOS arm64 - (OS.MACOS_ARM64, ScalarType.DEFAULT, GPUPlatform.NO_GPU): Arch( + (OS.MACOS_ARM64, ScalarType.DEFAULT, IntType.DEFAULT, GPUPlatform.NO_GPU): Arch( name="default", system_packages=[ "autoconf", @@ -789,7 +859,7 @@ OFFICIAL_ARCHS: Mapping[ArchKey, Arch] = { extra_env_vars={"HDF5_DIR": "/opt/homebrew"}, ), - (OS.MACOS_ARM64, ScalarType.COMPLEX, GPUPlatform.NO_GPU): Arch( + (OS.MACOS_ARM64, ScalarType.COMPLEX, IntType.DEFAULT, GPUPlatform.NO_GPU): Arch( name="complex", system_packages=[ "autoconf", @@ -843,9 +913,63 @@ OFFICIAL_ARCHS: Mapping[ArchKey, Arch] = { extra_env_vars={"HDF5_DIR": "/opt/homebrew"}, ), + (OS.MACOS_ARM64, ScalarType.DEFAULT, IntType.INT64, GPUPlatform.NO_GPU): Arch( + name="int64", + system_packages=[ + "autoconf", + "automake", + "boost", + "gcc", + "libtool", + "make", + "ninja", + "pkg-config", + "python", + + # PETSc external packages + "cmake", + "fftw", + "hwloc", + "hdf5-mpi", + "metis", + "openblas", + "openmpi", + "pnetcdf", + "scalapack", + "suitesparse", + "zlib", + ], + extra_petsc_configure_options=[ + "--with-64-bit-indices", + # External packages + "--with-fftw-dir=/opt/homebrew", + "--with-hdf5-dir=/opt/homebrew", + "--with-hwloc-dir=/opt/homebrew", + "--with-metis-dir=/opt/homebrew", + "--with-pnetcdf-dir=/opt/homebrew", + "--with-scalapack-dir=/opt/homebrew", + "--with-suitesparse-dir=/opt/homebrew", + "--with-zlib-dir=/opt/homebrew", + "--download-bison", + "--download-hypre", + "--download-mumps", + "--download-netcdf", + "--download-ptscotch", + "--download-superlu_dist", + + # Avoid macos + openmpi + mumps segmentation violation issue; + # see https://github.com/firedrakeproject/firedrake/issues/4102 and https://github.com/firedrakeproject/firedrake/issues/4113. + "-download-mumps-avoid-mpi-in-place", + ], + cflags=["-O3", "-march=native", "-mtune=native"], + cxxflags=["-O3", "-march=native", "-mtune=native"], + fflags=["-O3"], + extra_env_vars={"HDF5_DIR": "/opt/homebrew"}, + ), + # Sane default configurations for unknown platforms - (OS.UNKNOWN, ScalarType.DEFAULT, GPUPlatform.NO_GPU): Arch( + (OS.UNKNOWN, ScalarType.DEFAULT, IntType.DEFAULT, GPUPlatform.NO_GPU): Arch( name="default", extra_petsc_configure_options=[ "--download-bison", @@ -872,7 +996,7 @@ OFFICIAL_ARCHS: Mapping[ArchKey, Arch] = { }, ), - (OS.UNKNOWN, ScalarType.COMPLEX, GPUPlatform.NO_GPU): Arch( + (OS.UNKNOWN, ScalarType.COMPLEX, IntType.DEFAULT, GPUPlatform.NO_GPU): Arch( name="complex", extra_petsc_configure_options=[ "--with-scalar-type=complex", @@ -899,6 +1023,34 @@ OFFICIAL_ARCHS: Mapping[ArchKey, Arch] = { "CC": "mpicc", }, ), + + (OS.UNKNOWN, ScalarType.DEFAULT, IntType.INT64, GPUPlatform.NO_GPU): Arch( + name="int64", + extra_petsc_configure_options=[ + "--with-64-bit-indices", + "--download-bison", + "--download-fftw", + "--download-hdf5", + "--download-hwloc", + "--download-hypre", + "--download-metis", + "--download-mumps", + "--download-netcdf", + "--download-pnetcdf", + "--download-ptscotch", + "--download-scalapack", + "--download-suitesparse", + "--download-superlu_dist", + "--download-zlib", + ], + cflags=["-O3", "-march=native", "-mtune=native"], + cxxflags=["-O3", "-march=native", "-mtune=native"], + fflags=["-O3", "-march=native", "-mtune=native"], + extra_env_vars={ + "HDF5_DIR": "$PETSC_DIR/$PETSC_ARCH", + "CC": "mpicc", + }, + ), } From b9fd23a242a23bdccb3ccc5add2f76ae8e3d67e7 Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Thu, 16 Jul 2026 12:02:16 +0100 Subject: [PATCH 04/14] add int64 config --- .github/actions/install/action.yml | 8 +++ .github/workflows/core.yml | 5 +- scripts/firedrake-configure | 106 +++++++++++++++++++++++++++-- 3 files changed, 112 insertions(+), 7 deletions(-) diff --git a/.github/actions/install/action.yml b/.github/actions/install/action.yml index 8ba3dbbe57..9d114dc1c0 100644 --- a/.github/actions/install/action.yml +++ b/.github/actions/install/action.yml @@ -17,6 +17,10 @@ inputs: description: Scalar type ('default' or 'complex') type: string default: default + int_type: + description: Integer type ('default' or '64bit') + type: string + default: default gpu: description: Target GPU platform type: string @@ -53,6 +57,7 @@ runs: apt-get -y install \ $(python3 ./firedrake-repo/scripts/firedrake-configure \ --scalar-type ${{ inputs.scalar_type }} \ + --int-type ${{ inputs.int_type }} \ --gpu-arch ${{ inputs.gpu }} \ --show-system-packages) : # Dependencies needed to run the test suite @@ -66,6 +71,7 @@ runs: brew install \ $(python3 ./firedrake-repo/scripts/firedrake-configure \ --scalar-type ${{ inputs.scalar_type }} \ + --int-type ${{ inputs.int_type }} \ --show-system-packages) else echo "Unrecognised 'os' input: '${{ inputs.os }}" @@ -101,6 +107,7 @@ runs: cd petsc python3 ../firedrake-repo/scripts/firedrake-configure \ --scalar-type ${{ inputs.scalar_type }} \ + --int-type ${{ inputs.int_type }} \ --gpu-arch ${{ inputs.gpu }} \ --show-petsc-configure-options | \ xargs -L1 ./configure \ @@ -114,6 +121,7 @@ runs: run: | export $(python3 ./firedrake-repo/scripts/firedrake-configure \ --scalar-type ${{ inputs.scalar_type }} \ + --int-type ${{ inputs.int_type }} \ --gpu-arch ${{ inputs.gpu }} \ --show-env) export SLEPC_DIR=$PETSC_DIR/$PETSC_ARCH diff --git a/.github/workflows/core.yml b/.github/workflows/core.yml index 5b81e8831e..cf4ac5c33b 100644 --- a/.github/workflows/core.yml +++ b/.github/workflows/core.yml @@ -270,7 +270,7 @@ jobs: id: generate run: | if [ ${{ inputs.test_complex }} == 'true' ]; then - matrix='{"scalar_type": "complex", "gpu": "none"}' + matrix='{"scalar_type": "complex", "int_type": "default", "gpu": "none"}' fi if [ ${{ inputs.test_int64 }} == 'true' ]; then arch='{"scalar_type": "default", "gpu": "none", "int_type": "64bit"}' @@ -281,7 +281,7 @@ jobs: fi fi if [ ${{ inputs.test_cuda }} == 'true' ]; then - arch='{"scalar_type": "default", "gpu": "cuda"}' + arch='{"scalar_type": "default", "int_type": "default", "gpu": "cuda"}' if [ "$matrix" ]; then matrix="$matrix, $arch" else @@ -335,6 +335,7 @@ jobs: source_ref: ${{ inputs.source_ref }} base_ref: ${{ inputs.base_ref }} scalar_type: ${{ matrix.scalar_type }} + int_type: ${{ matrix.int_type }} gpu: ${{ matrix.gpu }} deps: ci diff --git a/scripts/firedrake-configure b/scripts/firedrake-configure index e4b210ccd5..791a4bbf59 100755 --- a/scripts/firedrake-configure +++ b/scripts/firedrake-configure @@ -72,9 +72,10 @@ def main(): os_ = OS(args.os) if args.os else detect_os() scalar_type = ScalarType(args.scalar_type) + int_type = IntType(args.int_type) gpu_arch = GPUPlatform(args.gpu_arch) - arch_key = (os_, scalar_type, gpu_arch) + arch_key = (os_, scalar_type, int_type, gpu_arch) arch_key_str = f"{{{', '.join(f'{k.__class__.__name__}: {k.value}' for k in arch_key)}}}" if arch_key in OFFICIAL_ARCHS: arch = OFFICIAL_ARCHS[arch_key] @@ -162,6 +163,12 @@ Please see https://firedrakeproject.org/install for more information.""" default=ScalarType.DEFAULT.value, help="PETSc scalar type.", ) + parser.add_argument( + "--int-type", + choices=[it.value for it in IntType], + default=IntType.DEFAULT.value, + help="PETSc integer type.", + ) parser.add_argument( "--gpu-arch", choices=[gpu_opt.value for gpu_opt in GPUPlatform], @@ -1060,7 +1067,7 @@ RETIRED_ARCHS: Mapping[ArchKey, RetiredArch] = { # Ubuntu 24.04 x86 - (OS.UBUNTU_2404_X86_64, ScalarType.DEFAULT, GPUPlatform.NO_GPU): RetiredArch( + (OS.UBUNTU_2404_X86_64, ScalarType.DEFAULT, IntType.DEFAULT, GPUPlatform.NO_GPU): RetiredArch( name="default", last_modified="2026-05-13", system_packages=[ @@ -1122,7 +1129,7 @@ RETIRED_ARCHS: Mapping[ArchKey, RetiredArch] = { ], ), - (OS.UBUNTU_2404_X86_64, ScalarType.COMPLEX, GPUPlatform.NO_GPU): RetiredArch( + (OS.UBUNTU_2404_X86_64, ScalarType.COMPLEX, IntType.DEFAULT, GPUPlatform.NO_GPU): RetiredArch( name="complex", last_modified="2026-05-13", system_packages=[ @@ -1186,7 +1193,7 @@ RETIRED_ARCHS: Mapping[ArchKey, RetiredArch] = { # Ubuntu 24.04 aarch64 - (OS.UBUNTU_2404_AARCH64, ScalarType.DEFAULT, GPUPlatform.NO_GPU): RetiredArch( + (OS.UBUNTU_2404_AARCH64, ScalarType.DEFAULT, IntType.DEFAULT, GPUPlatform.NO_GPU): RetiredArch( name="default", last_modified="2026-05-13", system_packages=[ @@ -1248,7 +1255,7 @@ RETIRED_ARCHS: Mapping[ArchKey, RetiredArch] = { ], ), - (OS.UBUNTU_2404_AARCH64, ScalarType.COMPLEX, GPUPlatform.NO_GPU): RetiredArch( + (OS.UBUNTU_2404_AARCH64, ScalarType.COMPLEX, IntType.DEFAULT, GPUPlatform.NO_GPU): RetiredArch( name="complex", last_modified="2026-05-13", system_packages=[ @@ -1309,6 +1316,95 @@ RETIRED_ARCHS: Mapping[ArchKey, RetiredArch] = { "/usr/lib/aarch64-linux-gnu/hdf5/openmpi", ], ), + + (OS.UBUNTU_2404_X86_64, ScalarType.DEFAULT, IntType.DEFAULT, GPUPlatform.HIP): CommunityArch( + name="default-hip", + maintainer="the G-ADOPT team", + contact="at help@gadopt.org", + last_modified="2026-07-07", + system_packages=[ + "bison", + "build-essential", + "cmake", + "flex", + "gfortran", + "git", + "ninja-build", + "pkg-config", + "python3-dev", + "python3-pip", + + # PETSc external packages + "libfftw3-dev", + "libfftw3-mpi-dev", + "libhwloc-dev", + "libhdf5-mpi-dev", + "libmumps-ptscotch-dev", + "libmetis-dev", + "libnetcdf-dev", + "libopenblas-dev", + "libopenmpi-dev", + "libpnetcdf-dev", + "libptscotch-dev", + "libscalapack-openmpi-dev", + + # HIP packages + "rocm-hip-libraries", + "rocm-hip-runtime", + "rocm-language-runtime", + "rocm-ml-libraries", + "rocm-opencl-runtime", + "rocm-developer-tools", + "rocm-hip-runtime-dev", + "rocm-hip-sdk", + "rocm-opencl-sdk", + "rocm-openmp-sdk" + ], + extra_petsc_configure_options=[ + "--with-bison", + "--with-fftw", + "--with-hdf5", + "--with-hwloc", + "--with-metis", + "--with-mumps", + "--with-netcdf", + "--with-pnetcdf", + "--with-ptscotch", + "--with-scalapack-lib=-lscalapack-openmpi", + "--with-zlib", + "--download-hypre", + "--download-suitesparse", + "--download-superlu_dist", + + # HIP options + "--with-hip=1", + "--with-hip-dir=/opt/rocm", + "--with-hip-arch=gfx90a", + "--with-openmp=1", + "--with-cxx-dialect=c++17", + "--download-umpire", + ], + cflags=["-O3", "-march=native", "-mtune=native"], + cxxflags=["-O3", "-march=native", "-mtune=native"], + fflags=["-O3", "-march=native", "-mtune=native"], + include_dirs=[ + "/usr/include/hdf5/openmpi", + "/usr/include/scotch", + "/usr/include/superlu", + "/usr/include/superlu-dist", + ], + library_dirs=[ + "/usr/lib/x86_64-linux-gnu/hdf5/openmpi", + ], + # Note - must be set before PETSc install + extra_env_vars={ + "CMAKE_PREFIX_PATH": "/opt/rocm/lib/cmake/hip:/opt/rocm/lib/cmake/hipblas:/opt/rocm/lib/cmake/hipblas-common:/opt/rocm/lib/cmake/rocsolver:/opt/rocm/lib/cmake/rocblas", + }, + # See https://rocm.docs.amd.com/projects/install-on-linux/en/latest/install/quick-start.html for latest + # installer package URL. + # Must be installed with apt (not dpkg). + extra_url="https://repo.radeon.com/amdgpu-install/7.2.4/ubuntu/noble/amdgpu-install_7.2.4.70204-1_all.deb", + ), } From 759b3d3b8e8680941095a60a63ea441dbcabe75f Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Thu, 16 Jul 2026 12:16:02 +0100 Subject: [PATCH 05/14] 64bit -> int64 --- .github/actions/install/action.yml | 2 +- .github/workflows/core.yml | 2 +- scripts/firedrake-configure | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/actions/install/action.yml b/.github/actions/install/action.yml index 9d114dc1c0..4243dbc78a 100644 --- a/.github/actions/install/action.yml +++ b/.github/actions/install/action.yml @@ -18,7 +18,7 @@ inputs: type: string default: default int_type: - description: Integer type ('default' or '64bit') + description: Integer type ('default' or 'int64') type: string default: default gpu: diff --git a/.github/workflows/core.yml b/.github/workflows/core.yml index cf4ac5c33b..df71063d12 100644 --- a/.github/workflows/core.yml +++ b/.github/workflows/core.yml @@ -273,7 +273,7 @@ jobs: matrix='{"scalar_type": "complex", "int_type": "default", "gpu": "none"}' fi if [ ${{ inputs.test_int64 }} == 'true' ]; then - arch='{"scalar_type": "default", "gpu": "none", "int_type": "64bit"}' + arch='{"scalar_type": "default", "gpu": "none", "int_type": "int64"}' if [ "$matrix" ]; then matrix="$matrix, $arch" else diff --git a/scripts/firedrake-configure b/scripts/firedrake-configure index 791a4bbf59..1e03c144d5 100755 --- a/scripts/firedrake-configure +++ b/scripts/firedrake-configure @@ -259,7 +259,7 @@ class ScalarType(enum.Enum): class IntType(enum.Enum): DEFAULT = "default" - INT64 = "64bit" + INT64 = "int64" class GPUPlatform(enum.Enum): From e62c4ae11fe6a038bed327df12059b6b797190ff Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Thu, 16 Jul 2026 12:16:11 +0100 Subject: [PATCH 06/14] install docs fixes --- docs/source/install.rst | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/docs/source/install.rst b/docs/source/install.rst index 01e58dc6d8..0ec1acd9b9 100644 --- a/docs/source/install.rst +++ b/docs/source/install.rst @@ -418,11 +418,13 @@ packages are built. The currently supported ARCHs are: * ``default``: the default installation, suitable for most users * ``complex``: an installation where PETSc is configured using complex numbers +* ``int64``: an installation where PETSc uses 64-bit integer indices -The different configurations can be selected by passing the flag ``--arch`` to -``firedrake-configure``. For example:: +The scalar and integer configurations can be selected by passing ``--arch`` and +``--int-type``, respectively, to ``firedrake-configure``. For example:: $ python3 firedrake-configure --show-petsc-configure-options --arch complex + $ python3 firedrake-configure --show-petsc-configure-options --int-type int64 Optional dependencies @@ -498,10 +500,9 @@ Customising PETSc Since ``firedrake-configure`` only outputs a string of options it is straightforward to customise the options that are passed to PETSc ``configure``. You can either: -* Append additional options when ``configure`` is invoked. For example, to - build PETSc with support for 64-bit indices you should run:: +* Append additional options when ``configure`` is invoked. For example:: - $ python3 ../firedrake-configure --show-petsc-configure-options | xargs -L1 ./configure --with-64-bit-indices + $ python3 ../firedrake-configure --show-petsc-configure-options | xargs -L1 ./configure * Write the output of ``firedrake-configure`` to a file than can be modified. For example:: From 760eefa46548927acbac3a4771275b90670d4850 Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Thu, 16 Jul 2026 12:22:59 +0100 Subject: [PATCH 07/14] tidy --- .github/workflows/core.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/core.yml b/.github/workflows/core.yml index df71063d12..efbd762995 100644 --- a/.github/workflows/core.yml +++ b/.github/workflows/core.yml @@ -273,7 +273,7 @@ jobs: matrix='{"scalar_type": "complex", "int_type": "default", "gpu": "none"}' fi if [ ${{ inputs.test_int64 }} == 'true' ]; then - arch='{"scalar_type": "default", "gpu": "none", "int_type": "int64"}' + arch='{"scalar_type": "default", "int_type": "int64", "gpu": "none"}' if [ "$matrix" ]; then matrix="$matrix, $arch" else From 8c050494769dc92df891b08191e4101056799563 Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Thu, 16 Jul 2026 12:35:02 +0100 Subject: [PATCH 08/14] download metis for int64 builds --- scripts/firedrake-configure | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/scripts/firedrake-configure b/scripts/firedrake-configure index 1e03c144d5..f19d5b9025 100755 --- a/scripts/firedrake-configure +++ b/scripts/firedrake-configure @@ -563,7 +563,6 @@ OFFICIAL_ARCHS: Mapping[ArchKey, Arch] = { "libhwloc-dev", "libhypre-dev", "libmumps-ptscotch-dev", - "libmetis-dev", "libnetcdf-dev", "libopenblas-dev", "libopenmpi-dev", @@ -581,7 +580,7 @@ OFFICIAL_ARCHS: Mapping[ArchKey, Arch] = { "--with-hdf5", "--with-hwloc", "--with-hypre", - "--with-metis", + "--download-metis", "--with-mumps", "--with-netcdf", "--with-pnetcdf", @@ -938,7 +937,6 @@ OFFICIAL_ARCHS: Mapping[ArchKey, Arch] = { "fftw", "hwloc", "hdf5-mpi", - "metis", "openblas", "openmpi", "pnetcdf", @@ -952,13 +950,13 @@ OFFICIAL_ARCHS: Mapping[ArchKey, Arch] = { "--with-fftw-dir=/opt/homebrew", "--with-hdf5-dir=/opt/homebrew", "--with-hwloc-dir=/opt/homebrew", - "--with-metis-dir=/opt/homebrew", "--with-pnetcdf-dir=/opt/homebrew", "--with-scalapack-dir=/opt/homebrew", "--with-suitesparse-dir=/opt/homebrew", "--with-zlib-dir=/opt/homebrew", "--download-bison", "--download-hypre", + "--download-metis", "--download-mumps", "--download-netcdf", "--download-ptscotch", From dd95a6e4f387016c770dc9919fe7e00fe3639f4d Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Thu, 16 Jul 2026 12:37:16 +0100 Subject: [PATCH 09/14] update example in install docs --- docs/source/install.rst | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/source/install.rst b/docs/source/install.rst index 0ec1acd9b9..9f75409a58 100644 --- a/docs/source/install.rst +++ b/docs/source/install.rst @@ -500,9 +500,10 @@ Customising PETSc Since ``firedrake-configure`` only outputs a string of options it is straightforward to customise the options that are passed to PETSc ``configure``. You can either: -* Append additional options when ``configure`` is invoked. For example:: +* Append additional options when ``configure`` is invoked. For example, to + build PETSc with HPDDM you should run:: - $ python3 ../firedrake-configure --show-petsc-configure-options | xargs -L1 ./configure + $ python3 ../firedrake-configure --show-petsc-configure-options | xargs -L1 ./configure --download-hpddm * Write the output of ``firedrake-configure`` to a file than can be modified. For example:: From a1d153004aaa6da91b056d3828d67d761031edb8 Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Thu, 16 Jul 2026 12:51:31 +0100 Subject: [PATCH 10/14] remove macos int64 arch, download superlu-dist --- scripts/firedrake-configure | 57 +------------------------------------ 1 file changed, 1 insertion(+), 56 deletions(-) diff --git a/scripts/firedrake-configure b/scripts/firedrake-configure index f19d5b9025..779fae48ca 100755 --- a/scripts/firedrake-configure +++ b/scripts/firedrake-configure @@ -571,7 +571,6 @@ OFFICIAL_ARCHS: Mapping[ArchKey, Arch] = { "libscalapack-openmpi-dev", "libsuitesparse-dev", "libsuperlu-dev", - "libsuperlu-dist-dev", ], extra_petsc_configure_options=[ "--with-64-bit-indices", @@ -589,7 +588,7 @@ OFFICIAL_ARCHS: Mapping[ArchKey, Arch] = { "--with-ptscotch-include=/usr/include/scotch", "--with-scalapack-lib=-lscalapack-openmpi", "--with-suitesparse", - "--with-superlu_dist", + "--download-superlu_dist", "--with-zlib", ], cflags=["-O3", "-march=native", "-mtune=native"], @@ -599,7 +598,6 @@ OFFICIAL_ARCHS: Mapping[ArchKey, Arch] = { "/usr/include/hdf5/openmpi", "/usr/include/hypre", "/usr/include/superlu", - "/usr/include/superlu-dist", ], library_dirs=[ "/usr/lib/x86_64-linux-gnu/hdf5/openmpi", @@ -919,59 +917,6 @@ OFFICIAL_ARCHS: Mapping[ArchKey, Arch] = { extra_env_vars={"HDF5_DIR": "/opt/homebrew"}, ), - (OS.MACOS_ARM64, ScalarType.DEFAULT, IntType.INT64, GPUPlatform.NO_GPU): Arch( - name="int64", - system_packages=[ - "autoconf", - "automake", - "boost", - "gcc", - "libtool", - "make", - "ninja", - "pkg-config", - "python", - - # PETSc external packages - "cmake", - "fftw", - "hwloc", - "hdf5-mpi", - "openblas", - "openmpi", - "pnetcdf", - "scalapack", - "suitesparse", - "zlib", - ], - extra_petsc_configure_options=[ - "--with-64-bit-indices", - # External packages - "--with-fftw-dir=/opt/homebrew", - "--with-hdf5-dir=/opt/homebrew", - "--with-hwloc-dir=/opt/homebrew", - "--with-pnetcdf-dir=/opt/homebrew", - "--with-scalapack-dir=/opt/homebrew", - "--with-suitesparse-dir=/opt/homebrew", - "--with-zlib-dir=/opt/homebrew", - "--download-bison", - "--download-hypre", - "--download-metis", - "--download-mumps", - "--download-netcdf", - "--download-ptscotch", - "--download-superlu_dist", - - # Avoid macos + openmpi + mumps segmentation violation issue; - # see https://github.com/firedrakeproject/firedrake/issues/4102 and https://github.com/firedrakeproject/firedrake/issues/4113. - "-download-mumps-avoid-mpi-in-place", - ], - cflags=["-O3", "-march=native", "-mtune=native"], - cxxflags=["-O3", "-march=native", "-mtune=native"], - fflags=["-O3"], - extra_env_vars={"HDF5_DIR": "/opt/homebrew"}, - ), - # Sane default configurations for unknown platforms (OS.UNKNOWN, ScalarType.DEFAULT, IntType.DEFAULT, GPUPlatform.NO_GPU): Arch( From 060f6493ceddc9adbdbe3b849de696520287c4b9 Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Thu, 16 Jul 2026 12:56:16 +0100 Subject: [PATCH 11/14] default -> int32 --- .github/actions/install/action.yml | 4 ++-- .github/workflows/core.yml | 4 ++-- scripts/firedrake-configure | 32 +++++++++++++++--------------- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/.github/actions/install/action.yml b/.github/actions/install/action.yml index 4243dbc78a..54c1411d7f 100644 --- a/.github/actions/install/action.yml +++ b/.github/actions/install/action.yml @@ -18,9 +18,9 @@ inputs: type: string default: default int_type: - description: Integer type ('default' or 'int64') + description: Integer type ('int32' or 'int64') type: string - default: default + default: int32 gpu: description: Target GPU platform type: string diff --git a/.github/workflows/core.yml b/.github/workflows/core.yml index efbd762995..b648bf2715 100644 --- a/.github/workflows/core.yml +++ b/.github/workflows/core.yml @@ -270,7 +270,7 @@ jobs: id: generate run: | if [ ${{ inputs.test_complex }} == 'true' ]; then - matrix='{"scalar_type": "complex", "int_type": "default", "gpu": "none"}' + matrix='{"scalar_type": "complex", "int_type": "int32", "gpu": "none"}' fi if [ ${{ inputs.test_int64 }} == 'true' ]; then arch='{"scalar_type": "default", "int_type": "int64", "gpu": "none"}' @@ -281,7 +281,7 @@ jobs: fi fi if [ ${{ inputs.test_cuda }} == 'true' ]; then - arch='{"scalar_type": "default", "int_type": "default", "gpu": "cuda"}' + arch='{"scalar_type": "default", "int_type": "int32", "gpu": "cuda"}' if [ "$matrix" ]; then matrix="$matrix, $arch" else diff --git a/scripts/firedrake-configure b/scripts/firedrake-configure index 779fae48ca..a4ed62858b 100755 --- a/scripts/firedrake-configure +++ b/scripts/firedrake-configure @@ -166,7 +166,7 @@ Please see https://firedrakeproject.org/install for more information.""" parser.add_argument( "--int-type", choices=[it.value for it in IntType], - default=IntType.DEFAULT.value, + default=IntType.INT32.value, help="PETSc integer type.", ) parser.add_argument( @@ -258,7 +258,7 @@ class ScalarType(enum.Enum): class IntType(enum.Enum): - DEFAULT = "default" + INT32 = "int32" INT64 = "int64" @@ -420,7 +420,7 @@ OFFICIAL_ARCHS: Mapping[ArchKey, Arch] = { # Ubuntu 26.04 x86 - (OS.UBUNTU_2604_X86_64, ScalarType.DEFAULT, IntType.DEFAULT, GPUPlatform.NO_GPU): Arch( + (OS.UBUNTU_2604_X86_64, ScalarType.DEFAULT, IntType.INT32, GPUPlatform.NO_GPU): Arch( name="default", system_packages=[ "bison", @@ -482,7 +482,7 @@ OFFICIAL_ARCHS: Mapping[ArchKey, Arch] = { ], ), - (OS.UBUNTU_2604_X86_64, ScalarType.COMPLEX, IntType.DEFAULT, GPUPlatform.NO_GPU): Arch( + (OS.UBUNTU_2604_X86_64, ScalarType.COMPLEX, IntType.INT32, GPUPlatform.NO_GPU): Arch( name="complex", system_packages=[ "bison", @@ -606,7 +606,7 @@ OFFICIAL_ARCHS: Mapping[ArchKey, Arch] = { # Ubuntu 26.04 aarch64 - (OS.UBUNTU_2604_AARCH64, ScalarType.DEFAULT, IntType.DEFAULT, GPUPlatform.NO_GPU): Arch( + (OS.UBUNTU_2604_AARCH64, ScalarType.DEFAULT, IntType.INT32, GPUPlatform.NO_GPU): Arch( name="default", system_packages=[ "bison", @@ -668,7 +668,7 @@ OFFICIAL_ARCHS: Mapping[ArchKey, Arch] = { ], ), - (OS.UBUNTU_2604_AARCH64, ScalarType.COMPLEX, IntType.DEFAULT, GPUPlatform.NO_GPU): Arch( + (OS.UBUNTU_2604_AARCH64, ScalarType.COMPLEX, IntType.INT32, GPUPlatform.NO_GPU): Arch( name="complex", system_packages=[ "bison", @@ -730,7 +730,7 @@ OFFICIAL_ARCHS: Mapping[ArchKey, Arch] = { # Ubuntu 26.04 x86 CUDA - (OS.UBUNTU_2404_X86_64, ScalarType.DEFAULT, IntType.DEFAULT, GPUPlatform.CUDA): Arch( + (OS.UBUNTU_2404_X86_64, ScalarType.DEFAULT, IntType.INT32, GPUPlatform.CUDA): Arch( name="default-cuda", system_packages=[ "bison", @@ -810,7 +810,7 @@ OFFICIAL_ARCHS: Mapping[ArchKey, Arch] = { # macOS arm64 - (OS.MACOS_ARM64, ScalarType.DEFAULT, IntType.DEFAULT, GPUPlatform.NO_GPU): Arch( + (OS.MACOS_ARM64, ScalarType.DEFAULT, IntType.INT32, GPUPlatform.NO_GPU): Arch( name="default", system_packages=[ "autoconf", @@ -863,7 +863,7 @@ OFFICIAL_ARCHS: Mapping[ArchKey, Arch] = { extra_env_vars={"HDF5_DIR": "/opt/homebrew"}, ), - (OS.MACOS_ARM64, ScalarType.COMPLEX, IntType.DEFAULT, GPUPlatform.NO_GPU): Arch( + (OS.MACOS_ARM64, ScalarType.COMPLEX, IntType.INT32, GPUPlatform.NO_GPU): Arch( name="complex", system_packages=[ "autoconf", @@ -919,7 +919,7 @@ OFFICIAL_ARCHS: Mapping[ArchKey, Arch] = { # Sane default configurations for unknown platforms - (OS.UNKNOWN, ScalarType.DEFAULT, IntType.DEFAULT, GPUPlatform.NO_GPU): Arch( + (OS.UNKNOWN, ScalarType.DEFAULT, IntType.INT32, GPUPlatform.NO_GPU): Arch( name="default", extra_petsc_configure_options=[ "--download-bison", @@ -946,7 +946,7 @@ OFFICIAL_ARCHS: Mapping[ArchKey, Arch] = { }, ), - (OS.UNKNOWN, ScalarType.COMPLEX, IntType.DEFAULT, GPUPlatform.NO_GPU): Arch( + (OS.UNKNOWN, ScalarType.COMPLEX, IntType.INT32, GPUPlatform.NO_GPU): Arch( name="complex", extra_petsc_configure_options=[ "--with-scalar-type=complex", @@ -1010,7 +1010,7 @@ RETIRED_ARCHS: Mapping[ArchKey, RetiredArch] = { # Ubuntu 24.04 x86 - (OS.UBUNTU_2404_X86_64, ScalarType.DEFAULT, IntType.DEFAULT, GPUPlatform.NO_GPU): RetiredArch( + (OS.UBUNTU_2404_X86_64, ScalarType.DEFAULT, IntType.INT32, GPUPlatform.NO_GPU): RetiredArch( name="default", last_modified="2026-05-13", system_packages=[ @@ -1072,7 +1072,7 @@ RETIRED_ARCHS: Mapping[ArchKey, RetiredArch] = { ], ), - (OS.UBUNTU_2404_X86_64, ScalarType.COMPLEX, IntType.DEFAULT, GPUPlatform.NO_GPU): RetiredArch( + (OS.UBUNTU_2404_X86_64, ScalarType.COMPLEX, IntType.INT32, GPUPlatform.NO_GPU): RetiredArch( name="complex", last_modified="2026-05-13", system_packages=[ @@ -1136,7 +1136,7 @@ RETIRED_ARCHS: Mapping[ArchKey, RetiredArch] = { # Ubuntu 24.04 aarch64 - (OS.UBUNTU_2404_AARCH64, ScalarType.DEFAULT, IntType.DEFAULT, GPUPlatform.NO_GPU): RetiredArch( + (OS.UBUNTU_2404_AARCH64, ScalarType.DEFAULT, IntType.INT32, GPUPlatform.NO_GPU): RetiredArch( name="default", last_modified="2026-05-13", system_packages=[ @@ -1198,7 +1198,7 @@ RETIRED_ARCHS: Mapping[ArchKey, RetiredArch] = { ], ), - (OS.UBUNTU_2404_AARCH64, ScalarType.COMPLEX, IntType.DEFAULT, GPUPlatform.NO_GPU): RetiredArch( + (OS.UBUNTU_2404_AARCH64, ScalarType.COMPLEX, IntType.INT32, GPUPlatform.NO_GPU): RetiredArch( name="complex", last_modified="2026-05-13", system_packages=[ @@ -1260,7 +1260,7 @@ RETIRED_ARCHS: Mapping[ArchKey, RetiredArch] = { ], ), - (OS.UBUNTU_2404_X86_64, ScalarType.DEFAULT, IntType.DEFAULT, GPUPlatform.HIP): CommunityArch( + (OS.UBUNTU_2404_X86_64, ScalarType.DEFAULT, IntType.INT32, GPUPlatform.HIP): CommunityArch( name="default-hip", maintainer="the G-ADOPT team", contact="at help@gadopt.org", From 6d4b412b124175417b4cc8f224dba2a21344dd3a Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Thu, 16 Jul 2026 12:58:06 +0100 Subject: [PATCH 12/14] apply patch --- docs/source/install.rst | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/docs/source/install.rst b/docs/source/install.rst index 9f75409a58..a9a94b47a5 100644 --- a/docs/source/install.rst +++ b/docs/source/install.rst @@ -413,18 +413,16 @@ Prepared configurations ----------------------- ``firedrake-configure`` provides a number of different possible configurations -(termed 'ARCHs') that specify how PETSc is configured and which external -packages are built. The currently supported ARCHs are: +that specify how PETSc is configured and which external packages are built. To +select a non-default configuration you can pass extra flags to +``firedrake-configure``. For example, to build Firedrake in complex mode you +should pass ``--scalar-type complex``:: -* ``default``: the default installation, suitable for most users -* ``complex``: an installation where PETSc is configured using complex numbers -* ``int64``: an installation where PETSc uses 64-bit integer indices + $ python3 firedrake-configure --show-petsc-configure-options --scalar-type complex -The scalar and integer configurations can be selected by passing ``--arch`` and -``--int-type``, respectively, to ``firedrake-configure``. For example:: +To see the full list of available options you should run:: - $ python3 firedrake-configure --show-petsc-configure-options --arch complex - $ python3 firedrake-configure --show-petsc-configure-options --int-type int64 + $ python3 firedrake-configure --help Optional dependencies From 09535242348e321d20171eb90da80b3fa6499af3 Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Thu, 16 Jul 2026 13:10:56 +0100 Subject: [PATCH 13/14] download hypre, pt-scotch, mumps --- scripts/firedrake-configure | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/scripts/firedrake-configure b/scripts/firedrake-configure index a4ed62858b..577b17b4e3 100755 --- a/scripts/firedrake-configure +++ b/scripts/firedrake-configure @@ -561,13 +561,10 @@ OFFICIAL_ARCHS: Mapping[ArchKey, Arch] = { "libfftw3-mpi-dev", "libhdf5-mpi-dev", "libhwloc-dev", - "libhypre-dev", - "libmumps-ptscotch-dev", "libnetcdf-dev", "libopenblas-dev", "libopenmpi-dev", "libpnetcdf-dev", - "libptscotch-dev", "libscalapack-openmpi-dev", "libsuitesparse-dev", "libsuperlu-dev", @@ -578,14 +575,12 @@ OFFICIAL_ARCHS: Mapping[ArchKey, Arch] = { "--with-fftw", "--with-hdf5", "--with-hwloc", - "--with-hypre", + "--download-hypre", "--download-metis", - "--with-mumps", + "--download-mumps", "--with-netcdf", "--with-pnetcdf", - "--with-ptscotch", - "--with-ptscotch-lib='-lptesmumps -lptscotch -lptscotcherr -lesmumps -lscotch -lscotcherr'", - "--with-ptscotch-include=/usr/include/scotch", + "--download-ptscotch", "--with-scalapack-lib=-lscalapack-openmpi", "--with-suitesparse", "--download-superlu_dist", @@ -596,7 +591,6 @@ OFFICIAL_ARCHS: Mapping[ArchKey, Arch] = { fflags=["-O3", "-march=native", "-mtune=native"], include_dirs=[ "/usr/include/hdf5/openmpi", - "/usr/include/hypre", "/usr/include/superlu", ], library_dirs=[ From ac584c8be562a0815bd57aaccfff5848cf21646f Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Thu, 16 Jul 2026 13:59:51 +0100 Subject: [PATCH 14/14] fixup --- scripts/firedrake-configure | 89 ------------------------------------- 1 file changed, 89 deletions(-) diff --git a/scripts/firedrake-configure b/scripts/firedrake-configure index 577b17b4e3..9e2f45db55 100755 --- a/scripts/firedrake-configure +++ b/scripts/firedrake-configure @@ -1253,95 +1253,6 @@ RETIRED_ARCHS: Mapping[ArchKey, RetiredArch] = { "/usr/lib/aarch64-linux-gnu/hdf5/openmpi", ], ), - - (OS.UBUNTU_2404_X86_64, ScalarType.DEFAULT, IntType.INT32, GPUPlatform.HIP): CommunityArch( - name="default-hip", - maintainer="the G-ADOPT team", - contact="at help@gadopt.org", - last_modified="2026-07-07", - system_packages=[ - "bison", - "build-essential", - "cmake", - "flex", - "gfortran", - "git", - "ninja-build", - "pkg-config", - "python3-dev", - "python3-pip", - - # PETSc external packages - "libfftw3-dev", - "libfftw3-mpi-dev", - "libhwloc-dev", - "libhdf5-mpi-dev", - "libmumps-ptscotch-dev", - "libmetis-dev", - "libnetcdf-dev", - "libopenblas-dev", - "libopenmpi-dev", - "libpnetcdf-dev", - "libptscotch-dev", - "libscalapack-openmpi-dev", - - # HIP packages - "rocm-hip-libraries", - "rocm-hip-runtime", - "rocm-language-runtime", - "rocm-ml-libraries", - "rocm-opencl-runtime", - "rocm-developer-tools", - "rocm-hip-runtime-dev", - "rocm-hip-sdk", - "rocm-opencl-sdk", - "rocm-openmp-sdk" - ], - extra_petsc_configure_options=[ - "--with-bison", - "--with-fftw", - "--with-hdf5", - "--with-hwloc", - "--with-metis", - "--with-mumps", - "--with-netcdf", - "--with-pnetcdf", - "--with-ptscotch", - "--with-scalapack-lib=-lscalapack-openmpi", - "--with-zlib", - "--download-hypre", - "--download-suitesparse", - "--download-superlu_dist", - - # HIP options - "--with-hip=1", - "--with-hip-dir=/opt/rocm", - "--with-hip-arch=gfx90a", - "--with-openmp=1", - "--with-cxx-dialect=c++17", - "--download-umpire", - ], - cflags=["-O3", "-march=native", "-mtune=native"], - cxxflags=["-O3", "-march=native", "-mtune=native"], - fflags=["-O3", "-march=native", "-mtune=native"], - include_dirs=[ - "/usr/include/hdf5/openmpi", - "/usr/include/scotch", - "/usr/include/superlu", - "/usr/include/superlu-dist", - ], - library_dirs=[ - "/usr/lib/x86_64-linux-gnu/hdf5/openmpi", - ], - # Note - must be set before PETSc install - extra_env_vars={ - "CMAKE_PREFIX_PATH": "/opt/rocm/lib/cmake/hip:/opt/rocm/lib/cmake/hipblas:/opt/rocm/lib/cmake/hipblas-common:/opt/rocm/lib/cmake/rocsolver:/opt/rocm/lib/cmake/rocblas", - }, - # See https://rocm.docs.amd.com/projects/install-on-linux/en/latest/install/quick-start.html for latest - # installer package URL. - # Must be installed with apt (not dpkg). - extra_url="https://repo.radeon.com/amdgpu-install/7.2.4/ubuntu/noble/amdgpu-install_7.2.4.70204-1_all.deb", - ), }