<br><br>Hello,<br><br>I&#39;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&#39;t change the above line - we use it to identify MPICH mpirun as<br>
<br><br># opposed to others (e.g., SGI&#39;s mpirun)<br><br><br>#<br># This script tries to start jobs on whatever kind of machine you&#39;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=&quot;sed -e s@/tmp_mnt/@/@g&quot;<br>
<br><br><br><br>DEFAULT_DEVICE=ch_p4<br>RSHCOMMAND=&quot;/usr/bin/ssh&quot;<br>SYNCLOC=/bin/sync     # <b><span style="color: rgb(255, 0, 0);">&lt;---------- WE DISABLED THIS WITH A #COMMENT#</span></b><br>CC=&quot;cc&quot;<br>
<br>COMM=<br><br><br>GLOBUSDIR=@GLOBUSDIR@<br><br>CLINKER=&quot;cc&quot;<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=&quot;1.2.5 (release) of : 2003/01/13 16:21:53&quot;<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=&quot;&quot;<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 &quot;Cannot find MPIRUN machine file for machine $machine&quot;<br>
            echo &quot;and architecture $arch .&quot;<br><br><br>            if [ -n &quot;$device&quot; ] ; then<br><br>                echo &quot;(Looking for $MPIRUN_HOME/mpirun.$device)&quot;<br><br>            else<br>                echo &quot;(No device specified.)&quot;<br>
            fi<br>            # . $MPIRUN_HOME/mpirun.default<br><br><br>            exit 1<br>        fi<br>          ;<br><br>esac<br>exitstatus=1<br>if [ -n &quot;$mpirun_version&quot; ] ; 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 &quot;$mpirun_version is not available.&quot;<br>            exit 1<br><br>    fi<br>else<br>    echo &quot;No mpirun script for this configuration!&quot;<br>    exit 1<br>
<br><br>fi<br>exit $exitstatus</pre>