学习笔记
>> 函数
MPI_BCAST( buffer, count, datatype, comm)
IN/OUT buffer 通信缓冲区的起始地址(可选数据类型)
IN count 将广播出去/或接收的数据个数(整型)
IN datatype 广播/接收数据的数据类型(句柄)
IN root 广播数据的根进程的标识号(整型)
IN comm 通信域(句柄)
int MPI_Bcast (void* buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm)
![[MPI] MPI 组通信程序设计 -- 广播 - applesun - 计算机技术学习笔记 [MPI] MPI 组通信程序设计 -- 广播 - applesun - 计算机技术学习笔记](http://img6.ph.126.net/cDKN97t3PMP6Ymjy_KXcXA==/6597142334424989646.jpg)
MPI_BCAST 是一对多组通信的典型例子, 它完成从一个标识为 root 的进程将一条消息广播发送到组内的所有其它进程, 同时也包括它本身在内。
>>例子 (NOTE 2012-09-24: 此例子未完全读懂,未试验是否可行)
#include <stdio.h>
#include "mpi.h"
int main(int argc, char **argv){
int rank, value;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
do{
if(rank==0) /*进程0读入需要广播的数据*/
scanf("%d", &value);
MPI_Bcast(&value, 1, MPI_INT, 0, MPI_COMM_WORLD); /*将该数据广播出去*/
printf("Process %d got %d\n", rank, value); /*各进程打印收到的数据*/
}while(value>=0);
MPI_Finalize();
return 0;
}
学习感想
浙公网安备 33010602011771号