From a5c5b71403f24f69c89e0399a7241d29acc257c6 Mon Sep 17 00:00:00 2001 From: Karl Pierce Date: Wed, 21 Apr 2021 15:25:21 -0400 Subject: [PATCH 01/14] Use updated BTAS --- external/versions.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/external/versions.cmake b/external/versions.cmake index 8ad6d8eb6b..55fb668e69 100644 --- a/external/versions.cmake +++ b/external/versions.cmake @@ -22,8 +22,8 @@ set(TA_TRACKED_MADNESS_PREVIOUS_TAG 925552feaf326cca8e83de7bd042074ad3cfd3f1) set(TA_TRACKED_MADNESS_VERSION 0.10.1) set(TA_TRACKED_MADNESS_PREVIOUS_VERSION 0.10.1) -set(TA_TRACKED_BTAS_TAG 8752fb97fc68d1982c48283aba4b03c744389ba8) -set(TA_TRACKED_BTAS_PREVIOUS_TAG 1ee43ef413c12166e3ce3db2ac69160c7622f497) +set(TA_TRACKED_BTAS_TAG 2211ff075b6068fd6d81911c1a726dde28b00aa3) +set(TA_TRACKED_BTAS_PREVIOUS_TAG 8752fb97fc68d1982c48283aba4b03c744389ba8) set(TA_TRACKED_CUTT_TAG 0e8685bf82910bc7435835f846e88f1b39f47f09) set(TA_TRACKED_CUTT_PREVIOUS_TAG 592198b93c93b7ca79e7900b9a9f2e79f9dafec3) From 295da83d4a945f974ca97330cc8da1a8ed78ca2c Mon Sep 17 00:00:00 2001 From: Karl Pierce Date: Wed, 21 Apr 2021 15:28:19 -0400 Subject: [PATCH 02/14] Don't catch BTAS up with master --- external/versions.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/versions.cmake b/external/versions.cmake index 55fb668e69..89f31aab11 100644 --- a/external/versions.cmake +++ b/external/versions.cmake @@ -22,7 +22,7 @@ set(TA_TRACKED_MADNESS_PREVIOUS_TAG 925552feaf326cca8e83de7bd042074ad3cfd3f1) set(TA_TRACKED_MADNESS_VERSION 0.10.1) set(TA_TRACKED_MADNESS_PREVIOUS_VERSION 0.10.1) -set(TA_TRACKED_BTAS_TAG 2211ff075b6068fd6d81911c1a726dde28b00aa3) +set(TA_TRACKED_BTAS_TAG 53af7468ee835e343fc0b6ec956134bd16be7849) set(TA_TRACKED_BTAS_PREVIOUS_TAG 8752fb97fc68d1982c48283aba4b03c744389ba8) set(TA_TRACKED_CUTT_TAG 0e8685bf82910bc7435835f846e88f1b39f47f09) From e353b7aa1d594b660c8533955727225e2c98b03f Mon Sep 17 00:00:00 2001 From: Karl Pierce Date: Wed, 21 Apr 2021 15:35:25 -0400 Subject: [PATCH 03/14] Accidentally used the wrong key --- external/versions.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/versions.cmake b/external/versions.cmake index 89f31aab11..074605f7e4 100644 --- a/external/versions.cmake +++ b/external/versions.cmake @@ -22,7 +22,7 @@ set(TA_TRACKED_MADNESS_PREVIOUS_TAG 925552feaf326cca8e83de7bd042074ad3cfd3f1) set(TA_TRACKED_MADNESS_VERSION 0.10.1) set(TA_TRACKED_MADNESS_PREVIOUS_VERSION 0.10.1) -set(TA_TRACKED_BTAS_TAG 53af7468ee835e343fc0b6ec956134bd16be7849) +set(TA_TRACKED_BTAS_TAG b17ea3715bd18d5575b837c53ac87deb4e9b06c6) set(TA_TRACKED_BTAS_PREVIOUS_TAG 8752fb97fc68d1982c48283aba4b03c744389ba8) set(TA_TRACKED_CUTT_TAG 0e8685bf82910bc7435835f846e88f1b39f47f09) From d66da0af783d51be42403c884697067e435dc69f Mon Sep 17 00:00:00 2001 From: Karl Pierce Date: Tue, 27 Apr 2021 11:28:01 -0400 Subject: [PATCH 04/14] Bump BTAS tag --- external/versions.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/external/versions.cmake b/external/versions.cmake index 074605f7e4..a13fd4aa9e 100644 --- a/external/versions.cmake +++ b/external/versions.cmake @@ -22,8 +22,8 @@ set(TA_TRACKED_MADNESS_PREVIOUS_TAG 925552feaf326cca8e83de7bd042074ad3cfd3f1) set(TA_TRACKED_MADNESS_VERSION 0.10.1) set(TA_TRACKED_MADNESS_PREVIOUS_VERSION 0.10.1) -set(TA_TRACKED_BTAS_TAG b17ea3715bd18d5575b837c53ac87deb4e9b06c6) -set(TA_TRACKED_BTAS_PREVIOUS_TAG 8752fb97fc68d1982c48283aba4b03c744389ba8) +set(TA_TRACKED_BTAS_TAG 2c4b8649a4f3f884cdc3d73854dbc03d27e8a568) +set(TA_TRACKED_BTAS_PREVIOUS_TAG b17ea3715bd18d5575b837c53ac87deb4e9b06c6) set(TA_TRACKED_CUTT_TAG 0e8685bf82910bc7435835f846e88f1b39f47f09) set(TA_TRACKED_CUTT_PREVIOUS_TAG 592198b93c93b7ca79e7900b9a9f2e79f9dafec3) From 8b6a438139aed1a3e4dfa68fe0372a4e25b703c2 Mon Sep 17 00:00:00 2001 From: kmp5VT Date: Mon, 3 May 2021 13:10:07 -0400 Subject: [PATCH 05/14] bump BTAS Tag --- external/versions.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/external/versions.cmake b/external/versions.cmake index c8aaf0aa84..a73d205f19 100644 --- a/external/versions.cmake +++ b/external/versions.cmake @@ -22,8 +22,8 @@ set(TA_TRACKED_MADNESS_PREVIOUS_TAG b22ee85059e6ccc9a6e803ba0550652ece8d9df1) set(TA_TRACKED_MADNESS_VERSION 0.10.1) set(TA_TRACKED_MADNESS_PREVIOUS_VERSION 0.10.1) -set(TA_TRACKED_BTAS_TAG 2c4b8649a4f3f884cdc3d73854dbc03d27e8a568) -set(TA_TRACKED_BTAS_PREVIOUS_TAG b17ea3715bd18d5575b837c53ac87deb4e9b06c6) +set(TA_TRACKED_BTAS_TAG ed453f9c81dcfbba5a0b8eea88f89a484da2e128) +set(TA_TRACKED_BTAS_PREVIOUS_TAG 2c4b8649a4f3f884cdc3d73854dbc03d27e8a568) set(TA_TRACKED_CUTT_TAG 0e8685bf82910bc7435835f846e88f1b39f47f09) set(TA_TRACKED_CUTT_PREVIOUS_TAG 592198b93c93b7ca79e7900b9a9f2e79f9dafec3) From 0c1142fd81ce3e8e3a11554c532189a7bd2c7bc1 Mon Sep 17 00:00:00 2001 From: kmp5VT Date: Tue, 4 May 2021 19:11:11 -0400 Subject: [PATCH 06/14] spread out blocks to make them all about the same size, instead of 1 small tile and many large tiles --- src/TiledArray/conversions/vector_of_arrays.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/TiledArray/conversions/vector_of_arrays.h b/src/TiledArray/conversions/vector_of_arrays.h index 1f67c1ca14..c25bc619cd 100644 --- a/src/TiledArray/conversions/vector_of_arrays.h +++ b/src/TiledArray/conversions/vector_of_arrays.h @@ -290,7 +290,7 @@ TA::DistArray fuse_vector_of_arrays_tiles( madness::World& global_world, const std::vector>& array_vec, const std::size_t fused_dim_extent, - const TiledArray::TiledRange& array_trange, std::size_t block_size = 1) { + const TiledArray::TiledRange& array_trange, std::size_t target_block_size = 1) { auto nproc = global_world.size(); // make instances of array_vec globally accessible @@ -298,6 +298,9 @@ TA::DistArray fuse_vector_of_arrays_tiles( detail::dist_subarray_vec arrays(global_world, array_vec, fused_dim_extent); + std::size_t nblocks = + (fused_dim_extent + target_block_size - 1) / target_block_size; + std::size_t block_size = (fused_dim_extent + nblocks - 1) / nblocks; // make fused tiledrange auto fused_trange = detail::prepend_dim_to_trange(fused_dim_extent, array_trange, block_size); From ee204dbb6ead9e4bbe26ece5849d127233d95bc6 Mon Sep 17 00:00:00 2001 From: kmp5VT Date: Tue, 4 May 2021 19:15:35 -0400 Subject: [PATCH 07/14] fuse_vector_of_arrays_tiles -> fuse_tilewise_vector_of_arrays --- src/TiledArray/conversions/vector_of_arrays.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/TiledArray/conversions/vector_of_arrays.h b/src/TiledArray/conversions/vector_of_arrays.h index c25bc619cd..00132e93f3 100644 --- a/src/TiledArray/conversions/vector_of_arrays.h +++ b/src/TiledArray/conversions/vector_of_arrays.h @@ -286,7 +286,7 @@ class dist_subarray_vec /// @sa detail::fuse_vector_of_shapes_tiles /// TODO rename to fuse_tilewise_vector_of_arrays template -TA::DistArray fuse_vector_of_arrays_tiles( +TA::DistArray fuse_tilewise_vector_of_arrays( madness::World& global_world, const std::vector>& array_vec, const std::size_t fused_dim_extent, From e07676643daa43ab20a0941b7c7283cbb517a699 Mon Sep 17 00:00:00 2001 From: kmp5VT Date: Tue, 4 May 2021 19:26:48 -0400 Subject: [PATCH 08/14] subarray_from _fused_array-> split_tilewise_fused_array --- src/TiledArray/conversions/vector_of_arrays.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/TiledArray/conversions/vector_of_arrays.h b/src/TiledArray/conversions/vector_of_arrays.h index 00132e93f3..373b6e455a 100644 --- a/src/TiledArray/conversions/vector_of_arrays.h +++ b/src/TiledArray/conversions/vector_of_arrays.h @@ -284,7 +284,6 @@ class dist_subarray_vec /// tilewise-round-robin fashion. /// The result will live in @c global_world. /// @sa detail::fuse_vector_of_shapes_tiles -/// TODO rename to fuse_tilewise_vector_of_arrays template TA::DistArray fuse_tilewise_vector_of_arrays( madness::World& global_world, @@ -391,9 +390,8 @@ TA::DistArray fuse_tilewise_vector_of_arrays( /// @param[in] split_trange TiledRange of the split Array object /// @return the @c i -th subarray /// @sa detail::subshape_from_fused_tile -/// TODO rename to split_tilewise_fused_array template -void subarray_from_fused_array( +void split_tilewise_fused_array( madness::World& local_world, const TA::DistArray& fused_array, std::size_t tile_idx, std::vector>& split_arrays, From d128c9480037426c74fd33e6f8585df08d91827e Mon Sep 17 00:00:00 2001 From: kmp5VT Date: Tue, 4 May 2021 19:35:01 -0400 Subject: [PATCH 09/14] Fuse_vector_of_shapes_tiles -> fuse_tilewise_vector_of_shapes --- src/TiledArray/conversions/vector_of_arrays.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/TiledArray/conversions/vector_of_arrays.h b/src/TiledArray/conversions/vector_of_arrays.h index 373b6e455a..6bcec93006 100644 --- a/src/TiledArray/conversions/vector_of_arrays.h +++ b/src/TiledArray/conversions/vector_of_arrays.h @@ -68,7 +68,7 @@ inline TA::TiledRange prepend_dim_to_trange( /// @return SparseShape of fused Array object /// TODO rename to fuse_tilewise_vector_of_shapes template -TA::SparseShape fuse_vector_of_shapes_tiles( +TA::SparseShape fuse_tilewise_vector_of_shapes( madness::World& global_world, const std::vector>& arrays, const std::size_t array_rank, const TA::TiledRange& fused_trange) { @@ -156,7 +156,7 @@ TA::SparseShape fuse_vector_of_shapes_tiles( /// @param[in] fused_trange the TiledRange of the fused @c arrays /// @return DenseShape of fused Array object template -TA::DenseShape fuse_vector_of_shapes_tiles( +TA::DenseShape fuse_tilewise_vector_of_shapes( madness::World&, const std::vector>& arrays, const std::size_t array_rank, const TA::TiledRange& fused_trange) { @@ -283,7 +283,7 @@ class dist_subarray_vec /// global_world, but the subarrays are "local" to each rank and distributed in /// tilewise-round-robin fashion. /// The result will live in @c global_world. -/// @sa detail::fuse_vector_of_shapes_tiles +/// @sa detail::fuse_tilewise_vector_of_shapes template TA::DistArray fuse_tilewise_vector_of_arrays( madness::World& global_world, @@ -306,7 +306,7 @@ TA::DistArray fuse_tilewise_vector_of_arrays( std::size_t ntiles_per_array = array_trange.tiles_range().volume(); // make fused shape - auto fused_shape = detail::fuse_vector_of_shapes_tiles( + auto fused_shape = detail::fuse_tilewise_vector_of_shapes( global_world, arrays.array_accessor(), fused_dim_extent, fused_trange); // make fused array From 6d2d87bcfd78a1b3e1a6737aaed6f41e0d34a737 Mon Sep 17 00:00:00 2001 From: kmp5VT Date: Wed, 5 May 2021 09:50:55 -0400 Subject: [PATCH 10/14] Update call to fuse_vector_of_arrays_tiles -> fuse_tilewise_vector_of_arrays in TA tests --- tests/conversions.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/conversions.cpp b/tests/conversions.cpp index 770d8f8b55..57a39e806a 100644 --- a/tests/conversions.cpp +++ b/tests/conversions.cpp @@ -283,7 +283,7 @@ BOOST_AUTO_TEST_CASE(tiles_of_array_unit_blocking) { TA::set_default_world(world); world.gop.fence(); // convert vector of arrays back into dense array - auto b_dense_fused = TiledArray::fuse_vector_of_arrays_tiles( + auto b_dense_fused = TiledArray::fuse_tilewise_vector_of_arrays( world, b_dense_vector, 11, tr_split, 1); b_dense_vector.clear(); @@ -316,7 +316,7 @@ BOOST_AUTO_TEST_CASE(tiles_of_array_unit_blocking) { world.gop.fence(); // convert vector of arrays back into dense array - auto b_sparse_fused = TiledArray::fuse_vector_of_arrays_tiles( + auto b_sparse_fused = TiledArray::fuse_tilewise_vector_of_arrays( world, b_sparse_vector, 11, tr_split, 1); b_sparse_vector.clear(); @@ -382,7 +382,7 @@ BOOST_AUTO_TEST_CASE(tiles_of_arrays_non_unit_blocking) { world.gop.fence(); // convert vector of arrays back into dense array - auto b_dense_fused = TiledArray::fuse_vector_of_arrays_tiles( + auto b_dense_fused = TiledArray::fuse_tilewise_vector_of_arrays( world, b_dense_vector, dim_one, tr_split, block_size); b_dense_vector.clear(); @@ -418,7 +418,7 @@ BOOST_AUTO_TEST_CASE(tiles_of_arrays_non_unit_blocking) { world.gop.fence(); // convert vector of arrays back into dense array - auto b_sparse_fused = TiledArray::fuse_vector_of_arrays_tiles( + auto b_sparse_fused = TiledArray::fuse_tilewise_vector_of_arrays( world, b_sparse_vector, dim_one, tr_split, block_size); b_sparse_vector.clear(); // Check to see if the fused and original arrays are the same From 20ee4d480918cfde8c27349a5abe5d5476ea439b Mon Sep 17 00:00:00 2001 From: kmp5VT Date: Wed, 5 May 2021 10:11:38 -0400 Subject: [PATCH 11/14] Fix naming subshape_from_fused_tile -> tilewise_slice_of_fused_shape --- src/TiledArray/conversions/vector_of_arrays.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/TiledArray/conversions/vector_of_arrays.h b/src/TiledArray/conversions/vector_of_arrays.h index 6bcec93006..16ddcb882d 100644 --- a/src/TiledArray/conversions/vector_of_arrays.h +++ b/src/TiledArray/conversions/vector_of_arrays.h @@ -177,7 +177,7 @@ TA::DenseShape fuse_tilewise_vector_of_shapes( /// fused array /// @return the Shape of the @c i -th subarray // TODO rename to tilewise_slice_of_fused_shape -inline TA::SparseShape subshape_from_fused_tile( +inline TA::SparseShape tilewise_slice_of_fused_shape( const TA::TiledRange& split_trange, const TA::SparsePolicy::shape_type& shape, const std::size_t tile_idx, const std::size_t split_ntiles, const std::size_t tile_size) { @@ -389,7 +389,7 @@ TA::DistArray fuse_tilewise_vector_of_arrays( /// @param[in] tile_of_i tile range information for tile i /// @param[in] split_trange TiledRange of the split Array object /// @return the @c i -th subarray -/// @sa detail::subshape_from_fused_tile +/// @sa detail::tilewise_slice_of_fused_shape template void split_tilewise_fused_array( madness::World& local_world, const TA::DistArray& fused_array, @@ -407,8 +407,8 @@ void split_tilewise_fused_array( // Create tile_size arrays and put them into split_arrays for (size_t i = tile_range.first; i < tile_range.second; ++i) { - auto split_shape = detail::subshape_from_fused_tile( - split_trange, shape, tile_idx, split_ntiles, tile_size); + auto split_shape = detail::tilewise_slice_of_fused_shape( + split_trange, shape, tile_idx, split_ntiles, tile_size); // create split Array object TA::DistArray split_array(local_world, split_trange, split_shape); From c9c66b7e40555bc66f4605cfaae91008f8d80096 Mon Sep 17 00:00:00 2001 From: kmp5VT Date: Wed, 5 May 2021 10:20:08 -0400 Subject: [PATCH 12/14] Fix naming subarray_from_fused_array -> split_tilewise_fused_array --- tests/conversions.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/conversions.cpp b/tests/conversions.cpp index 57a39e806a..98bcb159d0 100644 --- a/tests/conversions.cpp +++ b/tests/conversions.cpp @@ -276,7 +276,7 @@ BOOST_AUTO_TEST_CASE(tiles_of_array_unit_blocking) { TA::set_default_world(this_world); for (int r = 0; r < num_mode0_tiles; ++r) { if (rank == r % size) { - TiledArray::subarray_from_fused_array(this_world, b_dense, r, + TiledArray::split_tilewise_fused_array(this_world, b_dense, r, b_dense_vector, tr_split); } } @@ -308,7 +308,7 @@ BOOST_AUTO_TEST_CASE(tiles_of_array_unit_blocking) { TA::set_default_world(this_world); for (int r = 0; r < num_mode0_tiles; ++r) { if (rank == r % size) { - TiledArray::subarray_from_fused_array(this_world, b_sparse, r, + TiledArray::split_tilewise_fused_array(this_world, b_sparse, r, b_sparse_vector, tr_split); } } @@ -374,7 +374,7 @@ BOOST_AUTO_TEST_CASE(tiles_of_arrays_non_unit_blocking) { TA::set_default_world(this_world); for (int r = 0; r < num_mode0_tiles; ++r) { if (rank == r % size) { - TiledArray::subarray_from_fused_array(this_world, b_dense, r, + TiledArray::split_tilewise_fused_array(this_world, b_dense, r, b_dense_vector, tr_split); } } @@ -410,7 +410,7 @@ BOOST_AUTO_TEST_CASE(tiles_of_arrays_non_unit_blocking) { TA::set_default_world(this_world); for (int r = 0; r < num_mode0_tiles; ++r) { if (rank == r % size) { - TiledArray::subarray_from_fused_array(this_world, b_sparse, r, + TiledArray::split_tilewise_fused_array(this_world, b_sparse, r, b_sparse_vector, tr_split); } } From 2f148a155ebd64c21b37395f44c82141fca2fcbd Mon Sep 17 00:00:00 2001 From: kmp5VT Date: Wed, 5 May 2021 10:39:28 -0400 Subject: [PATCH 13/14] Rename dense subshapre_from_fused_tile -> tilewise_slice_of_fused_shape --- src/TiledArray/conversions/vector_of_arrays.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/TiledArray/conversions/vector_of_arrays.h b/src/TiledArray/conversions/vector_of_arrays.h index 16ddcb882d..f79606e99f 100644 --- a/src/TiledArray/conversions/vector_of_arrays.h +++ b/src/TiledArray/conversions/vector_of_arrays.h @@ -209,7 +209,7 @@ inline TA::SparseShape tilewise_slice_of_fused_shape( /// the index of the corresponding tile of the leading dimension) /// @param[in] split_trange TiledRange of the target subarray objct /// @return the Shape of the @c i -th subarray -inline TA::DenseShape subshape_from_fused_tile( +inline TA::DenseShape tilewise_slice_of_fused_shape( const TA::TiledRange& split_trange, const TA::DensePolicy::shape_type& shape, const std::size_t tile_idx, const std::size_t split_ntiles, const std::size_t tile_size) { @@ -408,7 +408,7 @@ void split_tilewise_fused_array( // Create tile_size arrays and put them into split_arrays for (size_t i = tile_range.first; i < tile_range.second; ++i) { auto split_shape = detail::tilewise_slice_of_fused_shape( - split_trange, shape, tile_idx, split_ntiles, tile_size); + split_trange, shape, tile_idx, split_ntiles, tile_size); // create split Array object TA::DistArray split_array(local_world, split_trange, split_shape); From 711e4094d17321cdd1e2daed31fad5b4b0545c0d Mon Sep 17 00:00:00 2001 From: kmp5VT Date: Tue, 18 May 2021 18:48:35 -0400 Subject: [PATCH 14/14] Bump BTAS tag --- external/versions.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/external/versions.cmake b/external/versions.cmake index a73d205f19..694231cc76 100644 --- a/external/versions.cmake +++ b/external/versions.cmake @@ -22,8 +22,8 @@ set(TA_TRACKED_MADNESS_PREVIOUS_TAG b22ee85059e6ccc9a6e803ba0550652ece8d9df1) set(TA_TRACKED_MADNESS_VERSION 0.10.1) set(TA_TRACKED_MADNESS_PREVIOUS_VERSION 0.10.1) -set(TA_TRACKED_BTAS_TAG ed453f9c81dcfbba5a0b8eea88f89a484da2e128) -set(TA_TRACKED_BTAS_PREVIOUS_TAG 2c4b8649a4f3f884cdc3d73854dbc03d27e8a568) +set(TA_TRACKED_BTAS_TAG f4c965b778ff7df74f276f7fcf6224ac419e8ee3) +set(TA_TRACKED_BTAS_PREVIOUS_TAG ed453f9c81dcfbba5a0b8eea88f89a484da2e128) set(TA_TRACKED_CUTT_TAG 0e8685bf82910bc7435835f846e88f1b39f47f09) set(TA_TRACKED_CUTT_PREVIOUS_TAG 592198b93c93b7ca79e7900b9a9f2e79f9dafec3)