mpi相关内容

MPI分区并在Fortran中收集2D数组

我有一个2D数组,每个进程都在其中运行一些计算.之后,我需要将所有计算出的列收集回根进程.我目前正在按照先到先得的方式进行分区.在伪代码中,主循环如下所示: DO i = mpi_rank + 1, num_columns, mpi_size array(:,i) = do work here 完成此操作后,我需要将这些列收集到根进程中的正确索引中.做这个的最好方式是什么?如果分区 ..
发布时间:2020-05-12 20:03:53 其他开发

mpirun无法找到指定的可执行文件

我在使用OpenMPI编译此代码时遇到问题.由于我对使用OpenMPI的概念有些陌生,如果你们中的任何人可以给我提示此处的错误,那将是很棒的. 编译工作正常,但是如果我运行代码,则会收到以下消息: mpirun was unable to find the specified executable file, and therefore did not launch the job. Th ..
发布时间:2020-05-12 20:03:51 C/C++开发

C-MPI-将子阵列发送/接收到阵列

所以...我的问题很简单. 假设我们有一个主MPI进程,其master_array为6 * 6单元: Master ----------- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 我们有4个工人MPI流程,带有3 * 3个单元的worker_array. Worker ..
发布时间:2020-05-12 20:03:45 其他开发

在从站MPI Spawn C中接收数据

我正在尝试使用mpi_comm_spawn&来实现以下方案分散: 1-主人通过一个工作产生了2个进程. 2-他将数组分散到那些生成的进程中. 3-生成的进程接收分散的数组排序,然后将其发回. 4-主机接收数组的排序部分. 我想知道如何执行步骤2,到目前为止,我已经尝试过发送和接收,它们可以正常工作,但是我想使用散点图功能. 编辑:这是我要在主代码中执行的操作,我 ..
发布时间:2020-05-12 20:03:43 其他开发

在消息传递(MPI)中,mpi_send和revv“等待什么".

考虑配置为 第一 未缓冲,阻塞(同步) 据我了解,MPI是一个API,所以当我们执行mpi_send阻止函数调用时,发送者函数/程序是否被阻止了? OR MPI API函数mpi_send是否被阻塞,以便程序可以继续工作直到发送消息? 第二: 类似的困惑,mpi_recv是被阻塞还是被调用的函数被阻塞? 出现这样一个愚蠢问题的原因: 这是并行处 ..
发布时间:2020-05-12 20:03:40 其他开发

mpi4py:在生成的进程之间进行通信

