19.3. MPI Setup in FENSAP-ICE

When MPI is properly configured, launching a multi-CPU run with FENSAP-ICE is straightforward; simply select the number of CPUs in the Execution setting section of the Start panel.

19.3.1. FENSAP-ICE Advanced MPI Configuration

More flexibility in configuring the execution environment is supported by FENSAP-ICE. Clicking the Configure button shown above in the Execution settings box opens the following window:

The usage of the parameters that can be provided to mpirun is shown below.

19.3.1.1. Override mpirun

Select Override mpirun command (default is "mpirun" from $PATH) if the mpirun to be used is not the default mpirun from the $PATH

19.3.1.2. Additional mpirun Parameters

Additional parameters can be provided to mpirun. For example, the following option overrides the default settings and permits the usage of a customized list of machines:

-machinefile /path/to/machinefile

In the PBS queuing system, the following option is often required:

-machinefile $PBS_NODEFILE

The mpirun version override and its parameters can be configured with default values by editing the $NTI_PATH/../config/mpi.txt file. See config/mpi.txt.

19.3.2. Machinefile

The –machinefile option permits the selection of a customized list of machines for the execution. The file contains a simple list of machines names on the network (text file). The machines must:

  • Share the execution directory via NFS, with identical path on all of them.

  • Share access to the same $NTI_PATH directory.

  • Have the MPI library installed at the same location.

  • (Linux) Be able to communicate with each other using ssh, without password.

  • Be able to connect with each other using TCP (firewalls must allow the connection).

  • The machine running the main process must be able to access the software licenses.

The machinefile can be tested with the $NTI_PATH/test_mpi command, following the procedure outlined in the previous chapter.

When using mpirun on the command line, simply add –machinefile filename to the arguments. The filename argument must have either an absolute or relative path. For example, to use the file:

/home/user/machinefile16

Residing in your home directory, the –machinefile option is:

mpirun –np 16 –machinefile /home/user/machinefile16 $NTI_PATH/test_mpi

The machinefile relative filename can be used when executing in a project subdirectory:

mpirun –np 16 –machinefile ../machinefile16 $NTI_PATH/fensapMPI

19.3.3. Per-Solver machinefile

Runs containing different solvers might have different number of CPUs assigned to them. For example, in the context of a CHT3D (FENSAP) run, a 64 CPU execution could be configured with 24 CPUs for C3D, and 16 CPUs for ICE3D:

The default behavior of most mpirun implementations is to use the machinefiles as-is, in the order in which the machines are listed. However, this might have the effect of scattering the execution CPUs over la large number of separate machines.

For example, if a machinefile such as m1,m2,m3,m4,m5,m5,m5,m5 is used for 4 CPUs, the execution would be scattered in m1, m2, m3, m4.

19.3.4. Saving the Configuration to the Project

The customized MPI settings can be saved for later usage in the same project with the Save button in the Execution settings panel: