问题标签 [mpi]
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 - Boost.MPI 问题
我正在研究 HPC。并且在那台 HPC 上安装了旧版本的 Boost,并且该 boost 库没有 Boost.MPI。我要求管理员将其安装在 HPC 上。但他们要求我将其安装在我的主目录中。所以我在我的主目录上安装了 boost 和 boost.mpi。Boost 库似乎工作正常。但是,当我尝试使用以下命令运行以下代码时,出现错误。
测试代码:
构建命令:
我得到以下错误尖叫:
如果有人能提供帮助,我将不胜感激。
mpi - 共享内存设置中的 MPI 开销
我想并行化一个程序。在共享内存中处理一个大数据结构的线程并不难。但是我希望能够在集群上使用它,我必须选择一种技术来做到这一点。MPI 是一种想法。
问题是如果我跳过共享内存专用版本的实现并让 MPI 处理所有情况,MPI(或其他技术)会有什么开销?
更新:
我想在多台计算机上同时增长一个大型数据结构(游戏树)。它的大部分将仅在一个集群节点上,但其中一些(树的不规则顶部)将不时共享和同步。
在共享内存机器上,我想通过共享内存来实现这一点。这可以通用吗?
mpi - PVM(并行虚拟机)库是否广泛用于 HPC?
每个人都迁移到 MPI(消息传递接口)还是 PVM 仍然广泛用于超级计算机和 HPC?
c - 海合会性能
我正在 Beowulf 集群上使用 MPI 进行并行编程。我们为模拟退火编写了并行算法。它工作正常。我们预计执行速度比串行代码快 15 倍。但是我们在不同的架构和操作系统上执行了一些串行 C 代码,这样我们就可以有不同的数据集来进行性能测量。我们在代码中使用了这个 Random 函数。我们在 windows 和 ubuntu linux 上都使用 GCC。我们发现在 linux 上执行需要更长的时间,我们不知道为什么。有人可以使用 gcc 在 linux 和 windows 上编译此代码并尝试向我解释。
如果我使用 100 000 000 作为 NUM_ITERATIONS 的参数执行它,我在 linux 上的执行速度比在 windows 上慢 20 倍。在具有双引导 win + ubuntu linux 的相同架构的机器上进行了测试。我们需要帮助,因为这个 Random 函数是我们想要用数据显示的瓶颈。
performance - MPI 是否适用于大容量软实时 IPC?
如果我有一台服务器并且我有两种进程类型 A(许多进程许多线程)和 B(一个进程 n 线程和 n-cpu),我想从 A 发送大量单向消息到 B . 与使用以下自定义实现相比,MPI 是否是更好的实现:
- Unix 域套接字
- Windows 命名管道
- 共享内存
我正在考虑基于 1 和 2 编写自己的库,并且我还想知道 3 是否更好,因为共享内存需要锁定。
进程A对外提供服务,因此B的资源使用和消息传递一般需要消耗尽可能少的资源,而A在发送消息时可以实现阻塞或非阻塞。B 的资源使用和消息传递需要与 A 的使用成线性关系。
我最终也需要机器之间的广播能力。可能用于过程B。
我的离别问题是:MPI(尤其是 openMPI)是否是一个很好的库,它是否在各种操作系统上使用了最优化的内核原语。
c++ - 共享内存、MPI 和排队系统
我的 unix/windows C++ 应用程序已经使用 MPI 进行了并行化:作业在 N 个 cpus 中拆分,每个块并行执行,非常高效,速度扩展非常好,工作做得很好。
但是有些数据在每个过程中都是重复的,并且由于技术原因,这些数据不能轻易地通过 MPI 拆分(...)。例如:
- 5 Gb 的静态数据,为每个进程加载完全相同的数据
- 可以在 MPI 中分发的 4 Gb 数据,使用的 CPU 越多,每个 CPU 的 RAM 越小。
在 4 CPU 作业中,这意味着至少需要 20Gb RAM 负载,大部分内存“浪费”,这太糟糕了。
我正在考虑使用共享内存来减少整体负载,“静态”块每台计算机只会加载一次。
所以,主要问题是:
是否有任何标准的 MPI 方法可以在节点上共享内存? 某种现成的+免费图书馆?
- 如果没有,我将
boost.interprocess
使用 MPI 调用来分发本地共享内存标识符。 - 共享内存将由每个节点上的“本地主机”读取,并且共享只读。不需要任何类型的信号量/同步,因为它不会改变。
- 如果没有,我将
有任何性能下降或需要注意的特定问题吗?
- (不会有任何“字符串”或过于奇怪的数据结构,一切都可以归结为数组和结构指针)
该作业将在 PBS(或 SGE)排队系统中执行,在进程不干净退出的情况下,我想知道这些是否会清理节点特定的共享内存。
c++ - Windows 中的 Mpi 使用情况
我将 mpi 安装到 Windows 中,我可以使用它的库。问题是我写的时候在windows中
进入命令提示符它不会进行正确的操作。4 个不同的进程分别使用整个代码文件。它们的行为不像仅在 MPI_Init 和 MPI_Finalize 行中工作的并行进程。我该如何解决这个问题?是否不可能在 Windows 中使用 MPI。
Ps:我正在使用 Dev c++
parallel-processing - MPI 缓冲发送/接收顺序
我正在使用 MPI(使用 fortran,但问题比任何给定语言更具体到 MPI 标准),特别是使用缓冲的发送/接收函数 isend 和 irecv。现在,如果我们想象以下场景:
进程0:
过程1:
消息是否按照发送顺序传递到进程 1,即如果使用的标签在所有情况下都相同,我可以确定 in1 == stuff1 和 in2 == stuff2吗?
mpi - MPI 屏障 C++
我想在 Windows 上使用 MPI (MPICH2)。我写了这个命令:
而且我希望它会阻止所有处理器,直到所有组成员都调用它。但它不会发生。我添加了我的代码示意图:
(使用 2 个处理器:) 根处理器 ( 0
) 动作正确,但排名为 1 的处理器不知道该a
变量,因此它显示-858993460
而不是4
.
谁能帮我?
问候
c++ - 测试 MPI_Barrier C++
我如何确定 MPI_Barrier 动作正确?测试的方法是什么?
谢谢