a shell script to spawn mpi executables on the "free" nodes of a Scyld cluster
Many of your questions may have already been answered in earlier discussions or in the FAQ. The search results page will indicate current discussions as well as past list serves, articles, and papers.
Florent Calvayrac fcalvay at aviion.univ-lemans.frWed Oct 31 12:44:59 PST 2001
- Previous message: mpich on scyld problems
- Next message: AMD testing
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
to those with the same problem Since I couldn't find any free programs to address easily this issue I include below a dirty bash2 script to spawn mpi executables on the "free" nodes of a Scyld cluster Comments and feedback welcome -- Florent Calvayrac Laboratoire de Physique de l'Etat Condense Universite du Maine-Faculte des Sciences http://www.univ-lemans.fr/~fcalvay -------------- next part -------------- #!/bin/bash2 #the above must strictly be the first line of the script # # dirty hack to spawn an mpi executable on free nodes of a Beowulf # (Scyld) cluster - this is, with a load below "loadlimit" # specified below # # # version 0.01 of a quick and dirty hack by Florent.Calvayrac at univ-lemans.fr # # # problems as of yet : stdout is lost, I do not where yet # # # usage : ./this_script np executable # # # (must of course reside in a cluster-readable directory, like /home/...) # # # ARGS=2 # Number of arguments expected. E_BADARGS=65 # Exit value if incorrect number of args passed. test $# -ne $ARGS && echo "Usage: `basename $0` $ARGS argument(s)" && exit $E_BADARGS # If condition-1 true (wrong number of args passed to script), # then the rest of the line executes, and script terminates. np=$1 command=$2 loadlimit=0.7 #generating hopefully unique temp files file="$PWD"/pg`ps | tail -1 | cut -b 3-5` file2="$file"2 echo "temporary files are " $file $file2 #machine loads bpsh -a -p cat /proc/loadavg | cut -b 2-10 > $file2 #process as a function of the number of procs required count=0 echo "eof" >> $file2 number="" while [ "$number" != "eof" ] do read number load if [[ load < loadlimit ]] ; then let "count += 1" if [[ $count -le $np ]] ; then j=1 if [[ $count -eq 1 ]] ; then j=0 master=`echo $number | sed --expression="s/\://"` echo "master is" $master fi echo $number $j $command | sed --expression="s/\://" >> $file fi fi done <$file2 #spawn the master echo "spawning job" P4_PG=$file NO_INLINE_MPIRUN=true bpsh $master "$command" echo "job is ended" #clean up rm -f $file rm -f $file2
- Previous message: mpich on scyld problems
- Next message: AMD testing
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Beowulf mailing list
