-
Notifications
You must be signed in to change notification settings - Fork 160
Firedrake meeting 2022 03 03
Date and time 2022-03-03 16:00UTC (16:00GMT)
- Pick Chair and Minuter (SV to pick).
- ALL: (ongoing) triage the open issues and confirm if they are indeed still open (and perhaps provide labels)
Present: LM, RK, KS, SV, JB, CW, DH, CC, PK, DS
Apologies:
Scott MacLachlan wants Bessel functions
- Loopy provides a
CWithGNULibcTarget(CTarget)
now. We usedCTarget
for our loopy kernels so far. Do we want to makeCWithGNULibcTarget
the default or do we needs some dance to sniff the compiler version and choose target dependent on that? - Target is specified in configuration (in PyOP2) and parameters(in TSFC and Firedrake) now. In Firedrake we choose same target as PyOP2, but in TSFC I didn't do that because I don't think we want to be dependent on PyOP2?
- In PyOP2 we pass the language standard c99. If we want Bessel functions we need gnu11 I believe. I brute force changed that here https://github.com/OP2/PyOP2/pull/656/commits/e5c5cea78bf5b7ba86d13989fabba782393e37e8, what's the way to do this correctly?
LM: If we have Bessel functions of the first kind, someone will want second kind (RK and the third kind...). HCEPHES can be installed as part of PETSc now which includes Bessel and friends.
DH: Are there compilers out there that won't support the above compilers flags? This approach works, let's try it for now!
Disclaimer: I haven't had time to see how big the difference is between allocating the memory in python vs allocating the memory in the C kernels, maybe we need that first before we have a discussion about it.
For the inverse and solve callable I am now allocating the memory for the petsc events in python and faff around with the DLL to set the attributes correctly in the Callables
. This works well because there are only two Callables and the naming of the events is clear. Doing this is more difficult for Slate and TSFC kernels. I think what we'd need to do in order to do this in a clean way is to save the event names and event id variable names on an attribute on the LocalKernels and then we could iterate over that to generate the events in compilation.py and set accordingly on the DLL.
- For inverse and solve callable in PyOP2 https://github.com/OP2/PyOP2/pull/646
- For Slate kernels in Firedrake https://github.com/firedrakeproject/firedrake/pull/2347
- For TSFC kernels in https://github.com/firedrakeproject/tsfc/pull/267/files
Kaushik has proposed a new implementation of vectorisation that is compliant with the already existing vec
tagging for other targets here https://github.com/inducer/loopy/pull/557.
We need to adapt to those changes in PyOP2.
SV: This is mainly just an FYI. Need to be careful that this isn't a performance regression from TJ's branch.
LM: In the paper there was a little bit of cheating (some assumptions that don't always hold)
DH: I now have an M1 so am now the de facto go to person for all M1 issues. First issue is that libgcc_s
is not found, see issue #2320. Additionally commandlinetools dance is not robust for M1, this needs a proper solution.
LM: Maybe we only need to check the major version, unclear why the error is being spewed in the first place
JB: #2345 Changes requested, hard exit if minimal PETSc not satisfied
JB: #2326 Approved
CC: Firedrake wobsite is down (fix later)
LM: Creating a Zenodo release is painful in terms of permissions, this should be made easier so more people can make releases and it's easier to add such people.
Dagstuhl next week, no meeting
1600 UTC (1600 GMT) 2022-03-17
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