Skip to content

Latest commit

 

History

History
76 lines (59 loc) · 3.28 KB

File metadata and controls

76 lines (59 loc) · 3.28 KB

python-hpc-seminar

Note: This version of the seminar is specifically tailored to the Vanderbilt Scientific Computing 3260 course and some slides/materials may pertain specifically to this course or the ACCRE facility.

This repository contains materials for a two-part seminar on introducing python and its use in HPC. They are intended to be delivered in a seminar, and so not all materials may be coherently readable on their own.

Overview

These are materials for a two-part seminar introducing python to an audience generally familiar with high-performance computing and parallel programming, but with potentially little to no experience in python.

The first part introduces some features of the python language and multiprocessing tools available in the standard library of the reference implementation. Issues of general performance and unsuitability for scientific computing are discussed.

The second part introduces some commonly used scientific libraries starting with numpy, and explores how these extensions provide a framework for parallel, high-performance computation. Some examples of machine learning libraries are also presented. The seminar concludes with an introduction to Jupyter notebooks and some plotting libraries.

Part One: The Python Language and Standard Library

Outline:

  • Benefits of python / why use python?
  • General features of the python language
  • Inner workings and performance
  • Multithreading and multiprocessing examples
  • A few words on concurrency

Resource Links:

Part Two: Scientific Libraries and Tools for Python

Outline:

  • Packaging and distributing libraries, pip, PyPI, Anaconda
  • Introduction to numpy
  • Revisiting part one multiprocessing examples with numpy
  • A quick tour of some scientific libraries
  • Jupyter notebooks and literate programming
  • Making pretty and interactive plots

Resource Links: