问题标签 [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.
mingw - 如何在 MinGW 中包含库 MPICH2
我不断收到错误:
我如何包含mpi.h
为默认库?我相信我已经放c:\MPICH2\bin
了系统变量>路径
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
如何解决这个问题?
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
会有所帮助?
mpi - mpiexec.hydra - 如何在 hydra_pmi_proxy 位置不同的机器上运行 MPI 进程?
我正在尝试在两台机器的集群上使用 MPICH 运行一个简单的 MPI 程序。但是,一个正在运行 Fedora 17,另一个正在运行 Debian Squeeze - 不一定是问题,但问题是这两个发行版将它们的 mpi 执行程序放在不同的目录中:
当我从 host1 运行以下命令时:
它失败并出现以下错误
这似乎是因为hydra_pmi_proxy
它安装在/usr/lib/mpich2/bin
Fedora 机器上,但安装在/usr/bin
Debian 机器上。我假设当我通过 ssh 从 host1 生成进程时,它希望在 host2 的同一位置找到 hydra_pmi_proxy。
如果我只是在该节点上本地运行该程序,则该程序在两台机器上都可以正常运行 - 我只是在尝试在两台机器上运行它时都会遇到问题。
我在 MPICH 文档中搜索了一种覆盖到远程路径的方法hydra_pmi_proxy
,但无济于事。
我能以某种方式做到这一点吗?我认为 MPICH 的优点之一是它可以轻松处理异构主机......
任何见解将不胜感激!
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 首先在节点上使用循环法,然后在使用第二个机器文件的核心上使用?
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?
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"
,但我不知道在我的具体情况下我必须做什么。
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
parallel-processing - 是否可以将 mpiexec 作为 mpiexec 程序的子进程运行?
我有一个使用 mpiexec 运行的程序 A。该程序通常并行运行,但在其中一种执行模式中,它可能会调用也启用了 MPI 的外部程序 B。当然,如果 B 作为串行调用,则 A 的每个实例最终都会调用 B 的一个实例。如果并行调用,A 的每个实例都将调用并行 B。
一种可能的解决方案是让 A 的主节点调用并行 B,让其他 A 的进程空闲,但当然我需要从 A 的用户命令行调用中继承 mpiexec 选项(包括任何怪癖,例如 PBS 交互)到内部 B 调用。据我所知,这不是微不足道的,也不能很好地处理不同的 MPI 实现(例如 MPICH 与 Open MPI)。
有没有人有这种问题的经验?
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。
任何帮助或想法将不胜感激,我将继续在网上搜索解决方案。
提前致谢