Skip to content

Commit 87081e8

Browse files
Deploying to gh-pages from @ b3db9a5 🚀
0 parents  commit 87081e8

12 files changed

+1207
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
pluto_state_cache

README.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# Interdisciplinary Numerical Methods: Parallelism in Julia "Spoke" 18.S192/16.S098
2+
3+
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.
4+
5+
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.
6+
7+
## Logistics
8+
9+
**Lectures:** Mondays, Wednesdays, and Fridays 11 AM - 12 AM in room 36-144.
10+
11+
**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](https://github.com/mitmath/numerical_hub). Familiarity with Julia is assumed.
12+
13+
**Instructors:** A. Edelman
14+
15+
**Teaching Assistants:** Raye Kimmerer, Eveylne Ringoot, Rabab Alomairy
16+
17+
**Office Hours:**
18+
- Raye on Tuesdays and Thursdays 12:45PM - 1:45PM on Zoom room `rayegun`.
19+
20+
21+
**Lecture Recordings:** Unfortunately we are not teaching in a recorded classroom this semester.
22+
23+
**Links:** Worth bookmarking:
24+
25+
## Grading
26+
27+
- 6 Homeworks: 90%
28+
29+
- Class Participation: 10%
30+
31+
## Homeworks at a glance
32+
33+
| Homework | Assigned | Due | Topic | Solution |
34+
| --------------------------------------------------------------- | -------- | ------ | -------------------------------------------------- | ------------------------------------------------------------------------------------ |
35+
| [HW0](homework/HW0.pdf) | April 2 | April 7 @ 11:59PM | Logistics |
36+
| [HW1](homework/HW1.pdf) | April 7 | April 14 @ 11:59PM | Threadin |
37+
38+
## Lectures at a glance (Lectures being updated.)
39+
40+
41+
#### Homework: [Homework 0 due April 7](homework/HW0.pdf)
42+
#### Lectures:
43+
44+
45+
| # | Day | Date | Lecturer | Topic | Slides / Notes | Notebooks |
46+
| --- | --- | ----- | ----------------- | ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
47+
| | | | | **Week 1 - Overview of Parallel Computing**|
48+
| 1 | M | 3/31 | Edelman | Parallel Computing may not be what you think, [top500](https://top500.org/), matmul vs matadd | [Intro](https://docs.google.com/presentation/d/1jkJqieNuWh4_Yx6Ura3xiGUc0NmaDK6a6J_zQJfQoEU/edit?usp=sharing)| [Language Horse Race](https://github.com/mitmath/JuliaComputation/blob/Fall24/notebooks/3_Julia%20is%20fast.ipynb) |
49+
| 2 | W | 4/2 | Edelman | If you live with one programming language, you dont know what you are missing | [Slides](https://docs.google.com/presentation/d/16Zf_SnDNlUmcCdqoaDeyAQmmqpxC66k646DCm3BXt1o/edit?usp=sharing)|| |
50+
| 3 | F | 4/4 | Kimmerer | Allocations and other serial performance tips | | [PerformantSerial Julia Pluto Notebook](https://mitmath.github.io/Parallel-Computing-Spoke/notebooks/PerformantSerialJulia.html)
51+
| | | | | **Week 2 - Parallelism Concepts and Julia Performance**|
52+
| 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](https://github.com/mitmath/18337/blob/master/lecture10/prefix.pptx) | [reduce,prefix pluto](https://mitmath.github.io/18337/lecture9/reduce_prefix.html)|
53+
| | | | | **Week 3 - Multithreading and Multitasking**|
54+
| | | | | **Week 4 - GPU Computing**|
55+
| | | | | **Week 5 - GPU Computing**|
56+
| | | | | **Week 6 - Distributed Computing (MPI + Dagger.jl)**|
57+
| | | | | **Week 7 - Parallelism Concepts and Julia Performance**|
58+
59+

homework/HW0.pdf

55.2 KB
Binary file not shown.

homework/HW1 (2).pdf

98.9 KB
Binary file not shown.

homework/HW1.pdf

93.3 KB
Binary file not shown.

index.html

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1">
6+
7+
<style>
8+
body {
9+
font-family: sans-serif;
10+
}
11+
</style>
12+
13+
<link rel="stylesheet" href="index.css">
14+
<script src="index.js" type="module" defer></script>
15+
</head>
16+
<body>
17+
<h1>Notebooks</h1>
18+
19+
<ul>
20+
<li><a href="notebooks/PerformantSerialJulia.html">notebooks/PerformantSerialJulia</a></li>
21+
</ul>
22+
</body>
23+
</html>
906 KB
Binary file not shown.
1.64 MB
Binary file not shown.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<!DOCTYPE html><html lang="en"><head><meta name="viewport" content="width=device-width"><meta charset="utf-8"><meta property='og:type' content='article'>
2+
3+
<meta name="pluto-insertion-spot-meta">
4+
<meta name="theme-color" media="(prefers-color-scheme: light)" content="white"><meta name="theme-color" media="(prefers-color-scheme: dark)" content="#2a2928"><meta name="color-scheme" content="light dark"><link rel="icon" type="image/png" sizes="16x16" href="https://cdn.jsdelivr.net/gh/fonsp/[email protected]/frontend-dist/favicon-16x16.267aebbe.png"><link rel="icon" type="image/png" sizes="32x32" href="https://cdn.jsdelivr.net/gh/fonsp/[email protected]/frontend-dist/favicon-32x32.1b9d3e70.png"><link rel="icon" type="image/png" sizes="96x96" href="https://cdn.jsdelivr.net/gh/fonsp/[email protected]/frontend-dist/favicon-96x96.26e08763.png"><link rel="pluto-external-source" id="pluto-logo-big" href="https://cdn.jsdelivr.net/gh/fonsp/[email protected]/frontend-dist/logo.49a14041.svg"><link rel="pluto-external-source" id="pluto-logo-small" href="https://cdn.jsdelivr.net/gh/fonsp/[email protected]/frontend-dist/favicon_unsaturated.c11d4d33.svg"><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fonsp/[email protected]/frontend-dist/editor.b5bd8bc8.css"><script type="module" src="https://cdn.jsdelivr.net/gh/fonsp/[email protected]/frontend-dist/index.e10141f8.js"></script><script type="module" src="https://cdn.jsdelivr.net/gh/fonsp/[email protected]/frontend-dist/editor.runtime.99562e0b.js"></script><script defer>console.log("Pluto.jl, by Fons van der Plas (https://github.com/fonsp), Mikołaj Bochenski (https://github.com/malyvsen), Michiel Dral (https://github.com/dralletje) and friends \uD83C\uDF08");</script><script src="https://cdn.jsdelivr.net/gh/fonsp/[email protected]/frontend-dist/index.65d5caa1.js" defer></script><script src="https://cdn.jsdelivr.net/gh/fonsp/[email protected]/frontend-dist/index.2db9e182.js" defer></script><script src="https://cdn.jsdelivr.net/gh/fonsp/[email protected]/frontend-dist/editor.21e3b1fd.js" defer></script><script src="https://cdn.jsdelivr.net/gh/fonsp/[email protected]/frontend-dist/editor.97d6fa3c.js" defer></script><link rel="pluto-external-source" id="vmsg-wasm" href="https://cdn.jsdelivr.net/gh/fonsp/[email protected]/frontend-dist/vmsg.56bb9389.wasm"><link rel="pluto-external-source" id="arrow_up_circle_icon" href="https://cdn.jsdelivr.net/gh/fonsp/[email protected]/frontend-dist/arrow-up-circle-outline.3f146ffe.svg"><link rel="pluto-external-source" id="document_text_icon" href="https://cdn.jsdelivr.net/gh/fonsp/[email protected]/frontend-dist/document-text-outline.8d1e2333.svg"><link rel="pluto-external-source" id="help_circle_icon" href="https://cdn.jsdelivr.net/gh/fonsp/[email protected]/frontend-dist/help-circle-outline.a023036a.svg"><link rel="pluto-external-source" id="open_icon" href="https://cdn.jsdelivr.net/gh/fonsp/[email protected]/frontend-dist/open-outline.87533923.svg"><script id="iframe-resizer-content-window-script" src="https://cdn.jsdelivr.net/gh/fonsp/[email protected]/frontend-dist/editor.69996afe.js" crossorigin defer></script><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fonsp/[email protected]/frontend-dist/editor.fd8dcd31.css" type="text/css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fonsp/[email protected]/frontend-dist/editor.46c98966.css" type="text/css" media="all" data-pluto-file="hide-ui"><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fonsp/[email protected]/frontend-dist/editor.bf06bf57.css" type="text/css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fonsp/[email protected]/frontend-dist/editor.7a28f943.css" type="text/css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fonsp/[email protected]/frontend-dist/editor.d203a2fe.css" type="text/css"><script data-pluto-file="launch-parameters">
5+
window.pluto_notebook_id = undefined;
6+
window.pluto_isolated_cell_ids = undefined;
7+
window.pluto_notebookfile = "PerformantSerialJulia.jl";
8+
window.pluto_disable_ui = true;
9+
window.pluto_slider_server_url = undefined;
10+
window.pluto_binder_url = "https://mybinder.org/v2/gh/fonsp/pluto-on-binder/v0.20.5";
11+
window.pluto_statefile = "PerformantSerialJulia.plutostate";
12+
window.pluto_preamble_html = undefined;
13+
</script>
14+
15+
<meta name="pluto-insertion-spot-parameters">
16+
<script src="https://cdn.jsdelivr.net/gh/fonsp/[email protected]/frontend-dist/editor.6c5f0499.js" type="module" defer></script><script src="https://cdn.jsdelivr.net/gh/fonsp/[email protected]/frontend-dist/index.11569726.js"></script><link rel="pluto-external-source" id="MathJax-script" href="https://cdn.jsdelivr.net/gh/fonsp/[email protected]/frontend-dist/tex-svg-full.f72d1ae1.js" type="text/javascript">
17+
<link rel="preload" as="fetch" href="PerformantSerialJulia.plutostate" crossorigin>
18+
19+
<meta name="pluto-insertion-spot-preload">
20+
</head><body class="loading no-MαθJax"> <div style="min-height:100vh;display:flex"> <pluto-editor class="fullscreen"> <progress style="filter:grayscale()" class="delete-me-when-live statefile-fetch-progress" max="100"></progress> </pluto-editor> </div> </body></html>

0 commit comments

Comments
 (0)