用户注册



邮箱:

密码:

用户登录


邮箱:

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

发表随想


还能输入:200字

芙蓉妹妹    -  云代码空间

——

MPI_Scatter

2019-04-20|1049阅||

摘要:MPI_Scatter(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, rbuf[3], i;
    MPI_Comm_rank(comm, &rank);
    MPI_Comm_size(comm, &size);
    MPI_Status status;
    if(rank == 0){
        sbuf = (int*)malloc(sizeof(int)*3*size);
        for(i = 0;i< 3*size; i++)
            sbuf[i] =  i;
    }
    MPI_Scatter(sbuf,3,MPI_INT,rbuf,3,MPI_INT,0,comm);
    printf("process %d recv :",rank);
    for(i = 0; i< 3; i++)
        printf(" %d",rbuf[i]);
    putchar('\n');
    MPI_Finalize();
    return 0;
}
int MPI_Scatter(
void *sendbuf,            //发送缓存区的首地址
int sendcount,           
MPI_DataType senftype,
void *recvbuf,
int recvcount,           //单个进程要接受的数据个数
MPI_DataType recvtype,
int root,                    //rank of sending process
MPI_Comm comm
)
另外,调用MPI_Finalize是为了告知MPI系统MPI已经使用完毕,为MPI而分配的任何资源都可以释放了。必须添加,不然结果没输出完程序就结束了。
顶 1踩 1收藏
文章评论
    发表评论

    个人资料

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

    标签

    最新提问

      站长推荐