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 Event: http://castorc.cyi.ac.cy/events/hpc-beginner-training-event-02-2021/
First HPC Intermediate Training Event: https://castorc.cyi.ac.cy/events/hpc-intermediate-training-event-04-2021
HPC Advanced Training Event: https://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:
https://github.com/CaSToRC-CyI/NCC-Intermediate-Training-2022
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. Presentation. Watch on YouTube
- 11:30-12:00: Break
- 12:00-13:00: GPU programming using CUDA II. Presentation. Watch on YouTube
- 13:00-14:00: Lunch Break
- 14:00-15:30: GPU programming using CUDA III. Presentation. Watch on YouTube
- 15:30-16:00: Break
- 16:00-17:00: GPU programming using CUDA IV. Presentation. Watch on YouTube
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. Watch on YouTube
- 11:30-12:00: Break
- 12:00-13:00: GPU programming in Python. Watch on YouTube
- 13:00-14:00: Lunch Break
- 14:00-15:30: Introduction to MIT’s Julia Language. Watch on YouTube
- 15:30-16:00: Break
- 16:00-17:00: Introduction to MIT’s Julia Language. Watch on YouTube
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. Watch on YouTube
- 11:30-12:00: Break
- 12:00-13:00: Python in Data Science - Part 2. Watch on YouTube
- 13:00-14:00: Lunch Break
- 14:00-15:30: TensorFlow/Keras for Text Processing. 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:
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.