-
Notifications
You must be signed in to change notification settings - Fork 160
Firedrake meeting 2022 09 28
Date and time 2022-09-28 15:00UTC (16:00BST)
- Pick Chair and Minuter (RNH 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 <- Deadline for abstracts is today!
Present: RNH KS CW DH JB DD
Apologies: SV NB
Hold onto your livers!
Opportunity to get some PETSc MRs though.
Discuss Joe Wallwork's work.
What would we like graduating JMC students to do as projects?
- 3 Maths students doing:
- Interface for eigenproblems (SLEPc)
- Pick up Mohammed/Melina adjoint improvements
- A third thing...
- Need more projects:
- Small amounts of functionality
- (Mathematical?) Problems
- RNH: Dual evaluation
- RNH: Hdiv + Hcurl element duals (No wait this is done)
- DH: Lagrangian particles
- JB: Previous minutes: PETSc GPU offloading and performance analysis
Delay due to the office being slow, can't pay for easy chair, can't set up the web shop.
Abstracts due today!
Created notebook with comparison of different taping schemes:
- Forward problem
- Forward - no annotation but save data
- Forward - annotate
- Forward - annotate with grad
DH: Some increase in memory consumption is expected. Perhaps not that much though... ... memory consumption doesn't looks so wrong, expecting O(1GB) memory usage. Computing adjoint should roughly double memory consumption.
DH: The adjoint is essentially a memory leak, one way around this is to use checkpointing (cf: Australia, solving Stokes, expensive timesteps, but relatively few). Another way around this is to use "revolve" type checkpointing (DH has nearly done this, but there are bugs), because there are cheap time steps, but lots of them. Alternatively, there is a factor 2 memory use associated with gradient computation. So long as you don't need the Hessian, you can discard the values associated to a block after its use.
DD: Every block has its corresponding dependence, trying to clean this dependence after it is no longer required.
DH: This won't quite work (even though textbooks say this is how it works). Adjoint works in reverse, the current block doesn't just depend on the next block but on some DAG containing anything in the set of all forward blocks. It is however true that when the adjoint of a block is computed nothing else in the adjoint calculation will use the adjoint inputs, or the forward values in the output of the block (aasuming you aren't calculating a Hessian, or something similar).
(JB: Someone should read over the above and check what I minuted makes sense)
See the following issue for a discussion: https://github.com/dolfin-adjoint/pyadjoint/issues/84
Also take a look at: https://www.dolfin-adjoint.org/en/latest/documentation/pyadjoint_api.html#pyadjoint.Tape.visualise
1600 UTC 2022-10-05
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