Currently any builtin will, by default, iterate to the last owned (or annexed) dof. Although this can be extended into the halo using LFRicRedundantComputationTrans, the depth of the redundant computation is specified at compile time. This does not support the use case of an iterative loop where, to amalgamate halo exchanges, a single, deep halo exchange is performed prior to the loop. At each trip round the loop, the depth of the clean halo is reduced by one. Thus, the depth to which to do the redundant computation is determined at run-time.
Currently, LFRicRedundantComputationTrans accepts a depth option that specifies the literal depth to which to perform redundant computation. If depth is not set then redundant computation is performed to the full halo depth. What we could do with is a third option that says "do redundant computation but only out to the depth of the currently-clean halo."
Currently any builtin will, by default, iterate to the last owned (or annexed) dof. Although this can be extended into the halo using
LFRicRedundantComputationTrans, the depth of the redundant computation is specified at compile time. This does not support the use case of an iterative loop where, to amalgamate halo exchanges, a single, deep halo exchange is performed prior to the loop. At each trip round the loop, the depth of the clean halo is reduced by one. Thus, the depth to which to do the redundant computation is determined at run-time.Currently,
LFRicRedundantComputationTransaccepts adepthoption that specifies the literal depth to which to perform redundant computation. Ifdepthis not set then redundant computation is performed to the full halo depth. What we could do with is a third option that says "do redundant computation but only out to the depth of the currently-clean halo."