MPI代码在一台计算机上成功运行,但在另一台计

时间:2016-01-20 22:20:42

标签: c++ mpi openmpi

我用C ++编写了一些使用MPI的科学软件。我首先用串行编写代码然后写了一个并行版本(用MPI实现)。我在家里的桌面上完成了部分MPI代码,在那里根据已知的分析解决方案和序列代码进行了测试。它成功地完成了这些并且代码是正确的。

我后来在外部集群上测试了这个代码,以了解随着处理器数量的增加而扩展,并且运行1,2,4,8和16个处理器都可以成功计算。

我现在正在添加笔记本电脑上的代码,无论处理器数量多少(即使使用1个处理器),输出数据都会发散,尽管相同的(MPI部分除外)串行代码会计算出正确的答案。起初我以为我意外地改变了一些东西并恢复到旧版本,只是为了找到同样的东西。然后我去外部集群上运行旧版本,令我惊讶的是,它计算了正确的答案。我scp将此代码(从群集中按原样将其缩写)返回到我的笔记本电脑并使用完全相同的参数运行它,我发现输出不正确(并且发散)。 / p>

可能导致这种情况的原因是什么?我在OSX El Capitan上运行最新版本的OpenMPI(1.10.1),使用Homebrew安装。我已尝试使用mpirunmpiexec两者,他们都给出了相同的结果。我在这里完全不知所措。

我的一个想法是,它可能是由于OpenMPI安装冲突造成的?我发现anaconda(Python发行版)有自己的OpenMPI版本,我卸载了它(没有变化)。据我所知,我的计算机上没有其他版本的MPI,但我想有可能是某些冲突的库文件潜伏在导致这些问题的地方。

0 个答案:

没有答案