Skip to content

mcbarton/hpc-tutorial-resources

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 

Repository files navigation

HPC Tutorial Resources/General Software Development Resources

This repo contains links to various materials that may be helpful to those wishing to develop skills in software development. With the exception of the printed books all material linked in this repo is freely available, and doesn't require an account to view except in the case of videos hosted on Vimeo. Where possible a link to the github repo associated with the training material is provided. In the case of tutorials which have recordings a rough time commitment to watch the videos is provided (although no guarantee is given that the recordings are complete).

The topics currently covered by this repo are (This repo is a work in progress, and so some topics may currently be empty.)

  • C++
  • Fortran
  • C
  • Python
  • Cuda
  • HIP
  • RAJA
  • Kokkos
  • Julia
  • R
  • Rust
  • Bash
  • OpenMP
  • MPI
  • OpenMP/MPI
  • SYCL
  • Software Testing
  • Debugging
  • Profiling
  • Software Security
  • SSH
  • File Transfer (Scp, Sftp, rsync, etc)
  • Queueing Systens (Slurm, PBS, etc)
  • Environment Modules
  • Git
  • Parallel I/O and Filesystems
  • HDF5
  • Netcdf
  • Json
  • Yaml
  • CMake
  • Makefiles
  • Containers
  • Scientific Software Design
  • Apt/Apt-get
  • Macports
  • Homebrew
  • Spack
  • Pip (Python Package Manager)
  • Anaconda Package Managers (conda and mamba)
  • General data visualisation
  • Paraview
  • Visit
  • Jupyter Notebooks/Jupyter Lab
  • Emacs
  • Vim
  • Visual Studio
  • WSL
  • Algorithms and Floating Point Arithmetic
  • Validation, Verification and Uncertainty Qualification (VVUQ)
  • Artificial Intelligence/Machine Learning/Deep Learning
  • Latex
  • Markdown
  • reStructuredText
  • Sphinx
  • Directory Structure (both Mac and Linux)
  • Useful Tools
  • Computer Hardware (CPUs, GPUs, FGPAs, etc)
  • Computer Architecture (x86, Arm, RiscV, etc)
  • Compilers
  • Using/Maintaining/Updating Legacy Code
  • Miscellaneous

At one point these topics will be categorised (programming languages, package managers, Markup languages, etc), but for now they will remain seperate topics, until the repo is more complete.

C++

Video Tutorials

  1. HSF (HEP Software Foundation) - Set up to provide training in various aspects of software development for the high energy physics community.
  1. CSCS (Swiss National Supercomputing Centre)
  1. Archer2
  1. University of Victoria

  2. Texas Advanced Computing Center

Non Video Based Tutorials

Open Source Books

Print Books

Other

  1. CERN

  2. CppCon

Fortran

Video Tutorials

  1. Archer2
  1. OLCF

    • https://vimeo.com/711784748 - Coding for GPUs with Standard Fortran
      • Time Commitment - Approximately 1 Hour
      • Peer Review -
      • Target Audience -
      • Audio/Visual Issues Recording(s) -
  2. NERSC

Non Video Based Tutorials

Open Source Books

Print Books

Other

C

Video Tutorials

  1. OLCF

  2. University of Victoria

Non Video Based Tutorials

Open Source Books

Print Books

Other

Python

Video Tutorials

  1. Archer2
  1. CSCS
  1. OLCF

Non Video Based Tutorials

Open Source Books

Print Books

Other

Cuda

Video Tutorials

  1. Archer2
  1. OLCF

Non Video Based Tutorials

Open Source Books

Print Books

Other

HIP

Video Tutorials

  1. OLCF

Non Video Based Tutorials

Open Source Books

Print Books

Other

RAJA

Video Tutorials

  1. OLCF
    • https://vimeo.com/873712030 - A Tutorial Introduction to RAJA 2023
      • Time Commitment - Approximately 1.5 Hours
      • Peer Review -
      • Target Audience -
      • Audio/Visual Issues Recording(s) -

Non Video Based Tutorials

  1. Lawrence Livermore National Laboratory

Open Source Books

Print Books

Other

Kokkos

Video Tutorials

  1. Exascale Computing Project

Non Video Based Tutorials

Open Source Books

Print Books

Other

Julia

Video Tutorials

  1. University of Queensland

  2. MIT

  3. OLCF

Non Video Based Tutorials

Open Source Books

Print Books

Other

R

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Other

Rust

Video Tutorials

Non Video Based Tutorials

