Parallel Programming in Matlab, Python, and R

Audience

Everyone who knows how to code in one of the above languages to do serial tasks, but wants to understand how to code in parallel.

Pre-requisites

  • One of the scripting languages
  • Basic Linux knowledge
    • ssh into a remote system
    • Filesystem navigation
    • Editing a file on the remote system
  • Programming in either Matlab, Python, or R

Course Material

Program

Day 1 - Introduction to Parallel Computing

09:00 am - 09:15 am: Introduction
09:15 am - 10:15 am: Basics of Parallel Computing (Shelley Knuth)
10:15 am - 10:30 am: Break
10:30 am - 12:30 pm: Best Practices in Parallel Computing (Pete Ruprecht)
12:30 pm - 01:30 pm: Lunch
01:30 pm - 03:30 pm: Using Slurm in Parallel Computing (Pete Ruprecht)
03:30 pm - 03:45 pm: Break
03:45 pm - 04:45 pm: Profiling your code (Thomas Hauser)

Day 2 - Parallel Matlab and High-Throughput Computing

09:00 am - 09:15 am: Introduction
09:15 am - 10:30 am: Parallel Computing Toolbox (Shelley Knuth)
10:30 am - 10:45 am: Break
10:45 am - 12:15 pm: Matlab and GPU Nodes (Shelley Knuth)
12:15 pm - 01:15 pm: Lunch
01:15 pm - 02:30 pm: High Throughput Computing with Bash scripting and GNU parallel (Jonathon Anderson)
02:30 pm - 02:45 pm: Break
02:45 pm - 04:00 pm: High Throughput Computing with Job Arrays and the CURC (Jonathon Anderson)

Day 3 - Parallel Python

09:00 am - 09:15 am: Introduction
09:15 am - 10:30 am: Efficient Serial Programming using NumPy
10:30 am - 10:45 am: Break
10:45 am - 12:15 pm: Parallel Programming with IPyParallel
12:15 pm - 01:15 pm: Lunch
01:15 pm - 02:30 pm: Advanced Topics: Python Environment Management; MPI4PY
02:30 pm - 02:45 pm: Break
02:45 pm - 04:00 pm: Parallelize Your Code! (Hackathon/Consulting time)

Day 4 - Parallel R

09:00 am - 09:15 am: Introduction
09:15 am - 10:00 am: Setting up your R environment
10:00 am - 10:30 am: Writing efficient serial R programs that can be parallelized easily
10:30 am - 10:45 am: Break
10:45 am - 12:15 pm: Parallel Programming in R with the parallel package
12:15 pm - 01:15 pm: Lunch
01:15 pm - 02:30 pm: Parallel Programming in R with the Rmpi package
02:30 pm - 02:45 pm: Break
02:45 pm - 04:00 pm: Parallelize Your Code! (Hackathon/Consulting time)