用户注册



邮箱:

密码:

用户登录


邮箱:

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

发表随想


还能输入:200字

芙蓉妹妹    -  云代码空间

——

MPI_Allreduce

2019-04-21|1400阅||

摘要:MPI_Allreduce(sbuf,rbuf,3,MPI_INT,MPI_SUM,comm);

#include <stdio.h>
#include "mpi.h"
#include <malloc.h>

int main(int argc, char ** argv){
    int rank,size,rbuf[3],sbuf[3],i;
    MPI_Comm comm = MPI_COMM_WORLD;
    MPI_Status status;
    MPI_Init(&argc,&argv);
    MPI_Comm_size(comm, &size);
    MPI_Comm_rank(comm, &rank);
    printf("Process %d has:",rank);
    for(i = 0;i< 3;i++){
        sbuf[i] = rank*10 + i;
        printf(" %d",sbuf[i]);
    }
    putchar('\n');
    MPI_Allreduce(sbuf,rbuf,3,MPI_INT,MPI_SUM,comm);
    printf("process %d :total sum =:",rank);
    for(i = 0;i< 3;i++)
        printf(" %d",rbuf[i]);
    putchar('\n');
    MPI_Finalize();
    return 0;
}
与Reduce的区别在于:
Allreduce计算结果每个进程都会收到,而reduce只有根进程会收到结果,所以reduce要指定根进程
顶 2踩 2收藏
文章评论
    发表评论

    个人资料

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

    标签

    最新提问

      站长推荐