Skip to content
Discussion options

You must be logged in to vote

This looks like an incarnation of the known issue with parallel object destruction. Basically, the cyclic garbage collector in Firedrake destroys objects in a non-deterministic way, while PETSc requires that all objects are collectively destroyed by all ranks at once. The combination of these means that Firedrake object destruction can cause deadlocks, especially if different ranks execute different code paths. This is the case here, and it doesn't help that the different code path contains no Firedrake code.

@JDBetteridge is close to a fix for this one, which involves a quite non-trivial change to the garbage collection in PETSc4py.

Replies: 1 comment

Comment options

You must be logged in to vote
0 replies
Answer selected by dham
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
2 participants