HPC/Applications/impi: Difference between revisions

From CNM Wiki
Jump to navigation Jump to search
m (Created page with "== Process manager == Use the new ''Hydra'' MPI process manager. See sec. ''2.4 Scalable Process Management System'' in the [http://software.intel.com/sites/products/documentatio…")
 
Line 11: Line 11:


== IMPI vs. OpenMPI ==
== IMPI vs. OpenMPI ==
The '''openmpi''' and '''impi''' modules can '''coexist at runtime''' if:
The [[../#openmpi|'''openmpi''']] and [[../#impi|'''impi''']] modules can '''coexist at runtime''' if:
* impi is loaded first and is called using <code>mpiexec.hydra</code>.
* impi is loaded first and is called using <code>mpiexec.hydra</code>.
* openmpi is loaded second and is called using <code>mpirun</code>.
* openmpi is loaded second and is called using <code>mpirun</code>.
Line 19: Line 19:
  module load impi
  module load impi
  module load openmpi
  module load openmpi
; Caveat: This replaces possibly specific existing openmpi versions by the default version, which may break packages depending on it.

Revision as of 20:41, June 3, 2011

Process manager

Use the new Hydra MPI process manager. See sec. 2.4 Scalable Process Management System in the Reference Manual. To do so, simply use mpiexec.hydra instead of the customary mpirun or mpiexec calls:

 mpiexec.hydra \
	-machinefile  $PBS_NODEFILE \
	-np $(wc -l < $PBS_NODEFILE) \
	./a.out

With Hydra, you no longer need to set up and tear down the older and considerably less stable MPD manager.

IMPI vs. OpenMPI

The openmpi and impi modules can coexist at runtime if:

  • impi is loaded first and is called using mpiexec.hydra.
  • openmpi is loaded second and is called using mpirun.
  • you don't attempt to compile software using the convenience wrappers like mpicc, mpif90, etc. For these wrappers, the last module loaded will be active. It may be possible to use full paths like $IMPI_HOME/bin/mpif90, but this has not been tested fully.
Since openmpi is loaded by default, use the following sequence in ~/.bashrc:
module unload openmpi
module load impi
module load openmpi
Caveat
This replaces possibly specific existing openmpi versions by the default version, which may break packages depending on it.