用户注册



邮箱:

密码:

用户登录


邮箱:

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

发表随想


还能输入:200字

芙蓉妹妹    -  云代码空间

——

MPI_Allgather

2019-04-20|120阅||

摘要:与Gather区别在:Allgather里每个进程都会获得与0进程(根进程)相同的数据

#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, part, 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 ;
    rbuf = (int*)malloc(sizeof(int)*3*size);
    MPI_Allgather(sbuf,3,MPI_INT,rbuf,3,MPI_INT,comm);
    printf("process %d recv :",rank);
    for(i = 0;i < 3*size; i++)
        printf(" %d",rbuf[i]);
    putchar('\n');
    free(rbuf);
    MPI_Finalize();
    return 0;
}
因为每个进程都会获得,所以Allgather参数里不必在指定根进程号
顶 0踩 0收藏
分享到:
更多
文章评论
    发表评论