/[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 4342 by jfenwick, Tue Mar 26 02:31:41 2013 UTC revision 4664 by caltinay, Mon Feb 10 01:57:11 2014 UTC
# Line 1  Line 1 
1  #!/bin/bash  #!/usr/bin/env bash
2    
3  # Escript/Finley wrapper for python  # Escript/Finley wrapper for python
4  # Sets LD_LIBRARY_PATH and PYTHONPATH and then runs either python or the MPI launcher  # Sets LD_LIBRARY_PATH and PYTHONPATH and then runs either python or the MPI launcher
# Line 7  Line 7 
7  #Search for EXTRA_PATH=""  #Search for EXTRA_PATH=""
8    
9  #set to 1 if performing this is a standalone build and ../../pkg contains the relevant tools  #set to 1 if performing this is a standalone build and ../../pkg contains the relevant tools
10  STANDALONE=1  STANDALONE=0
11    
12  #set to 1 if this is part of a packaged build (.deb) and files will be installed in standard locations  #set to 1 if this is part of a packaged build (.deb) and files will be installed in standard locations
13  #rather than everything in a single directory  #rather than everything in a single directory
# 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 $@"

Legend:
Removed from v.4342  
changed lines
  Added in v.4664

  ViewVC Help
Powered by ViewVC 1.1.26