How to Use these Resources
This page has a medley of videos and other online references that give a high-level conceptual overview of what high-performance computing and parallel programming are and the different overarching models of parallel computing. They are a good entry point for users new to HPC.
What the Heck is Supercomputing (2018) -- an excellent overview of the what and why of high-performance computing, from the Supercomputing in Plain English (SIPE) 2018 workshop series from the OU (University of Oklahoma) Supercomputing Center for Education & Research (OSCER). Video (~90 mins) and accompanying slides.
Supercomputing: Why It's Important for You (2014) -- recorded seminar (with slides) motivating the importance of HPC. From the National Institute for Computational Sciences (NICS) at University of Tennessee, Knoxville.
Short Introduction to HPC (2015) -- a series of three short videos from ARCHER (the UK National Supercomputing Service).
Self-paced online courses
Parallel Programming Concepts and HPC -- a self-paced online course on the "big-picture" of parallel programming from the Cornell University Center for Advanced Computing (CAC)
Web pages / written online tutorials
Overview of Parallel Programming, from HPC Carpentries -- conceptual summary of parallel programming models. Application examples are in Python, but the topics covered are generic.
What is Parallel Computing -- overview of serial vs. parallel computing from Lawrence Livermore National Lab (LLNL). Part of a longer document offering a comprehensive introduction to parallel computing.
Fundamentals of Parallel Programming -- an online document from University of Colorado Boulder Research Computing that gives a nice overview of parallel programming. This addendum has an executive summary of what OpenMP and MPI are.
Introduction to High-Performance Scientific Computing -- book by Victor Eijkhout from the Texas Advanced Computing Center (TACC). Available in online and print versions. Chapters 1 & 2 give a comprehensive theoretical summary of architectures and programming models underlying serial computing and parallel computing, respectively.