Show simple item record

dc.contributor.authorRamón Cortés, Cristian
dc.contributor.authorAmela Milian, Ramon
dc.contributor.authorEjarque Artigas, Jorge
dc.contributor.authorClauss, Philippe
dc.contributor.authorBadia Sala, Rosa Maria
dc.contributor.otherUniversitat Politècnica de Catalunya. Doctorat en Arquitectura de Computadors
dc.contributor.otherUniversitat Politècnica de Catalunya. Doctorat en Bioinformàtica
dc.contributor.otherUniversitat Politècnica de Catalunya. Departament d'Arquitectura de Computadors
dc.contributor.otherBarcelona Supercomputing Center
dc.date.accessioned2020-09-17T07:45:23Z
dc.date.available2020-09-17T07:45:23Z
dc.date.issued2020
dc.identifier.citationRamón-cortés, C. [et al.]. AutoParallel: Automatic parallelisation and distributed execution of affine loop nests in Python. "The international journal of high performance computing applications (IJHPCA)", 2020, vol. 34, núm. 6, p.659-675.
dc.identifier.issn1741-2846
dc.identifier.urihttp://hdl.handle.net/2117/328829
dc.description.abstractThe last improvements in programming languages and models have focused on simplicity and abstraction; leading Python to the top of the list of the programming languages. However, there is still room for improvement when preventing users from dealing directly with distributed and parallel computing issues. This paper proposes and evaluates AutoParallel, a Python module to automatically find an appropriate task-based parallelisation of affine loop nests and execute them in parallel in a distributed computing infrastructure. It is based on sequential programming and contains one single annotation (in the form of a Python decorator) so that anyone with intermediate-level programming skills can scale up an application to hundreds of cores. The evaluation demonstrates that AutoParallel goes one step further in easing the development of distributed applications. On the one hand, the programmability evaluation highlights the benefits of using a single Python decorator instead of manually annotating each task and its parameters or, even worse, having to develop the parallel code explicitly (e.g., using OpenMP, MPI). On the other hand, the performance evaluation demonstrates that AutoParallel is capable of automatically generating task-based workflows from sequential Python code while achieving the same performances than manually taskified versions of established state-of-the-art algorithms (i.e., Cholesky, LU, and QR decompositions). Finally, AutoParallel is also capable of automatically building data blocks to increase the tasks’ granularity; freeing the user from creating the data chunks, and re-designing the algorithm. For advanced users, we believe that this feature can be useful as a baseline to design blocked algorithms.
dc.description.sponsorshipThis work has been supported by the Spanish Government through contracts SEV2015-0493 and TIN2015-65316-P, and by Generalitat de Catalunya through contract 2014-SGR-1051. Cristian Ramon-Cortes predoctoral contract is financed by the Ministry of Economy and Competitiveness under the contract BES-2016-076791.
dc.format.extent17 p.
dc.language.isoeng
dc.publisherSage
dc.subjectÀrees temàtiques de la UPC::Informàtica::Llenguatges de programació
dc.subject.lcshProgramming languages (Electronic computers)
dc.subject.lcshParallel programming (Computer science)
dc.subject.otherAutomatic parallelisation
dc.subject.otherDistributed computing
dc.subject.otherProgramming models
dc.titleAutoParallel: Automatic parallelisation and distributed execution of affine loop nests in Python
dc.typeArticle
dc.subject.lemacLlenguatges de programació
dc.subject.lemacProgramació en paral·lel (Informàtica)
dc.contributor.groupUniversitat Politècnica de Catalunya. CAP - Grup de Computació d'Altes Prestacions
dc.identifier.doi10.1177/1094342020937050
dc.description.peerreviewedPeer Reviewed
dc.relation.publisherversionhttps://doi.org/10.1177/1094342020937050
dc.rights.accessOpen Access
local.identifier.drac29009949
dc.description.versionPostprint (author's final draft)
dc.relation.projectidinfo:eu-repo/grantAgreement/AGAUR/V PRI/2014 SGR 1051
dc.relation.projectidinfo:eu-repo/grantAgreement/MINECO//TIN2015-65316-P/ES/COMPUTACION DE ALTAS PRESTACIONES VII/
dc.relation.projectidinfo:eu-repo/grantAgreement/MINECO//SEV-2015-0493/ES/BARCELONA SUPERCOMPUTING CENTER - CENTRO. NACIONAL DE SUPERCOMPUTACION/
dc.relation.projectidinfo:eu-repo/grantAgreement/MINECO/1PE/BES-2016-076791
local.citation.authorRamón-cortés, C.; Amela, R.; Ejarque, J.; Clauss, P.; Badia, R.M.
local.citation.publicationNameThe international journal of high performance computing applications (IJHPCA)
local.citation.volume34
local.citation.number6
local.citation.startingPage659
local.citation.endingPage675


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record