Executing linear algebra kernels in heterogeneous distributed infrastructures with PyCOMPSs

Python is a popular programming language due to the simplicity of its syntax, while still achieving a good performance even being an interpreted language. The adoption from multiple scientific communities has evolved in the emergence of a large number of libraries and modules, which has helped to pu...

Descripción completa

Detalles Bibliográficos
Autores: Amela Milian, Ramon, Ramon-cortés Vilarrodona, Cristian, Ejarque, Jorge|||0000-0003-4725-5097, Conejero, Javier, Badia Sala, Rosa Maria|||0000-0003-2941-5499
Tipo de recurso: artículo
Fecha de publicación:2018
País:España
Institución:Universitat Politècnica de Catalunya (UPC)
Repositorio:UPCommons. Portal del coneixement obert de la UPC
Idioma:inglés
OAI Identifier:oai:upcommons.upc.edu:2117/125116
Acceso en línea:https://hdl.handle.net/2117/125116
https://dx.doi.org/10.2516/ogst/2018047
Access Level:acceso abierto
Palabra clave:Parallel programming (Computer science)
Python
Programming language
Task-based programming
Programació (Ordinadors)
Àrees temàtiques de la UPC::Informàtica
Descripción
Sumario:Python is a popular programming language due to the simplicity of its syntax, while still achieving a good performance even being an interpreted language. The adoption from multiple scientific communities has evolved in the emergence of a large number of libraries and modules, which has helped to put Python on the top of the list of the programming languages [1]. Task-based programming has been proposed in the recent years as an alternative parallel programming model. PyCOMPSs follows such approach for Python, and this paper presents its extensions to combine task-based parallelism and thread-level parallelism. Also, we present how PyCOMPSs has been adapted to support heterogeneous architectures, including Xeon Phi and GPUs. Results obtained with linear algebra benchmarks demonstrate that significant performance can be obtained with a few lines of Python.