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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Population-control catastrophes should not occur under normal circumstances. The following have<br />

been found to lead to catastrophic behaviour: (i) the use <strong>of</strong> a trial wave function that does not satisfy<br />

the electron–nucleus cusp conditions, e.g., when a non-cusp-corrected Gaussian basis is used; (ii) the<br />

use <strong>of</strong> certain nonlocal pseudopotentials in the absence <strong>of</strong> the T -move scheme [20] (set use tmove<br />

to T in order to use the T -move scheme); (iii) the severe truncation <strong>of</strong> localized orbitals, especially<br />

when a smooth truncation scheme is used; (iv) the use <strong>of</strong> an inadequate basis set to represent the<br />

orbitals; (v) pathological trial wave functions, resulting from optimizations that have gone awry (use<br />

jastrow plot to examine the behaviour <strong>of</strong> u(r ij ): it should increase monotonically to 0). All <strong>of</strong> these<br />

circumstances should be avoided if possible.<br />

Note finally that, in large systems, the likelihood <strong>of</strong> population explosions may be reduced if you<br />

use (unreweighted) variance minimization rather than energy minimization to optimize the wave<br />

function. The reason for this is related to the fact that energy minimisation doesn’t care much about<br />

what happens near nodes, since those regions do not contribute much to the energy expectation<br />

value. However, the divergent local energies there make a big difference to the stability <strong>of</strong> the DMC<br />

algorithm. If you’re using backflow then you have to use energy minimisation, but then you’re unlikely<br />

to be looking at a big system.<br />

13.10 Reducing the computational expense <strong>of</strong> DMC equilibration<br />

It is always necessary to discard the results <strong>of</strong> propagating the configuration population over the first<br />

few correlation periods (the equilibration phase) <strong>of</strong> a DMC simulation. Suppose the target population<br />

is large. Because the number <strong>of</strong> statistics-accumulation steps required to achieve a given error bar<br />

is relatively small in this case, equilibration can be a large fraction <strong>of</strong> the total computational effort.<br />

Indeed, for some calculations, DMC equilibration accounts for as much as half <strong>of</strong> the total CPU time.<br />

By contrast, if one uses a small population and runs for a large number <strong>of</strong> correlation periods until<br />

one has generated the required amount <strong>of</strong> data, equilibration is a small fraction <strong>of</strong> the total run time.<br />

Unfortunately, when running on a large number <strong>of</strong> cores, the configuration population is necessarily<br />

large, since each core must have at least one configuration on average.<br />

Here we suggest an alternative approach for equilibrating a DMC calculation with a large target<br />

population P . Instead <strong>of</strong> using VMC to generate P initial configurations, we suggest that VMC be used<br />

to generate a small number <strong>of</strong> configurations q, which are then used in a preliminary DMC calculation<br />

to generate P configurations. In this preliminary DMC calculation with q configurations, equilibration<br />

is followed by (P/q)T corr time steps <strong>of</strong> statistics accumulation, where T corr is the correlation period<br />

in terms <strong>of</strong> time steps, during which a total <strong>of</strong> P configurations are written out. Following this, a P -<br />

configuration DMC statistics-accumulation calculation is performed. Note that q must be sufficiently<br />

large that population-control bias is negligible in the preliminary DMC calculation.<br />

For example, if one wanted to use a population <strong>of</strong> 10,000 configurations in a DMC calculation, one could<br />

carry out a preliminary DMC calculation with 1,000 configurations, until 10,000 independent configurations<br />

were generated, then use these as the initial population for the main 10,000-configuration<br />

run (which would not need to be equilibrated). The computational effort <strong>of</strong> equilibration would be<br />

reduced nearly tenfold.<br />

If the data generated in the preliminary DMC calculation were discarded altogether, this approach<br />

would still lead to a substantial reduction in the computational effort, because the DMC equilibration<br />

would be performed with a small population. However, one can further reduce the waste <strong>of</strong> computational<br />

effort: the data generated in the statistics accumulation phase <strong>of</strong> the preliminary DMC<br />

calculation can be averaged with the data generated in the main DMC calculation. Since some <strong>of</strong><br />

the configurations generated in the preliminary calculation are reused in the initial population <strong>of</strong> the<br />

main DMC calculation, some care must be taken to ensure that the error bar is not underestimated.<br />

The most effective way <strong>of</strong> combining the data from the preliminary and main calculations is still being<br />

investigated, and it is left up to the user to combine the data ‘by hand’ for the time being.<br />

The drawbacks <strong>of</strong> the proposed method are (i) having an extra stage to the calculation; (ii) the fact<br />

that the preliminary DMC calculation would probably have to be run on a relatively small number <strong>of</strong><br />

processors compared with the main calculation; and (iii) the fact that population-control bias might<br />

be a problem if the population q in the preliminary calculation is very small.<br />

In order to perform a preliminary DMC calculation (i.e., to write out configurations during DMC<br />

statistics accumulation), the dmc nconf prelim keyword should be set to the total number <strong>of</strong> configurations<br />

to be written out (summed over all processors). The configurations are written out once<br />

131

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

Saved successfully!

Ooh no, something went wrong!