                        MPI jobs over ATM
                        -----------------

This file describes what must be done to start distributed memory MPI jobs
that use the faster ATM connection instead of slow ethernet connections.


1. How it works?
----------------

MPI will automatically use ATM interconnections in case the MPI machinefile
contains ATM hostnames instead of regular hostnames. The machine file is
created by the startup script 'startmpi.sh' for MPI parallel environments
according the decisions of the Grid Engine scheduler. The mapping from
regular hostnames into ATM hostnames should be done by the startup script
for MPI parallel environments.


2. What to do?
--------------

Search in the script $SGE_ROOT/mpi/startmpi.sh for a comment containing
the acronym ATM. The command after this comment

  echo $host

writes regular hostnames as they come from scheduler into the machinefile.
Ensure that the regular hostname is converted - according to your scheme of
name mapping - into an ATM hostname. If for example your scheme is to add
'ATM' to each regular hostname in order to get an ATM hostname then you
could perform mapping easily by replacing the line with

  echo ${host}ATM


3. mpirun uses 'hostname'
-------------------------

It is possible that the mapped hostnames cause trouble in the 'mpirun'
script. 'mpirun' uses the 'hostname' command to retrieve the local hostname.
'mpirun' compares this hostname with hostnames in the machine file
containing ATM hostnames. The regular 'hostname' command does not return ATM
hostnames and thus the comparation of hostnames fails which leads to a wrong
distribution of tasks. A clean way to fix this problem is to use the
hostname wrapper in this directory. You can enforce the use of this wrapper
by placing it in the $TMPDIR directory which is created for each job. The
startup script for mpi 'startmpi.sh' will do this for you if it is started
using the -catch_hostname option by installing a symbolic link. Note that
this will not work in case

   $SGE_ROOT/mpi/hostname

is not available at all execution hosts. If so feel free to use rcp, ftp in
order to make the 'hostname' wrapper available under $TMPDIR/hostname


4) Copyright
------------
___INFO__MARK_BEGIN__
The Contents of this file are made available subject to the terms of the Sun 
Industry Standards Source License Version 1.2

Sun Microsystems Inc., March, 2001

Sun Industry Standards Source License Version 1.2
=================================================

The contents of this file are subject to the Sun Industry Standards Source
License Version 1.2 (the "License"); You may not use this file except in
compliance with the License. You may obtain a copy of the License at
http://gridengine.sunsource.net/Gridengine_SISSL_license.html

Software provided under this License is provided on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, 
MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.

See the License for the specific provisions governing your rights and
obligations concerning the Software.

The Initial Developer of the Original Code is: Sun Microsystems, Inc.

Copyright: 2001 by Sun Microsystems, Inc.

All Rights Reserved.
___INFO__MARK_END__
