Skip to content
Snippets Groups Projects
Commit 88cd46aa authored by Stéphane Del Pino's avatar Stéphane Del Pino
Browse files

Add broadcast for single std::string value

parent fb89820a
No related branches found
No related tags found
1 merge request!176Add HDF5 support
...@@ -766,6 +766,15 @@ class Messenger ...@@ -766,6 +766,15 @@ class Messenger
CastArray cast_array = cast_value_to<CastType>::from(data); CastArray cast_array = cast_value_to<CastType>::from(data);
_broadcast_array(cast_array, root_rank); _broadcast_array(cast_array, root_rank);
} }
} else if constexpr (std::is_same_v<std::string, DataType>) {
Array s = convert_to_array(data);
broadcast(s, root_rank);
if (m_rank != root_rank) {
data.resize(s.size());
for (size_t i = 0; i < s.size(); ++i) {
data[i] = s[i];
}
}
} else { } else {
static_assert(is_false_v<DataType>, "unexpected type of data"); static_assert(is_false_v<DataType>, "unexpected type of data");
} }
......
...@@ -223,6 +223,18 @@ TEST_CASE("Messenger", "[mpi]") ...@@ -223,6 +223,18 @@ TEST_CASE("Messenger", "[mpi]")
parallel::broadcast(value, 0); parallel::broadcast(value, 0);
REQUIRE((value == mpi_check::tri_int{6, 2, 4})); REQUIRE((value == mpi_check::tri_int{6, 2, 4}));
} }
{
std::string data;
if (parallel::rank() == 0) {
data = "foo";
} else {
data = "bar";
}
parallel::broadcast(data, 0);
REQUIRE(data == "foo");
}
} }
SECTION("broadcast array") SECTION("broadcast array")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment