问题标签 [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 投票
5 回答
92591 浏览

mpi - MPICH 与 OpenMPI

有人可以详细说明 MPI 的 OpenMPI 和 MPICH 实现之间的区别吗?两者中哪一个是更好的实现?

0 投票
1 回答
490 浏览

visual-c++ - 带有 VC++ GUI 的 MPI 程序?

我需要使用 MPICH2(64 位,以防您想知道)编写一个应用程序。GUI 完全是可选的,但当然是一个巨大的优势。mpiexec 在运行托管 VC++ 代码时会遇到任何困难吗?在编译/链接(调用约定等)时我可能会遇到任何其他问题吗?

只是给你一个想法,程序的一般结构是这样的:

0 投票
2 回答
1727 浏览

fortran - fortran 90 用户定义类型,按值传递?

我在 Fortran 90 中有一个问题。

我有一个用户定义的类型,当我调用其中一个 MPI 子例程时,数据看起来是按值传递的(不是地址,我认为它应该)。输出参数未修改。它似乎特定于 MPI 调用。我在一个简单的测试中尝试了同样的事情,我可以在调用范围内更改传入的值。我不确定为什么会这样,因为我认为 Fortran 总是通过地址传递。知道会发生什么吗?

为了清楚起见,注释片段显示了调用是如何进行的。在第一次调用中,c%NSubDomains是一个输出参数,应该在调用范围内修改,但不是。当我使用数组而不是用户定义类型的成员调用时,它在未注释的代码段中起作用。

0 投票
1 回答
1028 浏览

mpi - 从 MPI 程序返回错误代码的可靠方法是什么?

MPI 标准(第295 页)说:

给用户的建议。错误代码是从可执行文件返回还是从 MPI 进程启动机制(例如,mpiexec)返回,是 MPI 库质量的一个方面,但不是强制性的。

事实上,我没有成功运行以下代码:

我无法将错误代码返回到 shell 中,以便对进一步的操作做出决定。两个错误消息都不会打印。我想我可能会将错误代码和消息写入专用文件。

有没有人遇到过类似的问题,您考虑过哪些选项可以进行可靠的错误报告?

编辑:
问题不是由 MPI 引起的。真正错误的是我处理调度程序返回的错误代码的方式。我使用安装了 LoadLeveler 的系统。首先我做

然后在完成工作后,我会收到包含工作状态的电子邮件,并返回错误代码。在我的情况下,即使我的 MPI 程序已使用 MPI_Abort 函数退出,错误代码也始终为零。然后我意识到返回的错误代码是脚本 my_job_file.sh 本身的错误代码,而不是在脚本中运行的 MPI 程序。my_job_file.sh 看起来像这样:

然后我将其修改为

然后我终于得到了我想要的错误代码。

0 投票
2 回答
1776 浏览

fortran - MPI_SCATTER Fortran 矩阵(按行)

按行而不是列分散 Fortran 90 矩阵的最佳方法是什么?也就是说,假设我有一个矩阵 a(4,50),我想将 MPI_SCATTER 分配到两个进程上,其中每个部分都是 alocal(2,50),其中等级 0 有第 1 行和第 2 行,等级 1 有 3 和4. 现在,在 C 中,这很简单,因为数组是行优先的,但在 Fortran 90 中,它们是列优先的。

我试图避免在散射之前使用 TRANSPOSE 来翻转 a(即,内存使用量加倍),我认为 MPI 中必须有一种方法可以做到这一点。会是 MPI_TYPE_VECTOR 吗?MPI_TYPE_CREATE_SUBARRAY?

同样,如果我有一个 3d 数组 b(4,50,3) 并且我想要两个分散的 blocal(2,50,3) 矩阵,如上分布?

0 投票
2 回答
2324 浏览

c - C 的哈希表实现

什么是 C 的好的哈希表实现?我需要将它与 mpicc 编译器一起使用。不需要删除功能。

0 投票
1 回答
382 浏览

boost - 如何使用 Boost.MPI 进行重叠散射?

我想分配一个具有重叠元素的向量。例如,如果我有 [1,2,3],我希望 [1,2] 被发送到一个节点,而 [2,3] 被发送到另一个节点。我熟悉如何使用 MPI 来做到这一点,但我将如何使用 Boost::MPI 来做到这一点?

0 投票
5 回答
19100 浏览

c++ - MPI(C++) 中的向量使用

我是 MPI 编程的新手,仍然在学习,在通过定义结构创建派生数据类型之前我是成功的。现在我想在我的结构中包含 Vector,并希望通过 Process 发送数据。例如:

现在使用 MPI,我想跨进程发送结构中的数据。我可以创建包含的 MPI_type_struct 向量并发送数据吗?

我尝试通过论坛阅读,但我无法从那里给出的回复中获得清晰的画面。希望我能有一个清晰的想法或方法来发送数据

PS:我可以单独发送数据,但是如果我们认为域非常大(比如 10000*10000),使用 MPI_Send/Recieve 发送数据的开销会很大

0 投票
2 回答
562 浏览

benchmarking - C中MPI程序的性能基准测试

我是 MPI 的新手。谁能建议我如何在 C 中对 MPI 程序进行基准测试。我使用的集群正在运行 Rocks 4.3(Mars Hill)。

0 投票
4 回答
58112 浏览

c - 如何让 C 程序等待(在 Linux 上)?

如何让 C 程序等待(在 Linux 上)?(我需要对 MPI 使用等待 - 我需要 C 代码)