-
Notifications
You must be signed in to change notification settings - Fork 262
Do not pass CommunicationBuffers as clock to BC
#5063
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Do not pass CommunicationBuffers as clock to BC
#5063
Conversation
Apparently I did :-/ https://github.com/CliMA/Oceananigans.jl/actions/runs/20431663262/job/58703558803?pr=5063 EDIT: I will probably not have much time to work on it until new year so in the meantime feel 100% free to close it, push etc. ;-) |
|
You probably need to extend Oceananigans.jl/src/BoundaryConditions/fill_halo_regions.jl Lines 40 to 41 in 77f46f7
in the DistributedComputations module to throw away the buffer argument in case of a distributed grid and a kernel which is not a DistributedFillHalo, something like
fill_halo_event!(c, kernel!, bcs, loc, grid::DistributedGrid, buffers, args...; kwargs...) = kernel!(c, bcs..., loc, grid, Tuple(args))
fill_halo_event!(c, ::Nothing, ::NoBCs, loc, grid::DistributedGrid, buffers, args...; kwargs...) = nothing |
|
pretty annoying that we cannot run the distributed tests from a fork. @Mikolaj-A-Kowalski if you have time can you verify locally that the tests run (on CPU at least, there should be no difference on a GPU)? |
Mikolaj-A-Kowalski
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
pretty annoying that we cannot run the distributed tests from a fork. @Mikolaj-A-Kowalski if you have time can you verify locally that the tests run (on CPU at least, there should be no difference on a GPU)?
I tried running the tests on my side. However, I wasn't able to get the new test to work.
I have added some comments with the things I had to change when I was trying to debug that, but in the end I was not able to get it pass the assertions (was giving me values different than expected in the test for u).
Maybe it will be better to close this PR and reopen from within the Oceananigans repo to let the CI run normally.
Co-authored-by: Mikolaj-A-Kowalski <[email protected]>
Co-authored-by: Mikolaj-A-Kowalski <[email protected]>
Co-authored-by: Mikolaj-A-Kowalski <[email protected]>
Co-authored-by: Mikolaj-A-Kowalski <[email protected]>
…ceananigans.jl into buffer-is-clock-fix
As described in the title I think this is what was happening.
Tagging @jagoosw since I run into the problem while doing OceanBioME with MPI.
Julia script reproducing the problem
I would get the message that the
CommunicationBuffersdo not have propertytime(also withclockvariable beeing of typeCommunicationBuffers) form:Oceananigans.jl/src/BoundaryConditions/continuous_boundary_function.jl
Lines 182 to 191 in d695969
I think that the problem was what I have changed in this PR, that is that the
bufferwould get slurped intoargs...and incorrectly passed to the kernel here:Oceananigans.jl/src/DistributedComputations/halo_communication.jl
Line 96 in d695969
I am not sure though if I am not missing some use case where the first argument should be the buffers...