/[escript]/trunk/bin/run-escript
ViewVC logotype

Diff of /trunk/bin/run-escript

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 4369 by jfenwick, Fri Apr 19 02:32:34 2013 UTC revision 4665 by caltinay, Mon Feb 10 03:29:02 2014 UTC
# Line 28  HOSTFILE2=/tmp/escript2.$USER.$$ Line 28  HOSTFILE2=/tmp/escript2.$USER.$$
28  #Begin finding ESCRIPT_ROOT  #Begin finding ESCRIPT_ROOT
29  if [ $STDLOCATION -ne 0 ]  if [ $STDLOCATION -ne 0 ]
30  then  then
31      ESCRIPT_ROOT=/usr/lib/escript      ESCRIPT_ROOT=/usr/lib/python-escript
32  else  else
33    # We don't know the escript root so we need to work it out from the invocation    # We don't know the escript root so we need to work it out from the invocation
34    # Need to match if the name contains /    # Need to match if the name contains /
# Line 71  EXTRA_PYTHONPATH=$ESCRIPT_ROOT Line 71  EXTRA_PYTHONPATH=$ESCRIPT_ROOT
71    
72  if [ $STDLOCATION -eq 1 ]  if [ $STDLOCATION -eq 1 ]
73  then  then
74      EXTRA_LD_LIBRARY_PATH=/usr/lib/escript      EXTRA_LD_LIBRARY_PATH=/usr/lib/python-escript
75  else  else
76      EXTRA_LD_LIBRARY_PATH=$ESCRIPT_ROOT/lib      EXTRA_LD_LIBRARY_PATH=$ESCRIPT_ROOT/lib
77  fi  fi
# Line 90  fi Line 90  fi
90  BUILDINFO_FILE="$ESCRIPT_ROOT/lib/buildvars"  BUILDINFO_FILE="$ESCRIPT_ROOT/lib/buildvars"
91  if [ "$STDLOCATION" = "1" ]  if [ "$STDLOCATION" = "1" ]
92  then  then
93      BUILDINFO_FILE=/usr/lib/escript/buildvars      BUILDINFO_FILE=/usr/lib/python-escript/buildvars
94  fi  fi
95  if [ ! -r "$BUILDINFO_FILE" ]; then  if [ ! -r "$BUILDINFO_FILE" ]; then
96      if [ "$1" = "-e" ]; then      if [ "$1" = "-e" ]; then
# Line 140  Usage: run-escript [options] script.py [ Line 140  Usage: run-escript [options] script.py [
140      -o      redirect output from MPI to files      -o      redirect output from MPI to files
141      -v      print diagnostics      -v      print diagnostics
142      -x      run in new xterm instance      -x      run in new xterm instance
143        -m tool     run with valgrind {tool=m[emcheck]/c[allgrind]}
144      script.py   Your python script      script.py   Your python script
145      arguments...    The optional command-line arguments to your script      arguments...    The optional command-line arguments to your script
146  "  "
# Line 151  fi Line 152  fi
152  #==============================================================================  #==============================================================================
153    
154  # Parse the command-line options  # Parse the command-line options
155  # option e should not be followed by a :  while getopts 'bn:p:t:f:echim:oVvx' option
 while getopts 'bn:p:t:f:hecVviox' option  
