-
Notifications
You must be signed in to change notification settings - Fork 160
Firedrake meeting 2025 01 22
Date and time 2025-01-22 1600 UTC
- Pick Chair and Minuter (KS to pick)
- ALL: (ongoing) triage the open issues and confirm if they are indeed still open (and perhaps provide labels)
- ALL: do things with SV's branches
- DH: Email to Andreas to have 2 (+ others!!!) loopy PRs merged TODO: FIND OUT WHICH PRS THESE ARE
- DH: Get Firedrake a docker open source account (link here)
- DH: Talk to GregVernon about PR#2116.
- JB: Enable merge queues (minutes)
- LC: Try to merge RNH' PR: Movable VOM
- PB: Profile and speed up some tests (minutes, minutes)
- CW: Fix artefactsv3 issue
- CW: More testing configurations (minutes)
- All: Do JM's PRs transpose -> adjoint and Cofunction self-assignment via interpolate
Present: DD, DH, LC, CW, PB, JHC
Apologies:
Versioning would prevent us from accidentally breaking downstream packages with no warning.
- Should we version Firedrake and FIAT? How often would releases be? Semantic or date-based versioning?
- What about our forks of loopy and UFL?
- What about
firedrake-zenodo
?
Discussion:
- Yes we want to, previous aim has been to do it after pip install lands
- Biggest organisational barrier is how do you manage bugfixes - do you only add to main, and versions are static, do we bugfix in minor versions? How many versions do we maintain? Bugfixes then need to be applied multiple time. This will be a big change for firedrake contributors, but is potentially just necessary.
- Loopy is a problem - doesn't have versioning, and even if we make releases for our fork, we would also need to pin a release for all of loopy's upstream dependencies.
- PETSc seem to do calendar releases for minor release but rolling patches.
- Semantic versioning is hard to do properly. Calender releases are easier to organise (still having minor versioning for bugfixes).
- Calendar releases would be simple (e.g. 2025.1, 2025.2), but we then need to decide how to do bugfix patches (2025.1.1, 2025.1.2 etc) - do we only patch for bugs that have been directly affecting user code?
- One point of consideration is the fact that some of our dependencies (notably loopy) do not regularly make releases. I don't think versioning makes sense if we depend on non-versioned libraries.
- We need to keep Zenodo in mind - as long as we have the commit of each repo in our fork it should be fine, but we need to keep it in mind to avoid inadvertently breaking it.
https://github.com/firedrakeproject/firedrake/pull/3385 describes the changes made. This is valuable for migrating to a pip install as we can properly start using a system MPI.
- Now have a script for running parallel tests over multiple jobs - manages logic and makes sure we limit the total number of cores used.
- This script could also be used by downstream libraries - should be used by any CI on the Firedrake runners to limit the total number of cores.
- See comments on PR.
- Shouldn't use letter characters outside the 26 from the Latin alphabet.
- Changes requested. If these are fixed this PR can be approved and merged.
I think we can just:
- Update the install docs
- Make
firedrake-install
warn about not being maintained any more - Make an announcement in #general so people know
- Help downstream packages to migrate
- Can we drop MPICH at the same time? Downstream packages will need to change their CI anyway (which I can do for them).
Discussion:
- This is fantastic, thank you Connor and Jack!
- Yes if we can drop the requirement to build our own MPI that would be ideal. Default to whatever MPI is on the system we're building on.
Note that PRs put in this section should either be trivial or already have been reviewed. Discussion-worthy PRs should be separate agenda items.
KS: Fix hex interior-facet integrals - merged
CW: https://github.com/firedrakeproject/firedrake/pull/3976 - merged (we can now rebase and check PRs from JM)
CW: https://github.com/firedrakeproject/firedrake/pull/3982 - merged
IM: https://github.com/firedrakeproject/fiat/pull/130 - approved, merge pending a couple of small comments.
Skipping 2025-01-29. 1600 UTC 2025-01-29
Building locally
Tips
- Running Firedrake tests with different subpackage branches
- Modifying and Rebuilding PETSc and petsc4py
- Vectorisation
- Debugging C kernels with
lldb
on MacOS - Parallel MPI Debugging with
tmux-mpi
,pdb
andgdb
- Parallel MPI Debugging with VSCode and
debugpy
- Modifying generated code
- Kernel profiling with LIKWID
- breakpoint() builtin not working
- Debugging pytest with multiple processing
Developers Notes
- Upcoming meeting 2024-08-21
- 2024-08-07
- 2024-07-24
- 2024-07-17
- 2024-07-10
- 2024-06-26
- 2024-06-19
- 2024-06-05
- 2024-05-29
- 2024-05-15
- 2024-05-08
- 2024-05-01
- 2024-04-28
- 2024-04-17
- 2024-04-10
- 2024-04-03
- 2024-03-27
- 2024-03-20
- 2024-03-06
- 2024-02-28
- 2024-02-28
- 2024-02-21
- 2024-02-14
- 2024-02-07
- 2024-01-31
- 2024-01-24
- 2024-01-17
- 2024-01-10
- 2023-12-13
- 2023-12-06
- 2023-11-29
- 2023-11-22
- 2023-11-15
- 2023-11-08
- 2023-11-01
- 2023-10-25
- 2023-10-18
- 2023-10-11
- 2023-10-04
- 2023-09-27
- 2023-09-20
- 2023-09-06
- 2023-08-30
- 2023-08-23
- 2023-07-12
- 2023-07-05
- 2023-06-21
- 2023-06-14
- 2023-06-07
- 2023-05-17
- 2023-05-10
- 2023-03-08
- 2023-02-22
- 2023-02-15
- 2023-02-08
- 2023-01-18
- 2023-01-11
- 2023-12-14
- 2022-12-07
- 2022-11-23
- 2022-11-16
- 2022-11-09
- 2022-11-02
- 2022-10-26
- 2022-10-12
- 2022-10-05
- 2022-09-28
- 2022-09-21
- 2022-09-14
- 2022-09-07
- 2022-08-25
- 2022-08-11
- 2022-08-04
- 2022-07-28
- 2022-07-21
- 2022-07-07
- 2022-06-30
- 2022-06-23
- 2022-06-16
- 2022-05-26
- 2022-05-19
- 2022-05-12
- 2022-05-05
- 2022-04-21
- 2022-04-07
- 2022-03-17
- 2022-03-03
- 2022-02-24
- 2022-02-10
- 2022-02-03
- 2022-01-27
- 2022-01-20
- 2022-01-13
- 2021-12-15
- 2021-12-09
- 2021-11-25
- 2021-11-18
- 2021-11-11
- 2021-11-04
- 2021-10-28
- 2021-10-21
- 2021-10-14
- 2021-10-07
- 2021-09-30
- 2021-09-23
- 2021-09-09
- 2021-09-02
- 2021-08-26
- 2021-08-18
- 2021-08-11
- 2021-08-04
- 2021-07-28
- 2021-07-21
- 2021-07-14
- 2021-07-07
- 2021-06-30
- 2021-06-23
- 2021-06-16
- 2021-06-09
- 2021-06-02
- 2021-05-19
- 2021-05-12
- 2021-05-05
- 2021-04-28
- 2021-04-21
- 2021-04-14
- 2021-04-07
- 2021-03-17
- 2021-03-10
- 2021-02-24
- 2021-02-17
- 2021-02-10
- 2021-02-03
- 2021-01-27
- 2021-01-20
- 2021-01-13
- 2021-01-06