【发布时间】:2015-01-30 16:09:03
【问题描述】:
我很难考虑如何将我的程序变成并行程序(我以前从未这样做过)。基本上,我有一个数据集(它是一个对象向量),我从中提取了一组集群,其中每个集群都有一个迭代器向量,每个迭代器都指向数据集上的原始位置。
我要做的是使创建集群的过程并行,然后将所有集群发送回主线程。问题是我正在使用 boost 序列化所有内容并通过 MPI 发送它,它不会序列化迭代器。我想简单地使用指向数据集的指针而不是迭代器,但是我需要做一些事情,以便当集群被发送回主线程时,主线程使每个指向新创建的对象的指针都指向数据集vector 代替(然后删除旧对象),我认为这不是一个很好的解决方案,我也想不出一个快速的方法来做到这一点。
这只是第一部分,之后我需要再次将集群发送给线程,以便它们可以进行一些其他计算,因此收集集群的过程应该不会太慢。
谢谢
【问题讨论】:
-
您确定您的意思是 MPI,而不是 OpenMP?您是想在一台多核计算机上使用多个线程,还是在连接在一起的多台计算机上使用多个进程?
-
抱歉拖了这么久,我以为我会收到电子邮件通知。它是 MPI,具有多台计算机。不确定它是否最适合该项目,但遗憾的是我现在需要坚持下去。我现在解决了这个问题,但是谢谢!
标签: c++ multithreading boost parallel-processing mpi