-
Notifications
You must be signed in to change notification settings - Fork 160
Firedrake meeting 2022 09 21
Date and time 2022-09-21 15:00UTC (16:00BST)
- Pick Chair and Minuter (SV pick)
- ALL: (ongoing) triage the open issues and confirm if they are indeed still open (and perhaps provide labels)
- JB: Look into updating the
@parallel
test marker (ongoing) - DH: talk to Jemma about Firedrake 2022 (nearly done! Abstracts open next week hopefully)
- JB: SIAM CSE23 Minisymposium/minisymposterium
Present:
Apologies:
Koki to organise via slack
See #general for discussion on strong scaling - TK managed to get impressive strong scaling
- Overheads in assign, assembly and parloops which TK has coded around
- Able to get to 80% scaling efficiency with 200 MPI processes
- Good argument for switching
assign
to only allow numpy assignments (quick win)
CW has some thoughts given he's rewriting pyop2 (too quick to minute!)
TK not sure if issues are to do with checks and function calls at runtime in python
- DH says certainly some python overhead due to manipulation of
Arg
s
DH: LinearSolver
being faster than LinearVariationalSolver
sounds like a bug.
- Either there is a significant difference we haven't thought of, or we're doing something dumb.
TK: Could make a special version of LinearVariationalSolver
that has his optimisations.
- DH: Better would be to rewrite assemble as necessary which ought to be possible.
DH: Parloop caching?
- CW: Fact we're using python makes a big difference vs C
IDEA: wrap cached assignments/interpolations in Expression
.
Post rebase memory leaks fixed. Code reorganisation has been requested I will try and get this done this week.
JB getting segfaults since change of C style guide
- Not that we can tell...
DH: If you know your timestep loop structure you can improve memory usage. At the moment we leak solve blocks - pyadjoint doesn't know about what's repeated (e.g. loops in your code like a time step...)
- Can try writing an explicit continuous adjoint that knows about your time stepper
- Can also try to debug why storing solutions on the tape is causing so much memory usage (e.g. interpolate)
- Daiane will report back next time
Irksome: https://github.com/firedrakeproject/Irksome/pull/53
1600 UTC 2022-09-28
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