next up previous contents
Next: Homogeneous Bose Gas Up: Diffusion Monte Carlo Previous: DMC algorithm   Contents

Parallel DMC algorithm

The simulation of a homogeneous infinite system is done by repeating periodically in space the ``simulation box'' with side $L$. Such a substitution leads to correlation in space for distances $r
> L/2$. It means that the one-body density matrix, the pair distribution functions, can be calculated only for $r<L/2$. In some cases it is important to have information about the large-scale properties of the system. For example this happens in the region close to the phase transition, where the correlation length is large. In our case we need to find the asymptotic value of the one-body density matrix and as a result it is necessary to use large $L$. The problem is that doubling the number of particles $N$ at a constant density $n = N/L^3$ enlarges the size of the box only $\sqrt[3]{2} = 1.26$ times, while the time of the calculation scales quadratically. This makes the calculation heavy and one of the possible way out consists in using the parallel computations. The Diffusion Monte Carlo algorithm can be parallelized in a natural way. In the algorithm the wavefunction $f$ is treated as the density of the probability distribution of walkers (see (3.26)). The walkers explore the coordinate space moving according to (3.27, 3.28), and then some of the walkers are removed or added during the branching process (3.29). The key point is that the walkers move absolutely independently, and consequently can be evaluated on different processors independently. Here is the list of corrections to the serial calculation:
  1. walkers move in space according to (3.27, 3.28), done in parallel
  2. the local energy of each walker is calculated, done in parallel
  3. other quantities different from energy are calculated (if necessary), done in parallel
  4. averages over all walkers are calculated, the regeneration coefficient (3.29) is calculated for each walker and walkers are redistributed among the processors to keep the load constant
The explained above algorithm of numerical simulations produces very high productivity, because all heavy calculations are done in the parallel regime and only few, like the the balance load, are done in the non-parallel way.Although one also should consider the loss of time due to communication and data transfer between the processes, but amount of this time is negligible in comparison to the length of the calculation. This parallel algorithm is called distributed-system method, another way to build the program is described by the replicated-system method[23], which has $5\%$ higher performance. Monte Carlo methods are very robust to numerical errors and this makes their usage very advantageous. For example, the MC run on a cluster of computers can survive even if one of the processes is switched off during the computation. This will lead only to a decrease in statistics at this step and different loading distribution at the next one. Many other methods, like the direct solution of the differential equation, will break down in a case of such an event.
next up previous contents
Next: Homogeneous Bose Gas Up: Diffusion Monte Carlo Previous: DMC algorithm   Contents