-
Notifications
You must be signed in to change notification settings - Fork 160
Firedrake meeting 2021 02 10
Date and time 2021-02-10 16:00UTC (16:00GMT)
- Pick Chair and Minuter.
- ALL: (ongoing) triage the open issues and confirm if they are indeed still open (and perhaps provide labels)
Present:
DH, LM, PK, CW, DS, JB, NB, RNH, RK, SK, SV, KS
Apologies:
- This would eliminate a lot of the symbolic overhead occurring in
assemble()
but may annoy James.
RK observed 45% assembly time saving by using create_assembly_callable
.
PyOP2 design question:
- Need nice separation: things that you need to execute and data to execute those on.
- ParLoop objects not to hold DataCarrier objects at all: in principle we just need shapes.
- args (shape, READ/WRITE, Map) are now in code, but these should actually be attached to the kernel separately from data.
Short term hack?
- Don't introduce public API change
- Modify
create_asembly_callable
so that it would take output tensor?
Realated (pointwise assignment):
Pointwise assignement is inefficient for the same reason, but this is harder as there is no persistent object lying around (we make new expression every time).
-> Lift expressions to make them persistent objects.
Related (time integration):
Define reusable Block, and allow for:
while t < ntime:
timestep.replay() # run through stashed parloop
CW may or may not work on these.
What to present
RK: irksome
India: dual space
NB : external operator
KS: subspace (may or may not) -> write abstract
Deadline: 20/02/2021
See https://github.com/firedrakeproject/tsfc/pull/237 - source of some discussion (Miklos doesn't think the PR is necessary) that seems to get at some core GEM design philosophy questions.
Two possibilities:
-
A[i,j]=B[j]
-> implicitly broadcast across i -
A[i,j]=Broadcast(B[j], i)
or something (explicit broadcast node makes it more type-safe)
2021-02-17 16:00UTC (16:00GMT)
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