<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.6000.16608" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff size=2><SPAN
class=609213402-07042008>The file mpirun.ch_p4 has the following
lines:</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff
size=2></FONT> </DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff size=2>#<BR># On nfs
systems, it is possible that a recently created executable may <BR># not be
visible yet to other systems, causing problems when you attempt<BR># to start a
job. As a partial fix for this, we do a sync. It would help,<BR># of
course, if NFS worked correctly.<BR>#<BR>$SYNCLOC > /dev/null
2>&1<BR>#<BR>#</FONT></DIV>
<DIV> </DIV>
<DIV><SPAN class=609213402-07042008></SPAN><FONT face=Arial><FONT
color=#0000ff><FONT size=2>R<SPAN
class=609213402-07042008>ajeev</SPAN></FONT></FONT></FONT><BR></DIV>
<BLOCKQUOTE dir=ltr
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid; MARGIN-RIGHT: 0px">
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> owner-mpich-discuss@mcs.anl.gov
[mailto:owner-mpich-discuss@mcs.anl.gov] <B>On Behalf Of </B>brian
janus<BR><B>Sent:</B> Sunday, April 06, 2008 3:59 PM<BR><B>To:</B>
mpich-discuss@mcs.anl.gov<BR><B>Subject:</B> [mpich-discuss] mpirun script and
the SYNCLOC option<BR></FONT><BR></DIV>
<DIV></DIV><BR><BR>Hello,<BR><BR>I'm new here (this is my first post), so
forgive me if I ask any dumb questions. But the first question I have concerns
the mpirun script below.<BR><BR>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.<BR><BR>What does
SYNCLOC do, and if its disabled, what kind of problems might that
cause?<BR><BR>Thanks for any help you can provide.<BR>Brian Janus.<BR><PRE>#! /bin/sh <BR><BR># MPIRUN for MPICH<BR># (Don't change the above line - we use it to identify MPICH mpirun as<BR>
<BR><BR># opposed to others (e.g., SGI's mpirun)<BR><BR><BR>#<BR># This script tries to start jobs on whatever kind of machine you're on.<BR># Strategy - This program is built with a default device it uses in<BR># certain ways. The user can override this default from the command line.<BR>
<BR><BR><BR><BR>#<BR># This sh script is designed to use other scripts to provide the commands<BR># to run each system, using the . filename.sh mechanism<BR>#<BR># Debuggers should be handled by running <BR># mpirun.db.<debugger_name><BR>
<BR><BR><BR><BR># e.g., mpirun.db.gdb or mpirun.db.xxgdb.<BR># This will allow users to add there own debuggers <BR># (with -debug=<debugger_name>)<BR>#<BR># Set default variables<BR>AUTOMOUNTFIX="sed -e s@/tmp_mnt/@/@g"<BR>
<BR><BR><BR><BR>DEFAULT_DEVICE=ch_p4<BR>RSHCOMMAND="/usr/bin/ssh"<BR>SYNCLOC=/bin/sync # <B><SPAN style="COLOR: rgb(255,0,0)"><---------- WE DISABLED THIS WITH A #COMMENT#</SPAN></B><BR>CC="cc"<BR>
<BR>COMM=<BR><BR><BR>GLOBUSDIR=@GLOBUSDIR@<BR><BR>CLINKER="cc"<BR>prefix=/cluster/cairo/software/mpich-1.2.5.2<BR>bindir=/cluster/cairo/software/mpich-1.2.5.2/bin<BR># This value for datadir is the default value setup by configure<BR>
<BR><BR><BR>datadir=/cluster/cairo/software/mpich-1.2.5.2/share<BR><BR>DEFAULT_MACHINE=ch_p4<BR>DEFAULT_ARCH=LINUX<BR><BR># Derived variables<BR>MPIRUN_BIN=$bindir<BR>MPIRUN_HOME=$MPIRUN_BIN<BR>MPIVERSION="1.2.5 (release) of : 2003/01/13 16:21:53"<BR>
<BR><BR><BR><BR>#set verbose<BR>#<BR># Local routines<BR><BR>#<BR># End of routine<BR><BR>#<BR>#<BR># Special, system specific values<BR>#<BR># polling_mode is for systems that can select between polling and <BR># interrupt-driven operation. Currently, only IBM POE is so supported<BR>
<BR><BR><BR><BR># (TMC CMMD has some support for this choice of mode)<BR>polling_mode=1<BR><BR># Parse command line arguments<BR># The ultimate goal is to determine what kind of parallel machine this<BR># is we are running on. Then we know how to start jobs...<BR>
<BR><BR><BR><BR>#<BR># Process common arguments (currently does ALL, but should pass unrecognized<BR># ones to called files)<BR>#<BR>hasprinthelp=1<BR>. $MPIRUN_HOME/mpirun.args<BR>argsset=1<BR><BR>#<BR># Jump to the correct code for the device (by pseudo machine)<BR>
<BR><BR><BR><BR>#<BR>mpirun_version=""<BR>case $machine in<BR> ch_cmmd)<BR>        mpirun_version=$MPIRUN_HOME/mpirun.ch_cmmd<BR>        ;<BR> ibmspx|ch_eui|ch_mpl)<BR>        mpirun_version=$MPIRUN_HOME/mpirun.ch_mpl<BR>        ;<BR>
anlspx)<BR><BR><BR><BR><BR>        mpirun_version=$MPIRUN_HOME/mpirun.anlspx<BR>        ;<BR> ch_meiko|meiko)<BR>        mpirun_version=$MPIRUN_HOME/mpirun.meiko<BR>        ;<BR> cray_t3d|t3d)<BR>        mpirun_version=$MPIRUN_HOME/mpirun.t3d<BR>
        ;<BR> ch_nc)<BR><BR><BR>        mpirun_version=$MPIRUN_HOME/mpirun.ch_nc<BR><BR><BR>        ;<BR> paragon|ch_nx|nx)<BR>        mpirun_version=$MPIRUN_HOME/mpirun.paragon<BR>        ;<BR> inteldelta)<BR>        mpirun_version=$MPIRUN_HOME/mpirun.delta<BR>
        ;<BR> i860|ipsc860)<BR><BR><BR>        mpirun_version=$MPIRUN_HOME/mpirun.i860<BR><BR><BR>        ;<BR> p4|ch_p4|sgi_mp)<BR>        mpirun_version=$MPIRUN_HOME/mpirun.ch_p4<BR>        ;<BR> gm|ch_gm|myrinet)<BR> mpirun_version=$MPIRUN_HOME/mpirun.ch_gm<BR>
        ;<BR><BR> execer)<BR><BR>        mpirun_version=$MPIRUN_HOME/mpirun.execer<BR><BR><BR>        ;<BR> ch_shmem|ch_spp|smp|convex_spp)<BR>        # sgi_mp is reserved for the p4 version<BR>        mpirun_version=$MPIRUN_HOME/mpirun.ch_shmem<BR>
        ;<BR><BR> ksr|symm_ptx)<BR><BR>        mpirun_version=$MPIRUN_HOME/mpirun.p4shmem<BR><BR>        ;<BR><BR> ch_tcp|tcp)<BR>        mpirun_version=$MPIRUN_HOME/mpirun.ch_tcp<BR>        ;<BR> globus)<BR>        mpirun_version=$MPIRUN_HOME/mpirun.globus<BR>
        ;<BR><BR> *) <BR>        #<BR><BR>        # This allows us to add a device without changing the base mpirun<BR><BR><BR>        # code<BR>        if [ -x $MPIRUN_HOME/mpirun.$device ] ; then<BR>         mpirun_version=$MPIRUN_HOME/mpirun.$device<BR>
        elif [ -x $MPIRUN_HOME/mpirun.$default_device ] ; then<BR><BR><BR>         mpirun_version=$MPIRUN_HOME/mpirun.$default_device<BR><BR><BR>         device=$default_device<BR>        else<BR>         echo "Cannot find MPIRUN machine file for machine $machine"<BR>
         echo "and architecture $arch ."<BR><BR><BR> if [ -n "$device" ] ; then<BR><BR>         echo "(Looking for $MPIRUN_HOME/mpirun.$device)"<BR><BR>         else<BR>         echo "(No device specified.)"<BR>
fi<BR>         # . $MPIRUN_HOME/mpirun.default<BR><BR><BR>         exit 1<BR>        fi<BR>         ;<BR><BR>esac<BR>exitstatus=1<BR>if [ -n "$mpirun_version" ] ; then<BR><BR> if [ -x $mpirun_version ] ; then<BR> # The mpirun script *must* set exitstatus (or exit itself)<BR>
<BR><BR> . $mpirun_version<BR> else<BR><BR>         echo "$mpirun_version is not available."<BR>         exit 1<BR><BR> fi<BR>else<BR> echo "No mpirun script for this configuration!"<BR> exit 1<BR>
<BR><BR>fi<BR>exit $exitstatus</PRE></BLOCKQUOTE></BODY></HTML>