diff --git a/src/TiledArray/einsum/tiledarray.h b/src/TiledArray/einsum/tiledarray.h index 708511745a..6b61610abc 100644 --- a/src/TiledArray/einsum/tiledarray.h +++ b/src/TiledArray/einsum/tiledarray.h @@ -411,6 +411,12 @@ template A, expressions::TsrExpr B, std::tuple, Indices...> cs, World &world) { + // hotfix: process all preceding tasks before entering this code with many + // blocking calls + // TODO figure out why having free threads left after blocking MPI split + // still not enough to ensure progress + world.gop.fence(); + using ArrayA = std::remove_cv_t; using ArrayB = std::remove_cv_t;