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...

Full description

Bibliographic Details
Main Authors: Amela Ramon, Ramon-Cortes Cristian, Ejarque Jorge, Conejero Javier, Badia Rosa M.
Format: Article
Language:English
Published: EDP Sciences 2018-01-01
Series:Oil & Gas Science and Technology
Online Access:https://doi.org/10.2516/ogst/2018047
Description
Summary: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.
ISSN:1294-4475
1953-8189