1. A comparative study of high-productivity high-performance programming languages for parallel metaheuristics
- Author
-
Jan Gmys, Nouredine Melab, Daniel Tuyttens, El-Ghazali Talbi, Tiago Carneiro, University of Mons [Belgium] (UMONS), Faculté polytechnique de Mons, Université de Mons (UMons), Optimisation de grande taille et calcul large échelle (BONUS), Inria Lille - Nord Europe, Institut National de Recherche en Informatique et en Automatique (Inria)-Institut National de Recherche en Informatique et en Automatique (Inria)-Centre de Recherche en Informatique, Signal et Automatique de Lille - UMR 9189 (CRIStAL), Centrale Lille-Université de Lille-Centre National de la Recherche Scientifique (CNRS)-Centrale Lille-Université de Lille-Centre National de la Recherche Scientifique (CNRS), Université de Lille, and The experiments presented in this paper were carried out on the Grid’5000 testbed, hosted by INRIA and including several other organizations. Wethank Bradford Chamberlain, Elliot Ronaghan (Cray inc.) and Louis Jenkins (University of Rochester) for their support on Chapel’s Gitter platform.
- Subjects
Parallel computing ,General Computer Science ,Quadratic assignment problem ,Computer science ,General Mathematics ,[INFO.INFO-DS]Computer Science [cs]/Data Structures and Algorithms [cs.DS] ,02 engineering and technology ,Thread (computing) ,Metaheuristics ,computer.software_genre ,High productivity ,Chapel ,0202 electrical engineering, electronic engineering, information engineering ,Metaheuristic ,computer.programming_language ,Programming language ,05 social sciences ,050301 education ,[INFO.INFO-RO]Computer Science [cs]/Operations Research [cs.RO] ,Python (programming language) ,High-productivity languages ,Parallel metaheuristics ,Scalability ,020201 artificial intelligence & image processing ,[INFO.INFO-DC]Computer Science [cs]/Distributed, Parallel, and Cluster Computing [cs.DC] ,0503 education ,computer - Abstract
International audience; 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.
- Published
- 2020