Tuesday 21 - Thursday 23 June 2022


The Cyprus Institute

Register for Training Event Here

Please visit our events platform for more details:


This event will build on the knowledge and competences of the HPC Beginner Training Event and first HPC Intermediate Training Event and the focus of the event will be "GPU and Machine Learning".

It will teach more advanced aspects of HPC and will include GPU programming using CUDA, Python, Julia, Python and Data Science and TensorFlow/Keras for text processing.

This event is part of the EuroCC project and the National Competence Center activities.


Attendees should be familiar with at least one programming language, such as C and Python. Hands on exercises are part of the training and will be provided in C and Python

Attendees should ideally have attended previous training events. If not, interested attendees are advised to follow these via the following links:

Beginner Training Event

First HPC Intermediate Training Event

HPC Advanced Training Event


All attendees will need their own desktop or laptop with the following software installed:

  • Web browser - e.g. Firefox or Chrome
  • PDF viewer - e.g. Firefox, Adobe Acrobat
  • ssh client - Terminal for Mac or Linux is fine. For Windows Putty should be fine

Git Repository

The Git Repository with all material of the training event - including presentations and code, can be found at the following link:


Day 1 - Tuesday 21st June 2022

GPU programming using CUDA

Day 2 - Wednesday 22nd June 2022

GPU programming in Python and Introduction to MIT’s Julia Language

Day 3 - Thursday 23rd June 2022

Python in Data Science and TensorFlow/Keras for Text Processing

  • 10:00-11:30: Python in Data Science - Part 1. YouTubeLogo Watch on YouTube
  • 11:30-12:00: Break
  • 12:00-13:00: Python in Data Science - Part 2. YouTubeLogo Watch on YouTube
  • 13:00-14:00: Lunch Break
  • 14:00-15:30: TensorFlow/Keras for Text Processing. YouTubeLogo Watch on YouTube
  • 15:30-16:00: Break
  • 16:00-17:00: Open Session - Questions and Discussion

GPU programming using CUDA

Speaker: Giannis Koutsou

Prerequisites: Trainees should be comfortable in programming using C and should have covered the introductory CUDA training course covered here.

Description: The session will begin with a review of the GPU programming model and CUDA in particular, followed by a presentation of practical aspects to consider for achieving performance. The hands-on component will include practical examples to demonstrate how considerations such as data-layout, use of shared memory, and GPU thread distribution affect GPU kernel performance.

GPU programming in Python

Speaker: Simone Bacchio

Description: Following the introduction to CUDA on the first day, we will explore how similar results can be achieved directly via Python. First, we will introduce the equivalent of Numpy, i.e. Cupy and test its “out-of-the-box” performance. Then we will look into performance improvements compiling dedicated kernels for various examples first using tools natively available in Cupy and then Numba for CUDA. All sessions will be presented via examples and hands-on sessions.

Introduction to MIT’s Julia Language

Speaker: Nikolas Bakas

Description: In this short session we will present the basic syntax structure of Julia Language. Julia is appropriate for Scientific Computing and Machine Learning, with a High-Performance compiler and simple syntax. Accordingly, we will demonstrate examples from Linear Algebra and BLAS, Statistics, and Machine Learning. Furthermore, the CUDA interface will be presented, along with commands for Multithreading and Vectorised computations. The examples will run in a hands-on session using Google Colab, where the participants may try the discussed concepts interactively.

Python in Data Science

Speaker: Nikolas Theodosiou

Prerequisites: Trainees should be comfortable with writing simple Python code.

Description: In this session we will present a simple Data Science project lifecycle, using the Python programming language. That is, Python will be used in order to load, clean and explore a real-world dataset. A predictive model will be then implemented and evaluated. The examples will be presented in an interactive Google Colab Notebook, and trainees will have the opportunity to become familiar with some well-established Data Science tools and libraries, such as Numpy, Matplotlib, Pandas and Scikit-learn.

TensorFlow/Keras for Text Processing

Speaker: Christos Christodoulou

Prerequisites: Attendees should be comfortable with the Python programming language. Keras/Tensorflow is not required but it makes the course easier to follow. Please view the following YouTube link for a similar course for computer vision tasks:

Description: In this short session we will use Keras/Tensorflow to solve a Natural Language Processing task, namely sentiment analysis.