Skip to content

Commit

Permalink
Merge pull request #429 from ValeevGroup/428-discrepency-between-lib-…
Browse files Browse the repository at this point in the history
…and-lib64-install-paths

[cmake] bump VG kit, BTAS, and MADNESS tags
  • Loading branch information
evaleev authored Nov 1, 2023
2 parents 58f15d1 + 30f9eb5 commit 498561d
Show file tree
Hide file tree
Showing 7 changed files with 39 additions and 15 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -309,10 +309,10 @@ endif()
if(ENABLE_HIP)
include(external/hip.cmake)
endif()
include(${PROJECT_SOURCE_DIR}/cmake/modules/FindOrFetchMADWorld.cmake)
if (TA_TTG)
include(${PROJECT_SOURCE_DIR}/cmake/modules/FindOrFetchTTG.cmake)
endif(TA_TTG)
include(${PROJECT_SOURCE_DIR}/cmake/modules/FindOrFetchMADWorld.cmake)
detect_MADNESS_configuration()
include(external/eigen.cmake)
# the FetchContent-based version will not work due to BLT target name conflicts
Expand Down
6 changes: 3 additions & 3 deletions INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,9 @@ Both methods are supported. However, for most users we _strongly_ recommend to b
- Boost.Container: header-only
- Boost.Test: header-only or (optionally) as a compiled library, *only used for unit testing*
- Boost.Range: header-only, *only used for unit testing*
- [BTAS](http://github.com/ValeevGroup/BTAS), tag 3c91f086090390930bba62c6512c4e74a5520e76 . If usable BTAS installation is not found, TiledArray will download and compile
- [BTAS](http://github.com/ValeevGroup/BTAS), tag bf0c376d5cdd6f668174b2a4c67b19634d1c0da7 . 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 1f307ebbe6604539493e165a7a2b00b366711fd8 .
- [MADNESS](https://github.com/m-a-d-n-e-s-s/madness), tag 03c82cf2780d9e96298cc9140ac128c73eacd3b1 .
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*.
Expand Down Expand Up @@ -75,7 +75,7 @@ Optional prerequisites:
- [blacspp](https://github.com/wavefunction91/blacspp.git) -- a modern C++ (C++17) wrapper for BLACS
- Python3 interpreter -- to test (optionally-built) Python bindings
- [Range-V3](https://github.com/ericniebler/range-v3.git) -- a Ranges library that served as the basis for Ranges component of C++20; only used for some unit testing of the functionality anticipated to be supported by future C++ standards.
- [TTG](https://github.com/TESSEorg/ttg.git) -- C++ implementation of the Template Task Graph programming model for fine-grained flow-graph composition of distributed memory programs.
- [TTG](https://github.com/TESSEorg/ttg.git) -- C++ implementation of the Template Task Graph programming model for fine-grained flow-graph composition of distributed memory programs (tag 3fe4a06dbf4b05091269488aab38223da1f8cb8e).

Many of these dependencies can be installed with a package manager,
such as Homebrew on OS X or apt-get on Debian Linux distributions;
Expand Down
8 changes: 8 additions & 0 deletions bin/admin/dependency-versions-update-hook.py
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,11 @@ def replace_dep_id(topsrc, file_ext, dep_name, old_id, new_id, search_prefix = '
scalapackpp_old_tag = tokens[2]
else:
scalapackpp_new_tag = tokens[2]
elif tokens[1].find('TTG') != -1:
if tokens[1].find('PREVIOUS') != -1:
ttg_old_tag = tokens[2]
else:
ttg_new_tag = tokens[2]

any_files_changed = False

Expand Down Expand Up @@ -155,6 +160,9 @@ def replace_dep_id(topsrc, file_ext, dep_name, old_id, new_id, search_prefix = '
# SCALAPACKPP tag in INSTALL.md
any_files_changed |= replace_dep_id(topsrc, 'md', 'SCALAPACKPP', scalapackpp_old_tag, scalapackpp_new_tag, '', '')

# TTG tag in INSTALL.md
any_files_changed |= replace_dep_id(topsrc, 'md', 'TTG', ttg_old_tag, ttg_new_tag, '', '')

if any_files_changed:
sys.exit(1)
else:
Expand Down
10 changes: 9 additions & 1 deletion cmake/modules/FindOrFetchMADWorld.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,15 @@ if (NOT TARGET MADworld)

# TA-specific configuration
set(MADNESS_BUILD_MADWORLD_ONLY ON CACHE BOOL "Whether to build MADNESS runtime only")
set(ENABLE_PARSEC OFF CACHE BOOL "Whether to use PaRSEC as the task backend of MADWorld")
if (TA_TTG)
if (NOT DEFINED MADNESS_TASK_BACKEND)
set(MADNESS_TASK_BACKEND PaRSEC CACHE STRING "The task backend to use for MADNESS tasks")
else ()
if (NOT(${MADNESS_TASK_BACKEND} STREQUAL PaRSEC))
message(FATAL_ERROR "must set MADNESS_TASK_BACKEND=PaRSEC if configuring with TA_TTG=ON")
endif()
endif()
endif()
set(MPI_THREAD "multiple" CACHE INTERNAL "MADNESS requires MPI_THREAD_MULTIPLE")
set(MADNESS_ASSUMES_ASLR_DISABLED ${TA_ASSUMES_ASLR_DISABLED} CACHE BOOL "Whether MADNESS assumes ASLR to be disabled")
set(MPI_CXX_SKIP_MPICXX ON CACHE BOOL "Whether to disable search for C++ MPI-2 bindings")
Expand Down
14 changes: 7 additions & 7 deletions external/versions.cmake
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# for each dependency track both current and previous id (the variable for the latter must contain PREVIOUS)
# to be able to auto-update them

set(TA_TRACKED_VGCMAKEKIT_TAG e68b3b4e8a57a175bb9d1b4e4cfa7d31b9363de5)
set(TA_TRACKED_VGCMAKEKIT_TAG d6746098e63deab4032309c4455bb084a17ff51a)

# Boost explicitly downgraded to 1.59 from 1.68
set(TA_TRACKED_BOOST_VERSION 1.59)
Expand All @@ -19,13 +19,13 @@ 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 1f307ebbe6604539493e165a7a2b00b366711fd8)
set(TA_TRACKED_MADNESS_PREVIOUS_TAG 3d585293f0094588778dbd3bec24b65e7bbe6a5d)
set(TA_TRACKED_MADNESS_TAG 03c82cf2780d9e96298cc9140ac128c73eacd3b1)
set(TA_TRACKED_MADNESS_PREVIOUS_TAG 4f7d30b0a738621037b96bb5b820029835753667)
set(TA_TRACKED_MADNESS_VERSION 0.10.1)
set(TA_TRACKED_MADNESS_PREVIOUS_VERSION 0.10.1)

set(TA_TRACKED_BTAS_TAG 3c91f086090390930bba62c6512c4e74a5520e76)
set(TA_TRACKED_BTAS_PREVIOUS_TAG 5a45699b78d0540b490c8c769b61033bd4d4f49c)
set(TA_TRACKED_BTAS_TAG bf0c376d5cdd6f668174b2a4c67b19634d1c0da7)
set(TA_TRACKED_BTAS_PREVIOUS_TAG 3c91f086090390930bba62c6512c4e74a5520e76)

set(TA_TRACKED_LIBRETT_TAG 6eed30d4dd2a5aa58840fe895dcffd80be7fbece)
set(TA_TRACKED_LIBRETT_PREVIOUS_TAG 354e0ccee54aeb2f191c3ce2c617ebf437e49d83)
Expand All @@ -40,5 +40,5 @@ set(TA_TRACKED_RANGEV3_TAG 2e0591c57fce2aca6073ad6e4fdc50d841827864)
set(TA_TRACKED_RANGEV3_PREVIOUS_TAG dbdaa247a25a0daa24c68f1286a5693c72ea0006)

set(TA_TRACKED_TTG_URL https://github.com/TESSEorg/ttg)
set(TA_TRACKED_TTG_TAG 0adff52aa1ebdad013ab3843a7a68c2bb06b60a8)
set(TA_TRACKED_TTG_PREVIOUS_TAG a9a1a55b45f7503da39d8466a1a421155ac5ca2a)
set(TA_TRACKED_TTG_TAG 3fe4a06dbf4b05091269488aab38223da1f8cb8e)
set(TA_TRACKED_TTG_PREVIOUS_TAG 26da9b40872660b864794658d4fdeee1a95cb4d6)
4 changes: 2 additions & 2 deletions src/TiledArray/math/linalg/ttg/cholesky.h
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ auto cholesky(const Array& A, TiledRange l_trange = {},
[[maybe_unused]] auto connected = make_graph_executable(potrf_ttg.get());

// uncomment to trace
::ttg::trace_on();
//::ttg::trace_on();

// start
::ttg::execute();
Expand Down Expand Up @@ -175,7 +175,7 @@ auto cholesky_linv(const Array& A, TiledRange l_trange = {},
[[maybe_unused]] auto connected = make_graph_executable(trtri_ttg.get());

// uncomment to trace
::ttg::trace_on();
//::ttg::trace_on();

// start
::ttg::execute();
Expand Down
10 changes: 9 additions & 1 deletion src/TiledArray/tiledarray.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -106,8 +106,16 @@ TiledArray::World& TiledArray::initialize(int& argc, char**& argv,
initialized_accessor() = true;
quiet_accessor() = quiet;

// if have TTG initialize it also
// if have TTG, initialize it also
#if TILEDARRAY_HAS_TTG
// MADNESS/PaRSEC creates PaRSEC context that uses MPI_COMM_SELF to avoid
// creation of a PaRSEC comm thread to be able to use TTG/PaRSEC need to
// tell PaRSEC context to use the full communicator
if (madness::ParsecRuntime::context()->nb_nodes != default_world.size()) {
auto default_world_comm = default_world.mpi.comm().Get_mpi_comm();
parsec_remote_dep_set_ctx(madness::ParsecRuntime::context(),
(intptr_t)default_world_comm);
}
ttg::initialize(argc, argv, -1, madness::ParsecRuntime::context());
#endif

Expand Down

0 comments on commit 498561d

Please sign in to comment.