7.5 启动 |
![]() ![]() |
MPI的一个目标是得到源代码移植性。由此意味着用MPI所写的并且与相关语言标准相一致的程序是可移植的,而且当从一个系统移到另一个时,不需要改变任何源代码。很显然不用提任何关于一个MPI程序是怎样开始或从命令行启动的,而且不用提用户必须建立什么样的MPI程序将要运行的环境。然而,一个实现可以在其它MPI例程调用前,执行一些建立。为了提供这个,MPI包含了初始化例程MPI_INIT。
MPI_INIT()
int MPI_Init(int *argc, char ***argv)
MPI_INIT(IERROR)
INTEGER 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)
INTEGER IERROR
本例程清除所有的MPI状态。一旦调用此例程,就不调用MPI例程。用户必须确定在进程调用MPI_FINALIZE前,所有涉及此进程的挂起的通信完成。
MPI_INITALIZED(flag)
OUT flag 如果调用MPI_INIT,Flag为true;否则为false。
int MPI_Initialized(int *flag)
MPI_INITALIZED(FLAG, IERROR)
LOGICAL FLAG
INTEGER IERROR
本例程用于决定是否调用MPI_INIT。它是唯一的可以在MPI_INIT前调用的例程。
MPI_ABORT(comm, errorcode)
IN comm 退出任务的通信子
IN errorcode 返回到所嵌环境的错误码
int MPI_Abort(MPI_Comm comm, int errorcode)
MPI_ABORT(COMM, ERRORCODE, IERROR)
INTEGER COMM, ERRORCODE, IERROR
本例程进行最大的尝试,来退出comm组的所有任务。本函数并不要求所嵌入的环境对错误码采取任何动作。然而,Unix或POSIX环境应该作为从主程序或abort(errorcode)中返回errorcode来处理这种情况。
MPI实现需要至少为MPI_COMM_WORLD的comm定义MPI_ABORT行为。MPI实现可以忽略comm参数,并且作起来仿佛comm就是MPI_COMM_WORLD。
Copyright: NPACT | ![]() ![]() |