问题标签 [boost-mpi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
748 浏览

c++ - 从函数返回任意类型

我想从函数返回任意类型。返回类型动态地取决于多态函数调用。例如,以下从具有不同列数的 CSV 文件中读取值,

我如何编写getTuple()签名以根据调用的对象返回不同的类型?

解决方案:

0 投票
1 回答
1025 浏览

c++ - Boost::serialization 和 boost::mpi 通过基类指针广播派生类

我正在尝试使用 boost::mpi::broadcast 通过基类指针将派生类发送到所有节点。为此,我使用 boost::serialization 库来序列化我的类。但是,我的代码无法编译,并且出现错误“class boost::mpi::packed_skeleton_iarchive' has no member named 'append'”和“class boost::mpi::packed_skeleton_iarchive' has no member named 'reset'。 "

这是该程序的粗略源代码:

我只发现了一个关于这个问题的 Google Groups 讨论,但到目前为止还没有解决方案https://groups.google.com/forum/#!msg/boost-developers-archive/Ee9_ilEDO7s/cJTy-8v5lEcJ。我怎样才能让它编译?我正在使用 openmpi 1.2.8-17.4、gcc 4.5.1 和 boost 1.54。

0 投票
2 回答
968 浏览

c++ - 开放式 MPI 广播延迟测量

通过阅读文档,MPI_Bcast 也是一个阻塞调用(因此 boost::mpi::broadcast)也是如此。测量根节点广播所需的时间是否可以很好地衡量数据从根节点到所有其他节点所需的时间?

IE

或者对于直接的 OpenMPI:

0 投票
1 回答
1181 浏览

c++ - 使用 boost::mpi 对 mpi 中的消息大小有限制吗?

我目前正在使用 boost::mpi 在 openMPI 之上编写模拟,并且一切正常。但是,一旦我扩大系统规模并因此必须发送更大的 std::vectors 我就会出错。

我已将问题简化为以下问题:

打印出来:

我知道 mpi 消息大小是有限制的,但 65kB 对我来说似乎有点低。有没有办法发送更大的消息?

0 投票
0 回答
147 浏览

mpi - 快速 mpi 右旋转大数据

使用 MPI 后,我想以循环方式将数据向右移动。也就是说,如果你有 4 个节点,1->2、2->3、3->4、4->1。我正在使用 boost mpi 并使用以下代码来执行此操作。

在上面的代码中,我有以下观察。

  1. 在发送更大的数据大小时,所有节点上的 MPI_ALL_GATHER 比右轮换更快。也就是说,每个人与每个人交换他们的数据比仅仅发送给它的邻居更快。我的 MPI_ALL_GATHER 例程如下。

    /li>
  2. 对于较大的数据包,如何使上面的右旋转更快。

0 投票
1 回答
1167 浏览

c++ - OSX“clang++ -lboost_mpi”`->“ld: library not found for -lboost_mpi” after brew install boost --with-mpi

使用 brew 安装带有 mpi 支持的 boost 后,ld: "library not found for -lboost_mpi"运行时仍然出现错误clang++ -lboost_mpi。我能做些什么来克服这个问题?我使用brew安装了boost:

怎样才能clang++ -lboost_mpi成功使用?

0 投票
1 回答
118 浏览

c++ - boost::mpi 阻塞 IO 不会被 linux 信号中断

我使用 boost::mpi、OpenMPI。boost::mpi::communicator::recv(阻塞版)不会被 Linux 信号打断。如何使用 SIGTERM 信号以正确的方式终止我的程序?

0 投票
1 回答
148 浏览

c++ - 通过 boost 发送一个简单的 boost 图形对象:MPI got error

我正在通过修改“/apps/boost_1_56_0/libs/graph/test”中的代码“serialize.cpp”并尝试通过boost MPI通过网络发送boost图对象来进行测试。

它编译得很好,但是当我使用 mpirun 运行可执行文件时,我收到了这个错误:

我想我正在读取一个空缓冲区,但不知道如何修复它。

0 投票
0 回答
44 浏览

c++ - 可变机制的 MPI 内容/骨架?

我想知道 Boost.MPI 中提供的 MPI 功能的骨架和内容实现有什么好处。据我了解,只有当消息具有任意类型的固定大小并且该消息需要以不同的内容多次发送时,骨架和内容方法才有用。

因此,skeleton&content 在以下情况下不起作用:

Boost 通过序列化数据并在另一端反序列化来发送内容。(我假设它会发送 MPI_BYTE 类型的数据并以某种方式处理带有标志的字节序?)

两个问题:

  1. 为什么需要发送任何可序列化类型的骨架(也可以是序列化包装器对象):Boost 是否可以不只是反序列化(给定提供反序列化的相同序列化包装器)接收到的数据而不需要骨架?

所以 skelton&content 方法在列表的动态大小等方面是有益的。在后续调用中不需要再次序列化。所以真正的好处是使用骨架和内容方法的序列化消息(发送内容)更小。如果消息被发送多次,这是有益的。

所以总而言之,如果消息是高度动态的(形状变化)并且只发送一条消息,则不应应用骨架和内容。

那是对的吗?

0 投票
1 回答
1058 浏览

boost - 我怎样才能序列化提升元组?

当尝试使用 boost mpi 对带有 boost_tuple 的元素进行广播时:

我有错误:

我能做什么?谢谢你。