diff --git a/INSTALL.md b/INSTALL.md index 79bbe11f79..49564b9eb0 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -43,7 +43,7 @@ Both methods are supported. However, for most users we _strongly_ recommend to b - [Range-V3](https://github.com/ericniebler/range-v3.git) -- a Ranges library that served as the basis for Ranges component of C++20 and later. - [BTAS](http://github.com/ValeevGroup/BTAS), tag 1cfcb12647c768ccd83b098c64cda723e1275e49 . If usable BTAS installation is not found, TiledArray will download and compile BTAS from source. *This is the recommended way to compile BTAS for all users*. -- [MADNESS](https://github.com/m-a-d-n-e-s-s/madness), tag 51c70885f368fcbdaac3db462b5e8d28eed4dbf7 . +- [MADNESS](https://github.com/m-a-d-n-e-s-s/madness), tag ef97ad1f0080da04f9592f03185c1a331cd5e001 . Only the MADworld runtime and BLAS/LAPACK C API component of MADNESS is used by TiledArray. If usable MADNESS installation is not found, TiledArray will download and compile MADNESS from source. *This is the recommended way to compile MADNESS for all users*. diff --git a/external/versions.cmake b/external/versions.cmake index 9420b41c33..cbf8d475f9 100644 --- a/external/versions.cmake +++ b/external/versions.cmake @@ -11,8 +11,8 @@ set(TA_INSTALL_EIGEN_PREVIOUS_VERSION 3.3.7) set(TA_INSTALL_EIGEN_URL_HASH SHA256=b4c198460eba6f28d34894e3a5710998818515104d6e74e5cc331ce31e46e626) set(TA_INSTALL_EIGEN_PREVIOUS_URL_HASH MD5=b9e98a200d2455f06db9c661c5610496) -set(TA_TRACKED_MADNESS_TAG 51c70885f368fcbdaac3db462b5e8d28eed4dbf7) -set(TA_TRACKED_MADNESS_PREVIOUS_TAG 3208474a1dec9a08b8ca7185ca5c168795385372) +set(TA_TRACKED_MADNESS_TAG ef97ad1f0080da04f9592f03185c1a331cd5e001) +set(TA_TRACKED_MADNESS_PREVIOUS_TAG 51c70885f368fcbdaac3db462b5e8d28eed4dbf7) set(TA_TRACKED_MADNESS_VERSION 0.10.1) set(TA_TRACKED_MADNESS_PREVIOUS_VERSION 0.10.1) diff --git a/src/TiledArray/einsum/tiledarray.h b/src/TiledArray/einsum/tiledarray.h index 1f6a9e13f2..708511745a 100644 --- a/src/TiledArray/einsum/tiledarray.h +++ b/src/TiledArray/einsum/tiledarray.h @@ -411,12 +411,6 @@ 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; @@ -746,7 +740,8 @@ auto einsum(expressions::TsrExpr A, expressions::TsrExpr B, for (Index h : H.tiles) { auto &[A, B] = AB; auto own = A.own(h) || B.own(h); - auto comm = world.mpi.comm().Split(own, world.rank()); + auto comm = madness::blocking_invoke(&SafeMPI::Intracomm::Split, + world.mpi.comm(), own, world.rank()); worlds.push_back(std::make_unique(comm)); auto &owners = worlds.back(); if (!own) continue;