Date

Tuesday 21 - Thursday 23 June 2022

Location

The Cyprus Institute

Register for Training Event Here

Please visit our events platform for more details:

https://www.meetup.com/high-performance-computing-cyprus/events/285774446/

Description

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.

Pre-requisites

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 Eventhttp://castorc.cyi.ac.cy/events/hpc-beginner-training-event-02-2021/

First HPC Intermediate Training Eventhttps://castorc.cyi.ac.cy/events/hpc-intermediate-training-event-04-2021

HPC Advanced Training Eventhttps://castorc.cyi.ac.cy/events/hpc-advanced-training-event-09-2021

Requirements

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:
THIS WILL APPEAR SOON

Agenda

Day 1 - Tuesday 21st June 2022

GPU programming using CUDA

  • 09:30 - 10:00: Welcome and Participant Introductions
  • 10:00-11:30: GPU programming using CUDA I
  • 11:30-12:00: Break
  • 12:00-13:00: GPU programming using CUDA I
  • 13:00-14:00: Lunch Break
  • 14:00-15:30: GPU programming using CUDA II
  • 15:30-16:00: Break
  • 16:00-17:00: GPU programming using CUDA II

Day 2 - Wednesday 22nd June 2022

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

  • 10:00-11:30: GPU programming in Python
  • 11:30-12:00: Break
  • 12:00-13:00: GPU programming in Python
  • 13:00-14:00: Lunch Break
  • 14:00-15:30: Introduction to MIT’s Julia Language
  • 15:30-16:00: Break
  • 16:00-17:00: 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
  • 11:30-12:00: Break
  • 12:00-13:00: Python in Data Science
  • 13:00-14:00: Lunch Break
  • 14:00-15:30: TensorFlow/Keras for Text Processing
  • 15:30-16:00: Break
  • 16:00-17:00: Open Session - Questions and Discussion

GPU programming using CUDA

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

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

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

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

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:
https://www.youtube.com/watch?v=jQgYuThPZVM

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

EuroCCLogo