Skip to content

mitmath/Parallel-Computing-Spoke

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Interdisciplinary Numerical Methods: Parallelism in Julia "Spoke" 18.S192/16.S098

This course covers the the methods available to write high performance parallel codes in Julia, including threading, GPU acceleration, and distributed programming with MPI and Dagger.jl.

By the end of the course students will be able to use Julia to write write portable and performant code that scales from their laptop CPUs to GPU-enabled supercomputer clusters like NERSC Perlmutter. These skills will be illustrated with a set of applications including scientific codes like Gray-Scott, and training large scale AI applications like LLMs.

Logistics

Lectures: Mondays, Wednesdays, and Fridays 11 AM - 12 AM in room 36-144.

Prerequisites: 18.03, 18.06, or equivalents, and some programming experience. You should have taken the first half-semester numerical "hub" 18.S190/16.S090. Familiarity with Julia is assumed.

Instructors: A. Edelman

Teaching Assistants: Raye Kimmerer ([email protected]), Eveylne Ringoot, Rabab Alomairy

Office Hours:

  • Raye on Tuesdays and Thursdays 12:45PM - 1:45PM on Zoom room rayegun.

Lecture Recordings: Unfortunately we are not teaching in a recorded classroom this semester.

Links: Worth bookmarking:

Grading

  • 6 Homeworks: 90%

  • Class Participation: 10%

Homeworks at a glance

Homework Assigned Due Topic Notes Solution
HW0 April 2 April 7 @ 11:59PM Logistics
HW1 April 7 April 14 @ 11:59PM Threading Updated 9/4
HW2 / Perlmutter Instructions April 20 April 28 @ 11:59PM Threading

Lectures:

# Day Date Lecturer Topic Slides / Notes Notebooks
Week 1 - Overview of Parallel Computing
1 M 3/31 Edelman Parallel Computing may not be what you think, top500, matmul vs matadd Intro Language Horse Race
2 W 4/2 Edelman If you live with one programming language, you dont know what you are missing Slides
3 F 4/4 Kimmerer Allocations and other serial performance tips PerformantSerial Julia Pluto Notebook
Week 2 - Parallelism Concepts,Julia Performance, and Multithreading
4 M 4/7 Edelman If you see an algorithm that doesn't look like it should be parallel it's probably Parallel Prefix Slides reduce,prefix pluto
5 W 4/9 Kimmerer, Ringoot Multithreading, hyperthreading, and pipelining Slides part 1 Slides part 2 threading pluto notebook, JuliaParallel Notebook
6 F 4/11 Edelman Prefix Continued
Week 3 - Attaching to a supercomputer, Multitasking & Intro GPU
7 M 4/14 Kimmerer, Edelman Perlmutter, GPU pictures
8 W 4/16 Alomairy GPU background colab link gpu slides
9 F 4/18 Alomairy, Ringoot GPU software Slides
10 W 4/23 Alomairy GPU Acceleration Slides
Week 4 - GPU Computing
Week 5 - GPU Computing
Week 6 - Distributed Computing (MPI + Dagger.jl)
Week 7 - Parallelism Concepts and Julia Performance

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •