
Description: Be aware. Stay secure. Join us to learn more about the tools you can use to prevent the theft of your data and possibly of your identity. Other topics of discussion will include common hacking attempts, how to recognize them, and how to avoid having your data compromised, stolen, or destroyed. We will also talk about data encryption and provide tips for when travelling with electronic devices.
Teacher: Jarno van der Kolk (University of Ottawa)
Level: Introductory
Format: Lecture
Certificate: Attendance
Prerequisites: None

Description: 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. Students should be able to leave the course with the knowledge necessary to begin developing their own GPU applications.
Teacher: Sergey Mashchenko (SHARCNET, McMaster University) and Pawel Pomorski (SHARCNET, University of Waterloo)
Level: Introductory
Format: Lecture + Hands-on
Certificates: Attendance
Prerequisite: Basic C and/or C++ programming experience.

Description: Learn how to improve the performance and use parallel programming in Python. We will cover profiling, subprocess, numexpr, multiprocessing, MPI, and other performance enhancing techniques.
Teacher: Ramses van Zon (SciNet, University of Toronto)
Level: Intermediate
Format: Lecture + Hands-on
Certificates: Attendance and Completion
Prerequisites:
- Basic Linux command line skills.
- Programming experience in Python.

Description:
Teacher: Alicia Urquidi Diaz (OCUL, Scholars Portal, University of Toronto)
Level: Introductory
Format: Workshop
Certificate: Attendance
Prerequisites: None

Description: Julia is becoming increasingly popular for scientific computing. One may use it for prototyping as Matlab, R and Python for productivity, while gaining the same performance as compiled languages such as C/C++ and Fortran. The language is designed for both prototyping and performance, as well as simplicity. This is an introductory course on julia. Students will be able to get started quickly with the basics, in comparison with other similar languages such as Matlab, R, Python and Fortran and move on to learn how to write code that can run in parallel on multi-core and cluster systems through examples.
Teacher: Baolai Ge (SHARCNET, Western University)
Level: Introductory
Format: Lecture + Hands-on
Certificate: Attendance and Completion
Prerequisites: None

Description: This course will focus on the following in both sequential and parallel contexts:
- using <mdspan> for accessing multi-dimensional arrays and multi-dimensional array slices,
- using <linalg> for linear algebra,
- using P2300 (senders and receivers; asynchronous) support,
- using NVIDIA C++ compiler's stdpar support (CPU and/or GPU) for the above, and,
- using C++'s extended floating-point types.
Teacher: Paul Preney (SHARCNET, University of Windsor)
Level: Intermediate
Format: Lecture + Hands-on
Certificates: Attendance and Completion
Prerequisite: Previous experience developing C++ programs.

Description: An introduction to Rust, highlighting some of the major differences to traditional languages like C/C++. We will also have a brief review of available science modules.
Teacher: Joey Bernard (ACENET, University of New Brunswick)
Level: Introductory
Format: Lecture + Hands-on
Certificate: Attendance
Prerequisites:
- Knowledge of how compiled code works.
- Some knowledge of C-like programming languages.

Description: This is an introduction to the intermediate level OpenMP hand-on course. OpenMP is a standard parallel programming API that supports multi-platform shared-memory multiprocessing programming in C, C++, and Fortran.
This one-day course will cover the principles of OpenMP compiler directives, library routines, and environment variables with step-by-step hand-on examples. Case studies include various approaches for loop parallelism. We will also talk about the Task constructs for irregular programs, and the Target constructs for accelerators such as GPU. Participants will have hand-on programming experience with OpenMP as well as how to compile and run Multi-thread OpenMP code on different alliance clusters.
Teacher: Jemmy Hu (SHARCNET, University of Waterloo)
Level: Introductory
Format: Lecture + Hands-on
Prerequisites: Basic knowledge of C, C++, or Fortran.

Description: We will cover the basics of parallel programming, in the context of MPI. There will be a great deal of hands-on experience, with lots of examples.
Teachers: Joey Bernard (ACENET, University of New Brunswick) and Gurpreet Singh (ACENET, St. Francis Xavier University)
Level: Introductory / Intermediate
Format: Lecture + Hands-on
Certificate: Attendance
Prerequisites:
- Familiarity with the C (or C-like) programming languages.
- Some knowledge involving issues concerning parallel programming languages.

Description: This panel will convene three researchers and three Research Data Management Specialists to explore the process of writing data management plans (DMPs) in an academic setting. Panelists will be invited to share their experiences guided by a series of questions highlighting the evolving roles of researchers and data specialists in this planning process. The audience will have the opportunity to ask questions of panelists to better understand how they can plan to make their research data FAIR (findable, accessible, interoperable, reusable) which, in turn, ensures data are safeguarded, properly organized, and that science is reproducible.
Teachers: Ann Allan (Compute Ontario), Anneliese Eber (University of Waterloo), Danica Evering (McMaster University), Fiona Brinkman (Simon Fraser University), UW Fire Research Group (University of Waterloo), Jeff Moon (Compute Ontario), Kharah Ross (Athabasca University), and Robyn Stobbs (Athabasca University)
Level: Introductory
Format: Panel
Certificate: Attendance
Prerequisites: None

Description: This online workshop will support researchers with uploading data files of all types and examples of documentation and metadata for submission to an institutional collection (hosted in Borealis). Participants will learn more about direct integrations for dropbox, handling .zips, geospatial file support, creating documentation and metadata, linking to code and publications, integrated previewers and analysis tools for reuse and sharing.
Teacher: Amber Leahey (OCUL, Scholars Portal, University of Toronto), Billie Hu (OCUL, Scholars Portal, University of Toronto), Alyssa Conlon (OCUL, Scholars Portal, Queen's University)
Level: Introductory
Format: Workshop
Certificate: Attendance
Prerequisites: None

Description: This online workshop will demonstrate to researchers how-to search, filter by variables, topics, and themes, as well as exploring and analyzing data using these repository platforms. Highlights of collections including historical census data and geographic boundary data as well as open historical topographic maps and data for reuse. Participants will be able to search for data and explore datasets to learn more about data for reuse. A significant focus will be on Canadian open access and historical government data, an open Q&A portion will be facilitated by staff and data experts for further consultation.
Teachers: Amber Leahey (OCUL, Scholars Portal, University of Toronto) and Alicia Urquidi Diaz (OCUL, Scholars Portal, University of Toronto), Alexandra Cooper (Queen's University)
Level: Introductory
Format: Workshop
Certificate: Attendance
Prerequisites: None