From 884f88496e201c494b20394a33f866a85bb7fce8 Mon Sep 17 00:00:00 2001 From: Simone Silvestri <33547697+simone-silvestri@users.noreply.github.com> Date: Tue, 5 Mar 2024 13:21:32 -0500 Subject: [PATCH 1/7] correct partition --- src/DistributedComputations/distributed_architectures.jl | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/DistributedComputations/distributed_architectures.jl b/src/DistributedComputations/distributed_architectures.jl index 2aa2a53e45..64802ed386 100644 --- a/src/DistributedComputations/distributed_architectures.jl +++ b/src/DistributedComputations/distributed_architectures.jl @@ -204,16 +204,19 @@ Keyword arguments if not for testing or developing. Change at your own risk! """ function Distributed(child_architecture = CPU(); - communicator = MPI.COMM_WORLD, + communicator = nothing, devices = nothing, synchronized_communication = false, - partition = Partition(MPI.Comm_size(communicator))) + partition = nothing) if !(MPI.Initialized()) @info "MPI has not been initialized, so we are calling MPI.Init()." MPI.Init() end + communicator = inothing(communicator) ? MPI.COMM_WORLD : communicator + partition = isnothing(partition) ? Partition(MPI.Comm_size(communicator)) : partition + ranks = size(partition) Rx, Ry, Rz = ranks total_ranks = Rx * Ry * Rz From a335280f672b5a4b1b930a5aba2907dbfe8a6395 Mon Sep 17 00:00:00 2001 From: Simone Silvestri <33547697+simone-silvestri@users.noreply.github.com> Date: Tue, 5 Mar 2024 20:30:14 -0500 Subject: [PATCH 2/7] inothing -> isnothing --- src/DistributedComputations/distributed_architectures.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/DistributedComputations/distributed_architectures.jl b/src/DistributedComputations/distributed_architectures.jl index 64802ed386..c2a7054159 100644 --- a/src/DistributedComputations/distributed_architectures.jl +++ b/src/DistributedComputations/distributed_architectures.jl @@ -214,7 +214,7 @@ function Distributed(child_architecture = CPU(); MPI.Init() end - communicator = inothing(communicator) ? MPI.COMM_WORLD : communicator + communicator = isnothing(communicator) ? MPI.COMM_WORLD : communicator partition = isnothing(partition) ? Partition(MPI.Comm_size(communicator)) : partition ranks = size(partition) From 73fd9c656b06f4d4a9211bee4f8aac40c3dd2875 Mon Sep 17 00:00:00 2001 From: Simone Silvestri <33547697+simone-silvestri@users.noreply.github.com> Date: Tue, 12 Mar 2024 16:17:56 -0400 Subject: [PATCH 3/7] does not work on julia 1.9? --- src/AbstractOperations/conditional_operations.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/AbstractOperations/conditional_operations.jl b/src/AbstractOperations/conditional_operations.jl index e621bcd262..a5d72fa1f8 100644 --- a/src/AbstractOperations/conditional_operations.jl +++ b/src/AbstractOperations/conditional_operations.jl @@ -1,6 +1,6 @@ using Oceananigans.Fields: OneField using Oceananigans.Grids: architecture -using Oceananigans.Architectures: on_architecture +import Oceananigans.Architectures: on_architecture import Oceananigans.Fields: condition_operand, conditional_length, set!, compute_at!, indices # For conditional reductions such as mean(u * v, condition = u .> 0)) From d2d2449aba18ef1854d27546d6c68549b904d393 Mon Sep 17 00:00:00 2001 From: Simone Silvestri <33547697+simone-silvestri@users.noreply.github.com> Date: Tue, 12 Mar 2024 16:20:30 -0400 Subject: [PATCH 4/7] hopefully last one? --- src/DistributedComputations/distributed_on_architecture.jl | 1 + 1 file changed, 1 insertion(+) diff --git a/src/DistributedComputations/distributed_on_architecture.jl b/src/DistributedComputations/distributed_on_architecture.jl index 1564547a59..e02c0172a1 100644 --- a/src/DistributedComputations/distributed_on_architecture.jl +++ b/src/DistributedComputations/distributed_on_architecture.jl @@ -1,5 +1,6 @@ using CUDA: CuArray using OffsetArrays +import Oceananigans.Architectures: on_architecture # We do not support switching from distributed and serial through `on_architecture`. # We only support moving a type from CPU to GPU and the other way around From eaf318f32f49c7f18e545c1ded0d3d3b958b89d3 Mon Sep 17 00:00:00 2001 From: Simone Silvestri <33547697+simone-silvestri@users.noreply.github.com> Date: Tue, 12 Mar 2024 16:21:38 -0400 Subject: [PATCH 5/7] this was the last --- src/DistributedComputations/partition_assemble.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/DistributedComputations/partition_assemble.jl b/src/DistributedComputations/partition_assemble.jl index d381743cb1..a6e730cf47 100644 --- a/src/DistributedComputations/partition_assemble.jl +++ b/src/DistributedComputations/partition_assemble.jl @@ -1,4 +1,4 @@ -using Oceananigans.Architectures: on_architecture +import Oceananigans.Architectures: on_architecture all_reduce(op, val, arch::Distributed) = MPI.Allreduce(val, op, arch.communicator) From 81b333974ce7ec4f3ea6a0b3a4d9f954a54eaa96 Mon Sep 17 00:00:00 2001 From: Simone Silvestri <33547697+simone-silvestri@users.noreply.github.com> Date: Tue, 12 Mar 2024 16:31:47 -0400 Subject: [PATCH 6/7] other ones slipped --- src/TurbulenceClosures/implicit_explicit_time_discretization.jl | 1 - .../convective_adjustment_vertical_diffusivity.jl | 2 +- .../ri_based_vertical_diffusivity.jl | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/TurbulenceClosures/implicit_explicit_time_discretization.jl b/src/TurbulenceClosures/implicit_explicit_time_discretization.jl index 33fe206185..3fa9d7a54e 100644 --- a/src/TurbulenceClosures/implicit_explicit_time_discretization.jl +++ b/src/TurbulenceClosures/implicit_explicit_time_discretization.jl @@ -1,4 +1,3 @@ -using Oceananigans.Utils: on_architecture using Oceananigans.Grids: AbstractGrid abstract type AbstractTimeDiscretization end diff --git a/src/TurbulenceClosures/turbulence_closure_implementations/convective_adjustment_vertical_diffusivity.jl b/src/TurbulenceClosures/turbulence_closure_implementations/convective_adjustment_vertical_diffusivity.jl index a973edc0a0..cfdd407523 100644 --- a/src/TurbulenceClosures/turbulence_closure_implementations/convective_adjustment_vertical_diffusivity.jl +++ b/src/TurbulenceClosures/turbulence_closure_implementations/convective_adjustment_vertical_diffusivity.jl @@ -1,4 +1,4 @@ -using Oceananigans.Architectures: architecture, on_architecture +using Oceananigans.Architectures: architecture using Oceananigans.AbstractOperations: KernelFunctionOperation using Oceananigans.BuoyancyModels: ∂z_b using Oceananigans.Operators: ℑzᵃᵃᶜ diff --git a/src/TurbulenceClosures/turbulence_closure_implementations/ri_based_vertical_diffusivity.jl b/src/TurbulenceClosures/turbulence_closure_implementations/ri_based_vertical_diffusivity.jl index 21f44f3000..0e83f3aa4e 100644 --- a/src/TurbulenceClosures/turbulence_closure_implementations/ri_based_vertical_diffusivity.jl +++ b/src/TurbulenceClosures/turbulence_closure_implementations/ri_based_vertical_diffusivity.jl @@ -1,4 +1,4 @@ -using Oceananigans.Architectures: architecture, on_architecture +using Oceananigans.Architectures: architecture using Oceananigans.BuoyancyModels: ∂z_b using Oceananigans.Operators using Oceananigans.Grids: inactive_node From efe7b82aeb734fdc9d1977381ec0568ff3890720 Mon Sep 17 00:00:00 2001 From: Simone Silvestri <33547697+simone-silvestri@users.noreply.github.com> Date: Tue, 12 Mar 2024 16:35:30 -0400 Subject: [PATCH 7/7] other ones remaining --- src/ImmersedBoundaries/grid_fitted_bottom.jl | 1 - src/ImmersedBoundaries/mask_immersed_field.jl | 1 - src/ImmersedBoundaries/partial_cell_bottom.jl | 1 - 3 files changed, 3 deletions(-) diff --git a/src/ImmersedBoundaries/grid_fitted_bottom.jl b/src/ImmersedBoundaries/grid_fitted_bottom.jl index a3461ac16d..18eca1da92 100644 --- a/src/ImmersedBoundaries/grid_fitted_bottom.jl +++ b/src/ImmersedBoundaries/grid_fitted_bottom.jl @@ -4,7 +4,6 @@ using OffsetArrays: OffsetArray using Oceananigans.Utils: getnamewrapper using Oceananigans.Grids: total_size using Oceananigans.Fields: fill_halo_regions! -using Oceananigans.Architectures: on_architecture using Oceananigans.BoundaryConditions: FBC using Printf diff --git a/src/ImmersedBoundaries/mask_immersed_field.jl b/src/ImmersedBoundaries/mask_immersed_field.jl index 4bd2878eec..4f8f0afbad 100644 --- a/src/ImmersedBoundaries/mask_immersed_field.jl +++ b/src/ImmersedBoundaries/mask_immersed_field.jl @@ -1,6 +1,5 @@ using KernelAbstractions: @kernel, @index using Statistics -using Oceananigans.Architectures: architecture using Oceananigans.Fields: location, ZReducedField, Field instantiate(T::Type) = T() diff --git a/src/ImmersedBoundaries/partial_cell_bottom.jl b/src/ImmersedBoundaries/partial_cell_bottom.jl index f6ba0368e3..f00771e834 100644 --- a/src/ImmersedBoundaries/partial_cell_bottom.jl +++ b/src/ImmersedBoundaries/partial_cell_bottom.jl @@ -1,6 +1,5 @@ using Oceananigans.Utils: prettysummary using Oceananigans.Fields: fill_halo_regions! -using Oceananigans.Architectures: on_architecture using Printf #####