I'm new here so forgive me if I ask any dumb questions. But the first
question I have concerns the mpirun script below.

My question is, what does the SYNCLOC=/bin/sync line for in the script below
do, and what complications could arise (if any), from disabling this option
by commenting out the line like #SYNCLOC=/bin/sync. In some code we are
running, we have found that disabling this option allows high priority jobs
to complete in only a couple of seconds, whereas before they would take
several minutes.

What does SYNCLOC do, and if its disabled, what kind of problems might that
cause?

#! /bin/sh

# MPIRUN for MPICH
# (Don't change the above line - we use it to identify MPICH mpirun as
# opposed to others (e.g., SGI's mpirun)
#
# This script tries to start jobs on whatever kind of machine you're on.
# Strategy - This program is built with a default device it uses in
# certain ways. The user can override this default from the command line.
#
# This sh script is designed to use other scripts to provide the commands
# to run each system, using the . filename.sh mechanism
#
# Debuggers should be handled by running
# mpirun.db.<debugger_name>
# e.g., mpirun.db.gdb or mpirun.db.xxgdb.
# This will allow users to add there own debuggers
# (with -debug=<debugger_name>)
#
# Set default variables
AUTOMOUNTFIX="sed -e s@/tmp_mnt/@/@g"
DEFAULT_DEVICE=ch_p4
RSHCOMMAND="/usr/bin/ssh"
SYNCLOC=/bin/sync     # *<---------- WE DISABLED THIS WITH A #COMMENT#*
CC="cc"
COMM=
GLOBUSDIR=@GLOBUSDIR@
CLINKER="cc"
prefix=/cluster/cairo/software/mpich-1.2.5.2
bindir=/cluster/cairo/software/mpich-1.2.5.2/bin
# This value for datadir is the default value setup by configure
datadir=/cluster/cairo/software/mpich-1.2.5.2/share
DEFAULT_MACHINE=ch_p4
DEFAULT_ARCH=LINUX

# Derived variables
MPIRUN_BIN=$bindir
MPIRUN_HOME=$MPIRUN_BIN
MPIVERSION="1.2.5 (release) of : 2003/01/13 16:21:53"

#set verbose
#
# Local routines
#
# End of routine

#
#
# Special, system specific values
#
# polling_mode is for systems that can select between polling and
# interrupt-driven operation.  Currently, only IBM POE is so supported
# (TMC CMMD has some support for this choice of mode)
polling_mode=1

# Parse command line arguments
# The ultimate goal is to determine what kind of parallel machine this
# is we are running on. Then we know how to start jobs...
#
# Process common arguments (currently does ALL, but should pass unrecognized
# ones to called files)
#
hasprinthelp=1
. $MPIRUN_HOME/mpirun.args
argsset=1

#
# Jump to the correct code for the device (by pseudo machine)
#
mpirun_version=""
case $machine in
    ch_cmmd)
        mpirun_version=$MPIRUN_HOME/mpirun.ch_cmmd
        ;;
    ibmspx|ch_eui|ch_mpl)
        mpirun_version=$MPIRUN_HOME/mpirun.ch_mpl
        ;;
    anlspx)
        mpirun_version=$MPIRUN_HOME/mpirun.anlspx
        ;;
    ch_meiko|meiko)
        mpirun_version=$MPIRUN_HOME/mpirun.meiko
        ;;
    cray_t3d|t3d)
        mpirun_version=$MPIRUN_HOME/mpirun.t3d
        ;;
    ch_nc)
        mpirun_version=$MPIRUN_HOME/mpirun.ch_nc
        ;;
    paragon|ch_nx|nx)
        mpirun_version=$MPIRUN_HOME/mpirun.paragon
        ;;
    inteldelta)
        mpirun_version=$MPIRUN_HOME/mpirun.delta
        ;;
    i860|ipsc860)
        mpirun_version=$MPIRUN_HOME/mpirun.i860
        ;;
    p4|ch_p4|sgi_mp)
        mpirun_version=$MPIRUN_HOME/mpirun.ch_p4
        ;;
    gm|ch_gm|myrinet)
        mpirun_version=$MPIRUN_HOME/mpirun.ch_gm
        ;;
    execer)
        mpirun_version=$MPIRUN_HOME/mpirun.execer
        ;;
    ch_shmem|ch_spp|smp|convex_spp)
        # sgi_mp is reserved for the p4 version
        mpirun_version=$MPIRUN_HOME/mpirun.ch_shmem
        ;;
    ksr|symm_ptx)
        mpirun_version=$MPIRUN_HOME/mpirun.p4shmem
        ;;
    ch_tcp|tcp)
        mpirun_version=$MPIRUN_HOME/mpirun.ch_tcp
        ;;
    globus)
        mpirun_version=$MPIRUN_HOME/mpirun.globus
        ;;
    *)
        #
        # This allows us to add a device without changing the base mpirun
        # code
        if [ -x $MPIRUN_HOME/mpirun.$device ] ; then
            mpirun_version=$MPIRUN_HOME/mpirun.$device
        elif [ -x $MPIRUN_HOME/mpirun.$default_device ] ; then
            mpirun_version=$MPIRUN_HOME/mpirun.$default_device
            device=$default_device
        else
            echo "Cannot find MPIRUN machine file for machine $machine"
            echo "and architecture $arch ."
            if [ -n "$device" ] ; then
                echo "(Looking for $MPIRUN_HOME/mpirun.$device)"
            else
                echo "(No device specified.)"
            fi
            # . $MPIRUN_HOME/mpirun.default
            exit 1
        fi
        ;;
esac
exitstatus=1
if [ -n "$mpirun_version" ] ; then
    if [ -x $mpirun_version ] ; then
        # The mpirun script *must* set exitstatus (or exit itself)
        . $mpirun_version
    else
        echo "$mpirun_version is not available."
            exit 1
    fi
else
    echo "No mpirun script for this configuration!"
    exit 1
fi
exit $exitstatus



On Sun, Apr 6, 2008 at 10:48 AM, Davi Vercillo C. Garcia <
daviverci...@gmail.com> wrote:

> Brock,
>
> On Sun, Apr 6, 2008 at 12:39 AM, Brock Palen <bro...@umich.edu> wrote:
> > The best online way to learn MPI I have ever found was the NCSA class
> >  here:
> >
> >  http://ci-tutor.ncsa.uiuc.edu/login.php
>
> Thanks a lot !!!
>
> --
> Davi Vercillo Carneiro Garcia
>
> Universidade Federal do Rio de Janeiro
> Departamento de Ciência da Computação
> DCC-IM/UFRJ - http://www.dcc.ufrj.br
>
> "Good things come to those who... wait." - Debian Project
>
> "A computer is like air conditioning: it becomes useless when you open
> windows." - Linus Torvalds
>
> "Há duas coisas infinitas, o universo e a burrice humana. E eu estou
> em dúvida quanto o primeiro." - Albert Einstein
>
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users
>

Reply via email to