Title - The Rust Programming Language
Authors - Steve Klabnik and Carol Nichols, with contributions from the Rust Community
Link - https://doc.rust-lang.org/book/title-page.html

Open Source Books

Print Books

Other

  1. Archer 2

  2. Scientific Computing in Rust 2023 Conference

Bash

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Other

OpenMP

Video Tutorials

  1. Archer2

  2. Exascale Computing Project

  3. OLCF

    • https://vimeo.com/869665013 - Introduction to OpenMP Offload Part 1 : Basics of Offload 2023

    • https://vimeo.com/873103703 - OpenMP Offload Part 2: Optimization and Data Management 2023

      • Time Commitment - Approximately 2.25 Hours
      • Peer Review -
      • Target Audience -
      • Audio/Visual Issues Recording(s) -
    • https://vimeo.com/781271547 - Using HIP and GPU Libraries with OpenMP

      • Time Commitment - Approximately 1 Hour
      • Peer Review -
      • Target Audience -
      • Audio/Visual Issues Recording(s) -
  4. NHR@FAU

Non Video Based Tutorials

Open Source Books

Print Books

Other

MPI

Video Tutorials

  1. Archer2

  2. Exascale Computing Project

  3. NHR@FAU

Non Video Based Tutorials

Open Source Books

Print Books

Other

SYCL

Video Tutorials

Non Video Based Tutorials

  1. Codeplay Software Ltd

Open Source Books

Print Books

Other

Software Testing

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Other

Debugging

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Other

Profiling

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Other

Software Security

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Other

SSH

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Other

File Transfer (Scp, Sftp, rsync, etc)

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Other

Queueing Systens (Slurm, PBS, etc)

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Other

Environment modules

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Other

Git

Git is a version control system that allows developers to track changes in their code. Github and Gitlab are both open source hosting services for git repositories.

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Other

Parallel I/O and Filesystems

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Other

HDF5

Video Tutorials

  1. Exascale Computing Project

Non Video Based Tutorials

Open Source Books

Print Books

Other

Netcdf

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Other

Json

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Other

Yaml

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Other

CMake

Video Tutorials

  1. Archer2
  1. Exascale Computing Project

Non Video Based Tutorials

  1. HSF

Open Source Books

Print Books

Other

Makefiles

Video Tutorials

Non Video Based Tutorials

Title - Makefile Tutorial Link to tutorial - https://makefiletutorial.com/#makefile-cookbook

Open Source Books

Print Books

Other

Containers

Video Tutorials

  1. HSF Training

  2. Archer2

Non Video Based Tutorials

Open Source Books

Print Books

Other

Scientific Software Design

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Title - Scientific Software Design: The Object-Oriented Way
ISBN - 9781139498784

Title - Writing Scientific Software: A Guide to Good Style
ISBN - 9781139458627

Other

  1. OLCF

  2. CERN

  3. Exascale Computing Project

    • https://www.youtube.com/watch?v=UWmkj-9SdAI - IDEAS-ECP Webinar: Software Design Patterns in Research Software with Examples from OpenFOAM 2022
      • Time Commitment - Approximately 1 Hour
      • Peer Review -
      • Target Audience -
      • Audio/Visual Issues Recording(s) -
  4. Better Scientific Software

Apt/Apt-get

Apt is Ubuntus package manager. It installs packages system wide, so requires sudo permissions to install packages. Documentation on Ubuntus package management system can be found here https://ubuntu.com/server/docs/package-management .

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Other

Macports

Macports is a Mac OS only package manager. It installs packages system wide, and requires sudo permissions to install packages. The homepage for Macports can be found here https://www.macports.org .

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Other

Homebrew

Homebrew is a cross platform (linux and Mac OS) package manager. It doesn't require sudo privileges beyond those needed to install the prerequisites stated in the documentation. The homepage for Homebrew can be found here https://brew.sh .

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Other

Spack

Spack is a package manager which works across HPC systems, linux and Mac OS. It doesn't require sudo privileges beyond those needed to install the prerequisites stated in the documentation. The homepage for Spack can be found here https://spack.io .

Video Tutorials

  1. Exascale Computing Project

Non Video Based Tutorials

Open Source Books

Print Books

Other

Pip (Python Package Manager)

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Other

Anaconda Package Managers (conda and mamba)

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Other

General data visualisation

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Other

Paraview

Video Tutorials

Non Video Based Tutorials

  1. Argonne Leadership Computing Facility

Open Source Books

Print Books

Other

Visit

Video Tutorials

Non Video Based Tutorials

  1. Visit

Open Source Books

Print Books

Other

Jupyter Notebooks/Jupyter Lab

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Other

