问题标签 [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.
gcc - Netbeans 构建失败(如何将其指向我的新 Open MPI 库?)
我正在 OS X 上使用 Netbeans 进行 C 开发,但我的项目无法构建,并指出“...Open MPI 的此安装未在 Fortran 90 支持下编译”
我已经安装了更新的 gcc 和 Open MPI(与默认版本一起),我可以通过命令行上的 make 使用它们进行构建。这让我相信 Netbeans 正在使用默认的 Open MPI 安装(它没有 fortran 支持)。如果我是正确的,我如何让它使用新安装?我通过工具集合管理器(文件->项目属性->构建->工具集合->[...])告诉 Netbeans 其他编译器。但是,我不知道如何告诉它有关 Open MPI 的信息。
macos - 在一台机器上的 OS X 上使用 mpirun
我mpirun
在 OS X 上以单机模式使用时遇到问题。使用运行我的程序时,mpirun -np 5 my_program
我得到以下错误输出:
显然,默认情况下mpirun
用于rsh
连接到机器。我尝试ssh
改用,但没有帮助:
然后,我尝试使用共享内存 ( sm
) BTL,但也无济于事:
最后,我尝试使用机器文件来指定我只想使用localhost
,这也没有帮助:
在这里,machinefile.local
仅包含localhost
(单个)第一行。
在上述所有情况下,我都会收到上述超时错误。
另外,我确认我的 Mac OS X 防火墙没有运行,我可以通过 ssh 进入我的机器。
c - OpenMPI MPI_Barrier 问题
我在使用 MPI_Barrier 的 OpenMPI 实现时遇到了一些同步问题:
对于 mpirun -n 2 ./a.out
输出应该是:P0 P1 ...
输出有时是:再次 P0 P0 再次 P1 P1
这是怎么回事?
mpi - 建议一个基准程序来比较 MPICH 和 OpenMPI
我是 HPC 新手,手头的任务是在一个集群上对 MPICH 和 OpenMPI 进行性能分析和比较,该集群由运行在 ClusterVisionOS 上的配备双核 AMD Opteron 处理器的 IBM 服务器组成。
我应该选择哪个基准程序来比较 MPICH 和 OpenMPI 实现?
我不确定高性能 Linpack Benchmark 是否可以提供帮助,因为我没有尝试测量集群本身的性能.. 请建议..
谢谢
mpi - MPICH/OpenMPI 中的容错
我有两个问题-
Q1。除了检查点/回滚之外,还有更有效的方法来处理 MPI 中的错误情况吗?我看到如果一个节点“死亡”,程序会突然停止。有没有办法在节点死亡后继续执行?(如果以准确性为代价,则没有问题)
Q2。我在“http://stackoverflow.com/questions/144309/what-is-the-best-mpi-implementation”中读到,OpenMPI 具有更好的容错性,最近 MPICH-2 也提出了类似的功能..有人知道它们是什么以及如何使用它们吗?是“模式”吗?他们可以在第一季度所述的情况下提供帮助吗?
请回复。谢谢你。
c - MPI_Isend 和 MPI_Irecv 似乎导致了死锁
我在 MPI 中使用非阻塞通信在进程之间发送各种消息。但是,我似乎陷入了僵局。我使用 PADB(请参见此处)查看消息队列并得到以下输出:
这似乎表明发送已完成,但所有接收都处于挂起状态(以上只是标记值为 16 的日志的一小部分)。然而,这怎么可能发生呢?如果没有相关的接收完成,发送肯定无法完成,因为在 MPI 中,所有发送和接收都必须匹配。至少我是这么认为的……
任何人都可以提供任何见解吗?
我可以提供我用来执行此操作的代码,但是无论调用它们的顺序如何,Isend 和 Irecv 肯定都应该工作,假设 MPI_Waital 在最后被调用。
更新:代码在这个要点上可用
更新:我对代码进行了各种修改,但仍然不能正常工作。新代码是相同的 gist,我得到的输出就是这个 gist。我对此代码有很多疑问/问题:
当我在它之前有一个 MPI_Barrier() 以确保在打印之前完成所有工作时,为什么最终循环的输出(打印所有数组)与其余输出穿插在一起?
从 0 级发送到 0 级是可能/明智的 - 可以吗?(当然,假设发布了正确的匹配接收)。
我在输出中得到了很多非常奇怪的长数字,我认为这是某种内存覆盖问题或变量大小问题。有趣的是,这一定是由 MPI 通信引起的,因为我将 new_array 初始化为 9999.99 的值,而通信显然导致它被更改为这些奇怪的值。任何想法为什么?
总体而言,似乎发生了一些转置(矩阵的位似乎被转置了......),但绝对不是全部 - 正是这些奇怪的数字即将出现让我最担心!
c - 使用 MPI_Type_create_subarray 发送时可以转置数组吗?
我正在尝试使用 C 中的 MPI 转置矩阵。每个进程都有一个方形子矩阵,我想将其发送到正确的进程(网格上的“相反”进程),并将其作为通信的一部分进行转置。
我正在使用MPI_Type_create_subarray
which 有一个订单参数,MPI_ORDER_C
或者MPI_ORDER_FORTRAN
分别是行优先和列优先。我认为如果我作为其中之一发送,作为另一个接收,那么我的矩阵将作为通信的一部分被转置。然而,这似乎并没有发生 - 它只是保持非转置。
代码的重要部分如下,整个代码文件可在此 gist中获得。有谁知道为什么这不起作用?这种转置方法应该起作用吗?MPI_ORDER_C
在阅读了and的描述后,我本以为会的MPI_ORDER_FORTRAN
,但也许不是。
c - 运行时的“MPI_Bcast”er
在运行时决定广播者的情况下,如何进行 MPI_Bcast?在这种情况下如何指定根节点?
我正在尝试在数组中搜索不同的数字。如果一个节点找到该号码,那么它应该将其位置广播给所有其他节点。但是,由于我事先不知道查找器,因此“根”值应该是什么:
mpi - MPICH 和 OpenMPI 中的错误处理程序
除了 MPI_ERROR_RETURN 和 MPI_ERRORS_ARE_FATAL 之外,在 OpenMPI 和 MPICH 中是否实现了任何错误处理程序?哪个实现在处理错误方面更好?请建议一个链接以获取有关相同信息的更多信息..