繁体   English   中英

发送一个 c++ std::vector<bool> 通过 MPI

[英]Send a c++ std::vector<bool> via mpi

我知道std::vector<bool>的存储不一定是 bools 数组

如果我想发送存储在std::vector<int>中的接收 int 数据,我会使用MPI_Send(vect.data(),num_of_ints,MPI_INT,dest_rk,tag,comm)

我应该如何使用MPI_Send发送std::vector<bool> 特别是 :

  • 我可以/应该使用vect.data()作为指向缓冲区的指针吗?
  • 我应该提供什么 MPI 类型? 不知何故,我觉得MPI_CXX_BOOL不适用(见这个问题
  • 我应该提供多少个元素? (与上一点相关)

std::vector<bool>专业化不具有data()成员函数。 标准没有规定底层存储方案:

不要求将数据存储为bool值的连续分配。 推荐使用位的空间优化表示。

发送std::vector<bool>的唯一合理选择是将其复制到char向量(或类似std::int8_t一些类似类型)中,然后发送该向量。 更好的选择可能是从一开始就避免在代码中使用std::vector<bool>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM