7.5 启动

BACKWARD FORWARD


MPI的一个目标是得到源代码移植性。由此意味着用MPI所写的并且与相关语言标准相一致的程序是可移植的,而且当从一个系统移到另一个时,不需要改变任何源代码。很显然不用提任何关于一个MPI程序是怎样开始或从命令行启动的,而且不用提用户必须建立什么样的MPI程序将要运行的环境。然而,一个实现可以在其它MPI例程调用前,执行一些建立。为了提供这个,MPI包含了初始化例程MPI_INIT。

MPI_INIT()

int MPI_Init(int *argc, char ***argv)

MPI_INIT(IERROR)

本例程必须在任何其它MPI例程之前被调用。它必须至少被调用一次;随后的调用是错误的。(见MPI_INITIALIZED)

所有MPI程序必须包含对MPI_init的调用;此例程必须在任何其它MPI例程(除了MPI_INITIALIZED)之前被调用。ANSI C版本接受由main参数所提供的argc和argc:

MPI_init(argc,argv)

Fortran版本仅采用IERROR。

MPI_FINALIZE()

int MPI_Finalize(void)

MPI_FINALIZE(IERROR)

本例程清除所有的MPI状态。一旦调用此例程,就不调用MPI例程。用户必须确定在进程调用MPI_FINALIZE前,所有涉及此进程的挂起的通信完成。

MPI_INITALIZED(flag)

int MPI_Initialized(int *flag)

MPI_INITALIZED(FLAG, IERROR)

本例程用于决定是否调用MPI_INIT。它是唯一的可以在MPI_INIT前调用的例程。

MPI_ABORT(comm, errorcode)

int MPI_Abort(MPI_Comm comm, int errorcode)

MPI_ABORT(COMM, ERRORCODE, IERROR)

本例程进行最大的尝试,来退出comm组的所有任务。本函数并不要求所嵌入的环境对错误码采取任何动作。然而,Unix或POSIX环境应该作为从主程序或abort(errorcode)中返回errorcode来处理这种情况。

MPI实现需要至少为MPI_COMM_WORLD的comm定义MPI_ABORT行为。MPI实现可以忽略comm参数,并且作起来仿佛comm就是MPI_COMM_WORLD。


Copyright: NPACT BACKWARD FORWARD