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