This page contains a catalogue of our previous training materials. Feel free to browse, interact, download, and share as you see fit. See our Calendar for upcoming virtual or in-person workshop events.
HPC Overview and AccessAn introduction to what HPC is, basics of the U of A’s HPC, how to create an account and login. Motivates the usage of HPC including examples from many research areas; outlines several common misconceptions about HPC; introduces the U of A’s clusters; describes the basics of the UA HPC system architecture, including node types and proper usage. This workshop is aimed at first-time HPC users, or users new to the U of A’s HPC system. No programming experience is assumed or required. Basic computer literacy is recommended.
Ethan Jahn
Sep 13
Storage and Software OverviewAn introduction to the HPC systems related to data storage and software. Outlines the details of the HPC high performance storage system, the rental storage system, Research Desktop Attached Storage (R-DAS), and AWS Tier 2 storage. Covers the basics of Linux file permissions in the context of a shared cluster, including our conventions and best practices. Outlines methods for transferring files to/from the HPC storage system. Describes the module system used to provide software to users, and provides guidelines for personal software installations. Familiarity with basic programming recommended but not required. Participants should be familiar with topics covered in Workshop 1.
Ethan Jahn
Sep 20
Scheduling and Running JobsThe ins-and-outs of running jobs on the HPC system. Provides details related to partitions and CPU-time allocations in relation to the scheduling system. Describes HPC hardware information relevant to submitting resource requests. Covers details for each type of job, including Open OnDemand graphical jobs, interactive terminal sessions, batch jobs, and array jobs. Provides best practices and clarification related to the queueing system and Slurm terminology. A basic batch job example is included. Basic programming experience including familiarity with bash recommended but not required. Participants should be familiar with topics covered in Workshops 1 and 2.
Ethan Jahn
Sep 27
Managing and Optimizing JobsMotivates, defines, and describes tools/techniques for managing jobs, including Open OnDemand and command-line tools (both provided by Slurm – e.g. squeue – and other tools such as seff and job-history). Provides detailed examples and use cases for these tools. Additionally provides clarity and motivation for job optimization, including decreasing time to result and improving overall HPC throughput. Outlines best practices and principles of constructing optimal resource requests. Basic programming experience and familiarity with previous workshop topics is recommended.
Ethan Jahn
Oct 4
Parallel Computing TheoryAn introduction to the principles and concepts of computing. Discusses basics of computer architecture and serial computing to provide context for developments in parallel computing. Covers paradigms and models of parallel computing. Other topics include scaling laws, load balancing, task decomposition, asynchronous computation, overhead, meta-parallelism, etc. Basics of writing parallel algorithms will be discussed. Basic programming experience and familiarity with general computing concepts are recommended.
Ethan Jahn
Oct 11
Parallel Computing in PracticeImplementing parallelization often looks very different than describing it in abstract terms. Building on the previous session’s material, this workshop will aim to provide some guidelines and examples of parallelization in practice. Software discussed includes OpenMPI, Python (multiprocessing & mpi4py), R (parallel), Matlab, and potentially others. Some basic programming experience and familiarity with all previous workshop topics are highly recommended.
Ethan Jahn
Oct 18
Software and EnvironmentsDebugging problems on the HPC is easier if you have reproducible environments. This workshop will provide some general guidelines and examples that you can follow to create and maintain such environments. It will focus on Python and R projects, and potentially an example for compiled languages.
Soham Pal
Oct 25
Machine Learning on HPCThis workshop will introduce you to using HPC resources for machine learning. It will focus on PyTorch examples, with general guidelines that maybe applicable to other frameworks. This is not an introduction to machine learning in general, and assumes that you have some basic knowledge of machine learning concepts.
Soham Pal
Nov 1
Intro to ContainersThis workshop introduces the concept of containers, and why they are useful in research computing. It focuses on the Apptainer container engine, and provides examples to show how you can build and run containers with Apptainer.
Soham Pal
Nov 8
Error Handling and DebuggingProvides an overview of concepts and techniques related to detecting and fixing errors, both in general and in the context of HPC. Includes discussion of best practices when coding and using HPC to avoid errors, a general approach to fixing errors, common types of errors, and how to use various tools to assist in the debugging process. We recommend that participants have some background experience with coding and using the HPC, though the workshop will be aimed at novice and intermediate HPC users.
Ethan Jahn
Nov 13
Intro to StatisticsThis workshop combines three purposes, the first is an introduction to Statistics and its relevance to Machine Learning, the second is an introduction to the Matlab Machine Learning Toolbox, and the third is the use of HPC to run the examples from the Toolbox. This last one demonstrates how the HPC OnDemand functionality has very similar ease of use to a workstation.
Chris Reidy
[]
[]
Nov 22
Intro to VisualizationThe Intro to Data Visualization presentation aims to give attendees a select tour of the visualization field, bridging theory and practice. We will explore theory used to inform the selection of chart types, and contents that support a researchers intended message. We will then practice the standard visualization development cycle of drafting, critiquing, and refactoring for a number of examples. Attendees must bring with them material to draw with, and will leave with a general thought process that may apply to any visualization task. Optional coding exercises for applying these concepts are provided.
If you are new to our HPC system, or new to HPC in general, then this training will help guide you through everything from account creation, to transferring data, to running basic jobs.
Containers are self-contained software packages that include all the necessary dependencies to run a particular program. They can be useful for porting your analysis to a shared environment like the HPC. This workshop covers the basics of containers and how to use them on HPC.
This workshop provides an introduction to some concepts of visualization. It is done in the context of HPC so you will be able to follow along with the practical examples section using your HPC Account.
Learn about how to request and schedule different types of jobs on the HPC, how to manage existing and previous jobs, and how to optimize your resource requests.