Abstract
In this work we propose a highly optimized version of a simulated annealing (SA) algorithm adapted to the more recently developed graphic processor units (GPUs). The programming has been carried out with compute unified device architecture (CUDA) toolkit, specially designed for Nvidia GPUs. For this purpose, efficient versions of SA have been first analyzed and adapted to GPUs. Thus, an appropriate sequential SA algorithm has been developed as starting point. Next, a straightforward asynchronous parallel version has been implemented and then a specific and more efficient synchronous version has been developed. A wide appropriate benchmark to illustrate the performance properties of the implementation has been considered. Among all tests, a classical sample problem provided by the minimization of the normalized Schwefel function has been selected to compare the behavior of the sequential, asynchronous and synchronous versions, the last one being more advantageous in terms of balance between convergence, accuracy and computational cost. Also the implementation of a hybrid method combining SA with a local minimizer method has been developed. Note that the generic feature of the SA algorithm allows its application in a wide set of real problems arising in a large variety of fields, such as biology, physics, engineering, finance and industrial processes.
Similar content being viewed by others
References
Ackley D.H.: A Connectionist Machine for Genetic Hillclimbing. Kluwer, Boston (1987)
Bäck T.: Evolutionary Algorithms in Theory and Practice. Oxford University Press, Oxford (1996)
Bersini, H., Dorigo, M., Langerman, S., Seront, G., Gambardella, L.M.: Results of the first international contest on evolutionary optimisation (1st ICEO). In: Proceedings of IEEE International Conference on Evolutionary Computation, IEEE-EC 96, pp. 611–615. IEEE Press, New York (1996)
Bolstad W.M.: Understanding Computational Bayesian Statistics. Wiley, New York (2001)
Breiman L., Cutler A.: A deterministic algorithm for global optimization. Math. Program. 58, 179–199 (1993)
Brooks S.B., Morgan B.J.T.: Optimization using simulated annealing. Statistician 44(2), 241–257 (1995)
Chen H., Flann N.S., Watson D.W.: Parallel genetic simulated annealing: a massively parallel SIMD algorithm. IEEE Trans. Parallel Distrib. Syst. 9, 126–136 (1998)
Chen D.J., Lee C.Y., Park C.H., Mendes P.: Parallelizing simulated annealing algorithms based on high-performance computer. J. Glob. Optim. 39, 261–289 (2007)
Dekkers A., Aarts E.: Global optimization and simulated annealing. Math. Program. 50, 367–393 (1991)
De Jong, K.A.: An Analysis of the Behavior of a Glass of Genetic Adaptive Systems. PhD thesis, University of Michigan, Ann Arbor (1975)
Debudaj-Grabysz, A., Rabenseifner, R.: Nesting OpenMP in MPI to Implement a Hybrid Communication Method of Parallel Simulated Annealing on a Cluster of SMP Nodes. EuroPVM/MPI, Sorrento, Sept 19, (2005)
Dixon L., Szegö G.: Towards Global Optimization. North Holland, New York (1978)
Griewank A.O.: General descent for global optimization. J. Optim. Theory Appl. 34, 11–39 (1981)
HimmelBlau D.M.: Applied Linear Programming. McGraw-Hill, New York (1972)
Kirkpatrick S., Gelatt C.D., Vecchi M.P.: Optimization by simulated annealing. Science 220(4598), 671–680 (1983)
Kliewer, A., Tschöke, S.: A General Parallel Simulated Annealing Library and Its Applications in Industry. Working paper, Department of Mathematics and Computer Science, University of Paderborn, Germany (1998)
Lee S.Y., Lee K.G.: Synchronous and asynchronous parallel simulated annealing with multiple Markov Chains. IEEE Trans. Parallel Distrib. Syst. 7(10), 993–1008 (1996)
Levy A.V., Montalvo A.: The tunneling algorithm for the global minimization of functions. SIAM J. Sci. Stat. Comput. 6, 15–29 (1985)
Metropolis N., Rosenbluth A., Rosenbluth M., Teller A., Teller E.: Equation of state calculations by fast computing machines. J. Chem. Phys. 21(6), 1087–1092 (1953)
Michalewicz Z.: Genetic Algorithms + Data Structures = Evolution Programs. Springer, Berlin (1998)
Nvidia Corp.: CUDA 4.0 Programming Guide. (2011)
Nvidia Corp.: Whitepaper. NVIDIAs Next Generation CUDA Compute Architecture: Fermi
Nvidia Corp.: CUDA. CURAND Library (2011)
Onbasoglu E., Özdamar L.: Parallel simulated annealing algorithms in global optimization. J. Glob. Optim. 19, 27–50 (2001)
Salomon R.: Reevaluating genetic algorithms performance under coordinate rotation of benchmark functions. BioSystems 39(3), 263–278 (1995)
Sanders J., Kandrot E.: CUDA by Example: An Introduction to General-Purpose GPU Programming. Addison-Wesley, Michigan (2011)
Storn R., Price K.: Differential evolution: a simple and efficient heuristic for global optimization over continuous spaces. J. Glob. Optim. 11, 341–359 (1997)
Törn, A., ˆilinskas, A.: Global optimization. In: Lecture Notes in Computer Science 350. Springer, Berlin (1996)
Thrust library web page: http://thrust.github.com/
van Laarhoven P.J.M, Aarts E.H.L.: Simulated Annealing: Theory and Applications. Kluwer, Dordrecht (1987)
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Ferreiro, A.M., García, J.A., López-Salas, J.G. et al. An efficient implementation of parallel simulated annealing algorithm in GPUs. J Glob Optim 57, 863–890 (2013). https://doi.org/10.1007/s10898-012-9979-z
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10898-012-9979-z