Updated on 2022-05-09 GMT+08:00

Intel MPI

Scenarios

This section describes how to run Intel MPI (version l_mpi_2018.0.128) in an ECS cluster (take CentOS 7.3 as an example).

Prerequisites

  • An ECS equipped with InfiniBand NICs has been created, and an EIP has been bound to it.
  • Multiple ECSs have been created using a private image.

Procedure

  1. Disable the firewall.

    1. Log in to an ECS in the cluster.
    2. Run the following command to disable the ECS firewall:

      # systemctl stop firewalld.service

    3. Run the following command to check whether the firewall has been disabled:

      # systemctl status firewalld.service

      Figure 1 Disabling a firewall
    4. Log in to all other ECSs in the cluster and repeat 1.a to 1.c to disable firewalls on all ECSs.

  2. Modify the configuration file.

    1. Log in to an ECS in the cluster.
    2. Run the following command to view the ECS hostname:

      # hostname

      Figure 2 Querying the ECS hostname
    3. Log in to all other ECSs in the cluster and repeat 2.a to 2.b to obtain hostnames of all ECSs.
    4. Log in to an ECS in the cluster.
    5. Run the following command to add the hosts configuration file:

      # vi /etc/hosts

      Add the private IP addresses and hostnames of all ECSs in the cluster. For example, run the following commands:

      192.168.0.1 host-192-168-0-1

      192.168.0.2 host-192-168-0-2

      ...

    6. Run the following command to add the hostfile file:

      # vi hostfile

      Add hostnames of all ECSs in the cluster. For example, run the following commands:

      host-192-168-0-1

      host-192-168-0-2

      ...

    7. Log in to other ECSs in the cluster and repeat 2.d to 2.f.

  3. Configure the IP addresses of InfiniBand NICs.

    1. Run the following commands on all ECSs in the cluster to configure IP addresses for IB drivers:

      # ifconfig ib0 192.168.23.34/24

      # ifconfig ib0 192.168.23.35/24

      ...

      You can specify the IP addresses randomly, but ensure that they are in the same network segment.

    2. Run the following command on an ECS to check network connectivity:

      # ping 192.168.23.35

  4. Run the following command to run Intel MPI on the ECS cluster:

    For example, there are two ECSs in the cluster. Then, run the following command:

    # mpirun -perhost 2 -machinefile hostfile -np 12 /root/intel_hello

    Specify the path of hostfile when running it. The path of the executable file hello must be absolute. All executable files in the cluster must be in the same directory.

    Figure 3 Running Intel MPI on the ECS cluster