mpi相关内容

MPI进程之间的交换数据(晕轮)

给定以下场景,我有N个MPI进程,每个进程都有一个对象。当通信阶段到来时,来自这些对象的数据“通常小”将被交换。 一般来说,任何两个节点之间都有数据交换。 最好的策略是什么: 在任何节点X中,为具有与此节点X的连接的每个其他节点创建两个缓冲区,然后在对等基础上发送/接收。 在每个节点X中,创建一个缓冲区以收集要传送的所有晕轮数据。 有没有其他策略我不知道? 解决方案 ..
发布时间:2016-10-20 08:51:07 C/C++开发

MPI_Comm_spawn和MPI_Reduce

我有两个程序。产生“工人”的“主人”,其执行一些计算,并且我希望主人从工人获得结果并存储总和。我试图使用MPI_Reduce从工人收集结果,工人使用MPI_Reduce发送到主MPI_Comm。我不知道这是否正确。这是我的程序: 主: #include #include using namespace std; int main( ..
发布时间:2016-10-19 21:25:17 C/C++开发

与pdpotrf参数混淆

我想在分布式环境中进行Cholesky因式分解。为此,我使用 pdpotrf()。但是,我正在努力了解函数所需的参数,并且没有提供如何使用它的C示例(并且一个例子真的很棒)。 假设我有一个NxX矩阵我想分解。那么,参数应该有什么值? uplo , a 和信息 。其余的? n 应该等于N。但是, desca , ia 和 ja 混淆我。此外, desca 是全局和本地的,我不能理解的东西 ..
发布时间:2016-10-14 22:07:39 C/C++开发

cout最慢处理器MPI

