为MPICH开放运行权限
在/etc/hosts.equiv文件中加入机器名
为了能够在多个不同的机器上运行MPI程序,首先需要其它机器对启动MPI程序的机器放权,即允许启动MPI程序的机器能够访问其它的机器。主要有两种方式,一种是在其它所有机器的/etc/hosts.equiv文件中加入启动MPI程序的机器名。比如将要在tp5这台机器上启动16个MPI进程,用到的机器分别是tp1,tp2,...,tp16,则需要在tp1,...,tp16机器上的/etc/hosts.equiv文件中都加入一行

tp5

这样就表示其它的机器都允许tp5进行访问,为了在一台机器上同时运行多个进程,在启动进程所在的机器的/etc/hosts.equiv文件中,也要加入自身的机器名。如果/etc/hosts.equiv文件不存在,则需要自己创建它。
在HOME下的.rhosts文件中加入机器名和帐号
另一种方式是通过.rhosts文件来放权。即在MPI程序所要用到的各个机器上,在运行该程序的帐户的home路径下创建一个.rhosts文件,在该文件中写上允许那些机器的那些帐户对自己的帐户进行访问。比如在tp1机器的pact帐户下,它允许tp5的pact帐户对它进行访问,则需要在tp1机器上的pact帐户的home下创建一个.rhosts文件,该文件加入一行

tp5 pact

为了简单起见,最好在各个机器上都建立相同的帐户名,使得MPI程序在相同的帐户下运行。

MPICH的编译命令

mpiCC/mpicc/mpif77/mpif90
mpiCC编译并联接用C++编写的MPI程序,而mpicc是编译并联接用C编写的MPI程序,mpif77和mpif90分别编译并联接用FORTRAN77和Fortran90编写的MPI程序,这些命令在联接时可以自动提供MPI需要的库,并提供特定的开关选项。注意mpiCC不能用于编译C程序。常用的编译选项是
-mpilog 产生MPE的log文件
-mpitrace 产生跟踪文件,这样在该MPI程序执行时会打印出其运行踪迹信息。但是它和-mpilog 在编译时不能同时存在,只能二者选一。
-mpianim 产生实时动画
-show 显示编译时产生的命令,但并不执行它
-help 给出帮助信息
-echo 显示出当前正在编译联接的命令信息
此外它们还可以使用一般的C++/C/FORTRAN77/Fortran90通用的选项,含义和原来的编译器相同。