<!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>&nbsp;</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.&nbsp; As a partial fix for this, we do a sync.&nbsp; It would help,<BR># of 
course, if NFS worked correctly.<BR>#<BR>$SYNCLOC &gt; /dev/null 
2&gt;&amp;1<BR>#<BR>#</FONT></DIV>
<DIV>&nbsp;</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.&lt;debugger_name&gt;<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=&lt;debugger_name&gt;)<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)">&lt;---------- 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>