Parallel implementation of simulated annealing to reproduce multiple-point statistics

  • Authors:
  • Oscar Peredo;Julián M. Ortiz

  • Affiliations:
  • Department of Computer Sciences, University de Chile, Chile;ALGES Lab, Advanced Mining Technology Center, University of Chile, Chile and Department of Mining Engineering, University of Chile, Chile

  • Venue:
  • Computers & Geosciences
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper shows an innovative implementation of simulated annealing in the context of parallel computing. Details regarding the use of parallel computing through a cluster of processors, as well as the implementation decisions, are provided. Simulated annealing is presented aiming at the generation of stochastic realizations of categorical variables reproducing multiple-point statistics. The procedure starts with the use of a training image to determine the frequencies of occurrence of particular configurations of nodes and values. These frequencies are used as target statistics that must be matched by the stochastic images generated with the algorithm. The simulation process considers an initial random image of the spatial distribution of the categories. Nodes are perturbed randomly and after each perturbation the mismatch between the target statistics and the current statistics of the image is calculated. The perturbation is accepted if the statistics are closer to the target, or conditionally rejected if not, based on the annealing schedule. The simulation was implemented using parallel processes with C++ and MPI. The message passing scheme was implemented using a speculative computation framework, by which prior to making the decision of acceptance or rejection of a proposed perturbation, processes already start calculating the next possible perturbation at a second level; one as if the perturbation on level one is accepted, and another process as if the proposed perturbation is rejected. Additional levels can start their calculation as well, conditional to the second level processes. Once a process reaches a decision as to whether accept or reject the suggested perturbation, all processes within the branch incompatible with that decision are dropped. This allows a speed up of up to log"n(p+1), where n is the number of categories and p the number of processes simultaneously active. Examples are provided to demonstrate improvements and speed ups that can be achieved.