Skip to content

Interleaved computation with communication in halo exchange #881

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 170 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
170 commits
Select commit Hold shift + click to select a range
25243a9
added count to mhp algorithms
Jul 31, 2024
c950ea3
Merge branch 'main' of https://github.com/oneapi-src/distributed-rang…
Jul 31, 2024
7eec868
minor fix
Jul 31, 2024
6090fdc
minor fixes
Jul 31, 2024
167702d
code review fixes
Aug 2, 2024
755c896
more code review fixes
Aug 5, 2024
e98de3b
removed redundant conditional
Aug 16, 2024
f31b80c
fixes according to pre-commit checks
Aug 25, 2024
b847d04
Merge branch 'main' of https://github.com/oneapi-src/distributed-rang…
Sep 3, 2024
06cc78b
Merge branch 'main' of https://github.com/oneapi-src/distributed-rang…
Sep 26, 2024
5511751
added cyclic_halo_impl and distributed_vector_dual
Nov 11, 2024
b26665e
Merge pull request #1 from quazuo/count
quazuo Nov 11, 2024
e1e9910
added dual_segment and refined dual_distributed_vector
Dec 2, 2024
bdecda7
progress
Dec 25, 2024
9e81fd7
Merge remote-tracking branch 'upstream/main'
Dec 25, 2024
811307c
tiny fix
Dec 25, 2024
a5fdcf5
Merge branch 'main' of https://github.com/quazuo/distributed-ranges
Dec 25, 2024
5353689
prog
Dec 25, 2024
6701c41
prog
Dec 25, 2024
f79fe45
prog
Dec 25, 2024
b126f8b
prog
Dec 25, 2024
e1d50c9
prog
Dec 25, 2024
0da1f2c
prog
Dec 25, 2024
871bd58
prog
Dec 27, 2024
2e3c96d
prog
Dec 27, 2024
dff502a
prog
Dec 27, 2024
89f9c18
prog
Dec 27, 2024
2e4cc88
prog
Dec 27, 2024
9c37e12
prog
Dec 27, 2024
78cbd29
prog
Dec 27, 2024
e18f59a
prog
Dec 27, 2024
3329c97
prog
Dec 27, 2024
a0e067d
prog
Dec 27, 2024
fb05c7d
prog
Dec 27, 2024
ea43af7
prog
Dec 27, 2024
4fd4d8f
prog
Dec 27, 2024
95ca6cf
prog
Dec 27, 2024
900613e
prog
Dec 27, 2024
9218cd8
prog
Dec 27, 2024
46bfa65
prog
Dec 27, 2024
3d7a9a8
prog
Dec 27, 2024
2603a6c
prog
Dec 27, 2024
cdce405
prog
Dec 27, 2024
46f6ade
prog
Jan 1, 2025
e4eafa2
prog
Jan 1, 2025
ad460d8
prog
Jan 1, 2025
bd1e8ed
prog
Jan 1, 2025
8d0f5be
prog
Jan 1, 2025
046b7e4
prog
Jan 1, 2025
5c32e9e
prog
Jan 1, 2025
6e95e27
prog
Jan 2, 2025
46dff8e
prog
Jan 2, 2025
b842cc7
prog
Jan 2, 2025
d43b9d3
prog
Jan 2, 2025
1b6b21b
prog
Jan 2, 2025
d333564
prog
Jan 2, 2025
8690c17
prog
Jan 2, 2025
3860947
prog
Jan 2, 2025
6dcd2f4
prog
Jan 2, 2025
df55977
prog
Jan 2, 2025
4b0f293
prog
Jan 2, 2025
0fe709c
prog
Jan 2, 2025
05fa8f6
prog
Jan 7, 2025
0d94948
prog
Jan 7, 2025
33a1d4f
prog
Jan 7, 2025
8dd8a00
prog
Jan 7, 2025
d04461d
prog
Jan 13, 2025
497eb8c
prog
Jan 13, 2025
29759f1
prog
Jan 21, 2025
73c78a4
prog
Jan 27, 2025
02c92d8
prog
Feb 1, 2025
6d36592
prog
Feb 1, 2025
5a48300
prog
Feb 1, 2025
2955cdc
prog
Feb 1, 2025
d5ad221
prog
Feb 1, 2025
b02102f
prog
Feb 1, 2025
8d798eb
prog
Feb 1, 2025
d658d77
prog
Feb 1, 2025
4e33bd0
prog
Feb 1, 2025
6d108c4
prog
Feb 1, 2025
381159f
prog
Feb 1, 2025
3d2edda
prog
Feb 10, 2025
ccc1033
prog
Feb 10, 2025
3723fef
prog
Feb 10, 2025
6e2f48b
prog
Feb 10, 2025
741b0d8
prog
Feb 11, 2025
a1483a2
prog
Feb 18, 2025
ffc698d
prog
Feb 25, 2025
e69d371
prog
Mar 4, 2025
92baecf
prog
Mar 4, 2025
232b66f
prog
Mar 4, 2025
7f6adc6
prog
Mar 4, 2025
f1dd4c1
prog
Mar 4, 2025
71bff7d
prog
Mar 10, 2025
8b6dc9d
prog
Mar 10, 2025
73ffe2d
prog
Mar 12, 2025
4790936
prog
Mar 12, 2025
c25edce
prog
Mar 13, 2025
68cadd5
prog
Mar 13, 2025
7efc1dd
prog
Mar 13, 2025
bfcad1a
prog
Apr 7, 2025
6a57340
prog
Apr 22, 2025
b9f85f4
prog
Apr 30, 2025
c9f663f
prog
Apr 30, 2025
91bd445
prog
Apr 30, 2025
f17cb40
prog
May 1, 2025
c3fe0df
prog
May 1, 2025
3b2a249
prog
May 6, 2025
a0e6d1a
prog
May 6, 2025
ce168f8
prog
May 6, 2025
f49db0a
prog
May 6, 2025
650ef40
prog
May 6, 2025
ecd682b
prog
May 6, 2025
459ab92
prog
May 6, 2025
c404bf5
prog
May 6, 2025
c30485c
prog
May 6, 2025
81f646a
prog
May 6, 2025
2f8558a
prog
May 6, 2025
b517be9
prog
May 6, 2025
eef815c
prog
May 6, 2025
0c8b1df
prog
May 6, 2025
cfa249e
prog
May 8, 2025
0afa41b
prog
May 8, 2025
a8063ea
prog
May 8, 2025
175843b
prog
May 8, 2025
62b282f
prog
May 8, 2025
6cd3a48
prog
May 8, 2025
6b363de
prog
May 8, 2025
a71921b
prog
May 8, 2025
3c897e4
prog
May 8, 2025
f3f5b05
prog
May 8, 2025
bbcc376
prog
May 12, 2025
d26e451
prog
May 12, 2025
5c2a3df
prog
May 12, 2025
8811883
prog
May 12, 2025
ba753d3
prog
May 12, 2025
8deeb5d
prog
May 12, 2025
4fdb6bc
prog
May 14, 2025
ad88358
prog
May 14, 2025
af75a5c
prog
May 14, 2025
cd257c9
prog
May 14, 2025
0a3c1ee
prog
May 14, 2025
73c3b05
prog
Jun 5, 2025
c54b47f
prog
Jun 5, 2025
c5262e6
prog
Jun 11, 2025
0a047e0
prog
Jun 11, 2025
86ae201
prog
Jun 11, 2025
4bb8f87
prog
Jun 11, 2025
2f4110d
prog
Jul 7, 2025
5b1cc8c
prog
Jul 10, 2025
c1beb85
prog
Jul 14, 2025
f471e5f
prog
Jul 14, 2025
d978920
prog
Jul 14, 2025
0ca7b78
prog
Jul 14, 2025
3bb2cea
prog
Jul 14, 2025
8ffc59d
prog
Jul 14, 2025
b67c6fe
prog
Jul 14, 2025
0136421
prog
Jul 14, 2025
ef414b5
prog
Jul 14, 2025
063089b
prog
Jul 15, 2025
68d2f2c
prog
Jul 17, 2025
b7de0f0
prog
Jul 17, 2025
5b84094
prog
Jul 17, 2025
bb0bc6e
prog
Jul 17, 2025
082b0df
prog
Jul 17, 2025
a47f786
prog
Jul 17, 2025
45f6642
prog
Jul 22, 2025
e119607
prog
Jul 22, 2025
75a4ba4
prog
Jul 22, 2025
4c680d5
prog
Jul 31, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions include/dr/mp.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -79,3 +79,4 @@
#include <dr/mp/algorithms/transpose.hpp>
#include <dr/mp/containers/distributed_vector.hpp>
#include <dr/mp/containers/distributed_mdarray.hpp>
#include <dr/mp/containers/dual_distributed_vector.hpp>
50 changes: 48 additions & 2 deletions include/dr/mp/algorithms/for_each.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,53 @@

namespace dr::mp {

/// Collective for_each on distributed range
// the concept doesn't work yet... for some reason
template <typename R>
concept dual_vector_range =
dr::distributed_range<R> && requires(R &r) { dr::ranges::segments(r)[0].is_compute(); };

void partial_for_each(dual_vector_range auto &&dr, auto op) {
dr::drlog.debug(dr::logger::for_each, "partial_for_each: parallel execution\n");
if (rng::empty(dr)) {
return;
}

auto is_local = [](const auto &segment) {
return dr::ranges::rank(segment) == default_comm().rank();
};

for (auto &seg : dr::ranges::segments(dr) | rng::views::filter(is_local)) {
if (!seg.is_compute()) {
seg.swap_state();
continue;
}

auto b = dr::ranges::local(rng::begin(seg));
auto s = rng::subrange(b, b + rng::distance(seg));

if (mp::use_sycl()) {
dr::drlog.debug(" using sycl\n");

assert(rng::distance(s) > 0);
#ifdef SYCL_LANGUAGE_VERSION
dr::__detail::parallel_for(
dr::mp::sycl_queue(), sycl::range<1>(rng::distance(s)),
[first = rng::begin(s), op](auto idx) { op(first[idx]); })
.wait();
#else
assert(false);
#endif
} else {
dr::drlog.debug(" using cpu\n");
rng::for_each(s, op);
}

seg.swap_state();
}
// barrier();
}

// Collective for_each on distributed range
void for_each(dr::distributed_range auto &&dr, auto op) {
dr::drlog.debug(dr::logger::for_each, "for_each: parallel execution\n");
if (rng::empty(dr)) {
Expand All @@ -44,7 +90,7 @@ void for_each(dr::distributed_range auto &&dr, auto op) {
rng::for_each(s, op);
}
}
barrier();
// barrier();
}

/// Collective for_each on iterator/sentinel for a distributed range
Expand Down
Loading