问题标签 [openmpi]

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 回答
3069 浏览

c++ - 多线程 MPI 进程突然终止

我正在编写一个 MPI 程序(Visual Studio 2k8 + MSMPI),它使用 Boost::thread 为每个 MPI 进程生成两个线程,并且遇到了我无法追踪的问题。

当我使用: 运行程序时mpiexec -n 2 program.exe,其中一个进程突然终止:

我不知道为什么第一个进程突然终止,并且无法弄清楚如何追查原因。即使我在所有操作结束时将零级进程放入无限循环中,也会发生这种情况......它只是突然死亡。我的主要功能如下所示:

Where the master and slave functions do some arbitrary work before ending. I can confirm that the master thread, at the very least, is reaching the end of it's operations. The slave thread is always the one that isn't done before the execution gets aborted. Using print statements, it seems like the slave thread isn't actually hitting any errors... it's happily moving along and just get's taken out in the crash.

So, does anyone have any ideas for:
a) What could be causing this?
b) How should I go about debugging it?

Thanks so much!

Edit:

Posting minimal versions of the Master/Slave functions. Note that the goal of this program is purely for demonstration purposes... so it isn't doing anything useful. Essentially, the master threads send a dummy payload to the slave thread of the other MPI process.

0 投票
5 回答
92591 浏览

mpi - MPICH 与 OpenMPI

有人可以详细说明 MPI 的 OpenMPI 和 MPICH 实现之间的区别吗?两者中哪一个是更好的实现?

0 投票
3 回答
8411 浏览

c++ - 无法在两台以上的机器上运行 OpenMPI

在尝试运行boost::mpi 教程中的第一个示例时,我无法在两台以上的机器上运行。具体来说,这似乎运行良好:

主机名中的每个主机名都为<node_name> slots=2 max_slots=2. 但是,当我将进程数增加到 5 时,它就会挂起。当我超过 2 台机器时,我将slots/的数量减少到 1,结果相同。max_slots在节点上,这显示在作业列表中:

此外,当我杀死它时,我会收到以下消息:

集群设置为在 NFS 安装的驱动器上可访问的mpi和库。boost我是否遇到了 NFS 的死锁?或者,还有其他事情发生吗?

更新: 需要明确的是,我正在运行的提升程序是

根据@Dirk Eddelbuettel 的建议,我编译并运行了 mpi 示例hello_c.c,如下

它在具有多个进程的单台机器上运行良好,这包括进入任何节点并运行。每个计算节点都与通过 NFS 从远程机器挂载的工作目录和 mpi/boost 目录相同。当从文件服务器运行 boost 程序时(与一个节点相同,除了 boost/mpi 是本地的),我可以在两个远程节点上运行。但是,对于“hello world”,运行mpirun -H node1,node2 -np 12 ./hello我得到的命令

而所有的“Hello World's”都被打印出来并挂在最后。但是,从远程节点上的计算节点运行时的行为不同。

当从 node2 运行时,“Hello world”和 boost 代码都会挂起,mpirun -H node1 -np 12 ./hello反之亦然。(挂起与上述相同的意义:orted 正在远程机器上运行,但没有回通信。)

该行为不同于在 mpi 库位于本地的文件服务器上与在计算节点上运行的行为不同,这表明我可能遇到了 NFS 死锁。这是一个合理的结论吗?假设是这种情况,如何配置 mpi 以允许我静态链接它?此外,我不知道如何处理从文件服务器运行时遇到的错误,有什么想法吗?

0 投票
2 回答
1505 浏览

boost - 寻找mpic++

我正在按照这些说明尝试构建 Boost MPI.lib文件,但遇到了一个问题:我没有mpic++.

查看 MPICH 和 Open MPI 等 MPI 实现文件,我发现根本没有mpic++包含在内。

我在哪里可以找到mpic++

0 投票
0 回答
3017 浏览

windows - 在 Windows XP 上运行 OpenMPI

我正在尝试构建一个基于 Windows XP 的简单集群。我成功编译了 OpenMPI-1.4.2,并且类似的工具mpiccompi_info可以正常工作,但我无法mpirun正常工作。我能看到的唯一输出是

其中z:\hosts.txt出现如下:

Z:是 host0 和 host1 都可以使用的共享网络驱动器。

我的问题是什么,我该如何解决?


