MPI对接口说明的一般格式
讲解: 对于有参数的MPI调用,MPI首先给出一种独立于具体语言的说明,对各个参数的性质进行介绍,然后再给出它相对于FORTRAN 77和C的原型说明,在MPI-2中还给出了C++形式的说明。MPI对参数说明的方式有三种,分别是IN、OUT和INOUT。它们的含义分别是: 如果某一个参数在调用前后没有改变,比如某个隐含对象的句柄,但是该句柄指向的对象被修改了,这一参数仍然被说明为OUT或INOUT。MPI的定义在最大范围内避免INOUT参数的使用,因为这些使用易于出错,特别是对标量参数。 还有一种情况是MPI 函数的一个参数被一些并行执行的进程用作 IN,而被另一些同时执行的进程用作OUT,虽然在语义上它不是同一个调用的输入和输出,这样的参数语法上也记为INOUT。 当一个MPI参数仅对一些并行执行的进程有意义而对其它的进程没有意义时,不关心该参数取值的进程可以将任意的值传递给该参数。 以MPI_INIT为例, MPI_INIT()
在C和FORTRAN77的说明中,对void*和,<type>需要进行特殊说明。
MPI初始化和结束语句 讲解: MPI_INIT是MPI程序的第一个调用,它完成MPI程序所有的初始化工作,所有MPI程序的第一条可执行语句都是这条语句。 MPI_FINALIZE() int MPI_Finalize(void) MPI_FINALIZE(IERROR) INTEGER IERROR 讲解: MPI_FINALIZE是MPI程序的最后一个调用,它结束MPI程序的运行,它是MPI程序的最后一条可执行语句,否则程序的运行结果是不可预知的。
MPI如何得到当前进程号和总的进程数 讲解: 这一调用返回调用进程在给定的通信域中的进程标识号,有了这一标识号,不同的进程就可以将自身和其它的进程区别开来,实现各进程的并行和协作。 MPI_COMM_SIZE(comm,size) INcomm通信域(句柄) OUT size通信域comm内包括的进程数(整数) int MPI_Comm_size(MPI_Comm comm, int *size) MPI_COMM_SIZE(COMM,SIZE,IERROR) INTEGER COMM,SIZE,IERROR 讲解: 这一调用返回给定的通信域中所包括的进程的个数,不同的进程通过这一调用得知在给定的通信域中一共有多少个进程在并行执行。 | |||