CV
Work experience
- August 2021 - Present: Research Fellow @ The University of Manchester, UK
- Research software engineer working on dynamic compilation for Heterogeneous Systems (GPUs, FPGAs and multi-cores).
- Collaborating with Intel and EU Project Elegant H2020
- Software Outcome: TornadoVM, SPIR-V Beehive Toolkit, Level-Zero JNI
- October 2017 - July 2021: Research Associate @ The University of Manchester, UK
- Research software engineer working on dynamic compilation for Heterogeneous Systems (GPUs, FPGAs and multi-cores).
- Working on the E2Data European Project
- Software Outcome: TornadoVM, KFusion-Tornado, Docker-Tornado
- June-November 2015: Intern at Oracle Labs, Linz
- R compiler for automatic distributed computing (FatR-Flink)
- June-August 2013: Internship at CERN Openlab
- Vectorization with AVX and AVX2 using the Intel Cilk+ compiler for the ROOT framework
- June 2012-May 2013: Intern at ITER (Instituto Tecnologico de Energias Renovables, Spain)
- System administration of an HPC data center
- Infiniband and parallel file systems
- Cobler
- Setember 2010-June 2012: Intern at SAII (Universidad de La Laguna, Spain)
- System administration of an HPC data center
- Dev-ops
- Ruby-on-Rails and Django web developer
Education
- Ph.D in Dynamic Compilation for GPUs, The University of Edinburgh (UK), August 2017
- MSc in Computer Science, University de La Laguna (Spain), 2013
- BSc in Computer Science, Universidad de La Laguna (Spain), 2010
Publications
Here some of the latests publications. Please visit ACM-DL or Google Scholar for a full list.
Just-In-Time GPU Compilation for Interpreted Languages with Partial Evaluation
Juan Fumero, Michel Steuwer, Lukas Stadler, and Christophe Dubach. 2017. Just-In-Time GPU Compilation for Interpreted Languages with Partial Evaluation. SIGPLAN Not. 52, 7 (April 2017), 60-73. DOI: https://doi.org/10.1145/3140607.3050761
PhD Thesis: Accelerating Interpreted Programming Languages on GPUs with Just-In-Time and Runtime Optimisations
Juan Fumero. PhD Thesis: Accelerating Interpreted Programming Languages on GPUs with Just-In-Time and Runtime Optimisations. The University of Edinburgh, UK. August 2017.
Towards Practical Heterogeneous Virtual Machines
James Clarkson, Juan Fumero, Michalis Papadimitriou, Maria Xekalaki, Christos Kotselidis. Towards Practical Heterogeneous Virtual Machines. MoreVMs 2018
Enabling RISC-V support on the MaxineVM
Foivos S Zakkak, Juan Fumero and Christos Kotselidis. Enabling RISC-V support on the MaxineVM. RISC-V Workshop, Barcelona 2018
Exploiting High-Performance Heterogeneous Hardware for Java Programs using Graal
James Clarkson, Juan Fumero, Michalis Papadimitriou, Foivos S. Zakkak, Maria Xekalaki, Christos Kotselidis, Mikel Lujan (The University of Manchester) Exploiting High-Performance Heterogeneous Hardware for Java Programs using Graal. ManLang 2018.
ScootR: Scaling R Dataframes on Dataflow Systems
Andreas Kunft, Lukas Stadler, Daniele Bonetta, Cosmin Basca, Jens Meiners, Sebastian Breß, Tilmann Rabl, Juan Fumero, Volker Markl. ScootR: Scaling R Dataframes on Dataflow Systems. SOCC 2018
Using Compiler Snippets to Exploit Parallelism on Heterogeneous Hardware: A Java Reduction Case Study
Juan Fumero, Christos Kotselidis. Using Compiler Snippets to Exploit Parallelism on Heterogeneous Hardware: A Java Reduction Case Study. VMIL 2018
Dynamic Application Reconfiguration on Heterogeneous Hardware
Juan Fumero, Michail Papadimitriou, Foivos S. Zakkak, Maria Xekalaki, James Clarkson, and Christos Kotselidis. 2019. Dynamic application reconfiguration on heterogeneous hardware. In Proceedings of the 15th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments (VEE 2019). ACM, New York, NY, USA, 165-178. DOI: https://doi.org/10.1145/3313808.3313819
Towards Prototyping and Acceleration of Java Programs onto Intel FPGAs
M. Papadimitriou, J. Fumero, A. Stratikopoulos and C. Kotselidis. Towards Prototyping and Acceleration of Java Programs onto Intel FPGAs. In 2019 IEEE 27th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM), San Diego, CA, USA, 2019 pp. 310-310. doi: 10.1109/FCCM.2019.00051 url: https://doi.ieeecomputersociety.org/10.1109/FCCM.2019.00051
Running Parallel Bytecode Interpreters on Heterogeneous Hardware
J. Fumero, A. Stratikopoulos and C. Kotselidis. Running Parallel Bytecode Interpreters on Heterogeneous Hardware. MoreVMs 2020.
Transparent Compiler and Runtime Specializations for Accelerating Managed Languages on FPGAs
Michail Papadimitriou, Juan Fumero, Athanasios Stratikopoulos, Foivos Zakkak and Christos Kotselidis. Transparent Compiler and Runtime Specializations for Accelerating Managed Languages on FPGAs. Programming 2021.
Automatically Exploiting the Memory Hierarchy of GPUs through Just-in-Time Compilation
Michail Papadimitriou, Juan Fumero, Athanasios Stratikopoulos and Christos Kotselidis. Automatically Exploiting the Memory Hierarchy of GPUs through Just-in-Time Compilation . VEE 2021.
Multiple-Tasks on Multiple-Devices (MTMD): Exploiting Concurrency in Heterogeneous Managed Runtimes
Michail Papadimitriou, Eleni Markou, Juan Fumero, Athanasios Stratikopoulos, Florin Blanaru and Christos Kotselidis. Multiple-Tasks on Multiple-Devices (MTMD): Exploiting Concurrency in Heterogeneous Managed Runtimes . VEE 2021.
Enabling Pipeline Parallelism in Heterogeneous Managed Runtime Environments via Batch Processing
Florin Blanaru, Athanasios Stratikopoulos, Juan Fumero, Christos Kotselidis. VEE 2022.
Enabling Transparent Acceleration of Big Data Frameworks Using Heterogeneous Hardware
Maria Xekalaki, Juan Fumero, Athanasios Stratikopoulos, Katerina Doka, Christos, Katsakioris, Constantinos Bitsakos, Nectarios Koziris, Christos Kotselidis. VLDB23
Cross-Language Interoperability of Heterogeneous Code
Athanasios Stratikopoulos, Florin Blanaru, Juan Fumero, Maria Xekalaki, Orion Papadakis, Christos Kotselidis. MoreVMs 2023
Experiences in Building a Composable and Functional API for Runtime SPIR-V Code Generation
Fumero, J., Rethy, G., Stratikopoulos, A., Foutris, N., & Kotselidis, C. (2023). Experiences in Building a Composable and Functional API for Runtime SPIR-V Code Generation. ArXiv. /abs/2305.09493
Unified Shared Memory: Friend or Foe? Understanding the Implications of Unified Memory on Managed Heaps
Juan Fumero, Florin Blanaru, Athanasios Stratikopoulos, Steve Dohrmann, Sandhya Viswanathan, Christos Kotselidis. Unified Shared Memory: Friend or Foe? Understanding the Implications of Unified Memory on Managed Heaps. MPLR 2023.
Beehive SPIR-V Toolkit: A Composable and Functional API for Runtime SPIR-V Code Generation
Fumero, J., Rethy, G., Stratikopoulos, A., Foutris, N., & Kotselidis, C. Beehive SPIR-V Toolkit: A Composable and Functional API for Runtime SPIR-V Code Generation. (VMIL 2023).
[BOOK] Programming Heterogeneous Hardware via Managed Runtime Systems
Juan Fumero, Athanasios Stratikopoulos, Christos Kotselidis. Programming Heterogeneous Hardware via Managed Runtime Systems. SpringerBriefs in Computer Science 2024.
Talks
Invited Talk - FastR-Flink: A compiler based approach for distributed computing in R
Talk at Invited at at TU Berlin, TU Berlin, Germany
Invited Talk at Edinburgh University - FastR-Flink
Talk at Invited talk Edinburgh R Users Group, The Unversity of Edinburgh, Edinburgh, UK
Invited Talk - OpenCL Just-In-Time Compilation for Dynamic Programming Languages
Talk at University of Glasgow (Glasgow Parallelism Group), Glasgow, UK
Towards Practical Heterogeneous Virtual Machines
Talk at MoreVMs 2018, Nice France, Nice, France
Invited talk at MSR - Tornado VM: A Virtual Machine for Exploiting High-Performance Heterogeneous Hardware of Java Programs
Talk at Invited talk at Microsoft Research, Cambridge, UK, Cambridge, UK
Invited talk at ARM - Exploiting Heterogeneous Hardware from Managed Runtime Languages
Talk at Invited talk at ARM, Cambridge, UK, Cambridge, UK
TornadoVM: A Virtual Machine for Exploiting High-Performance Heterogeneous Hardware of Java Programs
Talk at JVMLS 2019, Oracle, Santa Clara, CA, US
TornadoVM: A virtual machine for exploiting high performance heterogeneous hardware
Talk at Joker<?> Conference 2019, Saint Petersburg, Russia
TornadoVM: Java for GPUs and FPGAs @QCon-London
Talk at QCon-London 2020, London, UK
Running Parallel Bytecode Interpreters on Heterogeneous Hardware
Talk at MoreVMs 2020. Workshop collocated with Programming 2020. Porto, Portugal, Virtual
Rethinking Parallel Programming APIs: Towards Searching for the Gold API
Invited Talk at University of Kent - Seminars , Virtual
Transparent Heterogeneous Computing for Java via TornadoVM @ NYJavaSIG
Talk at NYJavaSig, Virtual, Virtual
Level Up Your Java Performance with TornadoVM
Talk at QCon Plus 2021, Virtual
TornadoVM: Transparent Hardware Acceleration for Java…and Beyond!
Talk at Devoxx Ukraine 2021, Virtual
TornadoVM: Transparent Hardware Acceleration for Java…and Beyond!
Talk at JavaZone, Oslo, Norway 2021, Virtual
Boosting Performance of Java programs by Running on GPUs and FPGA via TornadoVM
Talk at Jax Mainz 2022, Mainz, Germany
TornadoVM: Multi-Backend Hardware Acceleration Framework for Java
Talk at oneAPI Language SIG - March 2023, Online
From CPU to GPU and FPGAs: Supercharging Java Applications with TornadoVM
Talk at JVMLS 2023 - Oracle Santa Clara, CA, Santa Clara, CA, US
Designing Parallel Programming APIs for Heterogeneous Hardware on top of Managed Runtime Systems
Talk at University of La Laguna, Tenerife, Spain, ULL, Tenerife, Spain
Memberships
I am currently member of:
- ACM Member
- HiPEAC Network link
- Heterogeneity Alliance, I am coordinating the working group of Heterogeneous Hardware, link
Teaching
Grants
- Intel Grant collaboration to work on Intel oneAPI (Nov 2020 - Present)
- PhD fully funded by Oracle Labs (2014-2017)
Leadership
- Lead architect and lead developer of the TornadoVM project.
- Scrum master of a group of 5 software engineers at SAII (The University of La Laguna, Spain).
Academic Service
- Publicity Chair:
- SPLASH 2021
- MPLR 2020
- PC co-chair:
- VMIL’20
- DLS’19,
- PC:
- Journal Reviewer:
- Cogent Engineering 2022
- Journal of Supercomputing 2021
- Artifact Evaluation Committee (AEC):
- ECOOP 2019.
- Subreviewer:
- MULTIPROG 2018
- PDP 2017
- PDP 2016
- HLPP 2015