diff --git a/INSTALL.md b/INSTALL.md index 69ed240dc1..79bbe11f79 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 a479e821da724880c1e7110a49d2e52f0959a072 . +- [MADNESS](https://github.com/m-a-d-n-e-s-s/madness), tag 51c70885f368fcbdaac3db462b5e8d28eed4dbf7 . 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 9a798652fa..9420b41c33 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 a479e821da724880c1e7110a49d2e52f0959a072) -set(TA_TRACKED_MADNESS_PREVIOUS_TAG 8da56b1fc0b3d6eabe155923fb844f3430fc7d05) +set(TA_TRACKED_MADNESS_TAG 51c70885f368fcbdaac3db462b5e8d28eed4dbf7) +set(TA_TRACKED_MADNESS_PREVIOUS_TAG 3208474a1dec9a08b8ca7185ca5c168795385372) 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 1c25f22a4f..e16c076db4 100644 --- a/src/TiledArray/einsum/tiledarray.h +++ b/src/TiledArray/einsum/tiledarray.h @@ -410,6 +410,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;