
arXiv: 1810.11268
The last improvements in programming languages, programming models, and frameworks have focused on abstracting the users from many programming issues. Among others, recent programming frameworks include simpler syntax, automatic memory management and garbage collection, which simplifies code re-usage through library packages, and easily configurable tools for deployment. For instance, Python has risen to the top of the list of the programming languages due to the simplicity of its syntax, while still achieving a good performance even being an interpreted language. Moreover, the community has helped to develop a large number of libraries and modules, tuning them to obtain great performance. 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 parallelization of affine loop nests to execute them in parallel in a distributed computing infrastructure. This parallelization can also include the building of data blocks to increase task granularity in order to achieve a good execution performance. Moreover, AutoParallel is based on sequential programming and only contains a small annotation in the form of a Python decorator so that anyone with little programming skills can scale up an application to hundreds of cores.
Accepted to the 8th Workshop on Python for High-Performance and Scientific Computing (PyHPC 2018)
FOS: Computer and information sciences, Computer Science - Programming Languages, Computer Science - Distributed, Parallel, and Cluster Computing, [INFO.INFO-CL] Computer Science [cs]/Computation and Language [cs.CL], Engineering, Geological, Distributed, Parallel, and Cluster Computing (cs.DC), Programming Languages (cs.PL)
FOS: Computer and information sciences, Computer Science - Programming Languages, Computer Science - Distributed, Parallel, and Cluster Computing, [INFO.INFO-CL] Computer Science [cs]/Computation and Language [cs.CL], Engineering, Geological, Distributed, Parallel, and Cluster Computing (cs.DC), Programming Languages (cs.PL)
| selected citations These citations are derived from selected sources. This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | 0 | |
| popularity This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network. | Average | |
| influence This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | Average | |
| impulse This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network. | Average |
