[MPI] MPI 组通信 -- 收集
学习资料  《高性能计算之并行编程技术 ---- MPI 并行程序设计》
学习笔记
        
收集 MPI_GATHER 是典型的多对一通信的例子。
        
MPI_GATHER(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, root , comm)
         IN   sendbuf         发送消息缓冲区的起始地址(可选数据类型)
         IN   sendcount     发送消息缓冲区中的数据个数(整型)
         IN   sendtype       发送消息缓冲区中的数据类型(句柄)
         OUT  recvbuf       接收消息缓冲区的起始地址(可选数据类型)
         IN    recvtype       接收元素的数据类型(句柄,仅对于根进程有意义)
         IN    root                接收进程的序列号(整型)
         IN    comm             通信域(句柄)

       
  int  MPI_Gather(void* sendbuf, int sendcount, MPI_Datatype sendtype, void* recvbuf, int recvcount, MPI_Datatype recvtype, int root , MPI_Comm comm)
         
       
   (NOTE 2012-09-24: 在这里,MPI_GATHE 既有发送缓冲区,也有接收缓冲区, gather 应该是一个接收操作,但为什么有发送缓冲区?)

      
   MPI_GATHERV(sendbuf, sendcount, sendtype, recvbuf, recvcounts, displs, recvtype, root, comm)
          IN    sendbuf         发送消息缓冲区的起始地址(可选数据类型)
          IN    sendcount     发送消息缓冲区的数据个数(整型)
          IN    sendtype       发送消息缓冲区中的数据类型(句柄)
          OUT recvbuf         接收消息缓冲区的起始地址(可选数据类型, 仅对跟进程有意义)
          IN     recvounts     整型数组(长度为组的大小),其值为从每个进程接收的数据个数
          IN     displs             整数数组,每个入口表示相对于recvbuf的位移
          IN     recvtype        接收消息缓冲区中数据类型(句柄)
          IN      root                接收进程的标识号(句柄)
          IN      comm             通信域(句柄)

      
    int MPI_Gather(void* sendbuf, int sendcount, MPI_Datatype sendtype, void* recvbuf, int *recvcounts, int *displs, MPI_Datatype recvtype, int root , MPI_Comm comm)

学习感想
posted on 2012-09-24 20:36  applesun0757  阅读(249)  评论(0)    收藏  举报