14.09.2014 Views

CASINO manual - Theory of Condensed Matter

CASINO manual - Theory of Condensed Matter

CASINO manual - Theory of Condensed Matter

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

DMC REWEIGHT CONF (Logical) Update walker weights read in from config.in. Weights <strong>of</strong><br />

walkers are recomputed after reading config.in to correct for a modified wave function. This<br />

allows continuous QMC-MD computations as described in PhysRevLett.94.056403.<br />

DMC SPACEWARPING (Logical) Electronic positions are adjusted to follow the ionic positions<br />

when adapting an existing population to a new wave function. The method follows the description<br />

in PhysRevB.61.R16291 and is typically combined with dmc reweight conf.<br />

DMC STATS NBLOCK (Integer) Number <strong>of</strong> blocks into which the DMC statistics accumulation<br />

phase is divided (if dmc stats nstep is not divisible by dmc stats nblock, then the number<br />

<strong>of</strong> steps will be increased to the nearest multiple <strong>of</strong> the number <strong>of</strong> blocks). Note that having<br />

multiple blocks does not increase the amount <strong>of</strong> data collected, merely the frequency with which<br />

data is written to files; the final answer should be the same, irrespective <strong>of</strong> the number <strong>of</strong><br />

blocks. Specifically, at the end <strong>of</strong> each accumulation block, the following significant actions are<br />

performed:<br />

(1) Write processor- and config-averaged data to dmc.hist (one line for each step in the current<br />

block).<br />

(2) Write processor- and config-averaged data to the expval.data file (if accumulating expectation<br />

values other than the energy).<br />

(3) Print monitoring data to the out file (block-averaged quantities).<br />

(4) Make a backup copy <strong>of</strong> the config.out file (if catastrophe protection is turned on with the<br />

dmc trip weight keyword).<br />

(5) Make a backup copy <strong>of</strong> the expval.data file (if it exists, and if catastrophe protection is<br />

turned on with the dmc trip weight keyword).<br />

(6) Write the dmc.status file.<br />

(7) Write the current state <strong>of</strong> the system, and all configurations in the current population to the<br />

config.out file (note that by setting the checkpoint keyword to 0, this step can be skipped<br />

until the end <strong>of</strong> the final block, or skipped completely if checkpoint=-1, but this is not the<br />

default).<br />

Note that having too many blocks will make the code slower, and if the run is not massively<br />

long it is perfectly in order to have only one DMC stats block (which is the default).<br />

DMC STATS NSTEP (Integer) Number <strong>of</strong> DMC steps performed on each processor in the statistics<br />

accumulation phase, and consequently, the total number <strong>of</strong> local energy samples (averaged<br />

over configurations and processors) written to the dmc.hist file. The accumulation phase may<br />

be partitioned into dmc stats nblock blocks, but this does not affect the total number <strong>of</strong> steps<br />

(just how frequently stuff is written out). However, if dmc stats nstep is not divisible by the<br />

number <strong>of</strong> blocks, then it will be rounded up to the nearest multiple <strong>of</strong> dmc stats nblock. Furthermore,<br />

dmc ave period consecutive local energies may be averaged together in DMC before<br />

writing them to the dmc.hist file (hence reducing its size), but again, if dmc stats nstep is<br />

not divisible by dmc ave period, it will be rounded up to the nearest multiple <strong>of</strong> it. Note the<br />

difference in parallel behaviour compared to vmc nstep, which is not a per processor quantity;<br />

this is because the DMC phase is parallelized over configurations.<br />

DMC TARGET WEIGHT (Real) Total target weight in DMC, summed over all processors.<br />

This is synonymous with the ‘target population’ <strong>of</strong> configurations, except that<br />

dmc target weight is allowed to be non-integer. Typically dmc target weight will be the<br />

same as vmc nconfig write when runtype= vmc dmc, though it does not have to be. 11<br />

DMC TRIP WEIGHT (Real) In the course <strong>of</strong> a DMC simulation, it is possible for a configuration<br />

‘population explosion’ to occur. If dmc trip weight is set to 0.0 then nothing will be done<br />

about this. If dmc trip weight> 0 then the algorithm will attempt to restart the block (with a<br />

different random number sequence) if the iteration weight exceeds dmc trip weight. A general<br />

suggestion for its value would be three times dmc target weight (but see the discussion later<br />

in the <strong>manual</strong> in Sec. 13.9 about this).<br />

11 It may seem bizarre to allow non-integer total target weights, but a possible use for this is in increasing the parallel<br />

efficiency when you have a very small population per core. Suppose your target weight is 1 configuration per core and<br />

you are running on 100000 cores. Half the time your total population will be a bit higher than 100000, and when this<br />

happens nearly all <strong>of</strong> your cores will spend half their time twiddling their thumbs waiting for the small number <strong>of</strong> cores<br />

that have two configurations to finish the iteration. So around 25% <strong>of</strong> the computer time is wasted. If instead you set<br />

your target weight to 0.98 configurations per core then it is very unlikely that any cores will have two configurations.<br />

Instead you have on average 2% <strong>of</strong> your cores sitting idle, which is sad, but still more efficient than having large numbers<br />

<strong>of</strong> cores wait for a small number <strong>of</strong> over-burdened cores.<br />

40

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!