Emacs

Video Tutorials

Open Source Books

  1. Use Gnu Emacs the plain text computing envirnoment by Keith Waclena

Non Video Based Tutorials

Emacs comes with its own built in tutorial. After starting Emacs, this can be accessed by using holding down the Ctrl key, pressing h, letting go of both keys, and then clicking t and then enter.

Print Books

Other

Vim

Video Tutorials

  1. OLCF

Non Video Based Tutorials

To get a grip with the basic useage of Vim you can by simple typing vimtutor into the terminal on any UNIX-like system such as Linux or MacOS, and clicking enter.

Open Source Books

Print Books

Other

Visual Studio

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Other

WSL

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Other

Algorithms and Floating Point Arithmetic

Video Tutorials

  1. Cern OpenLab/Fermi National Accelerator Lab

  2. BUGSENG and University of Parma

Non Video Based Tutorials

Open Source Books

Print Books

Title - Handbook of Floating-Point Arithmetic
ISBN - 9783319765259

Title - Algorithms from The Book
ISBN - 9781611976168

Title - Modern Computer Arithmetic
ISBN - 9780521194693

Title - Elementary Functions Algorithms and Implementation
ISBN - 9781489979810

Title - Numerical Computing with IEEE Floating Point Arithmetic
ISBN - 0898715717

Title - Accuracy and Stability of Numerical Algorithms
ISBN - 0898715210

Other

Validation, Verification and Uncertainty Qualification (VVUQ)

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Title - Uncertainty Quantification: Theory, Implementation, and Applications
ISBN - 9781611973211

Title - Verification and Validation in Scientific Computing
ISBN - 9781139491761

Other

Artificial Intelligence/Machine Learning/Deep Learning

Video Tutorials

  1. OLCF

    • https://vimeo.com/836918490 - AI Training Series: AI for Science at Scale – Introduction 2023
    • https://vimeo.com/873844751 - AI Training Series: AI for Science at Scale – Part 2 2023
      • Time Commitment - Approximately 4 Hours
      • Peer Review -
      • Target Audience -
      • Audio/Visual Issues Recording(s) -
  2. 3Blue1Brown

Non Video Based Tutorials

Open Source Books

Print Books

Other

Latex

Video Tutorials

Non Video Based Tutorials

  1. Overleaf

Open Source Books

Print Books

Other

Markdown

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Other

reStructuredText

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Other

Sphinx

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Other

Directory Structure (both Mac and Linux)

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Other

Useful Tools

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Other

Computer Hardware (CPUs, GPUs, FGPAs, etc)

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Other

  1. CERN

Computer Architecture (x86, Arm, RiscV, etc)

Video Tutorials

Non Video Based Tutorials

Open Source Books

  1. MIT Press Title - Scientific Programming and Computer Architecture Author - Divakar Viswanath Year - 2017 Link to book (html format) - https://divakarvi.github.io/bk-spca/spca.html Github Repo - https://github.com/divakarvi/bk-spca

Print Books

Other

  1. NHR@FAU

  2. CERN

    • https://cds.cern.ch/record/2826781?ln=en - Performance Analysis and Optimization on Linux 2022

      • Time Commitment - Approximately 2 Hours
      • Peer Review -
      • Target Audience -
      • Audio/Visual Issues Recording(s) -
    • https://cds.cern.ch/record/2773211?ln=en - Scientific computing on heterogeneous architectures

      • Time Commitment - Approximately 1 Hour
      • Peer Review -
      • Target Audience -
      • Audio/Visual Issues Recording(s) -

Compilers

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Other

  1. CERN

Using/Maintaining/Updating Legacy Code

Video Tutorials

Non Video Based Tutorials

Open Source Books

Print Books

Other

  1. CERN
    • https://cds.cern.ch/record/2677507?ln=en - Speeding up Scientific Codes in HPC Architectures by Code Modernization: Lessons Learned 2019

      • Time Commitment - Approximately 1 Hour 20 Minutes
      • Peer Review -
      • Target Audience -
      • Audio/Visual Issues Recording(s) -
    • https://cds.cern.ch/record/2736214?ln=en - Modern C++ vs. its legacy: when stability is more important than performance (lecture) 2020

      • Time Commitment - Approximately 1 Hour
      • Peer Review -
      • Target Audience -
      • Audio/Visual Issues Recording(s) -

Miscellaneous

This topic is for material which doesn't sit in any one catergory above.

Video Tutorials

  1. Archer2

Non Video Based Tutorials

  1. The Art of HPC

Open Source Books

Print Books

Other

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks