Skip to content

Commit fc3099d

Browse files
committed
Use view instead of making a copy
As suggested in JuliaParallel/MPI.jl#892 ``` remapper._interpolated_values[remapper.colons..., begin] ``` allocates a new copy, which can trip up CUDA's synchronization.
1 parent 4304d76 commit fc3099d

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

src/Remapping/distributed_remapping.jl

+6-5
Original file line numberDiff line numberDiff line change
@@ -751,25 +751,26 @@ function _collect_interpolated_values!(
751751
index_field_end::Int;
752752
only_one_field,
753753
)
754-
# NOTE: MPI barriers for #2108
755-
ClimaComms.barrier(remapper.comms_ctx)
756754
if only_one_field
757755
ClimaComms.reduce!(
758756
remapper.comms_ctx,
759-
remapper._interpolated_values[remapper.colons..., begin],
757+
view(remapper._interpolated_values, remapper.colons..., 1),
760758
dest,
761759
+,
762760
)
763761
else
764762
num_fields = 1 + index_field_end - index_field_begin
765763
ClimaComms.reduce!(
766764
remapper.comms_ctx,
767-
view(remapper._interpolated_values, remapper.colons..., 1:num_fields),
765+
view(
766+
remapper._interpolated_values,
767+
remapper.colons...,
768+
1:num_fields,
769+
),
768770
view(dest, remapper.colons..., index_field_begin:index_field_end),
769771
+,
770772
)
771773
end
772-
ClimaComms.barrier(remapper.comms_ctx)
773774
return nothing
774775
end
775776

0 commit comments

Comments
 (0)