我有一个进程正在运行一个名为t1.py的程序,该程序会产生其他3个进程,所有这些进程都在运行t2.py.我想将等级为0的生成过程中的值广播到其他两个生成过程中.但是,当调用bcast时,程序将阻塞.知道为什么会这样吗?以及我该如何解决? t1.py from mpi4py import MPI import sys sub_comm = MPI.COMM_SELF.Spawn(sys ..
发布时间:2020-05-12 20:03:38 Python

应用程序缓冲区和系统缓冲区之间有什么区别

许多MPI教程中有一些术语含糊不清,例如“应用程序缓冲区"和“系统缓冲区".我不明白他们之间的区别.我也想知道他们在哪里?我认为应用程序缓冲区是接收或发送节点内部的内存.那么,如果是,系统缓冲区是什么? 解决方案 在MPI的上下文中,应用程序缓冲区(通常称为用户缓冲区)是保存以下内容的缓冲区要发送的信息或要接收信息的位置.应用程序缓冲区是传递给MPI通信调用的缓冲区,例如 MPI_S ..
发布时间:2020-05-12 20:03:36 C/C++开发

使用MPI_Send和MPI_Recv发送大型std :: vector不能完成

我正在尝试使用MPI发送std :: vector.当向量较小时,此方法效果很好,但是当向量较大时(向量中〜15k的两倍多),该方法不起作用.尝试发送20k双精度的向量时,程序只是坐在那里,CPU占用率为100%. 这是一个最小的例子 #include #include using namespace std; vector sen ..
发布时间:2020-05-12 20:03:33 其他开发

对于使用ASIO与MPI的分布式应用程序?

对此我有些困惑.如果您要构建一个分布式应用程序,在某些情况下该应用程序可能会执行并行操作(尽管不一定是数学上的),那么您应该使用ASIO还是MPI之类的东西?我认为MPI比ASIO更高,但是尚不清楚堆栈将从何处开始. 解决方案 据我所知,当新的分布式节点希望加入已经启动的组时,MPI目前无法处理这种情况.如果其中一个节点脱机,也可能会出现问题. MPI不会显示下面的任何与网络相关的机 ..

MPI是范式还是一组库?

我目前正在学习并行计算入门课程,班主任将MPI描述为:- 还有另一个多处理范例 一组库 API 我不明白什么是MPI.如果它是一组库或API,那么为什么仍称它为范式?以上3个术语中,哪一个最能准确地解释什么是MPI? 解决方案 MPI是一种处理数据的方法(通常是普通类型的数组,例如int或double).它是一个API(如在接口中,而不是在库中),描述了可用于在一组计算节点 ..
发布时间:2020-05-12 20:03:28 其他开发

MPI错误:无输出

下面的代码用于使用4个节点通过MPI进行通信.我可以使用"mpiicpc"在群集上成功编译它. 但是,输出屏幕仅向我发出警告,“警告:无法读取mpd.hosts以获取仅在当前位置启动的主机列表"并挂起. 能否请您提出警告的含义,以及这是否是我的代码挂起的原因? #include #include using namespace std; ..
发布时间:2020-05-12 20:03:25 其他开发

阻塞执行,直到通过MPI_Comm_spawn调用的子代完成

我正在修改一个现有的应用程序,我想在其中生成一个动态创建的bash脚本.我创建了一个简单的包装程序,该程序将bash脚本的名称作为参数.在包装器中,脚本由MPI_Comm_spawn生成.紧接着,包装程序调用MPI_Finalize,它在脚本完成之前执行: #include "mpi.h" #include #include using name ..
发布时间:2020-05-12 20:03:22 C/C++开发

发送字符串数组MPI C

我正在尝试将字符串数组发送到MPI中的从属进程,但是我不知道该怎么做.我有一个很大的字符串数组,我已经从文件中读取了,我需要将此数组的一部分发送给从属服务器.我正在分配一个新数组,其中包含主要数组中的一些元素,并尝试发送此数组.这是代码的发送部分: int w = 0; int division = size / (procs -1); for(i=1; i ..
发布时间:2020-05-12 20:03:20 其他开发

MPI-程序运行时添加/删除节点

是否有MPI实施允许在运行时动态添加/删除节点?是否可以从节点的完全硬件故障中恢复过来,从而可以在不重新启动程序的情况下修复并重新启动该节点? 解决方案 是否有MPI实现允许在运行时动态添加/删除节点? 这实际上是两个问题.通常可以在运行时使用像MPI_Comm_spawn这样的调用来动态添加节点.正如@Hristo在评论中指出的那样,您应该在Open MPI中设置正确的信息密钥.在 ..
发布时间:2020-05-12 20:03:18 其他开发

MPI_Allreduce总和中的混合元素

我正在并行处理一个fortran代码,该代码在无MPI版本中可以正常工作.以下是代码摘录. 每个处理器都执行以下操作: 对于一定数量的粒子,它在"do 203"循环中演化出一定数量;在划分为Nint个子间隔(j = 1,Nint)的给定间隔中,每个处理器都会产生矢量Nx1(j),Nx2(j)的元素. 然后,向量Nx1(j),Nx2(j)发送到根(mype = 0),根在每个子间隔(j ..
发布时间:2020-05-12 20:03:15 其他开发

MPI_Bcast或MPI_Send的探测

我有一个程序,其中有一个主站/从站设置,并且我为主站实现了一些功能,这些功能将不同种类的数据发送到从站.某些功能发送给各个从站,而某些功能则通过MPI_Bcast向所有从站广播信息. 我希望在从站中只有一个接收功能,所以我想知道我是否可以探测一条消息,并知道它是作为普通的阻止消息广播还是发送,因为有不同的方法来接收消息广播和正常发送的内容. 解决方案 不,您不能基于探测调用来决定是调 ..
发布时间:2020-05-12 20:03:13 其他开发

生成的进程可以与“主"进程通信吗? MPI通讯器

是否有一种使用MPI的方法使生成的进程与MPI_WORLD中的所有其他参与者进行通信,而不仅与生成该进程的父进程进行通信? 现在我有两个主要的代理,即所谓的“主"和“从",它们运行以下代码(spawn.py): # Spawn test: master and first slave import sys from mpi4py import MPI comm = MPI.COMM_ ..
发布时间:2020-05-12 20:03:11 Python

MPI4Py导致发送/接收错误

有人可以告诉我为什么这个最小的工作示例(MWE)抱怨TypeError: expected a writeable buffer object吗? MWE: #!/usr/bin/env python from mpi4py import MPI # MPI Initialization rank = MPI.COMM_WORLD.Get_rank() comm = MPI.COMM ..
发布时间:2020-05-12 20:03:09 Python

MPI Bcast与MPI_Type_create_struct分段错误

我正在强迫自己使用C语言MPI的个人结构进行广播.基本上我已经创建了Vector3d结构. typedef struct { double x, y, z; } Vector3d; 然后我一直在为每个MPI流程阅读并编写代码. int rank, size; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &ran ..
发布时间:2020-05-12 20:03:06 其他开发