156  do  do
157      case "$option" in      case "$option" in
158        "b")  DO_BINARY=y        "b")  DO_BINARY=y
159          ;;          ;;
160          "m")  DO_VALGRIND=$OPTARG
161            ;;
162        "n")  ESCRIPT_NUM_NODES=$OPTARG        "n")  ESCRIPT_NUM_NODES=$OPTARG
163          ;;          ;;
164        "p")  ESCRIPT_NUM_PROCS=$OPTARG        "p")  ESCRIPT_NUM_PROCS=$OPTARG
# Line 234  fi Line 236  fi
236  #  #
237  if [ "$MPI_FLAVOUR" = "none" ]  if [ "$MPI_FLAVOUR" = "none" ]
238  then  then
239      if [ ! -z $ESCRIPT_NUM_NODES ]      if [ ! -z "$ESCRIPT_NUM_NODES" ]; then
240      then          if [ $ESCRIPT_NUM_NODES -gt 1 ]; then
241          echo "Warning: MPI disabled but number of nodes set. Option ignored."              echo "Warning: MPI disabled but number of nodes set. Option ignored."
242            fi
243      fi      fi
244      if [ ! -z $ESCRIPT_NUM_PROCS ]      if [ ! -z "$ESCRIPT_NUM_PROCS" ]; then
245      then          if [ $ESCRIPT_NUM_PROCS -gt 1 ]; then
246          echo "Warning: MPI disabled but number of processors per node set. Option ignored."              echo "Warning: MPI disabled but number of processors per node set. Option ignored."
247            fi
248      fi      fi
249      if [ ! -z "$ESCRIPT_HOSTFILE" ]      if [ ! -z "$ESCRIPT_HOSTFILE" ]
250      then      then
# Line 361  then Line 365  then
365  fi  fi
366    
367  #==============================================================================  #==============================================================================
368    
369  if [ ! -z $DO_XTERM ]  if [ ! -z $DO_XTERM ]
370  then  then
371      EXEC_CMD="xterm -e"      EXEC_CMD="xterm -e"
# Line 368  else Line 373  else
373      EXEC_CMD=""      EXEC_CMD=""
374  fi  fi
375    
376    if [ ! -z "$DO_VALGRIND" ]
377    then
378        VALGRIND_BIN=`which valgrind 2>/dev/null`
379        if [ $? -eq 0 ]; then
380            LOGDIR=$ESCRIPT_ROOT/valgrind_logs
381            [ -d $LOGDIR ] || mkdir $LOGDIR
382            if [ ${DO_VALGRIND:0:1} = "c" ];
383            then
384                # run callgrind
385                LOGFILE=${LOGDIR}/callgrind.%p.xml
386                VALGRIND="valgrind --tool=callgrind --callgrind-out-file=$LOGFILE"
387                EXEC_CMD="$EXEC_CMD $VALGRIND"
388            else
389                # run memcheck by default
390                LAST_N=`ls -1 $LOGDIR|grep "^memcheck"|tail -1|cut -d. -f2`
391                NEW_N=`printf "%04d" $((10#$LAST_N + 1))`
392                LOGFILE=${LOGDIR}/memcheck.${NEW_N}.xml
393                VALGRIND="valgrind --tool=memcheck --xml=yes --show-reachable=yes --error-limit=no --gen-suppressions=all --suppressions=$ESCRIPT_ROOT/scripts/escript.supp --leak-check=full --xml-file=$LOGFILE"
394                EXEC_CMD="$EXEC_CMD $VALGRIND"
395            fi
396        else
397            echo "Execution with valgrind requested but valgrind not in path!"
398            exit 1
399        fi
400    fi
401    
402  if [ ! -z $DO_BINARY ]  if [ ! -z $DO_BINARY ]
403  then  then
404      EXEC_CMD="$EXEC_CMD $@"      EXEC_CMD="$EXEC_CMD $@"
# Line 429  elif [ "$MPI_FLAVOUR" = "OPENMPI" ] Line 460  elif [ "$MPI_FLAVOUR" = "OPENMPI" ]
460  then  then
461     if [ ! -z "$HOSTFILE" ]     if [ ! -z "$HOSTFILE" ]
462     then     then
463        HOST_LIST=`awk 'BEGIN{S=""}{if (S == "") { S = $0 } else {S = S "," $0}}END{print S}' "$HOSTFILE"`        HOST_LIST=`sort -u "$HOSTFILE" | awk 'BEGIN{S=""}{if (S == "") { S = $0 } else {S = S "," $0}}END{print S}'`
464        CMD="mpirun --gmca mpi_warn_on_fork 0 -x ${EXPORT_ENV//,/ -x } --bynode -np $TOTPROC --bind-to-socket --cpus-per-rank $ESCRIPT_NUM_THREADS --host $HOST_LIST $EXEC_CMD"        CMD="mpirun --gmca mpi_warn_on_fork 0 -x ${EXPORT_ENV//,/ -x } --bysocket --bind-to-socket --host $HOST_LIST -np $TOTPROC $EXEC_CMD"
465     else     else
466        CMD="mpirun --gmca mpi_warn_on_fork 0 -x ${EXPORT_ENV//,/ -x } --cpus-per-rank $ESCRIPT_NUM_THREADS -np $TOTPROC $EXEC_CMD"        CMD="mpirun --gmca mpi_warn_on_fork 0 -x ${EXPORT_ENV//,/ -x } --cpus-per-rank $ESCRIPT_NUM_THREADS -np $TOTPROC $EXEC_CMD"
467     fi     fi

Legend:
Removed from v.4369  
changed lines
  Added in v.4665

  ViewVC Help
Powered by ViewVC 1.1.26