用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字

芙蓉妹妹    -  云代码空间

——

MPI_Gather

2019-04-20|859阅||

摘要:MPI_Gather(sbuf,3,MPI_INT,rbuf,3,MPI_INT,0,comm);

#include<stdio.h>
#include "mpi.h"
int main(int argc, char** argv)
{
    MPI_Init(&argc, &argv);
    MPI_Comm comm = MPI_COMM_WORLD;
    int rank, size,sbuf[3], *rbuf, i;
    MPI_Comm_rank(comm, &rank);
    MPI_Comm_size(comm, &size);
    MPI_Status status;
    for(i = 0;i< 3; i++)
        sbuf[i] = rank*10 + i;
    if(rank == 0)
        rbuf = (int*)malloc(sizeof(int)*3*size);
    MPI_Gather(sbuf,3,MPI_INT,rbuf,3,MPI_INT,0,comm);
    if(rank ==0){
        printf("process 0 recv :");
        for(i = 0; i< 3*size; i++)
            printf(" %d",rbuf[i]);
        putchar('\n');        
    }
    MPI_Finalize();
    return 0;
}
MPI_Gather(sbuf,3,MPI_INT,rbuf,3,MPI_INT,0,comm);
sbuf:             发送缓存区的首地址
3:                 每个进程发送的消息的长度
MPI_INT:      发送消息的数据类型
rbuf:            接受缓存区地址
3:               从单个进程接收数据的长度(注意不是总数)
MPI_INT:     接受消息的数据类型
0:               接收消息的根的进程号
comm:        communicator
顶 1踩 1收藏
文章评论
    发表评论

    个人资料

    • 昵称: 芙蓉妹妹
    • 等级: 资深程序员
    • 积分: 1710
    • 代码: 104 个
    • 文章: 25 篇
    • 随想: 0 条
    • 访问: 32 次
    • 关注

    标签

    最新提问

      站长推荐