Research Area:  Metaheuristic Computing
Parallel metaheuristics require programming languages that provide both, high performance and a high level of programmability. This paper aims at providing a useful data point to help practitioners gauge the difficult question of whether to invest time and effort into learning and using a new programming language. To accomplish this objective, three productivity-aware languages (Chapel, Julia, and Python) are compared in terms of performance, scalability and productivity. To the best of our knowledge, this is the first time such a comparison is performed in the context of parallel metaheuristics. As a test-case, we implement two parallel metaheuristics in three languages for solving the 3D Quadratic Assignment Problem (Q3AP), using thread-based parallelism on a multi-core shared-memory computer. We also evaluate and compare the performance of the three languages for a parallel fitness evaluation loop, using four different test-functions with different computational characteristics. Besides providing a comparative study, we give feedback on the implementation and parallelization process in each language.
Keywords:  
Metaheuristics
Parallel metaheuristics
High-productivity languages
Parallel computing
Quadratic Assignment Problem
Implementation
Parallelization
Author(s) Name:  Jan Gmys, Tiago Carneiro, Nouredine Melab, El-Ghazali Talbi, Daniel Tuyttens
Journal name:  Swarm and Evolutionary Computation
Conferrence name:  
Publisher name:  ELSEVIER
DOI:  10.1016/j.swevo.2020.100720
Volume Information:  Volume 57
Paper Link:   https://www.sciencedirect.com/science/article/abs/pii/S2210650220303734