动态创建新的MPI进程-投影机pjlink协议(中文版)

19.2动态创建新的MPI进程MPI-2的动态进程的创建是指从已经存在的一个组间通信域进程组的进程派生出若干个进程形成一个新的进程组原来的进程组相对于新派生的进程组称为父进程组而新派生的进程组相对于原来的进程组称为子进程组父子进程组属于不同的通信域它们之间的通信是通过父子进程组的通信域形成的组间通信域来进行的MPI调用接口129 MPI_COMM_SPAWN MPI派生新的进程是通过调用MPI_COMM_SPAWN实现的在MPI_COMM_SPAWN中需要指出将派生的进程对应的可执行程序的名字command传递给可执行程序的参数argv将要派生的进程的最大个数maxprocs以及可能的运行时信息info对于上述这些参数不需要MPI每个进程都进行解释只需提供一个解释进程的标识号ROOT即可由ROOT进程完成对上述参数的解释并传递给其它的进程此外还需要指出需要和将派生出来的子进程进行通信的进程形成的组内通信域即父进程组形成的通信域此调用返回一个即包括原来的父进程组组内通信域域comm又包括新创建的子进程组组内通信域的组间通信域intercomm子进程组的组间通信域没有显式出现此调用还给出了调用的返回代码信息array_of_errcodes此调用存在三种类型的同步而且必须同时满足才能够进行下面的操作首先是父进程MPI_COMM_SPAWN(command, argv,maxprocs,info,root,comm,intercomm,array_of_errcodes) IN command将派生进程对应的可执行程序名IN argv传递给command的参数IN maxprocs请求MPI派生的进程的最大个数IN info传递给运行时的信息IN root负责检查上述参数的进程标识号IN comm派生新进程的组内通信域OUT intercomm返回的组间通信域包括原来的进程和新创建的进程OUT array_of_errcodes返回的错误代码数组Int MPI_Comm_spawn(char * command, char ** argv, int maxprocs, MPI_Info info, int root, MPI_Comm comm, MPI_Comm * intercomm, int * array_of_errcodes) MPI_COMM_SPAWN(COMMAND, ARGV, MAXPROCS, INFO, ROOT, COMM, INTERCOMM, ARRAY_OF_ERRCODES, IERROR) INTEGER INFO, MAXPROCS, ROOT, COMM, INTERCOMM ARRAY_OF_ERRCODES(*), IERROR
pdf 文件大小:884.04KB