Since the inception of MPICH2, the original MPICH user guide is somewhat hard to Google.
I have found an old version in parallel.ru, and am printing the most relevant info below.
I have made a copy in www2.ufp.pt/~pedros/procgroup.htm
The current format of a procgroup file is as follows:
local_machine n [full_path_name] [loginname]
remote_machine n full_path_name [loginname]
In some situations, the program is started via some special command executed from the host machine. In such cases, the procgroup file name can be specified to the special command line along with the program name (see for example the runcube and rundelta shell scripts in the p4/messages subdirectory). In those cases where no special command is required, no special handling is required for the procgroup filename.
The first line of a procgroup file may be ``local n'' where n is the number of slave processes that share memory with the master. The full path name on the ``local'' line is ignored on machines other than cube and mesh machines, and the IBM SP-1. The word ``local'' may be replaced by an alias for the local machine if needed, to specify an alternative transport layer. The subsequent lines contain either three or four fields:
1. the name of a remote machine on which slave processes are to be created.
2. the number of slaves that are to be created on that machine, i.e. be in the same cluster (note that on machines that support it, the processes in a cluster will share memory)
3. the full path name of the executable slave program
4. optionally, the user login name on the remote machine, if different from that on the host machine.
As an example, let's assume that you have a network of three Sun workstations named sun1, sun2, and sun3. We will also assume that you are working on sun1 and plan to run a master process there. If you would like to run one process on each of the other Suns, then you might code a procgroup file that looks like:
# start one slave on each of sun2 and sun3
sun2 1 /home/mylogin/p4pgms/sr_test
sun3 1 /home/mylogin/p4pgms/sr_test
Lines beginning with # are comments.
It is also possible to have different executables on different machines. This is required, of course, when the machines don't share files or are of different architectures. An example of such a procgroup file would be:
sun2 1 /home/user/p4pgms/sun/prog1
sun3 1 /home/user/p4pgms/sun/prog2
rs6000 1 /home/user/p4pgms/rs6000/prog1
*** Further examples in more exotic architectures are present in the original file