/[escript]/branches/py3_attempt2/bin/run-escript
ViewVC logotype

Annotation of /branches/py3_attempt2/bin/run-escript

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3888 - (hide annotations)
Tue Apr 10 02:13:06 2012 UTC (6 years, 7 months ago) by jfenwick
File size: 15572 byte(s)
Can build either python3 or python2 by changing a few option variables

1 jfenwick 2409 #!/bin/bash
2    
3     # Escript/Finley wrapper for python
4     # Sets LD_LIBRARY_PATH and PYTHONPATH and then runs either python or the MPI launcher
5    
6     #Extra paths can be configured about a page further down
7     #Search for EXTRA_PATH=""
8    
9 jfenwick 2568 #set to 1 if performing this is a standalone build and ../../pkg contains the relevant tools
10 jfenwick 2409 STANDALONE=0
11    
12     #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
14     #Do not use this together with $STANDALONE
15     STDLOCATION=0
16    
17     #Now we find the location of this script
18     #Note that this location should be absolute but does not need to be unique
19     scriptdir=""
20     CURDIR=`pwd`
21    
22     #Environment vars which control operations:
23     # ESCRIPT_NUM_NODES, ESCRIPT_NUM_PROCS, ESCRIPT_NUM_THREADS, ESCRIPT_HOSTFILE, ESCRIPT_CREATESTDFILES
24    
25 jfenwick 3047 HOSTFILE=/tmp/escript.$USER.$$
26     HOSTFILE2=/tmp/escript2.$USER.$$
27 jfenwick 2409
28     #Begin finding ESCRIPT_ROOT
29 caltinay 2806 if [ $STDLOCATION -ne 0 ]
30 jfenwick 2409 then
31     ESCRIPT_ROOT=/usr/lib/escript
32     else
33     #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 /
35     if [[ $0 =~ / ]]
36     then
37     # We are not using the PATH to find the script
38 caltinay 3388 cd "`dirname $0`"
39 jfenwick 2409 scriptdir=`pwd`
40 caltinay 3388 cd "$CURDIR"
41 jfenwick 2409 else
42     # name does not contain / therefore we are using
43     tscriptdir=`which $0`
44 caltinay 3096 if [ $? -ne 0 ]
45 jfenwick 2409 then
46 caltinay 2806 echo "Error! Unable to determine script directory. Exiting."
47     exit 1
48 jfenwick 2409 fi
49     scriptdir=`dirname $tscriptdir`
50     fi
51    
52 caltinay 3388 cd "$scriptdir/.."
53 jfenwick 2409 ESCRIPT_ROOT=`pwd`
54     cd ..
55     ESCRIPT_PARENT=`pwd`
56 caltinay 3388 cd "$CURDIR"
57 jfenwick 2409
58     fi
59     ##### End finding ESCRIPT_ROOT ########
60    
61 caltinay 2806
62 caltinay 3178
63 jfenwick 2409 PYTHON_MPI_NULL="$ESCRIPT_ROOT/lib/pythonMPI"
64     PYTHON_MPI_REDIRECT="$ESCRIPT_ROOT/lib/pythonMPIredirect"
65 jfenwick 3888 PYTHON_CMD=python
66 jfenwick 2409
67     # if possible please express paths relative to $ESCRIPT_ROOT unless
68     # they are in an unrelated location
69    
70     EXTRA_DYLD_LIBRARY_PATH=""
71     EXTRA_PATH=$ESCRIPT_ROOT/bin
72     EXTRA_PYTHONPATH=$ESCRIPT_ROOT
73     EXTRA_LD_LIBRARY_PATH=$ESCRIPT_ROOT/lib
74    
75 caltinay 2806 if [ $STANDALONE -eq 1 ]
76 jfenwick 2409 then
77 jfenwick 3335 EXTRA_PATH=$ESCRIPT_PARENT/pkg/python/bin:$ESCRIPT_PARENT/pkg/scons/bin:$EXTRA_PATH
78 jfenwick 2530 EXTRA_LD_LIBRARY_PATH=$ESCRIPT_PARENT/pkg/boost/lib:$ESCRIPT_PARENT/pkg/netcdf/lib/:$EXTRA_LD_LIBRARY_PATH
79 jfenwick 2541 EXTRA_LD_LIBRARY_PATH=$EXTRA_LD_LIBRARY_PATH
80 jfenwick 2530 EXTRA_LD_LIBRARY_PATH=$ESCRIPT_PARENT/pkg/python/lib:$EXTRA_LD_LIBRARY_PATH
81 jfenwick 2541 EXTRA_PYTHONPATH=$ESCRIPT_PARENT/pkg/numpy/lib/python2.6/site-packages:$ESCRIPT_PARENT/pkg/matplotlib/lib/python2.6/site-packages:$EXTRA_PYTHONPATH
82 jfenwick 2409 fi
83    
84 jfenwick 3335
85     BUILDINFO_FILE=$ESCRIPT_ROOT/lib/buildvars
86     if [ ! -r $BUILDINFO_FILE ]; then
87     if [ "$1" = "-e" ];then
88     echo "export LD_LIBRARY_PATH=$EXTRA_LD_LIBRARY_PATH:\$LD_LIBRARY_PATH"
89     echo "export PYTHONPATH=$EXTRA_PYTHONPATH:\$PYTHONPATH"
90     echo "export PATH=$EXTRA_PATH:\$PATH"
91     if [ "`uname`" = "Darwin" ]
92     then
93     echo "export DYLD_LIBRARY_PATH=$EXTRA_DYLD_LIBRARY_PATH:$EXTRA_LD_LIBRARY_PATH:\$DYLD_LIBRARY_PATH"
94     fi
95     exit 0
96     fi
97     echo "Error! Unable to read escript build information. Exiting."
98     exit 1
99     fi
100    
101     function get_buildvar {
102     echo `grep "^$1=" $BUILDINFO_FILE |cut -d= -f2`
103     }
104    
105 caltinay 3096 #
106     # Add VisIt paths if required
107     #
108 jfenwick 3259 WITH_VISIT=`get_buildvar visit`
109     if [ "$WITH_VISIT" = "1" ]; then
110 caltinay 3096 VISIT_BIN=`which visit`
111     if [ $? -eq 0 ]; then
112     VISIT_PY_PATH=`$VISIT_BIN -env | grep LIBPATH | cut -d= -f2`
113     EXTRA_PYTHONPATH=$EXTRA_PYTHONPATH:$VISIT_PY_PATH
114     EXTRA_LD_LIBRARY_PATH=$EXTRA_LD_LIBRARY_PATH:$VISIT_PY_PATH
115     elif [ ! -z $ESCRIPT_VERBOSE ]; then
116     echo "VisIt module enabled but VisIt not in path!"
117     fi
118     fi
119 jfenwick 2409
120     HELP_TEXT="
121     Usage: escript [options] script.py [arguments...]
122     -n nn number of nodes to use
123 gross 3193 -p np number of MPI processes to spawn per node
124 jfenwick 2409 -t nt number of OpenMP threads to use
125     -f file name of MPI hostfile
126     -c print compile information for escript and exit
127     -V print escript version and exit
128     -i interactive mode
129     -b do not invoke python (run non-python programs)
130     -e print export statements for environment and exit
131     -o redirect output from MPI to files
132     -v print diagnostics
133     -x ..reserved for future use ..
134     script.py Your python script
135     arguments... The optional command-line arguments to your script
136     "
137    
138     if [ "$1" = "--help" ]; then
139     echo "$HELP_TEXT"
140     exit 0
141     fi
142     #=======================================================================================
143    
144     # Avoid bug in hybrid runs with MPT MPI
145    
146    
147     # Parse the command-line options
148     # option e should not be followed by a :
149     while getopts 'bn:p:t:f:h:ecVviox' option
150     do
151     case "$option" in
152     "b") DOBINARY=yes
153     ;;
154     "n") ESCRIPT_NUM_NODES=$OPTARG
155     ;;
156     "p") ESCRIPT_NUM_PROCS=$OPTARG
157     ;;
158     "t") ESCRIPT_NUM_THREADS=$OPTARG
159     ;;
160     "f") ESCRIPT_HOSTFILE=$OPTARG
161     ;;
162     "c") cat $ESCRIPT_ROOT/lib/buildvars
163     exit 0
164     ;;
165 caltinay 3178 "V") echo "escript-development(build "`get_buildvar svn_revision`")"
166 jfenwick 2409 exit 0
167     ;;
168     "h") echo "$HELPTEXT"
169     exit 0
170     ;;
171     "i") DOINTERACTIVE=yes
172     ;;
173     "e") echo "export LD_LIBRARY_PATH=$EXTRA_LD_LIBRARY_PATH:\$LD_LIBRARY_PATH"
174     echo "export PYTHONPATH=$EXTRA_PYTHONPATH:\$PYTHONPATH"
175     echo "export PATH=$EXTRA_PATH:\$PATH"
176 caltinay 2806 if [ "`uname`" = "Darwin" ]
177 jfenwick 2409 then
178     echo "export DYLD_LIBRARY_PATH=$EXTRA_DYLD_LIBRARY_PATH:$EXTRA_LD_LIBRARY_PATH:\$DYLD_LIBRARY_PATH"
179     fi
180     exit 0
181     ;;
182     "o") ESCRIPT_CREATESTDFILES="yes"
183     ;;
184     "v") ESCRIPT_VERBOSE="yes"
185     ;;
186     "x") echo "-x not implemented yet"
187     exit 1
188     ;;
189     ?) echo "$HELP_TEXT"
190     exit 1
191     ;;
192     esac
193     done
194     shift `expr $OPTIND - 1`
195     #==============================================
196     #
197 caltinay 3178 # Read MPI_FLAVOUR and WITH_OPENMP from the buildvars
198 jfenwick 2409 #
199 jfenwick 3259 MPI_FLAVOUR=`get_buildvar mpi`
200     WITH_OPENMP=`get_buildvar openmp`
201 jfenwick 2409
202 caltinay 2806 if [ ! -z $ESCRIPT_VERBOSE ]; then
203     echo "MPI flavour is $MPI_FLAVOUR."
204 jfenwick 3259 if [ "$WITH_OPENMP" = "1" ]; then echo "OpenMP enabled."; fi
205 caltinay 2806 fi
206    
207 jfenwick 2409 #
208     # extend path variables
209     #
210     export PATH=$EXTRA_PATH:$PATH
211     export LD_LIBRARY_PATH=$EXTRA_LD_LIBRARY_PATH:$LD_LIBRARY_PATH
212     export PYTHONPATH=$EXTRA_PYTHONPATH:$PYTHONPATH
213     EXPORT_ENV="PATH,LD_LIBRARY_PATH,PYTHONPATH"
214 caltinay 2806 if [ "`uname`" = "Darwin" ]
215 jfenwick 2409 then
216     export DYLD_LIBRARY_PATH=$EXTRA_DYLD_LIBRARY_PATH:$EXTRA_LD_LIBRARY_PATH:$DYLD_LIBRARY_PATH
217     EXPORT_ENV="$EXPORT_ENV,DYLD_LIBRARY_PATH"
218     fi
219 caltinay 2806 if [ ! -z $ESCRIPT_VERBOSE ]
220 jfenwick 2409 then
221     echo "PATH = $PATH "
222     echo "LD_LIBRARY_PATH = $LD_LIBRARY_PATH "
223     echo "PYTHONPATH = $PYTHONPATH "
224     if [ ! -z $DYLD_LIBRARY_PATH ]; then echo "DYLD_LIBRARY_PATH = $DYLD_LIBRARY_PATH "; fi
225     fi
226     #==============================================
227     #
228     # Ensure the variables have sensible values
229     #
230 caltinay 2806 if [ "$MPI_FLAVOUR" = "none" ]
231 jfenwick 2409 then
232     if [ ! -z $ESCRIPT_NUM_NODES ]
233     then
234     echo "Warning: MPI disabled but number of nodes set. Option ignored."
235     fi
236     if [ ! -z $ESCRIPT_NUM_PROCS ]
237     then
238     echo "Warning: MPI disabled but number of processors per node set. Option ignored."
239     fi
240     if [ ! -z $ESCRIPT_HOSTFILE ]
241     then
242     echo "Warning: MPI disabled but host file is given. Option ignored."
243     fi
244     ESCRIPT_NUM_NODES=1
245     ESCRIPT_NUM_PROCS=1
246     else
247 jfenwick 3056 # use the PBS_NODEFILE if not otherwise specified
248     if [[ ( ! -z $PBS_NODEFILE ) && ( -z $ESCRIPT_HOSTFILE ) ]]
249     then
250 caltinay 3178 ESCRIPT_HOSTFILE=$PBS_NODEFILE
251 jfenwick 3056 fi
252    
253 jfenwick 2409 if [ ! -z $ESCRIPT_HOSTFILE ]
254     then
255     if [ -f $ESCRIPT_HOSTFILE ]
256     then
257     cat $ESCRIPT_HOSTFILE | sort -u > $HOSTFILE
258     NUM_HOSTS=`cat $HOSTFILE | wc -l`
259     if [ ! -z $ESCRIPT_NUM_NODES ]
260     then
261     if [ $NUM_HOSTS -ne $ESCRIPT_NUM_NODES ]
262     then
263     echo "number of hosts selected in the host file $ESCRIPT_HOSTFILE needs to match the requested number of nodes $ESCRIPT_NUM_NODES."
264     exit 1
265     fi
266     else
267     ESCRIPT_NUM_NODES=$NUM_HOSTS
268     fi
269     else
270     echo "cannot find hostfile $ESCRIPT_HOSTFILE."
271     exit 1
272     fi
273     else
274     HOSTFILE=''
275     fi
276    
277     if [ -z $ESCRIPT_NUM_NODES ]
278     then
279 caltinay 3178 ESCRIPT_NUM_NODES=1
280 jfenwick 2409 fi
281    
282     if [ -z $ESCRIPT_NUM_PROCS ]
283     then
284 caltinay 3178 ESCRIPT_NUM_PROCS=1
285 jfenwick 2409 fi
286    
287 caltinay 2806 if [ ! -z $ESCRIPT_VERBOSE ]
288 jfenwick 2409 then
289 caltinay 3178 echo "ESCRIPT_NUM_NODES = $ESCRIPT_NUM_NODES "
290     echo "ESCRIPT_NUM_PROCS = $ESCRIPT_NUM_PROCS "
291 jfenwick 2409 fi
292     fi
293    
294 jfenwick 3259 if [ "$WITH_OPENMP" = "1" ]
295 jfenwick 2409 then
296     if [ -z $ESCRIPT_NUM_THREADS ]
297     then
298     ESCRIPT_NUM_THREADS=$OMP_NUM_THREADS
299     if [ -z $ESCRIPT_NUM_THREADS ]
300     then
301     ESCRIPT_NUM_THREADS=1
302     fi
303     fi
304     if [ ! -z $ESCRIPT_VERBOSE ]
305     then
306     echo "ESCRIPT_NUM_THREADS is $ESCRIPT_NUM_THREADS."
307     fi
308     else
309     if [[ ( ! -z $ESCRIPT_NUM_THREADS ) && ( $ESCRIPT_NUM_THREADS != 1 ) ]]
310     then
311     echo "Warning: OpenMP is disabled but number of threads requested is $ESCRIPT_NUM_THREADS!=1. Running without threads."
312     fi
313     ESCRIPT_NUM_THREADS=1
314     fi
315     #
316     # Now we compute total number of Processes
317     #
318     (( TOTPROC=$ESCRIPT_NUM_NODES * $ESCRIPT_NUM_PROCS))
319     if [ $? -ne 0 ] #Some compute error
320     then #This could happen if the args were not a number
321 caltinay 3178 echo "expression of total number of processors = $ESCRIPT_NUM_NODES * $ESCRIPT_NUM_PROCS is not numerical."
322     exit 1
323 jfenwick 2409 fi
324    
325     #
326     # Test to ensure people aren't trying to combine interactive and multi-process
327     #
328     if [[ ( ( ! -z $DOINTERACTIVE ) || ( $# -eq 0 ) ) && ( $TOTPROC -gt 1) ]]
329     then
330 caltinay 3178 echo "Interactive mode cannot be used with more than one process"
331     exit 1
332 jfenwick 2409 fi
333    
334     if [ $TOTPROC -gt 1 ]
335     then
336 caltinay 3178 if [ "$ESCRIPT_CREATESTDFILES" = "yes" ]
337     then
338     PYTHON_MPI=$PYTHON_MPI_REDIRECT
339     else
340     PYTHON_MPI=$PYTHON_MPI_NULL
341     fi
342 jfenwick 2409 else
343     PYTHON_MPI=$PYTHON_MPI_NULL
344     fi
345     #=========================================================================================================
346     # Must have at least one command-line arg: the python script
347     if [ $# -eq 0 ]
348     then
349 caltinay 3178 if [ ! -z $DOBINARY ]
350     then
351     echo "No program to run was specified. Exiting."
352     exit 1
353     else
354     DOINTERACTIVE="yes"
355     fi
356 jfenwick 2409 fi
357    
358     #=========================================================================================================
359     if [ ! -z $DOBINARY ]
360     then
361     EXEC_CMD="$@"
362     else
363 caltinay 3178 # Check to see if the python version we were compiled with matches the
364     # one of PYTHON_CMD.
365 jfenwick 3888 compfull=`get_buildvar python_version`
366     compversion=`echo $compfull | cut -d. -f1,2`
367     compmajor=`echo $compfull | cut -d. -f1`
368     if [ "$PYTHON_CMD" = "python" ] # if people have customised the command they
369     then # might not want us changing it
370     if [ "$compmajor" = "3" ]
371     then
372     PYTHON_CMD=python3
373     fi
374     fi
375 jfenwick 3871 intversion=`$PYTHON_CMD -c 'from __future__ import print_function;import sys;print("%d.%d"%(sys.version_info[0], sys.version_info[1]))'`
376 caltinay 3178 if [ "$compversion" != "$intversion" ]
377     then
378     echo "Python versions do not match. Escript was compiled for "$compversion"."
379     echo "Current version of Python appears to be "$intversion"."
380     exit 1
381     fi
382 caltinay 2806 if [ "$MPI_FLAVOUR" = "none" ]
383 jfenwick 2409 then
384 caltinay 3178 if [ ! -z $DOINTERACTIVE ]
385 jfenwick 2409 then
386     EXEC_CMD="$PYTHON_CMD -i $@"
387     else
388     EXEC_CMD="$PYTHON_CMD $@"
389     fi
390     else
391 caltinay 3178 if [ ! -z $DOINTERACTIVE ]
392 gross 2865 then
393     EXEC_CMD="$PYTHON_MPI -i $@"
394     else
395     EXEC_CMD="$PYTHON_MPI $@"
396     fi
397 jfenwick 2409 fi
398     fi
399     if [ ! -z $ESCRIPT_VERBOSE ]; then echo "Command to be executed is \"$EXEC_CMD\"."; fi
400     #===============================================================================================
401     #
402     # now we start to spwan things:
403     #
404 jfenwick 3259 if [ "$WITH_OPENMP" = "1" ]
405 jfenwick 2409 then
406     export OMP_NUM_THREADS=$ESCRIPT_NUM_THREADS
407     EXPORT_ENV="$EXPORT_ENV,OMP_NUM_THREADS"
408     fi
409     EXIT_CODE=1
410     #=============== no MPI ===================================
411 caltinay 2806 if [ "$MPI_FLAVOUR" = "none" ]
412 jfenwick 2409 then
413     $EXEC_CMD
414     EXIT_CODE=$?
415     #=============== OpenMPI ===================================
416 caltinay 2806 elif [ "$MPI_FLAVOUR" = "OPENMPI" ]
417 jfenwick 2409 then
418     if [ ! -z $HOSTFILE ]
419     then
420     HOST_LIST=`awk 'BEGIN{S=""}{if (S == "") { S = $0 } else {S = S "," $0}}END{print S}' $HOSTFILE`
421 jfenwick 3871 CMD="mpirun --gmca mpi_warn_on_fork 0 -x ${EXPORT_ENV//,/ -x } --bynode -np $TOTPROC --host $HOST_LIST $EXEC_CMD"
422 jfenwick 2409 else
423 jfenwick 3871 CMD="mpirun --gmca mpi_warn_on_fork 0 -x ${EXPORT_ENV//,/ -x } -np $TOTPROC $EXEC_CMD"
424 jfenwick 2409 fi
425     if [ ! -z $ESCRIPT_VERBOSE ]; then echo "MPI command is \"$CMD\"."; fi
426     $CMD
427     EXIT_CODE=$?
428    
429     #=============== Intel MPI ===================================
430 caltinay 2806 elif [ "$MPI_FLAVOUR" = "INTELMPI" ]
431 jfenwick 2409 then
432 gross 2510
433 jfenwick 3259 if [ "$WITH_OPENMP" = "1" ]
434 gross 2510 then
435     export I_MPI_PIN_DOMAIN=omp
436     EXPORT_ENV="$EXPORT_ENV, I_MPI_PIN_DOMAIN"
437     fi
438    
439 jfenwick 2409 if [ ! -z $HOSTFILE ]
440     then
441     mpdboot -n $ESCRIPT_NUM_NODES -r ssh -f $HOSTFILE
442     if [ $? -ne 0 ]
443     then
444     echo "mpdboot with host file $ESCRIPT_HOSTFILE for $ESCRIPT_NUM_NODES nodes failed."
445     exit 1
446     else
447     if [ ! -z $ESCRIPT_VERBOSE ]; then echo "mpdboot was started with host file $ESCRIPT_HOSTFILE for $ESCRIPT_NUM_NODES nodes."; fi
448     fi
449 gross 2866 else
450     mpdboot -n 1 -r ssh
451     if [ $? -ne 0 ]
452     then
453     echo "mpdboot failed."
454     exit 1
455     else
456     if [ ! -z $ESCRIPT_VERBOSE ]; then echo "mpdboot was started."; fi
457     fi
458 jfenwick 2409 fi
459     CMD="mpiexec -perhost $ESCRIPT_NUM_PROCS -envall -n $TOTPROC $EXEC_CMD"
460     if [ ! -z $ESCRIPT_VERBOSE ]; then echo "MPI command is \"$CMD\"."; fi
461     $CMD
462     EXIT_CODE=$?
463 gross 2866 mpdallexit
464     if [ ! -z $ESCRIPT_VERBOSE ]; then echo "mpdallexit executed."; fi
465 jfenwick 2409 #=============== SGI's MPIMPT ===================================
466 caltinay 2806 elif [ "$MPI_FLAVOUR" = "MPT" ]
467 jfenwick 2409 then
468     export MPI_NUM_MEMORY_REGIONS=0
469     EXPORT_ENV="$EXPORT_ENV,MPI_NUM_MEMORY_REGIONS"
470     if [ ! -z $HOSTFILE ]
471     then
472     HOST_LIST=`awk 'BEGIN{S=""}{if (S == "") { S = $0 } else {S = S "," $0}}END{print S}' $HOSTFILE`
473 gross 2866 CMD="mpirun $HOST_LIST -np $ESCRIPT_NUM_PROCS $EXEC_CMD"
474 jfenwick 2409 else
475     CMD="mpirun -np $TOTPROC $EXEC_CMD"
476     fi
477     if [ ! -z $ESCRIPT_VERBOSE ]; then echo "MPI command is \"$CMD\"."; fi
478     $CMD
479     EXIT_CODE=$?
480     #=============== MPICH ===================================
481 caltinay 2806 elif [ "$MPI_FLAVOUR" = "MPICH" ]
482 jfenwick 2409 then
483     if [ ! -z $HOSTFILE ]
484     then
485     touch $HOSTFILE2
486     for (( i=1;i<=$ESCRIPT_NUM_PROCS;i+=1 )) ; do cat $HOSTFILE >> $HOSTFILE2 ; done
487     CMD="mpirun -machinefile $HOSTFILE2 -np $TOTPROC $EXEC_CMD"
488     else
489     CMD="mpirun -np $TOTPROC $EXEC_CMD"
490     fi
491     if [ ! -z $ESCRIPT_VERBOSE ]; then echo "MPI command is \"$CMD\"."; fi
492     $CMD
493     EXIT_CODE=$?
494     #=============== MPICH2 ===================================
495 caltinay 2806 elif [ "$MPI_FLAVOUR" = "MPICH2" ]
496 jfenwick 2409 then
497     if [ ! -z $HOSTFILE ]
498     then
499     mpdboot -n $ESCRIPT_NUM_NODES -r ssh -f $HOSTFILE
500     if [ $? -ne 0 ]
501     then
502     echo "mpdboot with host file $ESCRIPT_HOSTFILE for $ESCRIPT_NUM_NODES nodes failed."
503     exit 1
504     else
505     if [ ! -z $ESCRIPT_VERBOSE ]; then echo "mpdboot was started with host file $ESCRIPT_HOSTFILE for $ESCRIPT_NUM_NODES nodes."; fi
506     fi
507 gross 2866 else
508     mpdboot -n 1 -r ssh
509     if [ $? -ne 0 ]
510     then
511     echo "mpdboot failed."
512     exit 1
513     else
514     if [ ! -z $ESCRIPT_VERBOSE ]; then echo "mpdboot was started."; fi
515     fi
516 jfenwick 2409 fi
517     CMD="mpiexec -genvlist $EXPORT_ENV -np $TOTPROC $EXEC_CMD"
518     if [ ! -z $ESCRIPT_VERBOSE ]; then echo "MPI command is \"$CMD\"."; fi
519     $CMD
520     EXIT_CODE=$?
521 gross 2866 mpdallexit
522     if [ ! -z $ESCRIPT_VERBOSE ]; then echo "mpdallexit executed."; fi
523 jfenwick 2409 else
524 caltinay 2806 echo "unknown MPI flavour '$MPI_FLAVOUR'."
525 jfenwick 2409 fi
526     exit $EXIT_CODE

Properties

Name Value
svn:executable *
svn:mergeinfo /branches/lapack2681/bin/escript:2682-2741 /branches/pasowrap/bin/run-escript:3661-3674 /branches/restext/bin/escript:2610-2624 /branches/ripleygmg_from_3668/bin/run-escript:3669-3791 /branches/stage3.0/bin/escript:2569-2590 /release/3.0/bin/escript:2591-2601

  ViewVC Help
Powered by ViewVC 1.1.26