Tutorial

Using MPI Tuner for Intel® MPI Library on Linux* OS

Download PDF
ID 768652
Date 2/19/2016
Public

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:

  1. 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
  2. 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:

  1. 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
  2. Use the –machinefile option to pick up the optimal recorded values for your application at runtime.
    $ mpirun -machinefile ./myprog.ho -n 32 ./myprog
NOTE:
Use the --rank-placement (-rp) and --help(-h) options together to learn other available options for this mode.

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.