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. 

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.)

During this workshop, we will learn about matplotlib which is a popular Python library that is great for 2D visualizations, and ParaView, a free and open-source visualization tool for creating 3D visualizations of your datasets. In this interactive workshop you will get familiar with how ParaView works and at the end you should be able to generate basic visualizations of the demo data.

Level: Introductory

Length: Two 3-Hour Sessions

Format: Lecture + Hands-on

Prerequisites: None

Bioinformatics, the interdisciplinary field at the intersection of biology and computational science, has revolutionized our understanding of life processes. In this one-day course, we will first tune your HPC knowledge/skills towards bioinformatics computing. Then a typical metagenomics pipeline will be explored to introduce common tools used in bioinformatic analysis and to show how they can be run in an HPC environment. Join us for an immersive day of hands-on exploration in the captivating world of bioinformatics and metagenomics!

Level: Introductory

Length: Two 3-Hour Sessions

Format: Lecture + Hands-on

Prerequisites:

  • Alliance Account
  • Basic understanding of biology and familiarity with Unix shells (e.g. bash, zsh, etc.).