问题标签 [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.
mpi - openMPI 主节点设置配置
我正在尝试使用 openMPI 设置一个相对较小的集群(36 核),但遇到了一个小问题。我已经安装并正确运行了所有 openMPI 库和任何依赖项(我可以在每台计算机上作为 localhost 运行一个 hello world MPI 程序)。问题是我似乎找不到太多关于如何让计算机一起执行程序的文档。我可以执行 mpirun --hostfile 命令,但我不想每次执行作业时都必须指定主机文件。此外,未来的用户不会一直访问集群上的所有 IP 地址。他们和我希望能够毫无问题地执行 mpirun -np 20 programFile。有人可以就我现在需要做的事情提供一些指导吗?公平地说,我 我在大学里只上过一节课,我们用 MPI 编写并行程序,但他们从未向我们展示如何使用 openMPI 设置新集群。我很感激你们能给的任何建议。我通过搜索找到了本指南MPICH_Cluster_Setup如果是 openMPI 那就太好了。是否有与 openMPI 相关的类似指南?
openmpi - 使用 OpenMPI 进行数据分发
我想在使用 OpenMPI 的 TCP/IP 网络连接的多台机器上分发数据。任何人都可以指出正确的资源和方向。我是 OpenMPI 的新手。
谢谢
bash - mpirun 命令在 bash 中显示奇怪的行为
我有一个快速的问题。
我最近尝试使用我学校的服务器运行 mpi 程序,但遇到了以下“奇怪”问题:
为了执行“mpirun”命令,我必须将其路径放入 .bashrc 中的默认路径中,然后输入:
只是得到一个关于缺少库的错误,名为:libmpi.so.0
但是,如果我尝试使用完整的 mpirun 路径运行程序,如下所示
一切都很好。
我检查了 openmpi 的常见问题,它说我需要将以下行放入我的 .bashrc
这实际上为我解决了问题,但我的问题仍未解决:
为什么会这样?
在此先感谢您的时间。
fortran - mpirun 不使用两个节点
我在一个集群中工作,每个节点都有 16 个处理器。我的 Open MPI 版本是 1.5.3。我在 fortran 中编写了以下简单代码:
然后我编译代码:
并运行它
我的节点文件如下所示:
node1 和 node2 各重复 16 次。
我可以编译成功。当我为 -np 16 (所以只有一个节点)运行它时,它工作正常:每个从站都完成了它的任务,我在终端中得到了提示。但是当我尝试 -np 32 时,并不是所有的奴隶都完成了他们的工作,只有 16 个。
实际上有 32 个节点的程序并没有给我提示,所以我认为程序被堆叠在某个地方并且正在等待执行某些任务。
只要我在这个微不足道的问题上花了一些时间,我想收到你的任何评论。
谢谢。
parallel-processing - CPU 与 GPU 上的 MPI-2
我正在使用 MPI-2 并行化代码。当我使用 8 个核心处理器时,它成功地加速了。
我只是想知道如果我将 GPU 用于相同目的而不是 CPU 会有什么影响?根据我目前的研究,OpenMPI 与 GPU 兼容,只有在处理器间通信比 CPU 多的情况下,速度才会更好。有没有人尝试过,或者对此有什么看法?
openmpi - 你如何检查 OpenMPI 的版本?
我正在具有 OpenMPI 的服务器上编译我的代码,但我需要知道我使用的是哪个版本,以便阅读正确的文档。是否有一个常量<mpi.h>
可以打印以显示我的当前版本?
openmpi - 自定义数据类型(MPI_Datatype 数据类型)?
MPI 中是否存在自定义数据类型之类的东西,或者您是否必须将所有内容展平为文本字符串并作为 MPI_CHAR 传递?如果您需要展平所有内容,是否有我忽略的内置功能?
openmpi - MPI - 如何处理不能被线程数整除的动态工作负载?
我注意到所有 MPI 调用都需要一定程度的对称性,否则它们会挂起和/或产生意想不到的结果。您如何处理动态问题或数据集?
我在网上找到的每个示例总是将问题分解成可均匀分割的块,或者在计算中使用代码块的重复。
假设我有 8 个线程可用,但我想做的工作以 57、80、99、64、13 等为单位......
是否有解决此类问题的首选方法?减少似乎需要线程之间对函数的平等调用?(即 57 将需要来自每个线程的 8 次调用,即使最后 7 次毫无意义) Scatter 似乎是相似的。有没有像 Scatter 这样的东西适用于非均匀整除的问题集?
c++ - 如何使用 MPI 在不同的处理器上使用相同的阵列
我希望hist(1:1000)
使用 OpenMPI 在不同的处理器上调用相同的数组,这样当一个处理器修改hist
此修改时,其余处理器中就会更新。
我已经编写了代码并声明hist(1:1000)
了但问题是hist
在每个处理器上独立更新,然后我所做的是将数据发送到“主节点”以便根据从站的信息更新另一个直方图,但这是我不想要什么。我想在每个处理器上更新相同的直方图。
是否可以使用 OpenMPI 做到这一点?
c - MPI在集群上的简单测试程序
每个线程读取一个文件的一部分并将其写下来。
在本地机器上工作得很好(mpich)在集群上出错(openmpi)
我的程序在函数 write_result 中的 close(fd) 处终止。
这是错误消息
在搜索了相关问题后,我猜测问题可能来自文件打开和关闭过程。由一个特定线程打开的文件应该由同一个线程关闭。也许 openmpi 无法识别哪个线程打开了它,哪个线程关闭了它。但它在 MPICH 上运行良好。