Geant4 Cross Reference |
1 #!/usr/bin/env bash 2 numRankP=1 # Number of ranks(cpu/cores) for physical stage ( 1 is default value) 3 numRankC=2 # Number of ranks(cores/cpus) for chemical stage( 4 is default value) 4 flag="all"; #default, 5 inputFolder="chem_input" 6 physmacfile="dsbandrepair.in" #change it if you use other files 7 chemmacfile="chem.in" #change it if you use other files 8 ##--------------------------------------------------------------------------------------------------------------------------## 9 logfolder="logs" 10 if [ ! -d $logfolder ]; then 11 # folder to contain logfiles 12 mkdir "$logfolder" 13 mkdir "$logfolder/phys" 14 mkdir "$logfolder/chem" 15 fi 16 ##--------------------------------------------------------------------------------------------------------------------------## 17 ##Read input arguments 18 for i in "$@" 19 do 20 if [ $i = "-f" ] ;then shift;unset flag;flag=$1;shift;fi 21 if [ $i = "-nRP" ] ;then shift;unset numRankP; numRankP=$1;shift;fi 22 if [ $i = "-nRC" ] ; then shift;unset numRankC; numRankC=$1;shift;fi 23 if [ $i = "-mP" ] ; then shift;unset physmacfile; physmacfile=$1;shift;fi 24 if [ $i = "-mC" ] ; then shift;unset chemmacfile; chemmacfile=$1;shift;fi 25 done 26 ##--------------------------------------------------------------------------------------------------------------------------## 27 echo "See $logfolder/* for running details" 28 #START_TIME=$SECONDS 29 ##--------------------------------------------------------------------------------------------------------------------------## 30 #PhysStage: 31 if [ $flag = "all" ] || [ $flag = "phys" ]; then 32 if [ -d $logfolder/phys ]; then find $logfolder/phys/ -type f -delete;fi 33 echo "Start running physical stage................." 34 mpiexec -np $numRankP --bind-to none ./dsbandrepair $physmacfile > $logfolder/phys/log.dat 35 wait 36 echo "End running physical stage................." 37 fi 38 wait # make sure all above processes finish before chemStage starts 39 40 ##--------------------------------------------------------------------------------------------------------------------------## 41 42 #ChemStage: 43 if [ $flag = "all" ] || [ $flag = "chem" ]; then 44 if [ -d $logfolder/chem ]; then find $logfolder/chem/ -type f -delete;fi 45 fi 46 echo "Start running chemical stage................." 47 # Loop on each file of the $inputFolder folder 48 mpiexec -np $numRankC --bind-to none ./dsbandrepair $chemmacfile chem $inputFolder > $logfolder/chem/log.dat 49 wait 50 echo "End running chemical stage................." 51 fi 52 53 ##--------------------------------------------------------------------------------------------------------------------------## 54 #echo "Elasped timed for $flag stage: $(($SECONDS - $START_TIME)) sec!!!" 55 ##--------------------------------------------------------------------------------------------------------------------------##