-
Notifications
You must be signed in to change notification settings - Fork 160
Firedrake meeting 2020 04 28
Date and time 2020-04-28 15:00UTC (16:00BST)
- ALL: (ongoing) triage the open issues and confirm if they are indeed still open (and perhaps provide labels)
- KS, (DH, LM): Document describing what we think the mixed domain interface should look like (and hence what is needed in UFL, and whether it matches the existing fenics efforts).
- DRS: See the related Firedrake issue, and start having a good at load/store plex objects. To make smart checkpoints
Present: David Ham, Lawrence Mitchell, Jack Betteridge, Koki Sagiyama, Nacime Bouziani, Sophia Vorderwuelbecke, Florian Wechsung, Reuben Hill, Thomas Gregory, Dan Shapero, Colin Cotter, Robert Kirby, Luke Olson
Apologies:
Rebuilding PETSc via firedrake-update --rebuild
when small changes have been made is time consuming while not required. Wiki page tackling this question : wiki page
Not discussed.
Briefing following the complex sprint that happened last week (cf. https://github.com/firedrakeproject/firedrake/wiki/MergeComplexSprint).
All the tests are now passing except two shape derivatives based tests in pyadjoint (firedrake_adjoint/test_dynamic_meshes.py
and firedrake_adjoint/test_shape_derivatives.py
).
Here is a write-up explaining the core issue: https://github.com/FEniCS/ufl/issues/21, the solution proposed is to add a hack in UFL so that conj
is correctly applied at the end of the process where needed. Long-term solutions would require deeper and more invasive changes in UFL.
There are still some deeper infrastructure questions that need to be addressed to land complex as soon as possible --> David's job
Complex mode doubles the load of test, potential solutions addressed :
- Stop testing every commits
- Only test when PRs are open
- Instead of testing the commit and the merge commit, just test the merge commits (should half the test load)
Florian: Add the hack to have shape derivatives tests working in complex
David: Tackle the remaining complex sprint items
Ready to be merged!
Dan: Open the PR
Tsfc side (adds code generation for shaped things in tsfc) is almost there.
For the firedrake side, a lot of things are inherent to the structure of the compiler initially written (cf. Thomas Gibson's work), these things are not necessary anymore -> Getting rid of them should alleviate the code.
There a 2 new shape operations:
- An inverse operation (for rank 2 tensors)
- A solve operation
Question: how are these operations represented in GEM?
Sophia: Expunge references to COFFEE
Lawrence: Go through the PRs
For anyone interested: https://github.com/firedrakeproject/isambard/tree/alternative_install The mechanism is working with firedrake master. Check changes in firedrake-install.
It is possible to land a fix using the Isambard branch. We can automatically detect when firedrake is installed if it is with Python 3.8 and pull the relevant wheel. It should make Python 3.8 land.
Jack: Add this mechanism
Use Isambard to run tests in parallel.
- Few problem noticed when parallelizing tests in Isambard, a workaround was found
- Fix pytests on supercomputer would require additional works
Jack: Use the workaround
Adds a line smoother that couples vertically aligned degrees of freedom in extruded meshes.
PR ready to be merged: https://github.com/firedrakeproject/firedrake/pull/1664)
Example of applications: gravity waves test problem
Manually add lines to pip install cached_property
and pkgconfig
should work.
Lecture about Mutligrid (Luke Olson) happening soon:
- Github link: https://github.com/lukeolson/imperial-multigrid
- Spreadsheet: https://docs.google.com/spreadsheets/d/13Z5VSijFgn3SGng9YJMfR8nRF8ATs4wpy7sgPFQEAk4/edit#gid=0
2020-05-05 15:00UTC (16:00BST)
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