gpt4 book ai didi

c++ - 使用 Boost.MPI 仅同步部分 C++ vector

转载 作者:太空宇宙 更新时间:2023-11-04 14:26:16 27 4
gpt4 key购买 nike

我有一个 std::vector(我们称它为“data_vector”),我想跨处理器同步部分内容。即,我想将该 vector 中任意索引的值发送到其他处理器。

如果我想发送整个 vector ,我可以使用 Boost 的 send() 函数轻松地做到这一点,但我实际上只需要发送它的一小部分。现在我有一个单独的 vector (我们称它为“idx_vector”),其中包含我要发送的 data_vector 的索引,但如果需要我可以更改格式。

执行此操作的最佳方法是什么?我不想分别遍历和同步每个索引。我可以将所有值复制到一个连续的 vector 中并同步它,然后重建它,但我想知道 Boost 是否有更好的方法。使用包含指向 data_vector 位置的指针的 idx_vector 的 Boost.serialization 会起作用吗?我该怎么做?

最佳答案

序列化应该有效,因为在引擎盖下 MPI 实现将发送一个字节数组。 MPI 这样做的方法是定义一个 MPI 数据类型来挑选出您要发送的索引,在这种情况下,MPI_Type_indexed 可能是正确的选择。

关于c++ - 使用 Boost.MPI 仅同步部分 C++ vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3783062/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com