welcome: please sign in

Revision 1 as of 2010-11-15 16:42:04

Clear message
location: Middleware / MpiStart / DeveloperDocumentation

Developer information

This section gives an overview about the interfaces of different components of MPI-Start for developing new plugins.

Variables

All necessary information of the mpi-start program are provided via environment variables. See ../UserDocumentation and ../SiteConfiguration for a list of those variables.

Logging and debugging

The I2G_MPI_START_VERBOSE variable can be set to 1 to turn on the additional output. For debugging purpose the I2G_MPI_START_DEBUG variable can be set to 1 to enable the debugging output. The variable I2G_MPI_START_TRACE can be set to 1 to trace every operation that is performed by mpi-start (goes to stderr).

The functions for logging messages to output are the following:

The dump_vars function dumps the complete environment to the output.

Scheduler plugins

A scheduler plugin is responsible for detection of a runtime system and the definition of process distribution variables. A scheduler plugin must provide the following functions and variables:

The process distribution variables that the scheduler plugin must set are:

Variable

Meaning

MPI_START_MACHINEFILE

This variable points a machinefile in the standard format. In the standard format there is one host per line. If multiple processes should run on a host this host must be inserted multiple times.

MPI_START_HOSTFILE

Variable pointing to a file with a list of available hosts with one host per line without host duplicates

MPI_START_HOST_SLOTS_FILE

Variable pointing to a file where for each line there is a hostname and the number of slots allocated in that host.

MPI_START_NHOSTS

Number of hosts allocated (number of lines in the MPI_START_HOSTFILE file)

MPI_START_NSLOTS

Number of slots allocated (number of lines in the MPI_START_MACHINEFILE file)

MPI_START_NSLOTS_PER_HOST

Number of slots allocated in each host. If the slots are not equally distributed, put here the maximum number of slots available on every host.

Execution environment plugins

A Execution Environment plugin is responsible for setting up the environment for the specified execution environment (MPI) version. It has to provide the following functions:

Several internal variables may change the behavior of the execution environment:

Variable

Meaning

MPI_START_SCHEDULER

Name of the scheduler plugin loaded

MPI_START_MPI_PREFIX

Path of the execution environment

In order to provide a different environment for the user application, MPI-Start uses a wrapper that is executed as a different process. In this wrapper, the variables defined in the MPI_START_ENV_VARIABLES are exported to the environment. The use of the wrapper can be controlled with the functions:

Clean up

When mpi-start finishes its execution the clean_up function is called. This will remove any temporary files created by MPI-Start by default (e.g. host files) and any other file appended to the MPI_START_CLEANUP_FILES variable.

Hooks

See Hooks Frameworkfor a complete description of the hooks mechanism and how to develop new hooks.