-
Notifications
You must be signed in to change notification settings - Fork 161
Firedrake meeting 2020 06 30
Date and time 2020-06-30 15:00UTC (16:00BST)
- Choose someone to minute and chair
- 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). Try an alternative description and make previously agreed changes.
- **: Think about the correct mathematical formulation for Filtered
- DH:
Find time to fix to get final complex sprint test passing.Now passing**: Review this. - **: Add
--remove-build-files
to make install smaller; convert this to an issue
Present: David Ham, Lawrence Mitchell, Paul Kelly, Reuben Hill, Sofia, Dan Shapero, Jack Betteridge, Koki Sagiyama, Matthew Kan, Nacime Bouziani, Rob Kirby, Sophia Vorderwuelbecke, Tom Gregory, Tuomas Karna
Apologies:
Should coordinates be in equispaced function space by default?
- vtk only supports equispaced FS
- Equispaced FS is okay if multilinear, but not if higher order
Should FunctionSpace
constructor have the variant as an argument?
- FEniCS allows for passing strings to constructor (which is a design error)
- FEniCSx (probably) fixes this by allowing for pasing "element"
Options:
- Use FunctionSpace(mesh, ..., **kwargs) and mimic how pyadjoint duplicates/removes contents of kwargs? (Can be messy for extruded cases as we have horizonal variant + vertical variant)
- Use FiniteElement as argument (ufl.FiniteElement constructor does not take meshes -> Drop mesh shell in "firedrake.FiniteElement".)
Immediate fix: Use "FunctionSpace(..., variant=...)"
PETSc are scoping ideas for 4.0, no idea is a priori off the table, are there things we wish they had?
See https://gitlab.com/petsc/petsc/-/issues?label_name%5B%5D=petsc-future for discussion so far.
This is a major number change.
Different implementation language?
- C++, ...
What we might want PETSc to have:
- Composable plexes
- FunctionSpaces -> might drop half of Firedrake to PETSc
- Runtime JIT
ALL: Jump into the discussion (using the link above) if you want some features to be added.
Loopy branch here https://github.com/firedrakeproject/loopy/pull/6/files PyOP2 branch here https://github.com/OP2/PyOP2/pull/581 Firedrake test run here https://github.com/firedrakeproject/firedrake/tree/trigger-tests-for-vec, 2 tests are still failing
Getting TJ's vectorisation done.
Two versions of vectorisation by TJ:
- vec datatype & pragma <- SV is using this, which is good.
- pragma only
Two tests are failing with --tree-vectrise off:
- diverge when solving.
- getting wrong answer :(
SV:
- Switch off --tree-vectrise
- Use docker and take a very small kernel (e.g., mass matrix)
- Look at the assembler to understand why we are getting wrong answer.
also:
- Check if we can reproduce this locally
- Can we reproduce it with PYOP2_DEBUG=1 ? (If No, maybe a gcc bug)
- complex
- vectorisation (mostly loopy)
Proposed workflow for vectorisation branches:
- merge loopy -> PyOP2 -> Firedrake
SV: check if loopy branch is fine -> we can merge loopy
2020-07-07 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