{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,10,12]],"date-time":"2025-10-12T04:28:57Z","timestamp":1760243337982,"version":"build-2065373602"},"reference-count":46,"publisher":"MDPI AG","issue":"4","license":[{"start":{"date-parts":[[2014,10,23]],"date-time":"2014-10-23T00:00:00Z","timestamp":1414022400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/501100003329","name":"Ministerio de Econom\u00eda y Competitividad","doi-asserted-by":"publisher","award":["TIN2012-39391-C04-04"],"award-info":[{"award-number":["TIN2012-39391-C04-04"]}],"id":[{"id":"10.13039\/501100003329","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Algorithms"],"abstract":"<jats:p>Many bioinspired methods are based on using several simple entities which search for a reasonable solution (somehow) independently. This is the case of Particle Swarm Optimization (PSO), where many simple particles search for the optimum solution by using both their local information and the information of the best solution found so far by any of the other particles. Particles are partially independent, and we can take advantage of this fact to parallelize PSO programs. Unfortunately, providing good parallel implementations for each specific PSO program can be tricky and time-consuming for the programmer. In this paper we introduce several parallel functional skeletons which, given a sequential PSO implementation, automatically provide the corresponding parallel implementations of it. We use these skeletons and report some experimental results. We observe that, despite the low effort required by programmers to use these skeletons, empirical results show that skeletons reach reasonable speedups.<\/jats:p>","DOI":"10.3390\/a7040554","type":"journal-article","created":{"date-parts":[[2014,10,23]],"date-time":"2014-10-23T12:28:28Z","timestamp":1414067308000},"page":"554-581","update-policy":"https:\/\/doi.org\/10.3390\/mdpi_crossmark_policy","source":"Crossref","is-referenced-by-count":10,"title":["Parallelizing Particle Swarm Optimization in a Functional Programming Environment"],"prefix":"10.3390","volume":"7","author":[{"given":"Pablo","family":"Rabanal","sequence":"first","affiliation":[{"name":"Computer Science Faculty, Complutense University, Madrid 28040, Spain"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Ismael","family":"Rodr\u00edguez","sequence":"additional","affiliation":[{"name":"Computer Science Faculty, Complutense University, Madrid 28040, Spain"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-8969-6002","authenticated-orcid":false,"given":"Fernando","family":"Rubio","sequence":"additional","affiliation":[{"name":"Computer Science Faculty, Complutense University, Madrid 28040, Spain"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"1968","published-online":{"date-parts":[[2014,10,23]]},"reference":[{"key":"ref_1","doi-asserted-by":"crossref","unstructured":"Eiben, A., and Smith, J. (2003). Introduction to Evolutionary Computing, Springer.","DOI":"10.1007\/978-3-662-05094-1"},{"key":"ref_2","doi-asserted-by":"crossref","unstructured":"Chiong, R. (2009). Nature-Inspired Algorithms for Optimisation, Springer.","DOI":"10.1007\/978-3-642-00267-0"},{"key":"ref_3","unstructured":"Kennedy, J., and Eberhart, R. (2001). Swarm Intelligence, The Morgan Kaufmann Publishers."},{"key":"ref_4","doi-asserted-by":"crossref","unstructured":"Zomaya, A. (2006). Handbook of Nature-Inspired and Innovative Computing, Springer.","DOI":"10.1007\/0-387-27705-6"},{"key":"ref_5","doi-asserted-by":"crossref","first-page":"29","DOI":"10.1109\/3477.484436","article-title":"Ant system: Optimization by a colony of cooperating agents","volume":"26","author":"Dorigo","year":"1996","journal-title":"IEEE Trans. Syst. Man Cybern. Part B"},{"key":"ref_6","unstructured":"Rabanal, P., Rodr\u00edguez, I., and Rubio, F. (2007, January 13\u201317). Using River Formation Dynamics to Design Heuristic Algorithms. Unconventional Computation, Proceedings of the 6th International Conference, UC 2007, Kingston, ON, Canada."},{"key":"ref_7","doi-asserted-by":"crossref","first-page":"315","DOI":"10.1007\/s10462-011-9276-0","article-title":"A conceptual comparison of the Cuckoo-search, particle swarm optimization, differential evolution and artificial bee colony algorithms","volume":"39","author":"Civicioglu","year":"2013","journal-title":"Artif. Intell. Rev."},{"key":"ref_8","first-page":"141","article-title":"A Survey of Parallel Genetic Algorithms","volume":"10","year":"1998","journal-title":"Calc. Parall. Reseaux Syst. Repartis"},{"key":"ref_9","doi-asserted-by":"crossref","first-page":"7","DOI":"10.1016\/S0020-0190(01)00281-2","article-title":"Parallel evolutionary algorithms can achieve super-linear performance","volume":"82","author":"Alba","year":"2002","journal-title":"Inf. Process. Lett."},{"key":"ref_10","doi-asserted-by":"crossref","first-page":"1421","DOI":"10.1006\/jpdc.2002.1854","article-title":"A Parallel Implementation of Ant Colony Optimization","volume":"62","author":"Randall","year":"2002","journal-title":"J. Parallel Distrib. Comput."},{"key":"ref_11","doi-asserted-by":"crossref","unstructured":"Nedjah, N., de Macedo-Mourelle, L., and Alba, E. (2006). Parallel Evolutionary Computations, Studies in Computational Intelligence, Springer.","DOI":"10.1007\/3-540-32839-4"},{"key":"ref_12","doi-asserted-by":"crossref","unstructured":"Zhou, Y., and Tan, Y. (2009, January 18\u201321). GPU-based parallel particle swarm optimization. Proceedings of the Eleventh Conference on Congress on Evolutionary Computation, Trondheim, Norway.","DOI":"10.1109\/CEC.2009.4983119"},{"key":"ref_13","doi-asserted-by":"crossref","first-page":"4642","DOI":"10.1016\/j.ins.2010.08.045","article-title":"Evaluation of parallel particle swarm optimization algorithms within the CUDA (TM) architecture","volume":"181","author":"Mussi","year":"2011","journal-title":"Inf. Sci."},{"key":"ref_14","doi-asserted-by":"crossref","first-page":"465","DOI":"10.1007\/s10990-011-9074-z","article-title":"Trends in Trends in Functional Programming 1999\/2000 versus 2007\/2008","volume":"23","author":"Achten","year":"2010","journal-title":"High.-Order Symb. Comput."},{"key":"ref_15","doi-asserted-by":"crossref","first-page":"389","DOI":"10.1016\/j.parco.2003.12.002","article-title":"Bringing Skeletons out of the Closet: A Pragmatic Manifesto for Skeletal Parallel Programming","volume":"30","author":"Cole","year":"2004","journal-title":"Parallel Comput."},{"key":"ref_16","doi-asserted-by":"crossref","first-page":"23","DOI":"10.1017\/S0956796897002967","article-title":"Algorithm + Strategy = Parallelism","volume":"8","author":"Trinder","year":"1998","journal-title":"J. Funct. Programm."},{"key":"ref_17","unstructured":"Klusik, U., Loogen, R., Priebe, S., and Rubio, F. (2000, January 4\u20137). Implementation Skeletons in Eden: Low-Effort Parallel Programming. Proceedings of the 12th International Workshop on the Implementation of Functional Languages, IFL 2000, Aachen, Germany."},{"key":"ref_18","doi-asserted-by":"crossref","first-page":"615","DOI":"10.1017\/S0956796804005489","article-title":"A Parallel SML Compiler Based on Algorithmic Skeletons","volume":"15","author":"Scaife","year":"2005","journal-title":"J. Funct. Programm."},{"key":"ref_19","unstructured":"Marlow, S., Peyton Jones, S.L., and Singh, S. (September, January 31). Runtime Support for Multicore Haskell. Proceedings of the International Conference on Functional Programming, ICFP\u201909, Edinburgh, Scotland."},{"key":"ref_20","doi-asserted-by":"crossref","unstructured":"Keller, G., Chakravarty, M., Leshchinskiy, R., Peyton Jones, S., and Lippmeier, B. (2010, January 27\u201329). Regular, shape-polymorphic, parallel arrays in Haskell. Proceedings of the International Conference on Functional Programming (ICFP\u201910), Baltimore, Maryland.","DOI":"10.1145\/1863543.1863582"},{"key":"ref_21","doi-asserted-by":"crossref","unstructured":"Marlow, S. (2013). Parallel and Concurrent Programming in Haskell: Techniques for Multicore and Multithreaded Programming, O\u2019Reilly Media, Inc.","DOI":"10.1007\/978-3-642-32096-5_7"},{"key":"ref_22","doi-asserted-by":"crossref","unstructured":"Rabhi, F.A., and Gorlatch, S. (2002). Patterns and Skeletons for Parallel and Distributed Computing, Springer.","DOI":"10.1007\/978-1-4471-0097-3"},{"key":"ref_23","unstructured":"Peyton Jones, S.L., and Hughes, J. Report on the Programming Language Haskell 98. Available online: http:\/\/www.haskell.org."},{"key":"ref_24","doi-asserted-by":"crossref","first-page":"1942","DOI":"10.1109\/ICNN.1995.488968","article-title":"Particle Swarm Optimization","volume":"Volume 4","author":"Kennedy","year":"1995","journal-title":"Proceedings of the IEEE International Conference on Neural Networks"},{"key":"ref_25","unstructured":"Shi, Y., and Eberhart, R. A modified particle swarm optimizer. Proceedings of the IEEE International Conference on Evolutionary Computation."},{"key":"ref_26","doi-asserted-by":"crossref","first-page":"58","DOI":"10.1109\/4235.985692","article-title":"The particle swarm\u2014Explosion, stability, and convergence in a multidimensional complex space","volume":"6","author":"Clerc","year":"2002","journal-title":"IEEE Trans. Evolut. Comput."},{"key":"ref_27","doi-asserted-by":"crossref","first-page":"235","DOI":"10.1023\/A:1016568309421","article-title":"Recent approaches to global optimization problems through Particle Swarm Optimization","volume":"1","author":"Parsopoulos","year":"2002","journal-title":"Nat. Comput."},{"key":"ref_28","doi-asserted-by":"crossref","first-page":"1362","DOI":"10.1109\/TSMCB.2009.2015956","article-title":"Adaptive Particle Swarm Optimization","volume":"39","author":"Zhan","year":"2009","journal-title":"IEEE Trans. Syst. Man Cybern."},{"key":"ref_29","unstructured":"Pedersen, M. (2010). Tuning & Simplifying Heuristical Optimization. [PhD Thesis, University of Southampton]."},{"key":"ref_30","doi-asserted-by":"crossref","first-page":"747","DOI":"10.1007\/s11047-009-9171-7","article-title":"Multiobjective particle swarm optimization with nondominated local and global sets","volume":"9","author":"Abido","year":"2010","journal-title":"Nat. Comput."},{"key":"ref_31","unstructured":"Encina, A.V., Hidalgo-Herrero, M., Rabanal, P., and Rubio, F. A Parallel Skeleton for Genetic Algorithms. Proceedings of the International Work-Conference on Artificial Neural Networks, IWANN 2011."},{"key":"ref_32","unstructured":"Goldberg, D. (1989). Genetic Algorithms in Search, Optimisation and Machine Learning, Addison-Wesley."},{"key":"ref_33","doi-asserted-by":"crossref","first-page":"523","DOI":"10.1016\/j.parco.2006.08.006","article-title":"Analyzing the influence of mixed evaluation on the performance of Eden skeletons","volume":"32","author":"Rubio","year":"2006","journal-title":"Parallel Comput."},{"key":"ref_34","unstructured":"Eberhart, R., Simpson, P., and Dobbins, R. (1996). Computational Intelligence PC Tools, Academic Press Professional."},{"key":"ref_35","first-page":"1931","article-title":"Small worlds and mega-minds: Effects of neighborhood topology on particle swarm performance","volume":"3","author":"Kennedy","year":"1999","journal-title":"Congress on Evolutionary Computation"},{"key":"ref_36","doi-asserted-by":"crossref","first-page":"591","DOI":"10.1007\/BFb0040810","article-title":"Parameter Selection in Particle Swarm Optimization","volume":"Voloume1447","author":"Shi","year":"1998","journal-title":"Evolutionary Programming"},{"key":"ref_37","unstructured":"Beielstein, T., Parsopoulos, K., and Vrahatis, M. (2002). Tuning PSO parameters through sensitivity analysis, Technical report."},{"key":"ref_38","unstructured":"Laskari, E.C., Parsopoulos, K.E., and Vrahatis, M.N. (2002). IEEE Congress on Evolutionary Computation, IEEE Computer Society Press."},{"key":"ref_39","doi-asserted-by":"crossref","first-page":"82","DOI":"10.1109\/4235.771163","article-title":"Evolutionary programming made faster","volume":"3","author":"Yao","year":"1999","journal-title":"IEEE Trans. Evolut. Comput."},{"key":"ref_40","unstructured":"Worasucheep, C. A particle swarm optimization for high-dimensional function optimization. Proceedings of the International Conference on Electrical Engineering\/Electronics Computer Telecommunications and Information Technology (ECTI-CON\u201910)."},{"key":"ref_41","unstructured":"Parejo-Maestre, J., Garc\u00eda-Guti\u00e9rrez, J., Ruiz-Cort\u00e9s, A., and Riquelme-Santos, J. STATService. Available online: http:\/\/moses.us.es\/statservice\/."},{"key":"ref_42","doi-asserted-by":"crossref","first-page":"674","DOI":"10.1080\/01621459.1937.10503522","article-title":"The use of ranks to avoid the assumption of normality implicit in the analysis of variance","volume":"32","author":"Friedman","year":"1937","journal-title":"J. Am. Stat. Assoc."},{"key":"ref_43","doi-asserted-by":"crossref","first-page":"86","DOI":"10.1214\/aoms\/1177731944","article-title":"A comparison of alternative tests of significance for the problem of m rankings","volume":"11","author":"Friedman","year":"1940","journal-title":"Ann. Math. Stat."},{"key":"ref_44","doi-asserted-by":"crossref","first-page":"482","DOI":"10.1214\/aoms\/1177704575","article-title":"Ranks methods for combination of independent experiments in analysis of variance","volume":"33","author":"Hodges","year":"1962","journal-title":"Ann. Math. Stat."},{"key":"ref_45","doi-asserted-by":"crossref","first-page":"680","DOI":"10.1080\/01621459.1979.10481670","article-title":"Using weighted rankings in the analysis of complete blocks with additive block effects","volume":"74","author":"Quade","year":"1979","journal-title":"J. Am. Stat. Assoc."},{"key":"ref_46","doi-asserted-by":"crossref","first-page":"3","DOI":"10.1016\/j.swevo.2011.02.002","article-title":"A practical tutorial on the use of nonparametric statistical tests as a methodology for comparing evolutionary and swarm intelligence algorithms","volume":"1","author":"Derrac","year":"2011","journal-title":"Swarm Evol. Comput."}],"container-title":["Algorithms"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.mdpi.com\/1999-4893\/7\/4\/554\/pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,10,11]],"date-time":"2025-10-11T21:17:22Z","timestamp":1760217442000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.mdpi.com\/1999-4893\/7\/4\/554"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2014,10,23]]},"references-count":46,"journal-issue":{"issue":"4","published-online":{"date-parts":[[2014,12]]}},"alternative-id":["a7040554"],"URL":"https:\/\/doi.org\/10.3390\/a7040554","relation":{},"ISSN":["1999-4893"],"issn-type":[{"type":"electronic","value":"1999-4893"}],"subject":[],"published":{"date-parts":[[2014,10,23]]}}}