-
Notifications
You must be signed in to change notification settings - Fork 161
Firedrake meeting 2021 07 28
Date and time 2021-07-28 15:00UTC (16:00BST)
- Pick Chair and Minuter.
- ALL: (ongoing) triage the open issues and confirm if they are indeed still open (and perhaps provide labels)
- (JB, DH, KS, JW): Firedrake training happening 23rd August, update
- DH: Firedrake 2021 update
Present:
Apologies:
- 50 were registered people on Monday
- DH: by next week double-check Jupiter server is running
- website is up
- announcements to mailing list, Slack, fenics-slack, NA digest, SIAM CSE mailing list
- registration is not up yet (bureaucracy)
- abstract submission is open
RNH: Issue #2095 Loopy breaking Interpolation Kernels
Complex data types are getting into real mode PyOP2 Kernels (can't create a "Real" interpolator for example).
- issue removing complex node in expression compiler seems to insufficient (in form compiler it is at least called twice, see https://github.com/firedrakeproject/tsfc/blob/94aa4d548bd1cc5520a8490692e12f190287ea86/tsfc/ufl_utils.py#L119 I think)
From this issue it is suggested that the data part of a MixedDat
is just the concatenation of several Dats
. So a MixedDat
containing 3 Dats
of length n
and dim=3
would have shape (3, n, 3)
. How does this work if the Dats
have different dims
?
- moved to next week, needs a Lawrence!
I am currently trying to introduce a strict divide between the code generation and parloop execution stages in PyOP2. In order to do the code generation we need to know certain bits of information about the data we are operating on such as: dtype
, dim
(its local shape), map arity
, and access descriptor; but we don't want to tie ourselves to the actual data structures.
The suggestion is that these properties can be considered 'type' information for the Dat
/Map
/Global
etc. We could canonicalise this by declaring these attributes as explicit types. E.g. ScalarDatFloat64
or Global3Int32
(names to be bike-shedded). Code generation could then happen by only passing in the relevant type(dat)
instead of storing this information in some sort of namedtuple/dataclass.
There are some outstanding questions about this:
-
What do we do about 'type' information that is more varied (e.g. map
offset
)? -
What about mixed?
-
DH parloops only exist in connection to data -> Problems: memory leaks and circular reference hell
-
extrusion and offsets are an issue
-
moved to next week, needs a Lawrence!
See for example https://github.com/firedrakeproject/firedrake/runs/3181344420. Can code mistakes cause this to happen or is it a hardware problem?
- probably caused by segfaulting
- JB maybe debug with pytest -s so stdout is dumbed
- DH job handler is parallel so might cause issues, and also probably slows down the performance at which the tests run by a lot, or try run in docker
- test fail causes the worker to crash, but pytest detects it
- check if tests use MUMPS
See
- https://github.com/firedrakeproject/firedrake/pull/2115
- https://github.com/firedrakeproject/tsfc/pull/250
- https://github.com/FInAT/FInAT/pull/89
Possible regression due to multiplying by a bunch of zeros for stuff like high-order tets. Profiling suggestions welcome.
- RNH: People take a look, it's almost there.
- RNH: Some caveat with EnrichedElements, no sparse representation in GEM
2021-08-04 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