About me

I am a Research Fellow working as part of the Advanced Processor Technologies (APT) Research Group at The University of Manchester on Heterogeneous Virtual Machines and language runtime systems for the acceleration of applications using Graphics Processing Units (GPUs) and Field Programmable Gate Arrays (FPGAs). I am also the software architect of the TornadoVM project (a Java framework for automatically running JVM applications on heterogeneous hardware).

What do I do?

Currently, I am collaborating with Intel to bring oneAPI into the TornadoVM framework to perform optimisations for Intel compute architectures (xPUs). I am also an Intel Innovator, and I participate in the Level Zero Technical Advisory Board for helping to shape the next versions of the Level Zero APIs for managed runtime programming languages.

Furthermore, I do public speaking about my research at the University of Manchester and software engineering topics. I have presented at several academic and Industry conferences, including JVMLS, QCon, Devoxx, JavaZone, JAX, and Java User Groups, such as NYJavaSIG.

As an outcome of all this work at the University of Manchester, I received the Best Outstanding Output by Research Staff Award in 2022 (link).

Education

I obtained my PhD at The University of Edinburgh on Accelerating Interpreted Programming Languages on GPUs with Just-In-Time and Runtime Optimisations. I extended the Graal JIT compiler and the Partial Evaluator to allow programmers to automatically execute Java, R and Ruby programs on GPUs via OpenCL.

Before doing the PhD, I obtained my Bachelor’s and Master’s degrees in Computer Science at The University of La Laguna (Tenerife, Spain). In my Master’s project, I contributed to the development of the accULL compiler, the first open-source compiler’s implementation for the OpenACC standard, under the supervision of Dr Ruyman Reyes and Dr Francisco de Sande.

Industry

Additionally, I have also worked as an intern at Oracle Labs and CERN, implementing compilers and evaluating parallel programming techniques for multi-core systems.


If you are also interested in any of these topics, get in touch!