Sitemap

A list of all the posts and pages found on the site. For you robots out there is an XML version available for digesting as well.

Pages

Posts

Multi-device & Multi-backend TornadoVM

20 minute read

Published:

This post shows, via examples, how developers can benefit from these features, and reason about performance using the TornadoVM profiler to help us tune our applications.

Running TornadoVM within IntelliJ

4 minute read

Published:

Running Java applications from existing IDEs can be a cumbersome process, especially if we need to specify shared libraries. In this post, I will explain how to get access to NVIDIA and Intel-integrated GPUs from IntelliJ using TornadoVM.

Running TornadoVM on NVIDIA Jetson Nano

7 minute read

Published:

Did you know that TornadoVM can also run on ARM-based systems with NVIDIA GPUs? In this post, we will show how TornadoVM can be used on an NVIDIA Jetson Nano, a small, powerful computer designed for embedded artificial intelligence (AI) and machine learning (ML) applications.

Enabling Transparent Acceleration of Big Data Frameworks Using Heterogeneous Hardware

21 minute read

Published:

Exploiting heterogeneous hardware for Big Data workloads is usually done by introducing new APIs, resulting in more complex programs to develop, understand, and maintain. But, what if we do not change/extend the original programming model? Is it possible? This post discusses a new approach to do so.

Exploring Level Zero resources: repositories and purpose

2 minute read

Published:

Sometimes, it is not clear which Level Zero repository is the right one for our needs. In this post, we will explain each of the Level Zero public resources and what they are intended to be.

Installing CUDA, OpenCL and Level Zero in OpenSUSE Leap 15

6 minute read

Published:

In this post, we show how to install the NVIDIA drivers to get access to CUDA and OpenCL parallel programming frameworks and utilities for NVIDIA GPUs. We also show how to install the Intel compute-runtime drivers for accessing, via OpenCL and Level Zero, Intel Integrated Graphics.

podcasts

portfolio

projects

publications

Exploiting High-Performance Heterogeneous Hardware for Java Programs using Graal

Published in ManLang 2018, Linz, Austria, 2018

Recommended citation: 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. https://www.researchgate.net/publication/327097904_Exploiting_High-Performance_Heterogeneous_Hardware_for_Java_Programs_using_Graal

Dynamic Application Reconfiguration on Heterogeneous Hardware

Published in VEE 2019, Providence, Rhode Island, United States, 2019

Recommended citation: 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 https://github.com/jjfumero/jjfumero.github.io/blob/master/files/VEE2019_Fumero_Preprint.pdf

Towards Prototyping and Acceleration of Java Programs onto Intel FPGAs

Published in 2019 IEEE 27th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM), 2019

Recommended citation: 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

service

supervision

talks

Invited Talk - FastR-Flink: A compiler based approach for distributed computing in R

Published:

During the past few years R has become an important language for data analysis, data representation and visualization. R is a very expressive language which combines functional and dynamic aspects, with laziness and object oriented programming. However, the default Rimplementation is neither fast nor distributed, both features crucial for “big data” processing.

Invited Talk at Edinburgh University - FastR-Flink

Published:

During the past few years R has become an important language for data analysis, data representation and visualization. R is a very expressive language which combines functional and dynamic aspects, with laziness and object oriented programming. However, the default Rimplementation is neither fast nor distributed, both features crucial for “big data” processing.

Invited Talk - OpenCL Just-In-Time Compilation for Dynamic Programming Languages

Published:

In this talk we present a technique to automatically offload parts of the input program written in a dynamic language into OpenCL without any changes in the original source code. Our preliminary results show we achieve speedups of up to 150x when using the GPU (3) OpenCL JIT Compilation for Dynamic Programming Languages.

Towards Practical Heterogeneous Virtual Machines

Published:

Heterogeneous computing emerged as a means to achieve higher performance and energy efficiency. However, this trend has been accompanied by changes in software development norms that do not necessarily favour programmers. A prime example is the two most popular heterogeneous programming languages, CUDA and OpenCL, which expose several low-level features to the API making them difficult to use by non-expert users.

Invited talk at MSR - Tornado VM: A Virtual Machine for Exploiting High-Performance Heterogeneous Hardware of Java Programs

Published:

The proliferation of heterogeneous hardware in recent years means that every system we program is likely to include a mix of computing elements; each of these with different characteristics. This trend has been accompanied by changes in software development norms that do not necessarily favor programmers. A prime example is the two most popular heterogeneous programming languages, CUDA and OpenCL, which expose several low-level features to the API making them difficult to use by non-expert users.

Invited talk at ARM - Exploiting Heterogeneous Hardware from Managed Runtime Languages

Published:

The proliferation of heterogeneous hardware in recent years means that every system we program is likely to include a mix of computing elements; each of these with different characteristics. This trend has been accompanied by changes in software development norms that do not necessarily favor programmers. A prime example is the two most popular heterogeneous programming languages, CUDA and OpenCL, which expose several low-level features to the API making them difficult to use by non-expert users.

teaching

Object Oriented Programming (Java course)

Tutoring, The University of Edinburgh, 2015

I was tutoring the Introduction to Object Obriented Programming through Java to groups of 8-10 of undergraduate students during Spring 2015 and 2016. We covered an introduction to topics such as Object Oriented Programming, inheritance, Java collections, Threads, concurrency and parallelism. We also covered some material about how the Java Virtual Machine works.

youtube