首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >发送数据: MPI_Type_contiguous与原语类型

发送数据: MPI_Type_contiguous与原语类型
EN

Stack Overflow用户
提问于 2016-05-20 05:48:01
回答 1查看 1.3K关注 0票数 3

我试图交换数据(30个字符) b/w两个进程,以便将MPI_Type_contiguous API理解为:

代码语言:javascript
复制
char data[30];
MPI_Type_contiguous(10,MPI_CHAR,&mytype);
MPI_Type_commit(&mytype);
MPI_Send(data, 3,mytype,1, 99,MPI_COMM_WORLD);

但类似的任务可以通过以下方式完成:

代码语言:javascript
复制
MPI_Send(data, 30,MPI_CHAR,1, 99,MPI_COMM_WORLD);

我想没有延迟因子优势,因为我在这两种情况下都只使用单个函数调用(或者是吗?)

MPI_Type_contiguous优于基元类型的情况下(就性能/完成任务的容易程度而言),任何人都能共享这个用例吗?

EN

回答 1

Stack Overflow用户

发布于 2016-05-20 08:10:05

MPI_Type_contiguous用于创建新的数据类型,即现有数据类型的count副本。这对于简化将多个数据类型一起发送的过程非常有用,因为您不需要跟踪它们的合并大小(countMPI_send中可以由1代替)。

对你来说,我认为完全一样。与您的示例相匹配的使用MPI文本是,

当在MPI操作中使用count参数时,它与构造了相同大小的连续类型相同。 MPI_Send(数据,计数,MPI_CHAR,1,99,MPI_COMM_WORLD); 完全相同 MPI_Type_contiguous(计数,MPI_CHAR,&mytype);MPI_Type_commit(&mytype);MPI_Send(数据,1,mytype,1,99,MPI_COMM_WORLD);MPI_Type_free(&mytype);

您是正确的,因为只有一个实际的通信调用,延迟将是相同的(带宽,发送的字节数相同)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37338808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档