问题标签 [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.

0 投票
2 回答
2946 浏览

mpi - Boost.MPI 问题

我正在研究 HPC。并且在那台 HPC 上安装了旧版本的 Boost,并且该 boost 库没有 Boost.MPI。我要求管理员将其安装在 HPC 上。但他们要求我将其安装在我的主目录中。所以我在我的主目录上安装了 boost 和 boost.mpi。Boost 库似乎工作正常。但是,当我尝试使用以下命令运行以下代码时,出现错误。

测试代码:

构建命令:

我得到以下错误尖叫:

如果有人能提供帮助,我将不胜感激。

0 投票
2 回答
1172 浏览

mpi - 共享内存设置中的 MPI 开销

我想并行化一个程序。在共享内存中处理一个大数据结构的线程并不难。但是我希望能够在集群上使用它,我必须选择一种技术来做到这一点。MPI 是一种想法。

问题是如果我跳过共享内存专用版本的实现并让 MPI 处理所有情况,MPI(或其他技术)会有什么开销?

更新:

我想在多台计算机上同时增长一个大型数据结构(游戏树)。它的大部分将仅在一个集群节点上,但其中一些(树的不规则顶部)将不时共享和同步。

在共享内存机器上,我想通过共享内存来实现这一点。这可以通用吗?

0 投票
2 回答
941 浏览

mpi - PVM(并行虚拟机)库是否广泛用于 HPC?

每个人都迁移到 MPI(消息传递接口)还是 PVM 仍然广泛用于超级计算机和 HPC?

0 投票
2 回答
1390 浏览

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 函数是我们想要用数据显示的瓶颈。

0 投票
2 回答
1446 浏览

performance - MPI 是否适用于大容量软实时 IPC?

如果我有一台服务器并且我有两种进程类型 A(许多进程许多线程)和 B(一个进程 n 线程和 n-cpu),我想从 A 发送大量单向消息到 B . 与使用以下自定义实现相比,MPI 是否是更好的实现:

  1. Unix 域套接字
  2. Windows 命名管道
  3. 共享内存

我正在考虑基于 1 和 2 编写自己的库,并且我还想知道 3 是否更好,因为共享内存需要锁定。

进程A对外提供服务,因此B的资源使用和消息传递一般需要消耗尽可能少的资源,而A在发送消息时可以实现阻塞或非阻塞。B 的资源使用和消息传递需要与 A 的使用成线性关系。

我最终也需要机器之间的广播能力。可能用于过程B。

我的离别问题是:MPI(尤其是 openMPI)是否是一个很好的库,它是否在各种操作系统上使用了最优化的内核原语。

0 投票
8 回答
6012 浏览

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)排队系统中执行,在进程不干净退出的情况下,我想知道这些是否会清理节点特定的共享内存。

0 投票
1 回答
4863 浏览

c++ - Windows 中的 Mpi 使用情况

我将 mpi 安装到 Windows 中,我可以使用它的库。问题是我写的时候在windows中

进入命令提示符它不会进行正确的操作。4 个不同的进程分别使用整个代码文件。它们的行为不像仅在 MPI_Init 和 MPI_Finalize 行中工作的并行进程。我该如何解决这个问题?是否不可能在 Windows 中使用 MPI。

Ps:我正在使用 Dev c++

0 投票
2 回答
5954 浏览

parallel-processing - MPI 缓冲发送/接收顺序

我正在使用 MPI(使用 fortran,但问题比任何给定语言更具体到 MPI 标准),特别是使用缓冲的发送/接收函数 isend 和 irecv。现在,如果我们想象以下场景:

进程0:

过程1:

消息是否按照发送顺序传递到进程 1,即如果使用的标签在所有情况下都相同,我可以确定 in1 == stuff1 和 in2 == stuff2吗?

0 投票
3 回答
10562 浏览

mpi - MPI 屏障 C++

我想在 Windows 上使用 MPI (MPICH2)。我写了这个命令:

而且我希望它会阻止所有处理器,直到所有组成员都调用它。但它不会发生。我添加了我的代码示意图:

(使用 2 个处理器:) 根处理器 ( 0) 动作正确,但排名为 1 的处理器不知道该a变量,因此它显示-858993460而不是4.

谁能帮我?
问候

0 投票
3 回答
2209 浏览

c++ - 测试 MPI_Barrier C++

我如何确定 MPI_Barrier 动作正确?测试的方法是什么?
谢谢