Alcides Fonseca

40.197958, -8.408312


My research focuses on Programming Languages, Parallel Programs and GPGPU, with Machine Learning and Evolutionary approaches as tools to improve them. My PhD thesis is titled “Automatic Optimization of Granularity Control Mechanisms for Parallel Programs”.

I am an integrated member of LASIGE, and my work fits in the Reliable Software Systems research line.

Publication List

Research Topics

  • Programming Languages
  • Dependent Types
  • Automatic Parallelization
  • Parallel Program Optimization
  • Parallel Program Energy Consumption
  • Work-stealing Runtimes

Student Projects

I am always looking for skilled students to collaborate in my research, either part-time or for their MSc dissertation. I have a list of project ideas, but you can submit your own.

Research Software

The following software resulted from this research:

  • GeneticEngine, a Python framework for Grammar-Guided Genetic Programming that uses Datatypes to represent Grammars. It can be used for synthesis, test generation, and program optimisation. (Paper)
  • Aeminium Runtime – A task-based work-stealing runtime. It follows Cilk THE algorithm for work-stealing, but is configurable with several work-stealing algorithms, and different granularity control algorithms. (Paper)
  • Aeminium Benchmarks – A set of 24 recursive parallel programs, each implemented sequentially, using Java ForkJoin or using Aeminium Runtime. Most of the programs were reimplemented based on other benchmark suites, but some of the programs are new. The parameters chosen can evidence differences in granularity control choices, and execute within minutes. The benchmark measurement utility follows the Statistical Rigorous Java Performance Evaluation methodology. (Paper)
  • AeminiumGPU Compiler and Runtime – A compiler that translates map-reduce programs in Java to OpenCL, and a runtime library that executes the OpenCL kernels automatically. (Paper)