常用的MPI函数
MPI_INIT(ierr)
和MPI_Finalize(ierr)
- MPI_Init:初始化MPI执行环境
- MPI_Finalize:结束MPI执行环境
这两个函数定义MPI程序的并行区,所有MPI函数在这两个函数定义的区域内调用。这两个函数都返回整型值ierr,标识函数是否调用成功(ierr=0正常,反之出错)。
MPI_COMM_RANK(MPI_COMM_WORLD, &ID,&IERR)
给出调用该函数的进程的进程号
- MPI_COMM_WORLD:不要改,这个通信域是MPI实现预先定义好的全局通信域
- &ID:返回进程号,进程号从0开始,在一个有p个进程的通信域中,每一个进程有一个唯一的序号(ID号),取值为0~p-1。
- &IERR:返回整型的错误值(ierr=0正常,反之表示出错)
MPI_COMM_SIZE(MPI_COMM_WORLD, &NUMPROCS,&IERR)
确定一个通信域中的进程总数
MPI_ALLReduce (sendbuf,recvbuf,count,datatype,op,comm,ierr)
将comm里所有进程的数据进行规约操作op,再将结果广播到comm里的所有进程中
- sendbuf:要发送的数据的地址(数据的首地址,例如在一个Fortran的程序中要发送x(10)这个数组,那么sendbuf=x(1) ,count=10)
- recv