Tutorial
Commands for Topology Awareness Rank Placement Optimization
To use the MPI tuner for rank placement optimization, you need a file with a list of hosts put in the order as MPI ranks are distributed on your system. For processes per host more than 1, duplicates are required. It can depend on specific parameters of the MPI process manager, cluster job scheduler, or resource manager. For example, for 4 hosts with 2 processes per host it usually looks like this:
$ cat hostfile.in host1 host1 host2 host2 host3 host3 host4 host4
There are two possible scenarios. You can do the following:
- Use the --rank-placement (-rp), --hostfile-in (-hi) and --config-out options. The tuner records the new optimal settings in the myprog.conf file:
$ mpitune --rank-placement --application \"mpirun -n 32 ./myprog\" -- hostfile-in hostfile.in --config-out ./myprog.conf
- Use the –tune option to pick up the optimal recorded values for your application at runtime.
$ mpirun -tune ./myprog.conf -n 32 ./myprog
Alternatively, do the following:
- Use the --rank-placement (-rp), --hostfile-in (-hi) and --hostfile-out (-ho) options. The tuner records the optimized hostlist to hostfile.out file:
$ mpitune --rank-placement --application \"mpirun -n 32 ./myprog\" -- hostfile-out ./hostfile.out
- Use the –machinefile option to pick up the optimal recorded values for your application at runtime.
$ mpirun -machinefile ./myprog.ho -n 32 ./myprog
Also, this feature is available at runtime with the –use-topology-app option of the Hydra process manager. It may significantly increase startup time, but can be more effective because the cluster state at the moment of startup is taken into account (health, resource contentions, and so on). See the Intel® MPI Library Developer Reference for details.