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># 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># 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># 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>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>
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>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>#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># (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># 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>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>        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>        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>        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>
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>
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>        # 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>         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> 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>         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> . $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>fi<br>exit $exitstatus<br></pre><a href="mailto:brian.janus@gmail.com"></a>