我正在使用MPI编写程序。每个处理器执行一个for循环: int main(int argc,char ** argv){ boost :: mpi :: environment env(argc,argv); for(int i = 0; i std :: cout ..
发布时间:2016-10-14 21:30:21 C/C++开发

如何在MPI_Send中发送设置对象

我搜索发送一个设置对象,最近我发现是向量(它不同,不使用集)。 如何发送在MPI_Send中设置对象? (不使用boost库)任何人都可以放一个简单的例子? 解决方案 是否必须写一个复杂的数据结构或者通过网络在MPI中,问题是一样的;您必须将数据提取到“普通旧数据”(POD)中,保存,然后输出,同样可以将保存的数据解压缩为相同类型的结构。一般来说,这被称为序列化。 对于任何给定 ..
发布时间:2016-10-14 21:20:01 C/C++开发

如何在MPI中创建新类型

我是MPI新手,我想为 Residence struct 创建一个新的数据类型。我只想看看是否可以创建新的类型正确的方法。 struct Residence { double x; double y; }; 我的新MPI类型 MPI_Datatype createRecType() { //设置类型构造函数的参数 MPI_Datatype new_type; ..
发布时间:2016-10-14 11:13:21 C/C++开发

使用mpi将矩阵写入单个txt文件

我有一个巨大的矩阵,我把它分成一些子矩阵,我做一些计算。在这些计算之后,我必须将该矩阵写入单个文件以进行后处理。是否可以将结果写入单个文本文件,我该如何做? 例如,我们有一个在y方向上分割的nx ny矩阵(每个进程都有一个nx 秩矩阵),我们想将nx * ny矩阵写入单个文本文件。 解决方案 因此,将大量数据作为文本写入并不是一个好主意。它真的,真的,慢,它生成不必要的大文件,这是一个痛 ..
发布时间:2016-10-13 10:01:07 C/C++开发

创建一个跨MPI进程保持同步的计数器

我有相当多的经验使用基本的comm和组MPI2方法,并做了相当多的尴尬并行模拟工作使用MPI。到目前为止,我已经将我的代码结构化为具有一个分派节点和一堆工作节点。调度节点具有将与模拟器一起运行的参数文件的列表。它使用参数文件对每个工作节点进行种子。工作节点运行他们的模拟,然后请求另一个参数文件,调度节点提供。一旦所有参数文件都运行,分派节点关闭每个工作节点,然后自己关闭。 参数文件通常命名为 ..
发布时间:2016-10-11 23:08:37 C/C++开发

MPI_Bcast在if语句?

我与MPI实验和我一直得到这个错误,当我在命令行中运行它通过的mpirun。 ---------------------------------------------------------------------------------------------- 的mpirun注意到,工作中断,但没有信息,以流程 导致这种情况。 ----------------------------- ..
发布时间:2016-08-25 09:54:00 C/C++

MPI意外的输出

我在读和教程练习MPI程序。在那里,我看到了寻找过程的秩的一个例子。但是,同样的例子是我的机器(Ubuntu的10.04)上提供不同的输出.. 下面是节目 的#include<&stdio.h中GT; #包括LT&;&mpi.h GT; 主(INT ARGC,字符** argv的) { INT IERR,num_procs,添加my_id; IERR = MPI_INIT(安培; ..
发布时间:2016-08-25 09:34:55 C/C++

MPI的数据类型适用于花车,而不是双打。它是一个对齐问题?

我必须与正在沟通与MPI的数据类型的帮助下,C-结构,一个奇怪的问题。以下作品中的例子。它简单的发送由一个整数加4 浮动值的消息。 Minmum的例子: 的#include< mpi.h> #包括LT&;&stdio.h中GT;INT主(INT ARGC,CHAR *的argv []){ MPI_INIT(安培; ARGC,&安培; argv的); INT I,等级, ..
发布时间:2016-08-25 09:24:44 C/C++

我怎么打印日志,才能在MPI

我有什么 我在使用MPI一个C程序,它使用4个过程:1的车辆(任务id = 0)和3名乘客。 车辆可同时容纳2名乘客。 3客户继续回来送一程。 有关车辆,我有: INT乘客[C] = {0}; 而(1) MPI_RECV(安培; PID,1,MPI_INT,MPI_ANY_SOURCE,1,MPI_COMM_WORLD,&安培;状态); //把PID乘客[totalNu ..
发布时间:2016-08-25 09:23:57 C/C++

MPI基本的例子不工作

我想了解什么是由下面的例子的意思是: 的#include“mpi.h” #包括LT&;&stdio.h中GT;INT主(INT ARGC,CHAR *的argv []){ 诠释numtasks,职级,DEST,来源,RC,计数,标签= 1; 焦炭inmsg,outmsg ='X'; MPI_Status统计; MPI_INIT(安培; ARGC,&安培; argv的); MPI ..
发布时间:2016-08-25 09:13:35 C/C++

我收集缓冲区是空的?

我有问题,所有的过程来处理大师“根”收集的数据,我可以发送数据MPI_Bcast但上MPI_Gather我所有的问题在我countBuff调试我输出这是我所 输出 0 brodcast数据 1 brodcast数据 MPI_Gather数据等级0 1 从0到1.00 KM:-842150451,从1.00至2.00 KM:-842150451,从2.00到5.00 ..
发布时间:2016-08-25 09:12:45 C/C++开发

从OpenMP的MPI到

我不知道怎么以下OpenMP程序转换为MPI程序 的#include< omp.h> #定义CHUNKSIZE 100 的#define N 1000INT主(INT ARGC,CHAR *的argv []) {INT I,大块; 浮动[N],B [N],C [N];/ *一些初始化* / 对于(i = 0; I< N;我++) 一个由[i] = B [i]于= I * 1 ..
发布时间:2016-08-24 15:27:18 C/C++

MPI后垃圾收集输出使用派生类型

鉴于这种结构: 结构mpi_energy_data { INT排名; 从time_t的; time_t的到; 焦炭主机[HOST_NAME_MAX] }; 我试图建立一个派生MPI类型。我后来在收集操作使用,但是接收阵列中的所有输出,除了垃圾是从0级发送。 MPI_Datatype time_interval_mpi; MPI_Datatype类型[4] = ..
发布时间:2016-08-24 14:57:28 C/C++

动态分配二维数组用C差异用一个简单的二维数组Mpi的

我在MPIÇ图像处理(PGM文件)一个MPI程序,我使用动态分配一个二维数组如下: 浮动** masterbuf; masterbuf = arralloc(的sizeof(浮动); 2,M,N); 当我使用浮动masterbuf [M] [N]; 该程序使图像看起来罚款。 的问题是,当我使用动态分配的图像失去一些像素在其左侧。因此,这些丢失的像素创建一条黑线。这就像图像被移位2个像素 ..
发布时间:2016-08-24 14:46:15 C/C++

与MPI线程同步

我想使用的线程与MPI。此程序产生一个线程用于秩= 0,并发送和接收消息(封锁)并从线程。线程的数目是命令行输入。这code然而块上的发送/接收,就如何解决这一问题的任何想法?此外,线程级安全我收到的MPI_THREAD_SINGLE,不是我要求MPI_THREAD_MULTIPLE。犯规_SINGLE究竟意味着只能有一个是每个进程执行的线程?那么为什么有多个线程输出显示收到消息两个线程? 谢谢 ..
发布时间:2016-08-24 14:43:20 C/C++

MPI_Waitall失败

我想知道如果任何人都可以在MPI_Waitall功能为我闪耀光芒。我在使用MPI_Isend和MPI_Irecv程序传递信息。之后所有的发送和接收是完整的,在节目中的一个过程(在这种情况下,过程1),将打印的消息。我Isend / Irecv正在努力,但消息在程序中的一些随机点打印出;所以我试图用MPI_Waitall要等到所有的请求都打印消息之前完成。我收到以下错误信息: 在PMPI_Wait ..
发布时间:2016-08-24 13:46:43 C/C++