首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误的MPI_Scatter

错误的MPI_Scatter
EN

Stack Overflow用户
提问于 2012-09-30 10:50:56
回答 1查看 293关注 0票数 1

下面的程序本身只包含一个重要的MPI函数(MPI_Scatter)。而且它的工作是错误的:函数返回MPI_SUCCESS,但是客户端(非零等级)接收的数据与服务器发送的数据(等级零)不同。

代码语言:javascript
复制
#include <stdio.h>
#include <mpi.h>

int main(int argc, char* argv[])
{
    int rank;
    int data;
    int temp;

    MPI_Init(&argc, &argv);
    MPI_Comm_rank(MPI_COMM_WORLD, &rank);

    if (rank == 0)
    {
        data = 123; // data to send
        MPI_Scatter(&data, 1, MPI_INT, &temp, 1, MPI_INT, 0, MPI_COMM_WORLD); // MPI_SUCCESS
    }   
    else
    {
        MPI_Scatter(NULL, 0, MPI_INT, &data, 1, MPI_INT, 0, MPI_COMM_WORLD); // MPI_SUCCESS     
        printf("\nClient[%i] data = %i", rank, data);   // Incorrect data received
    }

    MPI_Finalize();
    return 0;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-30 10:55:51

这里有一张小图片来帮助你理解,

参考:http://www.mpitutorial.com/mpi-scatter-gather-and-allgather/

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

https://stackoverflow.com/questions/12658230

复制
相关文章

相似问题

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