mpi相关内容

了解并发文件从多个进程写入

从这里开始:原子是文件追加原子在UNIX 考虑多个进程打开相同的文件并追加给它的案件。 O_APPEND保证谋求文件的末尾,然后开始写操作是原子。因此,多个进程可以附加到同一个文件,没有过程将尽量覆盖所有其它进程“写,因为每个写入大小为< = PIPE_BUF 我写了一个测试程序,其中多个进程打开和写入同一个文件(写(2))。我要确保每次写的大小是> PIPE_BUF(4K)。我期待看到 ..
发布时间:2016-08-18 22:43:23 服务器开发

MPI - 打印的顺序

我想用C每个处理器打印它自己的数据编写一个函数。 这里是我有: 无效print_mesh(INT P,INT身份识别码,INT ** U0,INT X,int y)对{ INT I,M,N; 对于(i = 0; I< P;我++){ 如果(身份识别码== I){ 的printf(“身份识别码=%d个\\ N”,身份识别码); ..
发布时间:2016-08-18 21:46:27 C/C++

如何发送和使用MPI接收字符串

我试图发送和使用MPI收到字符串,但结果是hopless。 发送功能: MPI_SEND(安培;结果,result.size(),MPI_CHAR,0,0,MPI_COMM_WORLD); 和recv函数: MPI_RECV(安培;因此,/ *消息缓冲区* / 128,/ *一个数据项* / MPI_CHAR,/ *类型的字符实际* / M ..
发布时间:2016-08-18 15:02:06 C/C++开发

如何用C语言来调用同等级的MPI?

我想学习编程MPI和写了下面的程序。它增加了阵列的一整行,并输出总和。在等级0(或进程0),它会调用所有的奴隶队伍做计算。我想这样做,只用两个其他的从职级/进程。每当我尝试调用同一职级的两倍所示code波纹管,我的code将只是挂在中间,也不会执行。如果我不叫同级别的两倍,code将正常工作 的#include“mpi.h” #包括LT&;&stdio.h中GT; #包括LT&;&stdlib. ..
发布时间:2016-08-18 15:01:13 C/C++

MPI IO读写块循环矩阵

我有一个学校项目做一个HPC分布式系统上的矩阵乘法。 我需要从一个并行IO系统以矩阵阅读和使用pblacs在许多计算节点(处理器)执行并行矩阵乘法。数据必须在使用MPI IO命令被读出。我知道PBlacs使用块循环分布来进行乘法运算。 这位教授并没有给我们很多信息的MPI IO,和我有麻烦就可以找到很多信息/资源。 特别是,是否有办法从并行IO系统在一个块循环方式在基体中阅读和轻松地把它插入到 ..
发布时间:2016-08-18 14:53:23 C/C++

MPI菌种:根进程不沟通,子进程

(初级问题)我试图产卵动态使用MPI_Comm_Spawn进程,然后广播消息的子进程,但程序从根进程给孩子广播站。我从以下 http://www.mpi-forum.org/docs/docs.html,但我不能使它发挥作用。任何人可以帮助我吗? 的#include<&stdio.h中GT; #包括LT&;&mpi.h GT;INT主(INT ARGC,CHAR *的argv []) { ..
发布时间:2016-08-18 14:53:07 C/C++

如何MPI_Scatter和MPI_Gather从C使用吗?

到目前为止,我的应用程序在整数列表一个txt文件中读取。这些整数需要被存储在由主进程即具有秩0。即正在工作的处理器阵列。现在,当我运行程序我有一个if语句检查它是否是主进程,如果它是我执行命令MPI_Scatter。据我了解,这将细分与数字数组并把它传递到从动处理,即等级> 0。但是我不知道如何处理MPI_Scatter我的意思是如何从过程得到的信息子阵?我怎么能告诉非主流程做子阵列的东西吗? ..
发布时间:2016-08-18 14:00:14 C/C++

很难理解MPI_Type_create_struct

我无法理解MPI_Type_create_struct方法。假设我们有一个结构: 结构美孚(){ 浮动值; 焦炭等级; } 和我们想这个结构体发送到另一个进程。求索低于code样品:诠释计数= 2; //在结构元件的数目 MPI_Aint偏移[统计] = {0,8}; INT blocklengths [统计] = {1,1}; MPI_Datatype类型 ..
发布时间:2016-08-18 13:40:34 C/C++

MPI_Scatter - 发送二维数组的列

我想送二维数组的列,每到独立的进程。我现在有一整二维数组和我坚持MPI_Scatter。如何发送整列作为一个字段? 感谢 编辑: 我有阵 - 浮动[100] [101] 和我试图通过发送数组: 浮发送; MPI_Scatter((无效*)A,N,MPI_FLOAT,(无效*)及发送,1,MPI_INT,0,MPI_COMM_WORLD); EDIT2: 我有了新的type_vect ..
发布时间:2016-08-17 23:30:22 C/C++

发送使用MPI_Scatter一个矩阵的列

我想写使用MPI一个矩阵向量乘法程序。我想送矩阵独立的进程列,并在本地计算结果。最后我做一个 MPI_Reduce 使用 MPI_SUM 操作。 发送矩阵的行很容易在行主要订单C卖场阵列,但列不是(如果你不给他们一个接一个)。我读到这里的问题是: ..
发布时间:2016-08-17 23:16:08 C/C++

MPI获取与最小值处理器

在MPI,我做的值的降低运行(最小)。这工作得很好,但我怎么抢,最低是从哪里来的处理器数量,并征求有关详细信息,该处理器(或与降低运行发送更多的数据)? 解决方案 如果你不介意与一个整数值(填在这种情况下与当地的秩的值)本地配对每一个值,你可以使用 MPI_MINLOC或MPI_MAXLOC 以减少内建操作;或者这也很容易编写自己的MPI减少运营商包括像多个索引,ETCC 更新补充: ..
发布时间:2016-08-17 23:14:20 C/C++

创建MPI_Datatype包含指针的结构

我有以下的结构。 typedef结构 { INT *艾; 双* AX; INT NZ; }柱; 我想用 MPI_SEND 和 MPI_Receive 来传递这个结构。如何创建一个 MPI_Datatype 这个结构呢? 解决方案 MPI的设计与阵列的结构,而该结构数组工作。 的 MPI_Hindexed 的@suszterpatt提出的是一个可怕的黑客。它将只允许发送被用来定义 ..
发布时间:2016-08-17 22:55:15 C/C++

MPI_Bcast一个动态二维数组

我试图用通过动态二维数组BCAST所有的行列。 我有以下的code。 的#include<&stdlib.h中GT; #包括LT&;&mpi.h GT;INT主(INT ARGC,字符** argv的) { 浮**阵列; INT等级,尺寸,I,J; MPI_INIT(安培; ARGC,&安培; argv的); MPI_Comm_rank(MPI_COMM_W ..
发布时间:2016-08-17 22:25:42 C/C++

MPI分区矩阵成块

我想矩阵划分成块(没有条纹),然后使用MPI_Scatter分发此块。 我想出了解决方案,它的工作原理,但我认为这还远远没有“最佳实践”。我有8×8矩阵,写满数字从0到63。然后,我把它分成4 4x4块,采用MPI_Type_vector并通过分发MPI_SEND,但是这需要一些额外的计算,因为我已经来计算偏移量在大矩阵的每个块。 如果我使用分散,第一个(左上)块转移OK,但其他块不会(错块的 ..
发布时间:2016-08-17 22:22:15 C/C++

MPI_Type_create_subarray和MPI_Gather

我要解决一个小问题,MPI。我有4个奴隶过程和每一种想发送一个二维子阵列(CHUNK_ROWS点¯xCHUNK_COLUMNS)掌握0 0硕士收集所有块在DDD [行数] [柱]并打印。我想用MPI_Gather() 的#include< mpi.h> #包括LT&;&iostream的GT; 使用命名空间std;#定义ROWS 10 #定义柱10 #定义CHUNK_ROWS 5 # ..
发布时间:2016-08-17 22:18:34 C/C++

使用MPI_Bcast为MPI通信

我试图从广播根节点的消息使用MPI_Bcast所有其他节点。但是,每当我运行这个程序,它始终挂在开头。有谁知道这有什么错呢? 的#include< mpi.h> #包括LT&;&stdio.h中GT;INT主(INT ARGC,字符** argv的){ INT排名; 诠释BUF; MPI_Status状态; MPI_IN ..
发布时间:2016-08-17 22:17:37 C/C++

使用MPI发送二维数组块用C

你怎么发送2-D阵列块不同的处理器?假设二维数组的大小是400×400的我想给大小100X100块给不同的处理器。其思想是每个处理器将其单独的块上执行的计算及其结果发送回对最终结果的第一处理器。结果 我使用MPI在C程序中。 解决方案 让我说,你通常并不真的想这样做,开始 - 散射和一些“大师”的过程收集数据的大块。通常情况下,你希望每个任务被隆隆走在自己的一块拼图,你的目标应该是永远不 ..
发布时间:2016-08-17 20:29:34 C/C++

这已经被完成等待请求

我想实现使用boost MPI库异步消息传递机制(点校验机制)。在我的code,接收器等经由irecv别人的消息。在irecv后,他们不叫等待功能。相反,他们所谓的测试功能。如果测试成功,它们会处理所接收的消息,并启动一个新的irecv。否则,他们会提前到检查点。在检查站,他们等待所有的在途信息使用等待函数来完成。换句话说,检查点是稳定的同步点。 我在下面简化我的code,并希望它是明确的: ..
发布时间:2016-08-12 19:03:24 C/C++开发