Next: Options for parallel runs
Up: QMC-MPP
Previous: Run the program
`qsub <Jobfile>'
. In the shell the parallel job is then started by
`mpirun -np <number PEs> <binary>'
.
#
...`` denotes an actual comment in the job card to be processed
and ,, /* ...*/ `` refers to a comment for the user.
#QSUB -r qmc9.yy /* job name for `qstat' */ #QSUB -e /home/supth012/qmc/TMP/out/dsgs.9.yy.err /* stderr file&job no. */ #QSUB -o /home/supth012/qmc/TMP/out/dsgs.9.yy.out /* stdout file&job no. */ #QSUB -l mpp_p=64 /* number PEs */ #QSUB -l mpp_t=28800 /* max. job length [sec] */ #QSUB -l p_mpp_t=28000 /* max. process length [sec] */ #QSUB -lm 15Mw /* max. memory in MW */ #QSUB -s /bin/sh /* shell */ #QSUB -me -mb /* mail at start&end */ #!/bin/sh # set -x # Jobcard for Quanten-Monte-Carlo-MPP-MPI: # thin film surface (dsgsahga): nonlocal pseudopotential # sh-jobcard for 64 PE on one tmp$$ with/without apprentice-analysis # chainjob-version # Help: All areas between ########################################################### #{ #} ########################################################### # have generally to be adapted. ########################################################## #{ job=9.yy # Which job number? pe=64 # How much PE's? isys=0 # Which boundary conditions? bulk:isys=1,surface:isys=0 mv=020208 # Which system? target=dsgsahga # Which MAKE-target? vpp=hrvkppnlgs. # Which pseudopotential? loc.: vpp=hrvkpplgs. # nonloc.: vpp=hrvkppnlgs. surface=quad # Which surface model? ideal: surface=quad # Duke: surface=dsduke app= # Performance-analysis with Apprentice? yes:app=-eA,no:app= bkette=0 # chainjob? $bkette!=0 lvl="1000" # length of MC pre-run lhl="400" # length of MC main run thl="20" # statistical divisor (lhl/thl has to be integer) drv="3.1" # double of maximal step size of pre-random walk in bohr drh="3.1" # double of maximal step size of main random walk in bohr #} ########################################################### [snip] make VPP=$vpp IO=b SYS=$sys MV=$mv EXE=TMP/tmp$$ APP=$app JOB=$job $target [snip] ########################################################### #{ # $job nvarindex=21 # number of parameters vvarindex="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0" # Is the par. varied? 0->1 /* ^ 1D-Scan */ # order: EZWK,SLAP(1:16),JASP(1:1),VCFP(1:3) !!! # for-loops: Edit the number of different values per parameter. # The order is analogous to the input file where it is significant!!! # The total product of all na* has to be equal to $pe !!! nagk=1 # $dat # $isys # $azf see below naj=1 # $gadat nags=1 nagp=1 nagsdb=1 nagpdb=1 # $asdat naas=1 naap=1 naasdb=1 naapdb=1 nagh=1 naah=1 nahv=1 nak0=1 nadba1=1 nadba2=1 nathdb=1 naphdb=1 navpt=$pe /* 1D-Scan */ naspt=1 nalpt=1 # $drv # $lvl # $drh # $lhl # $thl # $dta #} ########################################################### [snip] ########################################################### #{ # the actual values of the parameters, DB is dangling bond # They are chosen uniformly distributed per binary tparoutu, # which has i/o parameters: # random-number-input number-of-output-values left-intervall \ # right-intervall output-format agk=`~/qmc/bin/tparoutu $$ $nagk 10.689 10.689 3` # lattice constant aj=`~/qmc/bin/tparoutu $$ $naj 1.0 1.0 2` # jastrow parameter ags=`~/qmc/bin/tparoutu $$ $nags 0.98 0.98 2` # contraction param. s-Ga agp=`~/qmc/bin/tparoutu $$ $nagp 0.89 0.89 2` # contraction param. p-Ga agsdb=`~/qmc/bin/tparoutu $$ $nagsdb 0.98 0.98 2` # contraction param. s-Ga DB(irrel.) agpdb=`~/qmc/bin/tparoutu $$ $nagpdb 0.89 0.89 2` # contraction param. p-Ga DB(irrel.) aas=`~/qmc/bin/tparoutu $$ $naas 0.98 0.98 2` # contraction param. s-As aap=`~/qmc/bin/tparoutu $$ $naap 0.91 0.91 2` # contraction param. p-As aasdb=`~/qmc/bin/tparoutu $$ $naasdb 0.98 0.98 2` # contraction param. s-As DB aapdb=`~/qmc/bin/tparoutu $$ $naapdb 0.91 0.91 2` # contraction param. p-As DB agh=`~/qmc/bin/tparoutu $$ $nagh 2.5 2.5 2` # s/p weight Ga aah=`~/qmc/bin/tparoutu $$ $naah 3.0 3.0 2` # s/p weight As ahv=`~/qmc/bin/tparoutu $$ $nahv 0.60 0.60 2` # As/Ga weight ak0=`~/qmc/bin/tparoutu $$ $nak0 0.0 0.0 2` # fourier_k=0 - term (constant) adba1=`~/qmc/bin/tparoutu $$ $nadba1 1.0 1.0 2` # DB As param. 1 (irrel.) adba2=`~/qmc/bin/tparoutu $$ $nadba2 1.0 1.0 2` # DB As param. 2 athdb=`~/qmc/bin/tparoutu $$ $nathdb 35.264389682754654 35.264389682754654 15` # DB As Theta(azimuth) aphdb=`~/qmc/bin/tparoutu $$ $naphdb 270.0 270. 2` # DB As Phi(polar)(fixed) avpt=`~/qmc/bin/tparoutu $$ $navpt 14.27 16.27 2` # confinement potential height /* ^^^^^^^^^^^ 1D-Scan */ aspt=`~/qmc/bin/tparoutu $$ $naspt 0.139 0.139 3` # confinement potential stiffness alpt=`~/qmc/bin/tparoutu $$ $nalpt 3.0 3.0 2` # confinement potential distance #} ########################################################### [snip] mpirun -np $pe $target.${job}.exe [snip]
For massive production runs while the system is kept fixed the parameter scans
can be controlled automatically. Considering the confinement potential `avpt' for example,
the user should supply the following information.
The number of values the parameter should attain is inserted in `navpt', the array of indices
`vvarindex' is filled with `1' only at that respective position referring to the
chosen parameter, and the interval the parameter should scan is given by
`left interval' and `right interval', here actually `14.27 16.27' which covers already
a neighborhood of the optimal value. The job card distributes the various parameter sets
into input files, each of which being associated with a definite PE via its PE number.
The value of the job variable `pe' must coincide with the number given in the
QSUB option by `mpp_
p'.
The CPU time depends on the following quantities:
Robert Bahnsen