diff --git a/404.html b/404.html index a39286e0..b6e3946c 100644 --- a/404.html +++ b/404.html @@ -1 +1 @@ - 404: File not found

404: File not found

The requested file was not found.

Please click here to go to the home page.

\ No newline at end of file + 404: File not found

404: File not found

The requested file was not found.

Please click here to go to the home page.

\ No newline at end of file diff --git a/Manifest.toml b/Manifest.toml index 0c915d41..40972b84 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -135,9 +135,9 @@ uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" [[deps.Literate]] deps = ["Base64", "IOCapture", "JSON", "REPL"] -git-tree-sha1 = "eef2e1fc1dc38af90a18eb16e519e06d1fd10c2a" +git-tree-sha1 = "b9b38448af801760a608b7a7f895f7dcf166f4a5" uuid = "98b081ad-f1c9-55d3-8b20-4c87d4299306" -version = "2.19.0" +version = "2.19.1" [[deps.LiveServer]] deps = ["HTTP", "LoggingExtras", "MIMEs", "Pkg", "Sockets", "Test"] diff --git a/extras/index.html b/extras/index.html index 3ecaeaf8..64b78906 100644 --- a/extras/index.html +++ b/extras/index.html @@ -1 +1 @@ - Extras

Extras

Cheatsheets

References

any further relevant suggestions are welcome - open a PR

Extra material

Julia GPU HPC tutorials and workshops

Other courses and workshops

Repositories

Other resources

\ No newline at end of file + Extras

Extras

Cheatsheets

References

any further relevant suggestions are welcome - open a PR

Extra material

Julia GPU HPC tutorials and workshops

Other courses and workshops

Repositories

Other resources

\ No newline at end of file diff --git a/final_proj/index.html b/final_proj/index.html index 6f97da3e..3eb23c2b 100644 --- a/final_proj/index.html +++ b/final_proj/index.html @@ -1 +1 @@ - Information about final projects

Information about final projects

Final projects will provide 35% of the course grade. We recommend you work in teams of two, but being your own teammate is fine too.

🚧 More infos to come in due time.

\ No newline at end of file + Information about final projects

Information about final projects

Final projects will provide 35% of the course grade. We recommend you work in teams of two, but being your own teammate is fine too.

🚧 More infos to come in due time.

\ No newline at end of file diff --git a/homework/index.html b/homework/index.html index 4ec0b142..a0ad25d0 100644 --- a/homework/index.html +++ b/homework/index.html @@ -1 +1 @@ - Homework

Homework

AssignmentDue dateSubmissionNotes
Lect. 125.09.2024 - 23h59 CETMoodleSubmit a folder containing all exercise notebooks from JupyterHub.
\ No newline at end of file + Homework

Homework

AssignmentDue dateSubmissionNotes
Lect. 125.09.2024 - 23h59 CETMoodleSubmit a folder containing all exercise notebooks from JupyterHub.
\ No newline at end of file diff --git a/index.html b/index.html index 6cc5bb6b..71a98eea 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ - Solving PDEs in parallel on GPUs with Julia

Solving PDEs in parallel on GPUs with Julia

🎉 Welcome to ETH's course 101-0250-00L on solving partial differential equations (PDEs) in parallel on graphical processing units (GPUs) with the Julia programming language.

Announce: 2024 edition starts Tuesday Sept. 17, 12h45. Welcome!

Course informations

This course aims to cover state-of-the-art methods in modern parallel GPU computing, supercomputing and code development with applications to natural sciences and engineering.

Objective

The goal of this course is to offer a practical approach to solve systems of differential equations in parallel on GPUs using the Julia programming language. Julia combines high-level language conciseness to low-level language performance which enables efficient code development. The Julia GPU applications will be hosted on a git-platform and implement modern software development practices.

Outline

Detailed content is available on ETHZ course catalogue

Course GitHub repository: https://github.com/eth-vaw-glaciology/course-101-0250-00

Teaching staff

\ No newline at end of file + Solving PDEs in parallel on GPUs with Julia

Solving PDEs in parallel on GPUs with Julia

🎉 Welcome to ETH's course 101-0250-00L on solving partial differential equations (PDEs) in parallel on graphical processing units (GPUs) with the Julia programming language.

Announce: 2024 edition starts Tuesday Sept. 17, 12h45. Welcome!

Course informations

This course aims to cover state-of-the-art methods in modern parallel GPU computing, supercomputing and code development with applications to natural sciences and engineering.

Objective

The goal of this course is to offer a practical approach to solve systems of differential equations in parallel on GPUs using the Julia programming language. Julia combines high-level language conciseness to low-level language performance which enables efficient code development. The Julia GPU applications will be hosted on a git-platform and implement modern software development practices.

Outline

Detailed content is available on ETHZ course catalogue

Course GitHub repository: https://github.com/eth-vaw-glaciology/course-101-0250-00

Teaching staff

\ No newline at end of file diff --git a/lecture1/index.html b/lecture1/index.html index 6fc956a2..8f076e94 100644 --- a/lecture1/index.html +++ b/lecture1/index.html @@ -705,7 +705,7 @@

Question 2 diff --git a/lecture10/index.html b/lecture10/index.html index 61322258..73dca4f0 100644 --- a/lecture10/index.html +++ b/lecture10/index.html @@ -417,7 +417,7 @@

Edit this page on
- Last modified: September 11, 2024. Website built with Franklin.jl and the Julia programming language. + Last modified: September 16, 2024. Website built with Franklin.jl and the Julia programming language. diff --git a/lecture2/index.html b/lecture2/index.html index c731a079..d03f3123 100644 --- a/lecture2/index.html +++ b/lecture2/index.html @@ -562,7 +562,7 @@

GitHub task<
diff --git a/lecture3/index.html b/lecture3/index.html index 20f29d03..dff1d25f 100644 --- a/lecture3/index.html +++ b/lecture3/index.html @@ -444,7 +444,7 @@

Task 1

diff --git a/lecture4/index.html b/lecture4/index.html index 25ac0245..9120a47d 100644 --- a/lecture4/index.html +++ b/lecture4/index.html @@ -231,7 +231,7 @@

Task 3

diff --git a/lecture5/index.html b/lecture5/index.html index 1009b5af..264e0b14 100644 --- a/lecture5/index.html +++ b/lecture5/index.html @@ -399,7 +399,7 @@

Task 1

diff --git a/lecture6/index.html b/lecture6/index.html index 45cecc9a..56864a18 100644 --- a/lecture6/index.html +++ b/lecture6/index.html @@ -653,7 +653,7 @@

Edit this page on
- Last modified: September 11, 2024. Website built with Franklin.jl and the Julia programming language. + Last modified: September 16, 2024. Website built with Franklin.jl and the Julia programming language. diff --git a/lecture7/index.html b/lecture7/index.html index 72eb4053..4c6aa612 100644 --- a/lecture7/index.html +++ b/lecture7/index.html @@ -491,7 +491,7 @@

Tasks

diff --git a/lecture8/index.html b/lecture8/index.html index eaca6ec7..dacf5f2b 100644 --- a/lecture8/index.html +++ b/lecture8/index.html @@ -322,7 +322,7 @@

Task 6

diff --git a/lecture9/index.html b/lecture9/index.html index 1ce71440..d66cc140 100644 --- a/lecture9/index.html +++ b/lecture9/index.html @@ -421,7 +421,7 @@

Edit this page on
- Last modified: September 11, 2024. Website built with Franklin.jl and the Julia programming language. + Last modified: September 16, 2024. Website built with Franklin.jl and the Julia programming language. diff --git a/logistics/index.html b/logistics/index.html index 737f9029..ff5681c3 100644 --- a/logistics/index.html +++ b/logistics/index.html @@ -1 +1 @@ - Logistics

Logistics

Element chat Zoom Meeting ETHZ Moodle

Suggestion: Bookmark this page for easy access to all infos you need for the course.

Course structure

Each lecture contains material on physics, numerics, technical concepts, as well as exercises. The lecture content is outlined in its introduction using the following items for each type of content:

  • 📚 Physics: equations, discretisation, implementation, solver, visualisation

  • 💻 Code: technical, Julia, GitHub

  • 🚧 Exercises

The course will be taught in a hands-on fashion, putting emphasis on you writing code and completing exercises; lecturing will be kept at a minimum.

Lectures

Live lectures | Tuesdays 12h45-15h30

  • In person lectures will take place in HCI E8.

  • Online attendance will be possible on Zoom (ETH Students only - Password and password-less login available on Moodle).

  • Exercise session follow the lectures; they will not be broadcasted (no online support will be provided during the exercise session).

Office hours

Schedule to be defined (on Element/Zoom or in-person)

Discussion

We plan to use the Element-chat (https://chat.ethz.ch/) as the main communication channel for the course, both between the teachers and the students, and hopefully also between students. We encourage ETH students to ask course, exercises and technical questions there.

Head to the Course chat space (Element) link on Moodle to get started with Element:

  1. Select Start Student-Chat.

  2. Login using your NETHZ credentials to start using the browser-based client.

  3. Join "manually" the General and Helpdesk rooms.

  4. Download the Element Desktop/Mobile client for more comfortable access (less encryption-related issues).

Homework

Homework tasks will be announced after each week's lecture. The exercise session following the lecture will get you started.

Homework due date will be Wednesday 23h59 CET every following week (8 days) to allow for Q&A during the following in-class exercise session.

Homework assignments can be carried-out by groups of 2. However, note that every student has to hand in a personal version of the homework.

➡ Check out the Homework page for an overview on expected hand-in and deadlines.

Submission

  • Submission of notebooks (weeks 1 & 2), GitHub commit hash (or SHA) (week 3 and onwards) or other documents happens on the course's Moodle.

  • Actions and tasks related to GitHub will happen on your private course-related GitHub repository.

Starting from lecture 3 and onwards, the development of homework scripts happens on GitHub and you will have to submit the git commit hash (or SHA) on Moodle in the related git commit hash (SHA) submission activity.

Private GitHub repository setup

Once you have your GitHub account ready (see lecture 2 how-to), create a private repository you will share with the teaching staff only to upload your weekly assignments (scripts):

  1. Create a private GitHub repository named pde-on-gpu-<moodleprofilename>, where <moodleprofilename> has to be replaced by your name as displayed on Moodle, lowercase, diacritics removed, spacing replaced with hyphens (-). For example, if your Moodle profile name is "Joël Désirée van der Linde" your repository should be named pde-on-gpu-joel-desiree-van-der-linde.

  2. Select an MIT License and add a README.md file.

  3. Share this private repository on GitHub with the teaching-bot (https://github.com/teaching-bot).

  4. For each homework submission, you will:

    • create a git branch named homework-X (X [2...]\in [2-...]) and switch to that branch (git switch -c homework-X);

    • create a new folder named homework-X to put the exercise codes into;

    • (don't forget to git add the code-files and git commit them);

    • push to GitHub and open a pull request (PR) on the main branch on GitHub;

    • copy the single git commit hash (or SHA) of the final push and the link to the PR and submit both on Moodle as the assignment hand-in (it will serve to control the material was pushed on time);

    • (do not merge the PR yet).

⚠️ Warning!
Make sure to only include the homework-X folders and README.md in the GitHub repo you share with the exercise bot in order to keep the syncing as lightweight as possible.
💡 Note
For homework 3 and later, the respective folders on GitHub should be Julia projects and thus contain a Project.toml file. The Manifest.toml file should be kept local. An automated way of doing so is to add it as entry to a .gitignore file in the root of your repo. Mac users may also add .DS_Store to their .gitignore. Codes could be placed in a scripts/ folder. Output material to be displayed in the README.md could be placed in a docs/ folder.

Feedback

After the submission deadline, we will correct and grade your assignments. You will get personal feedback directly on the PR as well as on Moodle. Once you got feedback, please merge the PR.

We will try to correct your assignments before the lecture following the homework's deadline. This should allow you to get rapid feedback in order to clarify the points you may struggle on as soon as possible.

Project

Starting from lecture 7 (until lecture 9), homework contribute to the course's first project. The goal of this project is to have a multi-xPU thermal porous convection solver in 3D.

🚧 More infos to come in due time.

Evaluation

Enrolled ETHZ students will have to hand in on Moodle (& GitHub):

  1. 5 (out of 6) weekly assignments (30% of the final grade) during the course's Part 1. Weekly coding exercises can be done alone or in groups of two.

  2. A project during Part 2 (35% of the final grade). Projects submission includes codes in a git repository and an automatic generated documentation.

  3. A final project during Part 3 (35% of the final grade). Final projects submission includes codes in a git repository and an automatic generated documentation.

\ No newline at end of file + Logistics

Logistics

Element chat Zoom Meeting ETHZ Moodle

Suggestion: Bookmark this page for easy access to all infos you need for the course.

Course structure

Each lecture contains material on physics, numerics, technical concepts, as well as exercises. The lecture content is outlined in its introduction using the following items for each type of content:

  • 📚 Physics: equations, discretisation, implementation, solver, visualisation

  • 💻 Code: technical, Julia, GitHub

  • 🚧 Exercises

The course will be taught in a hands-on fashion, putting emphasis on you writing code and completing exercises; lecturing will be kept at a minimum.

Lectures

Live lectures | Tuesdays 12h45-15h30

  • In person lectures will take place in HCI E8.

  • Online attendance will be possible on Zoom (ETH Students only - Password and password-less login available on Moodle).

  • Exercise session follow the lectures; they will not be broadcasted (no online support will be provided during the exercise session).

Office hours

Schedule to be defined (on Element/Zoom or in-person)

Discussion

We plan to use the Element-chat (https://chat.ethz.ch/) as the main communication channel for the course, both between the teachers and the students, and hopefully also between students. We encourage ETH students to ask course, exercises and technical questions there.

Head to the Course chat space (Element) link on Moodle to get started with Element:

  1. Select Start Student-Chat.

  2. Login using your NETHZ credentials to start using the browser-based client.

  3. Join "manually" the General and Helpdesk rooms.

  4. Download the Element Desktop/Mobile client for more comfortable access (less encryption-related issues).

Homework

Homework tasks will be announced after each week's lecture. The exercise session following the lecture will get you started.

Homework due date will be Wednesday 23h59 CET every following week (8 days) to allow for Q&A during the following in-class exercise session.

Homework assignments can be carried-out by groups of 2. However, note that every student has to hand in a personal version of the homework.

➡ Check out the Homework page for an overview on expected hand-in and deadlines.

Submission

  • Submission of notebooks (weeks 1 & 2), GitHub commit hash (or SHA) (week 3 and onwards) or other documents happens on the course's Moodle.

  • Actions and tasks related to GitHub will happen on your private course-related GitHub repository.

Starting from lecture 3 and onwards, the development of homework scripts happens on GitHub and you will have to submit the git commit hash (or SHA) on Moodle in the related git commit hash (SHA) submission activity.

Private GitHub repository setup

Once you have your GitHub account ready (see lecture 2 how-to), create a private repository you will share with the teaching staff only to upload your weekly assignments (scripts):

  1. Create a private GitHub repository named pde-on-gpu-<moodleprofilename>, where <moodleprofilename> has to be replaced by your name as displayed on Moodle, lowercase, diacritics removed, spacing replaced with hyphens (-). For example, if your Moodle profile name is "Joël Désirée van der Linde" your repository should be named pde-on-gpu-joel-desiree-van-der-linde.

  2. Select an MIT License and add a README.md file.

  3. Share this private repository on GitHub with the teaching-bot (https://github.com/teaching-bot).

  4. For each homework submission, you will:

    • create a git branch named homework-X (X [2...]\in [2-...]) and switch to that branch (git switch -c homework-X);

    • create a new folder named homework-X to put the exercise codes into;

    • (don't forget to git add the code-files and git commit them);

    • push to GitHub and open a pull request (PR) on the main branch on GitHub;

    • copy the single git commit hash (or SHA) of the final push and the link to the PR and submit both on Moodle as the assignment hand-in (it will serve to control the material was pushed on time);

    • (do not merge the PR yet).

⚠️ Warning!
Make sure to only include the homework-X folders and README.md in the GitHub repo you share with the exercise bot in order to keep the syncing as lightweight as possible.
💡 Note
For homework 3 and later, the respective folders on GitHub should be Julia projects and thus contain a Project.toml file. The Manifest.toml file should be kept local. An automated way of doing so is to add it as entry to a .gitignore file in the root of your repo. Mac users may also add .DS_Store to their .gitignore. Codes could be placed in a scripts/ folder. Output material to be displayed in the README.md could be placed in a docs/ folder.

Feedback

After the submission deadline, we will correct and grade your assignments. You will get personal feedback directly on the PR as well as on Moodle. Once you got feedback, please merge the PR.

We will try to correct your assignments before the lecture following the homework's deadline. This should allow you to get rapid feedback in order to clarify the points you may struggle on as soon as possible.

Project

Starting from lecture 7 (until lecture 9), homework contribute to the course's first project. The goal of this project is to have a multi-xPU thermal porous convection solver in 3D.

🚧 More infos to come in due time.

Evaluation

Enrolled ETHZ students will have to hand in on Moodle (& GitHub):

  1. 5 (out of 6) weekly assignments (30% of the final grade) during the course's Part 1. Weekly coding exercises can be done alone or in groups of two.

  2. A project during Part 2 (35% of the final grade). Projects submission includes codes in a git repository and an automatic generated documentation.

  3. A final project during Part 3 (35% of the final grade). Final projects submission includes codes in a git repository and an automatic generated documentation.

\ No newline at end of file diff --git a/search/index.html b/search/index.html index 57ff9557..9fe56004 100644 --- a/search/index.html +++ b/search/index.html @@ -1 +1 @@ - Search ⋅ YourWebsite

Number of results found:

\ No newline at end of file + Search ⋅ YourWebsite

Number of results found:

\ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index 938e5e61..1d2c4f2b 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -3,103 +3,103 @@ https://pde-on-gpu.vaw.ethz.ch/lecture6/index.html - 2024-09-11 + 2024-09-16 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/lecture4/index.html - 2024-09-11 + 2024-09-16 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/lecture2/index.html - 2024-09-11 + 2024-09-16 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/lecture8/index.html - 2024-09-11 + 2024-09-16 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/software_install/index.html - 2024-09-11 + 2024-09-16 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/logistics/index.html - 2024-09-11 + 2024-09-16 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/lecture3/index.html - 2024-09-11 + 2024-09-16 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/lecture10/index.html - 2024-09-11 + 2024-09-16 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/homework/index.html - 2024-09-11 + 2024-09-16 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/lecture1/index.html - 2024-09-11 + 2024-09-16 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/search/index.html - 2024-09-11 + 2024-09-16 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/final_proj/index.html - 2024-09-11 + 2024-09-16 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/extras/index.html - 2024-09-11 + 2024-09-16 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/lecture5/index.html - 2024-09-11 + 2024-09-16 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/lecture7/index.html - 2024-09-11 + 2024-09-16 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/lecture9/index.html - 2024-09-11 + 2024-09-16 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/index.html - 2024-09-11 + 2024-09-16 monthly 0.5 diff --git a/software_install/index.html b/software_install/index.html index 8ef7c93d..a0ef5131 100644 --- a/software_install/index.html +++ b/software_install/index.html @@ -1,4 +1,4 @@ - Software install

Software install

Opening and running the Jupyter Julia notebook

Course slides and lecture material

All the course slides are Jupyter notebooks; browser-based computational notebooks.

Code cells are executed by putting the cursor into the cell and hitting shift + enter. For more info see the documentation.

Exercises and homework

The first two lecture's homework assignments will be Jupyter notebooks. You can import the notebooks from Moodle into your JupyterHub space. You can execute them on the JupyterHub or download them and run them them locally if you're already set-up.

For submission, you can directly submit the folder containing all notebooks of a lecture from within the JupyterHub/Moodle integration. From the homework task on Moodle, you should be able to launch the notebooks in your JupyterHub. Once the homework completed, you should be able to see the folders you have worked on from your JupyterHub within the submission steps on Moodle. See Logistics and Homework for details.

Starting from lecture 3, exercise scripts will be mostly standalone regular Julia scripts that have to be uploaded to your private GitHub repo (shared with the teaching staff only). Details in Logistics.

JupyterHub

You can access the JupyterHub from the General section in Moodle, clicking on JupyterHub

Upon login to the server, you should see the following launcher environment, including a notebook (file) browser, ability to create a notebook, launch a Julia console (REPL), or a regular terminal.

JupyterHub

⚠️ Warning!
It is recommended to download your work as back-up before leaving the session.

Installing Julia v1.10 (or later)

Juliaup installer

Follow the instructions from the Julia Download page to install Julia v1.10 (which is using the Juliaup Julia installer under the hood).

💡 Note
For Windows users: When installing Julia 1.10 on Windows, make sure to check the "Add PATH" tick or ensure Julia is on PATH (see [help]). Julia's REPL has a built-in shell mode you can access typing ; that natively works on Unix-based systems. On Windows, you can access the Windows shell by typing Powershell within the shell mode, and exit it typing exit, as described here.

Terminal + external editor

Ensure you have a text editor with syntax highlighting support for Julia. Sublime Text and Atom can be recommended.

From within the terminal, type

julia
+ Software install

Software install

Opening and running the Jupyter Julia notebook

Course slides and lecture material

All the course slides are Jupyter notebooks; browser-based computational notebooks.

Code cells are executed by putting the cursor into the cell and hitting shift + enter. For more info see the documentation.

Exercises and homework

The first two lecture's homework assignments will be Jupyter notebooks. You can import the notebooks from Moodle into your JupyterHub space. You can execute them on the JupyterHub or download them and run them them locally if you're already set-up.

For submission, you can directly submit the folder containing all notebooks of a lecture from within the JupyterHub/Moodle integration. From the homework task on Moodle, you should be able to launch the notebooks in your JupyterHub. Once the homework completed, you should be able to see the folders you have worked on from your JupyterHub within the submission steps on Moodle. See Logistics and Homework for details.

Starting from lecture 3, exercise scripts will be mostly standalone regular Julia scripts that have to be uploaded to your private GitHub repo (shared with the teaching staff only). Details in Logistics.

JupyterHub

You can access the JupyterHub from the General section in Moodle, clicking on JupyterHub

Upon login to the server, you should see the following launcher environment, including a notebook (file) browser, ability to create a notebook, launch a Julia console (REPL), or a regular terminal.

JupyterHub

⚠️ Warning!
It is recommended to download your work as back-up before leaving the session.

Installing Julia v1.10 (or later)

Juliaup installer

Follow the instructions from the Julia Download page to install Julia v1.10 (which is using the Juliaup Julia installer under the hood).

💡 Note
For Windows users: When installing Julia 1.10 on Windows, make sure to check the "Add PATH" tick or ensure Julia is on PATH (see [help]). Julia's REPL has a built-in shell mode you can access typing ; that natively works on Unix-based systems. On Windows, you can access the Windows shell by typing Powershell within the shell mode, and exit it typing exit, as described here.

Terminal + external editor

Ensure you have a text editor with syntax highlighting support for Julia. Sublime Text and Atom can be recommended.

From within the terminal, type

julia

to make sure that the Julia REPL (aka terminal) starts. Then you should be able to add 1+1 and verify you get the expected result. Exit with Ctrl-d.

Julia from Terminal

VS Code

@@ -103,7 +103,7 @@

Julia on GPU