Research computing courses

We offer a number of on-site training courses on a wide range of topics related to scientific computing, high-performance computing, data analysis, and visualization. These workshops can take any form from one hour to multiple days and are free to researchers and groups from WestGrid’s partner institutions.

If you are looking for this or any customized training or would like to host a workshop, please let us know. We design the workshop, coordinate the preparations, advertise the event, and provide the instruction. We expect the host to provide an auditorium or classroom space free of charge, assist with advertising the session locally, and allow any member of the research community to attend the training (i.e. this may include researchers from outside your institution). If you prefer to run a small, invite-only session for a select audience, please contact us to discuss.

Courses are scheduled at various times of the year and at various institutions, based on demand. Each year around May-July we host two four-day-long summer schools, traditionally one in Southwest BC (Vancouver or Victoria) and one east of the Rockies (Alberta, Saskatchewan, or Manitoba). Our summer schools typically have 12-15 half- or full-day courses over several parallel streams.

Full-day courses

Click on each course for details.

  Moving your research from Windows-based desktops to Linux and command line in remote servers

This workshop is a hands-on introduction to Linux command line and the interaction with a remote server. We review basic Linux commands, file management (edit, copy, remove and remote-transfer files), directories and the file system, remote access, basic version control (Git, GitHub), Bash scripts and basic Bash programming.

  Introduction to HPC: using clusters to speed up your research

We start with an overview of the hardware of common HPC clusters and quick description of the resources available on Compute Canada's national systems (Cedar / Graham / Niagara / Béluga). We then continue learning the basic tools and techniques to work on a cluster: software environment and modules, overview of installed programming languages and compilers, working with makefiles and installing new software locally. Finally, we take a look at the Slurm job scheduler: why use it, fairshare and priority, submitting serial jobs and job arrays, submitting OpenMP / MPI / hybrid / GPU jobs, working inside interactive jobs, and tracking your job's memory usage. We also take a quick look at working with common packages such as R, Python and Matlab on the clusters, as well as best practices in cluster workflows.

  Introduction to scientific visualization with ParaView: plotting, interactive 3D, scripting, animation, large datasets

We start with simple 1D/2D/3D plotting using plot.ly. The rest of the day we study 3D scientific visualization with ParaView, an open source, multi-platform data analysis and visualization tool designed to run on a variety of hardware from an individual laptop to large supercomputers. With ParaView users can interactively visualize 2D and 3D data sets defined on structured, adaptive and unstructured meshes or particles, animate these datasets in time, and manipulate them with a variety of filters. ParaView supports both interactive (GUI) and scripted (including offscreen) visualization, and is an easy and fun tool to learn.

  Introduction to scientific visualization with VisIt

This a VisIt-flavoured version of the previous workshop.

  Large-scale 3D remote visualization

This an advanced version of the ParaView-based visualization course focusing on parallel rendering, interactive client-server remote visualization, batch workflows using both cluster's CPUs and GPUs.

  Foundations of parallel programming and the Chapel programming language

This course is a general introduction to the main concepts of parallel programming and the Chapel programming language. Chapel is a relatively new language for both shared and distributed-memory programming, with easy-to-use, high-level abstractions for both task and data parallelism that make it ideal for learning parallel programming for a novice HPC user. Chapel is incredibly intuitive, striving to merge the ease-of-use of Python and the performance of traditional compiled languages such as C and Fortran. Parallel constructs that typically take tens of lines of MPI code can be expressed in only a few lines of Chapel code. Chapel is open source and can run on any Unix-like operating system, with hardware support from laptops to large HPC systems.

  Python-based Software Carpentry

This is a two-day workshop that includes 1/2-day of Bash, full day of Python, and 1/2-day Git introduction.

Short courses

  • Introduction to cloud computing (setting a VM in Compute Canada’s cloud)
  • Debugging
  • Memory debugging
  • 3D visualization for humanities and social sciences
  • Research data management
  • Bioinformatics workflows in HPC
  • Introduction to GPU programming with CUDA
  • Introduction to GPU programming with OpenACC
  • Parallel programing with MPI
  • Parallel programing with OpenMP
  • Volumetric visualization and data analysis with yt
  • Plotting with plot.ly
  • Makefiles
  • Code optimization
  • Scientific Python
  • Introduction to shell scripting

Webinars

Join our training webinars every second Wednesday at 10am Pacific / 11am Mountain. For more details, look for online events in our calendar. We also encourage you to sign up to our mailing list for notices and reminders of sessions.

Summer school materials

2019 WestGrid summer schools

You can find all materials from this year’s WestGrid summer schools at the school websites: