-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Updated the website for 2025's course
- Loading branch information
Showing
5 changed files
with
57 additions
and
38 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,24 @@ | ||
# High Performance Computing in Julia | ||
|
||
This is the main site for documentation about he High Performance Computing in Julia MPAGS module. The link to the site can be found [here](https://jamiemair.github.io/mpags-high-performance-computing/). | ||
|
||
|
||
## Locally running the website | ||
|
||
Make sure you have `julia` installed on your system and open up a terminal in this directory: | ||
```bash | ||
julia | ||
``` | ||
Then run the following in the REPL: | ||
```julia | ||
using Pkg; | ||
Pkg.activate("."); | ||
Pkg.instantiate(); | ||
``` | ||
This only needs to be done once. After you can run the project locally with | ||
```julia | ||
using Franklin | ||
serve() | ||
``` | ||
|
||
This will open up the live server. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,7 +2,7 @@ | |
@def tags = ["syntax", "code"] | ||
|
||
|
||
# High Performance Computing in Julia, from the ground up. | ||
# High Performance Computing in Julia | ||
|
||
This module is designed for teaching programming to new Masters/PhD students, starting from the basics and working up to writing high performance code for any scale. This module will primarily be delivered via the Midlands Physics Alliance Graduate School ([MPAGS](https://warwick.ac.uk/fac/sci/physics/mpags/modules/)). The module is open to anyone else who is interested in the material. All of the resources (including the lecture notes) will be available publicly. Get in touch with me via [email](mailto:[email protected]) if you would like to enroll, and receive updates about the course. | ||
|
||
|
@@ -16,27 +16,22 @@ Students taking this course should match following description: | |
No prior knowledge about the Julia programming language is required as this course will provide a crash course to get everyone up to speed at the start of the module. Topics learnt during this course are **not** based solely around Julia, but can be transferred to other languages. | ||
|
||
# Topics | ||
This module will focus on teaching students how to write high performance code, taking advantage of modern hardware, to be able to execute code at any scale, from your own machine with multiple cores, to using a GPU, all the way to executing code across an entire High Performance Cluster. We will also touch on Research Software Engineering techniques throughout the module. | ||
|
||
This module will focus on teaching students how to write high performance code, taking advantage of modern hardware, to be able to execute code at any scale, from your own machine with multiple cores, to using a GPU, all the way to executing code across an entire High Performance Cluster. | ||
|
||
See the [Topics](/topics/) page for a detailed overview of the topics covered. | ||
|
||
# Module Convenor | ||
|
||
This course is taught by me, **Jamie Mair**, a Research & Teaching Fellow at the University of Nottingham. You can contact me about the course via [email](mailto:[email protected]). | ||
This course is taught by me, **Dr. Jamie Mair**, a Research & Teaching Fellow at the University of Nottingham. You can contact me about the course via [email](mailto:[email protected]). | ||
|
||
# Timetable and format | ||
|
||
This course will run in the spring term (**January 2023**), starting on Tuesday 17th January. The format of this course will be a 2 1-hour sessions each week on Tuesday and Thursday, being taught at the University of Nottingham in the Physics building, and livestreamed on Teams (link will be sent round via email). Rooms for each session will be posted on the [Timetable](/timetable/) page. | ||
|
||
The Tuesday session will be a lecture covering the theoretical material. The Thursday session will be a hybrid lecture/workshop to give you the opportunity to practice what is taught in the lectures through the assignments. | ||
|
||
The bulk of the reference material will be provided in the format of a book/lecture notes which is complementary to the course and gives more depth. These notes should also be suitable for students who would like to follow along and do the assignments but cannot attend the timetabled sessions (either online or in-person). | ||
This course will be a self-study module, run in **January 2025**, starting in the w/c Monday 13th January. Each week a series of online videos will be posted, along with accompanying notes online. To be notified of each week's materials, as well as recieving links to the assessment materials, please [email](mailto:[email protected]) me directly to sign up. At the end of the course, once all materials have been posted, links to them will be posted here. | ||
|
||
# Assessment | ||
|
||
Each week of teaching will have a corresponding assessment delivered via GitHub classroom, with automatic feedback/marking. These problems are usually short and will be started in the workshop and hopefully finished during the workshop on Thursdays. Some assignments may take more time outside the workshop. | ||
|
||
More details can be found on the [Resources](/resources/) page. | ||
Each week of teaching will have a corresponding assessment delivered via GitHub classroom, with automatic feedback/marking. For students taking the MPAGS course, links to these assessments will be provided **via email**, so make sure you are on the mailing list. For other students who are not taking the MPAGS module, links to the GitHub templates will be posted here. | ||
|
||
# Citation | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,7 +6,7 @@ | |
|
||
## Lecture Notes | ||
|
||
The lecture notes are available [here](/assets/book_v1.2.pdf). They are a work in progress and may change. | ||
The original lecture notes from 2023 are available [here](/assets/book_v1.2.pdf). The new course notes will be posted online on a different website, with entries posted weekly to accompany the video material. Links to the book are kept here for reference. | ||
|
||
### Changelog | ||
**Current Version: v1.2 (23/01/2023)** | ||
|
@@ -27,22 +27,28 @@ For this course, you do **not** need to be an expert with Git, but its use is en | |
|
||
## Assignments | ||
|
||
1. Week 1 - Getting Started with Julia: Workflow and Setup - [click here](https://classroom.github.com/a/3bYk2x83) | ||
2. Week 2 - Profiling and Optimisation - [click here](https://classroom.github.com/a/HFbbhcO1) | ||
3. Week 3 - Multithreading - [click here](https://classroom.github.com/a/HqKUZUwc) | ||
4. Week 4 - Multiprocessing - [click here](https://classroom.github.com/a/y9jTWq3J) | ||
5. Week 5 - GPU Programming - [click here](https://classroom.github.com/a/q9ycWkI6) | ||
1. Week 1 - Getting Started with Julia: Workflow and Setup - TBA | ||
2. Week 2 - Profiling and Optimisation - TBA | ||
3. Week 3 - Multithreading - TBA | ||
4. Week 4 - Multiprocessing - TBA | ||
5. Week 5 - GPU Programming - TBA | ||
|
||
|
||
## Computing Resources | ||
|
||
During this course, you should be able to do everything on your own personal machine. I would advise trying to run some code on your local cluster as well if you have access. However, not everybody has access to a GPU, and specifically during part of the course, you will need access to a modern NVIDIA GPU. If you have access to your local institution's HPC already, but do not have GPU access, you can ask your local admin to give you a small number of GPU hours (around 20 should be more than enough). | ||
During this course, you should be able to do everything on your own personal machine. I would advise trying to run some code on your local cluster as well if you have access. You will benefit from being able to access a GPU, but it is not a requirement for this course. Being able to test and run your GPU code locally will make it easier to complete the final assessment, but it can be done without one. If you have access to your local institution's HPC already, but do not have GPU access, you can ask your local admin to give you a small number of GPU hours (around 20 should be more than enough). | ||
|
||
Another option is to use Google Colab which has free access to GPU resources for testing. There is also a cheap paid option for better access. The [notebook linked here](https://colab.research.google.com/github/ageron/julia_notebooks/blob/master/Julia_Colab_Notebook_Template.ipynb) has instructions for how to setup Julia and CUDA. This is the easiest way to get started. | ||
Another option is to use Google Colab which has free access to GPU resources for testing. There is also a cheap paid option for better access. The [notebook linked here](https://colab.research.google.com/github/ageron/julia_notebooks/blob/master/Julia_Colab_Notebook_Template.ipynb) has instructions for how to setup Julia and CUDA, however this notebook may not work for everyone. | ||
|
||
If you are from UoN and are struggling to access GPUs, contact [myself](mailto:[email protected]) to see if we can arrange temporary access to our in-house Physics cluster. Access to this cluster **cannot** be guaranteed, and we advise students to use this as a last resort. | ||
|
||
## Lecture Slides & Recordings (2023) | ||
## Videos | ||
|
||
*No videos for 2025 have been posted yet. Sign up to the mailing list to recieve updates, or check back later to find new videos.* | ||
|
||
## Lecture Slides & Recordings Archive (2023) | ||
|
||
Below is an **archive** of the original lecture videos and accompanying slides. The new videos in 2025 will largely follow the same content, with a few sections expanded upon and others removed. In particular, these recordings do not include the in-person workshops that were ran in 2025. | ||
|
||
### (1/10) Hardware & Software Basics | ||
[Lecture Slides](/assets/slides/session_1.pdf) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,18 +1,8 @@ | ||
@def title = "Timetable" | ||
@def tags = ["syntax", "code"] | ||
|
||
# Course Schedule 2022/23 | ||
# Course Schedule 2025 | ||
|
||
The provisional starting date of this course is in January 2023, w/c 16th. Lectures will happen on **Tuesdays 4-5pm** UK time and workshops will happen **4-5pm** on **Thursdays**. | ||
The provisional starting date of this course is in January 2025, w/c Monday 13th. The content for this course will be posted weekly online in the form of one or more videos, with accompanying online notes. Each week, one assessement will be released via GitHub classroom. The due date for all assessments will be at the beginning of March 2025. | ||
|
||
**Note**: **All** sessions will be in B17 Physics - University Park Campus, UoN. | ||
|
||
| Week | Lecture | Workshop | | ||
|------|----------------------------------------------|----------------------------------------------| | ||
| 1 | **17/01/23** 16:00-17:00 **Physics B17 UoN** | **19/01/23** 16:00-17:00 **Physics B17 UoN** | | ||
| 2 | **24/01/23** 16:00-17:00 **Physics B17 UoN** | **26/01/23** 16:00-17:00 **Physics B17 UoN** | | ||
| 3 | **31/01/23** 16:00-17:00 **Physics B17 UoN** | **02/02/23** 16:00-17:00 **Physics B17 UoN** | | ||
| 4 | **07/02/23** 16:00-17:00 **Physics B17 UoN** | **09/02/23** 16:00-17:00 **Physics B17 UoN** | | ||
| 5 | **14/02/23** 16:00-17:00 **Physics B17 UoN** | **16/02/23** 16:00-17:00 **Physics B17 UoN** | | ||
|
||
Sessions will be in person at the University of Nottingham in the Physics building. | ||
Links to the resources will be sent out in an email to the mailing list. Once the course is finished, all materials will be available online. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters