Events

Refresh calendars Add to google calendar
June,2024
14 Jun 1:30 pm 4:30 pm

CO Summer School S1: Multicore parallel programming (OpenMP) (afternoon session)

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. Level: Introductory Length: Two 3-Hour Sessions Format: Lecture + Hands-on (Hands-on portion is CPU only.) Prerequisites: Basivanced topics such as GPU or dynamic load-balancing). At the end of the course, the learner will be able to: Develop a systematic approach to estimate the HPC cost of a CFD problem. Explain the impact of modelling assumptions on HPC cost. Optimize the parameters and simulations for effective HPC usage. The course will use an entirely open source suite of CFD toolsets to mesh (Gmsh), simulate (OpenFoam/SU2), and visualize (Visit/Paraview). It should be noted that this is not a CFD course; therefore, undergraduate-level knowledge of CFD and numerical methods is expected, as well as a basic understanding of the Compute Ontario HPC system. The focus is on the effective use of CFD tools in modern HPC systems. Level: Intermediate, Length: Three 1-Hour Sessions (3 Days), Format: Lecture + Hands-on, Prerequisites: Undergraduate-level knowledge of fluid dynamics (ideally with some knowledge of turbulence), CFD, and numerical methods. (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map
14 Jun 1:30 pm 4:30 pm

CO Summer School S2: Artificial Neural Networks aka Deep Learning (session 4/4)

NOTE: This course is divided into four (4) parts over three (3) days. Part I and Part II Description: Introduction of neural network programming concepts, theory, and techniques. The class material will begin at an introductory level, intended for those with no experience with neural networks, eventually covering intermediate concepts. (The Keras neural network framework will be used for neural network programming but no experience with Keras will be expected.) Part III Description: This part will continue the development of neural network programming approaches from Parts I and II. This part will focus on generative methods used to create images: variational auto-encoders, generative adversarial networks, and diffusion networks. Part IV Description: This part will continue the development of neural network programming approaches from Parts I through III. This part will focus on methods used to generate sequences: LSTM networks, sequence-to-sequence networks, and transformers. Level: Intermediate Length: Four 3-Hour Sessions (3 Days) Format: Lecture + Hands-on Prerequisites: Experience with Python (version 3.10) is assumed. Each part assumes what was covered in the previous parts of this course. Parts III and IV assume experience with neural network programming, per the first two neural network programming sessions in this course. (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map
17 Jun 9:00 am 12:00 pm

CO Summer School S1: GPU programming: CUDA (day 1, morning session)

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. Level: Introductory Length: Six 3-Hour Sessions (3 Days) Format: Lecture + Hands-on Prerequisites: Alliance Account Basic C and/or C++ experience (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map
17 Jun 9:00 am 12:00 pm

CO Summer School S2: High Performance Computing in Python (morning session)

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. Level: Intermediate Length: Two 3-Hour Sessions Format: Lecture + Hands-on Prerequisite: Some Python and Linux command line experience. (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map
17 Jun 1:30 pm 4:30 pm

CO Summer School S1: GPU programming: CUDA (day 1, afternoon session)

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. Level: Introductory Length: Six 3-Hour Sessions (3 Days) Format: Lecture + Hands-on Prerequisites: Alliance Account Basic C and/or C++ experience (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map
17 Jun 1:30 pm 4:30 pm

CO Summer School S2: High Performance Computing in Python (afternoon session)

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. Level: Intermediate Length: Two 3-Hour Sessions Format: Lecture + Hands-on Prerequisite: Some Python and Linux command line experience. (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map
18 Jun 9:00 am 12:00 pm

CO Summer School S2: Modern C++ Parallel Programming (day 1, morning session)

Modern C++ is an efficient, versatile programming language. This workshop will focus on the following in both sequential and parallel contexts: using pseudo-random number generators, making use of reduction options using underlying sequential code, making simple use of in-situ code benchmarking/profiling, and, using mdspan for accessing multi-dimensional arrays and multi-dimensional array slices (submdspan). By the end of these sessions, one will have learnt about sequential and parallel uses of: C++ pseudo-random number generators and their use, C++ std::reduce(), std::transform_reduce(), etc. and C++ parallel algorithms and some of their uses and caveats, using std::chrono facilities, e.g., for in-situ benchmarks, and, how to use multi-dimensional arrays and slices in C++ code. Level: Intermediate Length: Four 3-Hour Sessions (2 Days) Format: Lecture + Hands-on Prerequisites: Experience developing sequential code in C++. (The C++ programming language is not the C programming language. Experience is expected programming in C++, e.g., using the standard library's containers, iterators, and algorithms.) (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map
18 Jun 9:00 am 12:00 pm

CO Summer School S1: GPU programming: CUDA (day 2, morning session)

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. Level: Introductory Length: Six 3-Hour Sessions (3 Days) Format: Lecture + Hands-on Prerequisites: Alliance Account Basic C and/or C++ experience (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map
18 Jun 1:30 pm 4:30 pm

CO Summer School S1: GPU programming: CUDA (day 2, afternoon session)

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. Level: Introductory Length: Six 3-Hour Sessions (3 Days) Format: Lecture + Hands-on Prerequisites: Alliance Account Basic C and/or C++ experience (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map
18 Jun 1:30 pm 4:30 pm

CO Summer School S2: Modern C++ Parallel Programming (day 1, afternoon session)

Modern C++ is an efficient, versatile programming language. This workshop will focus on the following in both sequential and parallel contexts: using pseudo-random number generators, making use of reduction options using underlying sequential code, making simple use of in-situ code benchmarking/profiling, and, using mdspan for accessing multi-dimensional arrays and multi-dimensional array slices (submdspan). By the end of these sessions, one will have learnt about sequential and parallel uses of: C++ pseudo-random number generators and their use, C++ std::reduce(), std::transform_reduce(), etc. and C++ parallel algorithms and some of their uses and caveats, using std::chrono facilities, e.g., for in-situ benchmarks, and, how to use multi-dimensional arrays and slices in C++ code. Level: Intermediate Length: Four 3-Hour Sessions (2 Days) Format: Lecture + Hands-on Prerequisites: Experience developing sequential code in C++. (The C++ programming language is not the C programming language. Experience is expected programming in C++, e.g., using the standard library's containers, iterators, and algorithms.) (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map