From 464f50cdb1039948f4324cfec0fe3539a2f09741 Mon Sep 17 00:00:00 2001 From: Eduard Valeyev Date: Sun, 15 Mar 2026 11:08:56 -0400 Subject: [PATCH] foreach_inplace(A,B) needs to fence on entry and exit --- src/TiledArray/conversions/foreach.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/TiledArray/conversions/foreach.h b/src/TiledArray/conversions/foreach.h index 2c77c91a0f..9129d4b321 100644 --- a/src/TiledArray/conversions/foreach.h +++ b/src/TiledArray/conversions/foreach.h @@ -692,6 +692,10 @@ inline std::enable_if_t, void> foreach_inplace( // Set the arg with the new array left = detail::foreach( std::forward(op), shape_reduction, left, right); + + // must also fence after to prevent remote ranks start work on unprocessed + // tiles + if (fence) left.world().gop.fence(); } /// @}