更新: 好的,这个问题似乎已经解决了。在我看来,WideCap 驱动程序和/或软件组件会导致出现此错误。“干净”的机器成功运行本地任务。无论如何,我仍然无法在至少 2 台机器上运行任务,我收到以下消息:

我用谷歌搜索了一下,做了这里描述的所有事情:http ://www.open-mpi.org/community/lists/users/2010/03/12355.php但我仍然遇到同样的错误。谁能帮我?


Upd2: 错误代码 -2147217400 可能是 WMI 错误WBEM_E_INVALID_PARAMETER (0x80041008),当传递给 WMI 调用的参数之一不正确时发生。这是否意味着问题出在 OpenMPI 源代码本身?或者可能是因为错误/过时wincred.hcredui.lib我在从源代码构建 OpenMPI 时使用过?

0 投票
2 回答
1206 浏览

c++ - 可以在 Internet 上而不是在 LAN 集群内分发 MPI (C++) 程序吗?

我编写了一些在大型集群上完美运行的 MPI 代码。集群中的每个节点都具有相同的 cpu 架构,并且可以访问网络(即“通用”)文件系统(以便每个节点都可以执行实际的二进制文件)。但考虑这种情况:

  • 我办公室里有一台带有双核处理器(英特尔)的机器。
  • 我家里有一台带有双核处理器(amd)的机器。

两台机器都运行linux,两台机器都可以在本地成功编译和运行MPI代码(即使用2核)。

现在,是否可以通过 MPI 将两台机器链接在一起,以便我可以利用所有 4 个内核,同时牢记不同的架构,并牢记没有共享(网络)文件系统的事实?

如果是这样,怎么做?

谢谢,本。

0 投票
3 回答
2664 浏览

fortran - OpenMP & MPI explanation

A few minutes ago I stumbled upon some text, which reminded me of something that has been wondering my mind for a while, but I had nowhere to ask.

So, in hope this may be the place, where people have hands on experience with both, I was wondering if someone could explain what is the difference between OpenMP and MPI ?

I've read the Wikipedia articles in whole, understood them in segments, but am still pondering; for a Fortran programmer who wishes one day to enter the world of paralellism (just learning the basics of OpenMP now), what is the more future-proof way to go ?

I would be grateful on all your comments

0 投票
2 回答
10524 浏览

c - 如何强制 OpenMPI 使用 GCC 而不是 ICC?是否需要重新编译 OpenMPI?

我有一个为 编写的用于并行计算的 C 代码,我想在一个显然使用viagcc的集群上编译它。将代码更正为-friendly 似乎太费时间了,所以我想知道是否可以要求改用。我没有该集群的管理员权限,实际上我更希望不要弄乱原始配置。iccmpicciccOpenMPIgcc

如果无法在 eg 中进行设置Makefile,那么我希望可以OpenMPI在我的主目录中进行编译,但我需要一些关于之后必须做什么的指导。你可以帮帮我吗?


更新1

Makefile包含_

这里有一些 OpenMPI 文件

让我知道,如果我可以为您提供更多信息。


更新2

Jeff 的帮助下OpenMPI,我能够找到mpicc

但是,我无权编辑此文件,OPMI_CC = gcc也没有更改编译器。


更新3

环境变量CC = gcc没有帮助


更新4

...但export OMPI_CC=gcc最终确实有所帮助(感谢 sharth)。总有一天我应该记住这些是不同的东西......

尽管创建了二进制文件,但我收到了以下再见消息

0 投票
2 回答
2866 浏览

c - 如何将 -libm 传递给 MPICC?libimf.so:警告:feupdateenv 未实现且将始终失败

我是一个新手,试图通过mpicc替换icc来编译程序gcc。我已经发现,我需要使用下面的命令来编译

但是,我收到以下错误消息(这是众所周知的

我试着做

然后我看到

但是,我在那里找到文件

0 投票
2 回答
537 浏览

mpi - 我们可以在单个系统中运行 MPI 程序还是必须在集群中运行它?

我可以在我的大学使用 PelicanHPC 访问集群网络,在其中运行各种 MPI 程序,但在家里我想练习编写/使用其他 MPI 程序。有没有办法可以在我自己的系统上运行 MPI 程序?

(我在 Ubuntu Jaunty 上工作)