welcome: please sign in
location: Diff for "Middleware/MpiStart/SiteConfiguration"
Differences between revisions 1 and 13 (spanning 12 versions)
Revision 1 as of 2010-11-15 16:35:43
Size: 3692
Editor: enol
Comment:
Revision 13 as of 2012-04-25 08:28:53
Size: 5916
Editor: enol
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= MPI-Start for site administrators = = mpi-start for site administrators =

<<TableOfContents>>
Line 5: Line 7:
=== From binary packages === === Binary Distribution ===
Line 7: Line 9:
Binary packages for MPI-Start are generated using [[http://eu-etics.org/ |ETICS]]. Check their repositories for the correct package for your distribution. Binary packages for mpi-start are generated in EMI using [[http://eu-etics.org/ |ETICS]]. Check EMI repositories for the correct package for your distribution. Once you have the repositories configured you only need to install the package using your favorite package manager.
Line 9: Line 11:
=== From source === For RedHat based distributions:
{{{
yum install mpi-start
}}}
Line 11: Line 16:
Source can be retrieved from the [[http://devel.ifca.es/hg/mpi-start/ |mercurial repository]] Debian based:
{{{
apt-get install mpi-start
}}}
Line 13: Line 21:
Installation is as easy as "make install". The default installation prefix is "/opt/i2g", by default it also creates files in /etc/profile.d. After the installation the environment variable I2G_MPI_START must be set to point to mpi-start script. If you are running a gLite site, you may prefer to install the glite-mpi or emi-mpi (for EMI-2 and onwards) meta-package that includes the yaim plugin for configuraton. Information about this package is available at [[../MpiUtils | MPI-Utils]].
Line 15: Line 23:
export I2G_MPI_START=/opt/i2g/bin/mpi-start For RedHat based distributions:
{{{
yum install emi-mpi
}}}

Debian based:
{{{
apt-get install emi-mpi
}}}

The nodes where the user applications will be executed (Worker Nodes) also require a working MPI implementation, Open MPI and MPICH-2 are recommended. The devel packages should also be installed in order to allow user to compile their applications. Refer to your OS repositories for the exact packages.
In the case of SL5, Open MPI (including devel packages) can be installed with the following command line:
{{{
yum install openmpi openmpi-devel
}}}
Line 18: Line 40:
== MPI-Start configuration == {{{#!wiki caution
'''devel packages and compilers'''
Line 20: Line 43:
MPI-Start is designed to auto detect most of the site configurations without any administrator intervention. The default installation will automatically detect:
 * the batch scheduler at the site: currently PBS/Torque, SGE, LSF and Slurm are supported.
 * existence of shared file system in the job running directory
 * availability of OSC mpiexec for PBS/Torque systems
 * default mpi installations for SLC5.
Some devel packages of the MPI packages do not include the compiler
as (e.g. gcc, gcc-gfortran, gcc-g++) dependency! They should be installed also
if you want to support the compilation of MPI applications.
}}}
Line 26: Line 48:
If the automatic detection fails for any of these, the administrator can set the following configuration variables: === Upgrading from EMI-1 to EMI-2 ===
Line 28: Line 50:
|| ''Variable'' || ''Meaning'' ||
|| '''MPI_DEFAULT_FLAVOUR''' || name of the default flavour for jobs running at the site ||
|| '''MPI_<flavour>_PATH''' || Path of the bin and lib directories for the MPI flavour ||
|| '''MPI_<flavour>_VERSION''' || '''FIXME''' preferred version of the MPI flavour ?? ||
|| '''MPI_<flavour>_MPIEXEC''' || Path of the MPIEXEC binary for the specific flavour, takes precedence over other methods ||
|| '''MPI_<flavour>_MPIEXEC_PARAMS''' || Parameters for the MPIEXEC of the flavour ||
|| '''MPI_<flavour>_MPIRUN''' || Path of the MPIRUN binary for the specific flavour ||
|| '''MPI_<flavour>_MPIRUN_PARAMS''' || Parameters for the MPIRUN of the flavour ||
|| '''I2G_<flavour>_PREFIX''' || Path of the MPI installation for the MPI flavour ||
There are no major changes in functionality between EMI-1 and EMI-2 releases, but the metapackage has changed the name from `glite-mpi` to `emi-mpi`. If you configure the EMI-2 repos in a EMI-1 installation, the metapackage will be upgraded without the need to specify anything.
Line 38: Line 52:
The `I2G_<flavour>_PREFIX` takes precedence over the other variables. If `MPI_<flavour>_MPIEXEC` or `MPI_<flavour>_MPIRUN` are not defined, MPI-Start will try to use the mpiexec or mpirun that are found in the current PATH. {{{
$ yum upgrade
... LOG HERE ....
}}}
Line 41: Line 58:

=== Source Distribution ===

Source can be retrieved from the [[http://devel.ifca.es/hg/mpi-start/|mercurial repository]].

Installation is as easy as "make install". The default installation prefix is `/usr`. If a non default installation wants to be done, use the PREFIX variable in make install

{{{
$ make install PREFIX=/opt/mpi-start
}}}

In this case, is recommendable setting the installation the environment
variable `I2G_MPI_START` to point to mpi-start script (although this is not mandatory anymore).
{{{
$ export I2G_MPI_START=/opt/mpi-start/bin/mpi-start
}}}


== mpi-start Configuration ==

=== yaim Configuration ===
There is a yaim plugin available for configuring gLite sites, check the documentation at [[../MpiUtils | MPI-Utils page]].

=== Manual Configuration ===

mpi-start is designed to auto detect most of the site configurations without any administrator intervention. The default installation will automatically detect:
 * the batch scheduler at the site: currently PBS/Torque, SGE, LSF, Condor and Slurm are supported.
 * existence of shared file system in the job running directory


mpi-start uses a set of files to configure its behavior. There are several paths where the files can be located. All of them will be checked when looking for hooks, execution environments or scheduler plugins. These are the paths (and the order) used by default in mpi-start:
 * Any path pointed by environment variable `MPI_START_ETC`.
 * A `.mpi-start` directory at current user's home.
 * The `etc/mpi-start` under mpi-start installation path. On default installations
      that would be `/`.

The first file that mpi-start checks is the `mpi-config.local` file. This should contain the appropriate location of your local MPI installations and any other modifications you want to introduce in the default behavior. mpi-start includes such file with the default configuration for your system in RHEL/SL 5, RHEL/SL 6 and Ubuntu.

Typical variables that the administrator can set in this file are:
|| '''Variable''' || '''Meaning''' ||
||`MPI_DEFAULT_FLAVOUR` || name of the default flavour for jobs running at the site ||
||`MPI_<flavour>_PATH` || Path of the bin and lib directories for the MPI flavour ||
||`MPI_<flavour>_VERSION` || preferred version of the MPI flavour ||
||`MPI_<flavour>_MPIEXEC` || Path of the MPIEXEC binary for the specific flavour ||
||`MPI_<flavour>_MPIEXEC_PARAMS` || Parameters for the MPIEXEC of the flavour ||
||`MPI_<flavour>_MPIRUN` || Path of the MPIRUN binary for the specific flavour ||
||`MPI_<flavour>_MPIRUN_PARAMS` || Parameters for the MPIRUN of the flavour ||
||`I2G_<flavour>_PREFIX` || Path of the MPI installation for the MPI flavour ||
||`MPI_<flavour>_MPI<compiler>` || Location of the compiler for the flavour. Compiler may be one of `CC`, `F90`, `F77` or `CXX`||


A known issue with the setting of the I2G_<flavour>_PREFIX variable makes them useless, please use the MPI_<flavour>_PATH variable instead!

If `MPI_<flavour>_MPIEXEC` or `MPI_<flavour>_MPIRUN` are not defined, mpi-start will try to use the mpiexec or mpirun that are found in the current PATH.
Line 42: Line 114:
Hooks may change the behavior of mpi-start and provide additional features such as file distribution and configuration of compiler flags. Site admins can add their own hooks via the local hook mechanism.
Line 43: Line 116:
Hooks may change the behavior of MPI-Start and provide additional features such as file distribution and configuration of compiler flags. Site admins can add their own hooks via the local hook mechanism of the [[../UserDocumentation/HooksFramework|Hooks Framework]].

=== File distribution ===

MPI-Start includes hooks for distributing the files needed for the execution of an application. By default it tries to find the most suitable method for copying the files, using shared filesystems whenever they are found. However, the filesystem detection may not work for all sites, or the shared filesystem may be in a different location to the execution path making it impossible for MPI-Start to detect its availability.

Site admins can tune the file distribution method with the following variables:
|| ''Variable'' || ''Meaning'' ||
|| '''MPI_START_SHARED_FS''' || If undefined, MPI-Start will try to detect a shared file system in the execution directory. If defined and equal to 1, MPI-Start will assume that the execution directory is shared between all hosts and will not try to copy files. Any other value will make MPI-Start assume that the execution directory is not shared. ||
|| '''MPI_SHARED_HOME''' || If set to `yes` , MPI-Start will use the path defined in `MPI_SHARED_HOME_PATH` for copying the files and executing the application ||
|| '''MPI_SHARED_HOME_PATH''' || Path to a shared directory ||
mpi-start includes hooks for distributing the files needed for the execution of an application. By default it tries to find the most suitable method for copying the files, using shared filesystems whenever they are found. However, the filesystem detection may not work for all sites, or the shared filesystem may be in a different location to the execution path making it impossible for
mpi-start to detect its availability. Check [[../UserDocumentation/HooksFramework|Hooks Framework]] for more
information.

mpi-start for site administrators

Installation

Binary Distribution

Binary packages for mpi-start are generated in EMI using ETICS. Check EMI repositories for the correct package for your distribution. Once you have the repositories configured you only need to install the package using your favorite package manager.

For RedHat based distributions:

yum install mpi-start

Debian based:

apt-get install mpi-start

If you are running a gLite site, you may prefer to install the glite-mpi or emi-mpi (for EMI-2 and onwards) meta-package that includes the yaim plugin for configuraton. Information about this package is available at MPI-Utils.

For RedHat based distributions:

yum install emi-mpi

Debian based:

apt-get install emi-mpi

The nodes where the user applications will be executed (Worker Nodes) also require a working MPI implementation, Open MPI and MPICH-2 are recommended. The devel packages should also be installed in order to allow user to compile their applications. Refer to your OS repositories for the exact packages. In the case of SL5, Open MPI (including devel packages) can be installed with the following command line:

yum install openmpi openmpi-devel

devel packages and compilers

Some devel packages of the MPI packages do not include the compiler as (e.g. gcc, gcc-gfortran, gcc-g++) dependency! They should be installed also if you want to support the compilation of MPI applications.

Upgrading from EMI-1 to EMI-2

There are no major changes in functionality between EMI-1 and EMI-2 releases, but the metapackage has changed the name from glite-mpi to emi-mpi. If you configure the EMI-2 repos in a EMI-1 installation, the metapackage will be upgraded without the need to specify anything.

$ yum upgrade
... LOG HERE ....

Source Distribution

Source can be retrieved from the mercurial repository.

Installation is as easy as "make install". The default installation prefix is /usr. If a non default installation wants to be done, use the PREFIX variable in make install

$ make install  PREFIX=/opt/mpi-start

In this case, is recommendable setting the installation the environment variable I2G_MPI_START to point to mpi-start script (although this is not mandatory anymore).

$ export I2G_MPI_START=/opt/mpi-start/bin/mpi-start

mpi-start Configuration

yaim Configuration

There is a yaim plugin available for configuring gLite sites, check the documentation at MPI-Utils page.

Manual Configuration

mpi-start is designed to auto detect most of the site configurations without any administrator intervention. The default installation will automatically detect:

  • the batch scheduler at the site: currently PBS/Torque, SGE, LSF, Condor and Slurm are supported.
  • existence of shared file system in the job running directory

mpi-start uses a set of files to configure its behavior. There are several paths where the files can be located. All of them will be checked when looking for hooks, execution environments or scheduler plugins. These are the paths (and the order) used by default in mpi-start:

  • Any path pointed by environment variable MPI_START_ETC.

  • A .mpi-start directory at current user's home.

  • The etc/mpi-start under mpi-start installation path. On default installations

    • that would be /.

The first file that mpi-start checks is the mpi-config.local file. This should contain the appropriate location of your local MPI installations and any other modifications you want to introduce in the default behavior. mpi-start includes such file with the default configuration for your system in RHEL/SL 5, RHEL/SL 6 and Ubuntu.

Typical variables that the administrator can set in this file are:

Variable

Meaning

MPI_DEFAULT_FLAVOUR

name of the default flavour for jobs running at the site

MPI_<flavour>_PATH

Path of the bin and lib directories for the MPI flavour

MPI_<flavour>_VERSION

preferred version of the MPI flavour

MPI_<flavour>_MPIEXEC

Path of the MPIEXEC binary for the specific flavour

MPI_<flavour>_MPIEXEC_PARAMS

Parameters for the MPIEXEC of the flavour

MPI_<flavour>_MPIRUN

Path of the MPIRUN binary for the specific flavour

MPI_<flavour>_MPIRUN_PARAMS

Parameters for the MPIRUN of the flavour

I2G_<flavour>_PREFIX

Path of the MPI installation for the MPI flavour

MPI_<flavour>_MPI<compiler>

Location of the compiler for the flavour. Compiler may be one of CC, F90, F77 or CXX

A known issue with the setting of the I2G_<flavour>_PREFIX variable makes them useless, please use the MPI_<flavour>_PATH variable instead!

If MPI_<flavour>_MPIEXEC or MPI_<flavour>_MPIRUN are not defined, mpi-start will try to use the mpiexec or mpirun that are found in the current PATH.

Hooks

Hooks may change the behavior of mpi-start and provide additional features such as file distribution and configuration of compiler flags. Site admins can add their own hooks via the local hook mechanism.

mpi-start includes hooks for distributing the files needed for the execution of an application. By default it tries to find the most suitable method for copying the files, using shared filesystems whenever they are found. However, the filesystem detection may not work for all sites, or the shared filesystem may be in a different location to the execution path making it impossible for mpi-start to detect its availability. Check Hooks Framework for more information.

eciencia: Middleware/MpiStart/SiteConfiguration (last edited 2012-07-30 14:56:58 by enol)