Theses and Projects
My research interests are in abstractions, systems, and tools for High-Performance Computing (HPC). More specifically, I work on accelerators such as Spatial/Dataflow Devices (e.g., FPGAs – Field Programmable Gate Arrays –, CGRAs, Machine Learning Accelerators) and GPUs for HPC, parallel programming frameworks/models to leverage them, and energy efficiency. I’m also interested in everything that is performance-related, and I like to build systems that work.
I offer Bachelor and Master’s theses, and I am happy to supervise Research Projects (XM_0129 and XM_130) as well. Below you can find a (non-exhaustive) list of potential project topics. If you are interested in having a chat about the listed topics or proposing a new one, feel free to email me!
Productively program Spatial Accelerators
Spatial devices represent an avenue towards reducing the control and performance overhead of classical Load-Store Architecture (e.g., CPUs and GPUs). In recent years, there has been a Cambrian explosion of spatial devices offered as Machine Learning Accelerators. While they come with software integration with popular Machine Learning frameworks, their potential in various scientific domains (e.g., computational science, bioinformatics, graph processing) is still unexplored. The limited software support for non-ML workloads and their steep learning curve make them inaccessible to non-experts. With my research, I want to address this gap.
Projects in this domain may regard: Explore the capabilities of accessible (monetary-wise) Machine Learning Accelerators, such as AI engines in commodity processors, NPU, or Tenstorrent devices.
- Create benchmark, to understand their potential use in scientific applications
- Port applications usually executed on other type of devices to spatial accelerators, leveraging their unique characteristics
- Provide frameworks, tools, and libraries to facilitate the development of applications targeting them
- …
High-Performance Computing
With the scale of computing systems increasing, we still have plenty of room to improve the performance of applications running on them.
In this domain, there could be several projects on:
- Accelerating applications on CPU/GPU-based systems
- Benchmark new computing systems or solutions
- Develop models to understand (and optimize) their behavior
- …
Sustainable Computing
In recent years, researchers and companies have started to be concerned about the environmental footprint of computing systems. In the group, we have a successful history in building simulators for complex ecosystems such as data centers, and we are now investigating how to consider sustainability, not just performance, as a first-class citizen in their design.
In this area, I am interested in topics such as:
- modeling the interaction between different computing devices in heterogeneous systems
- understanding power/sustainability and performance trade-off that might appear
- developing carbon-aware scheduling algorithms