The Centre for Advanced Computing at Queen's University presents The Ontario East High Performance Computing (HPC) Summer School 2021 featuring workshops guided by experts from Queen's University, the University of Ottawa, Wilfred Laurier University and McMaster University. The summer school will be delivered virtually and commences August 16, 2021 for 2 weeks and closes August 26, 2021. The event is comprised of 8 high-performance computing workshops designed to provide an immersive introduction to world of advanced computing.

Participants can join individual workshops or earn an eCertificate for the successful completion of thirty (30+) hours of instruction. Attendance will be tracked by instructors and their support teams to ensure criteria are met. eCertificates will be delivered virtually in September 2021.  

Schedule  

Please pay special attention to the pre-requisite requirements for each workshop (listed in the Workshop Registration section). This information is vital in determining if this workshop is a good fit for you. 

 Date

Hours

Times

Workshop

 Mon, August 16, 2021

 6.0

 9:00AM-4:00PM (1hr lunch)

 Intro to Python Programming

 Tue, August 17, 2021

 3.0

 9:00AM-12:00PM

 Intro to HPC

 Tue, August 17, 2021

 3.0

 1:00PM-4:00PM

 Data Preparation

 Wed, August 18, 2021

 3.0

 9:00AM-12:00PM

 Git

 Wed, August 18, 2021

 3.0

 1:00PM-4:00PM

 Data Security

 Thu, August 19, 2021

 6.0

 9:00AM-4:00PM (1hr lunch)

 Machine Learning

 Mon, August 23, 2021

 6.0

 9:00AM-4:00PM (1hr lunch)

 Visualization

 Tues, August 24-26, 2021

 18.0

 Session 1: 10:00AM-1:00PM

 Session 2: 2:00PM - 5:00PM 

 Programming GPUs with CUDA


The CAC Code of Conduct (Summary View)

In alignment with other pre-existing resources across the Compute Canada Federation, below is a summary of the Code of Conduct (CoC) adopted by the Centre for Advanced Computing (CAC). Continue reading for a more detailed description of the CoC.

The CAC and its’ partners are dedicated to providing a welcoming and supportive environment for all people, regardless of background or identity, to learn, share and collaborate. Diverse perspectives and a wealth of experience strengthens our community in a myriad of ways. By participating in this community, participants accept to abide by CoC and accept the procedures by which any CoC incidents are resolved. Any form of behaviour to exclude, intimidate, or cause discomfort is a violation of the CoC. In order to foster a positive and professional learning environment we encourage the following kinds of behaviours in all platforms and events:
   
     • Use welcoming and inclusive language
     • Be respectful of different viewpoints and experiences
     • Gracefully accept constructive criticism
     • Focus on what is best for the community
     • Show courtesy and respect towards other community members

If you believe someone is violating the CoC, we ask that you report it by completing this form so we may take appropriate action to address the situation

Click here for the full Code of Conduct
This workshop will give you a hands-on introduction to the popular programming language Python. The workshop focuses on the basics of programming and how to apply them in the context of Python. No programming knowledge is required.

This workshop is intended to give a good introduction and overview of the high-performance computing (HPC) tools available at the CAC and how to use them effectively. By the end of this workshop, participants will know how to use the UNIX command line to operate a computer, connect to a cluster, write simple shell scripts, submit and manage jobs on a cluster using a scheduler, transfer files, and use software through environment modules.

This is an introductory workshop to Data Analytics. It starts by introducing the Data Analytics pipeline and its processes. Then, it discusses the different statistical and visualization approaches for conducting Exploratory and Descriptive Analytics on data to answer the question of “What happened in the past?”. The workshop then dives into the art of Data Preparation covering data cleaning, missing values handling, outlier detection and handling, feature transformation and feature engineering.

Version control is an important tool for tracking and safe-keeping articles and source code. Nothing is ever lost, and it is always possible to go back in time to an earlier version. It is an ideal tool for collaboration since multiple persons can work on the same project and it keeps a record of which change has been done by which person.

In this course, we will look at the most popular version control software, Git, which is the basis for well-known sites such as GitHub and Gitlab.

Keeping your data secure is an important aspect of research. Some researchers will handle confidential information and there has been an increase in hacking attempts by foreign entities to extract valuable intellectual property. In this course, we will look at the various levels of encryption as well as password management and general data hygiene. We will also discuss common techniques used to infiltrate your systems.

This workshop introduces Predictive Analytics to answer the question of “What will happen?”. It discusses when and how to use the different predictive Machine Learning algorithms. The workshop covers algorithms in Supervised Learning (Classification and Regression) such as KNN, Decision Trees, Random Forest, Naïve Bayes, Support Vector Machines, Neural Networks, Logistic and Linear Regression. The workshop also introduces a set of statistical evaluation methods to compare the performance of different algorithms.

It is hard to extract conclusions from raw data, which is why we always turn the data into something we can interpret visually. This can range from 2D graphs to complex 3D animations. This introduction will cover various 2D visualization tools such as GnuPlot and Plot.ly, but also 3D tools such as ParaView for visualizing complex data sets.

This is an introductory course covering programming and computing on GPUs - graphics processing units - which are an increasingly common presence in massively parallel computing architectures. The basics of GPU programming will be covered, and students will work through a number of hands on examples. The structuring of data and computations that makes full use of the GPU will be discussed in detail. The course covers some new features available on GPUs installed on Graham and Cedar. Students should be able to leave the course with the knowledge necessary to begin developing their own GPU applications.

Pre-requisites: 
1. Participants must have a Compute Canada account. 
2. C/C++ scientific programming 
3. Experience editing and compiling code in a Linux environment 
4. Some experience with CUDA and/or OpenMP a plusEach day consists of two sessions 
Morning session (10:00am - 1:00pm).
Afternoon session (2:00pm - 5:00pm). 
All times are EDT (Eastern time). 
Lunch break is between 1:00pm - 2:00pm.
We will also include some shorter, intermittent, breaks.

Instructors:
Dr. Sergey Mashchenko, McMaster University
Dr. Pawel Pomorski, University of Waterloo

Instruction time
18 hours (over 3 days)