Closed JDBetteridge closed 1 month ago
Tests | Passed ✅ | Skipped ⏭️ | Failed ❌ | |
---|---|---|---|---|
Firedrake complex | 8050 ran | 6468 passed | 1582 skipped | 0 failed |
Tests | Passed ✅ | Skipped ⏭️ | Failed ❌ | |
---|---|---|---|---|
Firedrake real | 8056 ran | 7270 passed | 786 skipped | 0 failed |
I think this one is ready to go (once tests pass of course!)
Description
Necessary caches replaced with parallel safe ones.
Depends on PyOP2 #724 going in first.
The PyOP2 caches are used in 3 key places:
tsfc_interface.py
: TSFC no longer inherits from the (removed)Cached
object and thetsfc_compile_form
function is now a cached function.slate/slac/compiler.py
: SlateKernel still inherits from TSFCKernel, thecompile_expression
function is now cachedinterpolation.py
: Thecompile_expression
function is cached with the new decorator.The tests have been updated to run with the new
PYOP2_SPMD_STRICT
environment variable set to 1. Now everything passes without deadlocking, with the exception of two tests utilising ngsPETSc, which requires an upstream fix.Testing performance has been significantly improved, but this isn't apparent on CI (I'm still not 100% sure why). Results are as follows:
Commands
Run on my workstation:
Current Firedrake master
(
export REV="Old"
) cold Output:This branch
(
export REV="Experiment"
) cold Output:I also ran with a warm cache with similar levels of improvement, but this isn't as relevant (to CI).