Oceananigans.jl
Oceananigans.jl copied to clipboard
Removed tullio dependency
Does this have advantages in terms of speed?
I don't thinks so. I'll try to benchmark it
Does this have advantages in terms of speed?
I think we hope the code is similar under the hood but it's hard to say without knowing more about Tullio.
This update is more general though, because it will work out of the box on distributed systems / multiple GPUs / multi region scenarios like the cubed sphere (because we will support reductions for those cases).
I admit that I had to look up Tullio.jl to learn that it helps with matrix operations. Good for me to know, but if it's going away then maybe no longer essential.
I gather that abs is being replaced with another version. Where does the new version come from?
Also, I remember a while ago having issues with computing norms on GPUs. Does this help with that at all?
abs is the classical one, I just needed to add it to the list of unary operators that can be applied as an AbstractOperation to a field. I think norm is defined for Fields but not as a "lazy" operation (i.e., it always immediately returns a value)
@simone-silvestri I refactored the CFL calculation so that we only have one function all the time, rather than one "ordinary" and one "accurate".
The tests still fail though. I'm not totally sure why, but I am somewhat confused how this is supposed to work on a staggered grid. I don't think we can apply wikipedia's definition; we need the definition that's correct for a C grid.
Oy, I guess we're still defeated here.
This smells stale… what should we do?
I think the conclusion is that we need to use mapreduce to avoid Tullio, but we can't use AbstractOperations (because the CFL formula involves an operation between fields at different locations, which AbstractOperations are not designed to do)
Okie. We can close then?
If @simone-silvestri is ok to shelve and revisit later then yes
let's do it