问题标签 [mpich]

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 投票
2 回答
3908 浏览

mingw - 如何在 MinGW 中包含库 MPICH2

我不断收到错误:

我如何包含mpi.h为默认库?我相信我已经放c:\MPICH2\bin了系统变量>路径

0 投票
2 回答
16613 浏览

windows-7 - MPICH2 在 Windows 7 中无法连接

每当我尝试命令 mpiexec -n 4 testmpi.exe

无法连接到“RIJDZUAN-PC:8676”,sock 错误:通用套接字故障,错误堆栈:MPIDU_Sock_post_connect(1200):无法连接到端口 8676 上的 RIJDZUAN-PC,耗尽所有端点 (errno -1) MPIDU_Sock_post_connect(1247 ): 无法连接到 RIJDZUAN-PC 的 8676 端口,由于目标机器主动拒绝,无法连接。(错误号 10061)

当我尝试 smpd -install 或 smpd -start 给我

OpenSCManager 失败:访问被拒绝。(错误 5)

我相信我已经通过 mpiexec -register 注册了 mpiexec

如何解决这个问题?

0 投票
2 回答
4638 浏览

c - MPI_Comm_rank 总是写 0

如何获得预期的输出

或者这些线的一些排列?

ranktest.c

编译和运行

在不同的主机上:

我试过了

但没有任何改变。/etc/openmpi/openmpi-default-hostfile 和 /etc/openmpi/openmpi-mca-params.conf 都只包含对两个主机的注释。这里可能有什么不同?

更改为MPI_Init(&argc, &argv)或 或者,int main()也不会执行任何操作。

真正的问题,感谢 user3469194:

(还有更多)

对一些建议的回应:( 请参阅此 github 存储库,2012 年 12 月 1 日提交。)

尝试在 MPI_Init() 之前移动 world_rank 和 world_size 的定义,它会改变什么吗?

自然,这不太好用:

或者,在我的家用电脑上:

这几乎总是将一个使用一个 MPI 编译的程序与另一个的 mpirun 一起运行的问题。第一台机器(hustlenbustle)是否也安装了 mpich2?事物出现在路径的什么位置?特别是 和 的结果是which mpicc什么which mpirun

我在每次尝试之前在每台计算机上重新编译。我继续为此制定了目标。但是,根据要求:

而且,对于 shiggles,这里是 hnb 和 perrin 的一些 aptitude搜索输出。让我知道我是否应该搜索其他内容。

在 Open MPI 下,以下命令应打印出版本:mpirun -V. 如果它不打印mpiexec (OpenRTE) 1.x.x.,那么您可能有运行时间不匹配。

但是,我正在为每个测试重新编译。

也许sudo aptitude reinstall SOMETHING会有所帮助?

0 投票
3 回答
13279 浏览

mpi - mpiexec.hydra - 如何在 hydra_pmi_proxy 位置不同的机器上运行 MPI 进程?

我正在尝试在两台机器的集群上使用 MPICH 运行一个简单的 MPI 程序。但是,一个正在运行 Fedora 17,另一个正在运行 Debian Squeeze - 不一定是问题,但问题是这两个发行版将它们的 mpi 执行程序放在不同的目录中:

当我从 host1 运行以下命令时:

它失败并出现以下错误

这似乎是因为hydra_pmi_proxy它安装在/usr/lib/mpich2/binFedora 机器上,但安装在/usr/binDebian 机器上。我假设当我通过 ssh 从 host1 生成进程时,它希望在 host2 的同一位置找到 hydra_pmi_proxy。

如果我只是在该节点上本地运行该程序,则该程序在两台机器上都可以正常运行 - 我只是在尝试在两台机器上运行它时都会遇到问题。

我在 MPICH 文档中搜索了一种覆盖到远程路径的方法hydra_pmi_proxy,但无济于事。

我能以某种方式做到这一点吗?我认为 MPICH 的优点之一是它可以轻松处理异构主机......

任何见解将不胜感激!

0 投票
0 回答
1114 浏览

mpi - 多核上的 MPICH2 Hydra 循环

我需要在我的 Mpi 程序中按循环顺序安排进程。

我有一个有 8 个节点的集群,每个集群都有四核处理器。我在 Ubuntu Linux 下使用 mpich2-1.4.1p1 版本。

如果使用此机器文件:

然后运行:

我有一个正确的调度,排名 0 到 node01,排名 1 到 node02,... rank8 到 node01,最后排名 9 到 node02

但我需要知道 0 级和 8 级是否在同一个核心上运行。我需要排名 0 在 node01 上的第一个核心上工作,在第二个上排名 8。

如果我使用不同的机器文件:

然后运行:

我在 node01 上运行该等级 0,1,2,3 。而且不是我想要的。

如何强制 Hydra 首先在节点上使用循环法,然后在使用第二个机器文件的核心上使用?

0 投票
3 回答
1014 浏览

c - MPICH: How to publish_name such that a client application can lookup_name it?

While learning MPI using MPICH in windows (1.4.1p1) I found some sample code here. Originally, when I ran the server, I would have to copy the generated port_name and start the client with it. That way, the client can connect to the server. I modified it to include MPI_Publish_name() in the server instead. After launching the server with a name of aaaa, I launch the client which fails MPI_Lookup_name() with

Here are the snipped bits of code:

server.c

client.c

I cannot find any information about altering visibility of published names, if that is even the problem. MPICH seems to not have implemented anything with MPI_INFO. I would try openMPI but I am having trouble just building it. Any suggestions?

0 投票
1 回答
1011 浏览

multithreading - 如何为每个 MPICH 进程设置不同的 MKL 线程数

我想为每个 MPICH 进程创建不同数量的 MKL 线程。

例如,假设我有 4 个 MPICH 进程。我想要的是:

进程 1=4 MKL 线程,进程 2=3 MKL 线程,进程 3=5 MKL 线程,等等。

我知道export MKL_NUM_THREADS=4; export MKL_DOMAIN_NUM_THREADS="MKL_ALL=1, MKL_BLAS=4",但我不知道在我的具体情况下我必须做什么。

0 投票
1 回答
2520 浏览

c++ - MPICH 通信失败

我有一个简单的 MPICH 程序,其中进程以环形顺序相互发送和接收消息。
我已经设置了 2 个相同的虚拟机,并确保网络工作正常。我在两台机器上都测试了一个简单的 MPICH 程序,它运行良好。当我尝试像上述程序一样在不同机器上的进程之间进行通信时,就会出现问题。我收到以下错误:

MPI_Send 中的致命错误:进程失败,错误堆栈:
MPI_Send(171).............: MPI_Send(buf=0xbfed8c08, count=1, MPI_INT, dest=1,
tag =1,MPI_COMM_WORLD) 失败
MPID_nem_tcp_connpoll(1826):等级 1 的通信错误:连接被拒绝

  • SSH 是无密码的,双方都可以正常工作。
  • /etc/hosts配置正确。
  • 两台机器上的防火墙都被禁用。
  • 配置 NFS 客户端/服务器并在它们之间共享一个目录。(据此
  • 使用 Hydra 尝试了 MPICH 和 OpenMPI
0 投票
2 回答
1097 浏览

parallel-processing - 是否可以将 mpiexec 作为 mpiexec 程序的子进程运行?

我有一个使用 mpiexec 运行的程序 A。该程序通常并行运行,但在其中一种执行模式中,它可能会调用也启用了 MPI 的外部程序 B。当然,如果 B 作为串行调用,则 A 的每个实例最终都会调用 B 的一个实例。如果并行调用,A 的每个实例都将调用并行 B。

一种可能的解决方案是让 A 的主节点调用并行 B,让其他 A 的进程空闲,但当然我需要从 A 的用户命令行调用中继承 mpiexec 选项(包括任何怪癖,例如 PBS 交互)到内部 B 调用。据我所知,这不是微不足道的,也不能很好地处理不同的 MPI 实现(例如 MPICH 与 Open MPI)。

有没有人有这种问题的经验?

0 投票
1 回答
597 浏览

cluster-computing - 在 linux 集群中运行并行作业 - mpich 错误

首先我想说我不确定这是问这个问题的正确地方,我猜是我们,但是......如果它更适合另一个 stackexchange 站点,请告诉我。

三个月前,我负责一个由六台计算机 (Suse Linux 9.2) 组成的集群,该集群以预报模式运行气象模型。最近,由于电源中断,其中一个节点崩溃了。安装 Lubuntu 12.04(Suse 9.2 磁盘不可用,只有 10.2)后,我尝试将此计算机重新连接到集群:

  • 安装openssh服务器
  • 无需密码即可运行 ssh-keygen 到 ssh
  • 已安装 NFS 支持
  • 编辑 /etc/fstab
  • 编辑 /etc/hosts

然后我尝试运行遇到的模型,但收到以下错误消息:

谷歌搜索后,我发现了一些关于 /etc/resolv.conf 的问题,然后编辑了这个文件:

域 ceam.es dns 名称服务器 192.168.1.1 名称服务器 127.0.0.1

但是错误信息仍然出现。我想我遗漏了一些东西,我不是专家系统管理员,但我必须处理。

你可以在这里找到错误日志主机resolv.conf

任何帮助或想法将不胜感激,我将继续在网上搜索解决方案。

提前致谢