Talks@DI

Programming languages, Parallelization and Machine Learning

Sala 6.3.38, FCUL, Lisboa

Alcides Fonseca
DI/FCUL

Abstract: Moore's law is now being observed thanks to the increase in the number of processor cores while the CPU frequency has become stagnant. This trend crosses the whole spectrum of computer, from tiny IoT devices and smart-phones to high-end servers with GPUs and accelerators. In order to make use of these architectures, programs must be parallel.
Programming languages are sequential in their nature, which makes the task of writing parallel programs more difficult. Two approaches to generate parallel programs are automatic parallelization of sequential code and the usage of parallel-by-default programming languages. In both cases, parallelism is automatically extracted from the program, which may or may not result in speedups.
There are many decisions in the parallelization process that have impact on the performance of programs. One of the most important is task granularity: should a program be made of few coarse tasks or several tiny tasks with a better load balancing and a more expensive scheduling overhead.
We have proposed different algorithms to control task granularity at either compile time or execution time, with no algorithm being better than the others in all benchmark programs. In order to handle the No Free Lunch Theorem in granularity control, we have used Machine Learning to suggest a granularity control mechanism for a given program, given its features.
Finally, this talk will cover future work, mainly extending programming languages, through the usage of dependent types, with information that will improve the performance of parallel programs.

Short Bio: Alcides Fonseca is an Invited Assistant Professor at the Faculty of Sciences of the University of Lisbon. Previously he was with the University of Coimbra, with a short visit to Carnegie Mellon University. His PhD thesis concerned the control of granularity in automatic parallelized programs. His main interests are Programming Languages, Compilers, Parallel Programming.

14h00
Departamento de Informática