From e2a6a03d31a5ed64b5b0f6a8a46b6fbd02e6c854 Mon Sep 17 00:00:00 2001 From: mauro3 Date: Tue, 7 Nov 2023 10:49:26 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=2054c61?= =?UTF-8?q?05b457d542425ff189df4c9117effb0c8bb=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 404.html | 2 +- extras/index.html | 2 +- final_proj/index.html | 2 +- homework/index.html | 2 +- index.html | 2 +- lecture1/index.html | 2 +- lecture10/index.html | 2 +- lecture2/index.html | 2 +- lecture3/index.html | 2 +- lecture4/index.html | 2 +- lecture5/index.html | 2 +- lecture6/index.html | 2 +- lecture7/index.html | 2 +- lecture8/index.html | 2 +- lecture9/index.html | 2 +- logistics/index.html | 2 +- search/index.html | 2 +- sitemap.xml | 34 +++++++++++++++++----------------- software_install/index.html | 2 +- 19 files changed, 35 insertions(+), 35 deletions(-) diff --git a/404.html b/404.html index 15bc1641..c7c7db85 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/extras/index.html b/extras/index.html index aa9e772a..4efd3f91 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 c94c3449..b1a5a0e8 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.

Topics

Selecting a project of your choice among 3 possible directions (A/, B/ or C/):

A. Solving one of the proposed PDE's

  1. Multi-GPU Navier-Stokes in 3D

Implement simple Navier-Stokes solver using Chorin's projection method and advection based on the method of characteristics. For the projection step, you'll implement a Poisson solver for the pressure. You could use the pseudo-transient solver from class or write your own. Examples would be the multigrid solvers or Fourier-transform-based spectral solvers. The only requirement is that your solver has to work on GPU and scale (reasonably) well. Feel free to take inspiration in the 2D reference implementation developed last year.

  1. Free convection simulation

Use the ParallelStencil.jl miniapp as a starting point to implement your own 3D multi-GPU thermo-mechanical convection solver (lava-lamp).

  1. Water circulation in saline aquifers.

This project share many similarities with the the thermal porous convection. The main difference is that density variations are not due to temperature, but to variable concentration of salt dissolved in the water.

  1. Hydro-mechanical flow localisation

Use the ParallelStencil.jl miniapp as a starting point to implement your own 3D multi-GPU hydro-mechanical "two-phase flow" solver to capture the formation and propagation of solitary waves of porosity.

  1. Wave physics

Elastic wave propagation is central in computational seismology as it allows to "image" the subsurface. It has also application far beyond geosciences. Implement your 3D elastic wave solver using, e.g., as starting point the acoustic wave solver from the ParallelStencil.jl miniapp miniapp.

B. Advanced optimisations

If you are interested in GPU code optimisation, you can go through the advanced optimisation material (Lecture 10) and, e.g., add shared memory support and manual register queuing to accelerate the 3D thermal porous convection solver from the class or select among the ParallelStencil.jl miniapp miniapps.

C. Solving PDEs you have some interest in

Show your creativity by coming up with your own problem that could be modelled using PDEs (e.g. related to another project or future study/research direction of yours). We’ll do our best to help you implementing it. Relativistic MHD? Phase separation in alloys? Electromagnetic waves propagation? Spectral methods for PDEs? Name your own! Ideally, come with papers and equations related to it.

Getting started with the final projects

Head to Logistics in order to find infos on getting started and submission.

\ 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.

Topics

Selecting a project of your choice among 3 possible directions (A/, B/ or C/):

A. Solving one of the proposed PDE's

  1. Multi-GPU Navier-Stokes in 3D

Implement simple Navier-Stokes solver using Chorin's projection method and advection based on the method of characteristics. For the projection step, you'll implement a Poisson solver for the pressure. You could use the pseudo-transient solver from class or write your own. Examples would be the multigrid solvers or Fourier-transform-based spectral solvers. The only requirement is that your solver has to work on GPU and scale (reasonably) well. Feel free to take inspiration in the 2D reference implementation developed last year.

  1. Free convection simulation

Use the ParallelStencil.jl miniapp as a starting point to implement your own 3D multi-GPU thermo-mechanical convection solver (lava-lamp).

  1. Water circulation in saline aquifers.

This project share many similarities with the the thermal porous convection. The main difference is that density variations are not due to temperature, but to variable concentration of salt dissolved in the water.

  1. Hydro-mechanical flow localisation

Use the ParallelStencil.jl miniapp as a starting point to implement your own 3D multi-GPU hydro-mechanical "two-phase flow" solver to capture the formation and propagation of solitary waves of porosity.

  1. Wave physics

Elastic wave propagation is central in computational seismology as it allows to "image" the subsurface. It has also application far beyond geosciences. Implement your 3D elastic wave solver using, e.g., as starting point the acoustic wave solver from the ParallelStencil.jl miniapp miniapp.

B. Advanced optimisations

If you are interested in GPU code optimisation, you can go through the advanced optimisation material (Lecture 10) and, e.g., add shared memory support and manual register queuing to accelerate the 3D thermal porous convection solver from the class or select among the ParallelStencil.jl miniapp miniapps.

C. Solving PDEs you have some interest in

Show your creativity by coming up with your own problem that could be modelled using PDEs (e.g. related to another project or future study/research direction of yours). We’ll do our best to help you implementing it. Relativistic MHD? Phase separation in alloys? Electromagnetic waves propagation? Spectral methods for PDEs? Name your own! Ideally, come with papers and equations related to it.

Getting started with the final projects

Head to Logistics in order to find infos on getting started and submission.

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

Homework

AssignmentDue dateSubmissionNotes
Lect. 127.09.2023 - 23h59 CETMoodleSubmit a folder containing all exercise notebooks from JupyterHub.
Lect. 204.10.2023 - 23h59 CETMoodle (notebooks), Moodle (commit hash + PR)For the notebooks submission, submit a folder containing all exercise notebooks from JupyterHub. For the commit hash + PR submission, copy the git commit hash (SHA) of the final push on the branch homework-2 and open a pull request on the main branch. Paste both the commit hash and the PR link on Moodle (check Logistics for more details on how to set up the GitHub repository).
Lect. 311.10.2023 - 23h59 CETMoodle (commit hash + PR)For the submission, copy the git commit hash (SHA) of the final push on the branch homework-3 and open a pull request on the main branch. Paste both the SHA and the PR link on Moodle.
Lect. 418.10.2023 - 23h59 CETMoodle (commit hash + PR)For the submission, copy the git commit hash (SHA) of the final push on the branch homework-4 and open a pull request on the main branch. Paste both the SHA and the PR link on Moodle.
Lect. 525.10.2023 - 23h59 CETMoodle (commit hash + PR)For the submission, copy the git commit hash (SHA) of the final push on the branch homework-5 and open a pull request on the main branch. Paste both the SHA and the PR link on Moodle.
Lect. 601.11.2023 - 23h59 CETMoodle (commit hash + PR)For the submission, copy the git commit hash (SHA) of the final push on the branch homework-6 and open a pull request on the main branch. Paste both the SHA and the PR link on Moodle.
Lect. 708.11.2023 - 23h59 CETMoodle (commit hash + PR)For the submission, copy the git commit hash (SHA) of the final push on the branch homework-7 and open a pull request on the main branch. Paste both the SHA and the PR link on Moodle.
Lect. 8
Lect. 9
\ No newline at end of file + Homework

Homework

AssignmentDue dateSubmissionNotes
Lect. 127.09.2023 - 23h59 CETMoodleSubmit a folder containing all exercise notebooks from JupyterHub.
Lect. 204.10.2023 - 23h59 CETMoodle (notebooks), Moodle (commit hash + PR)For the notebooks submission, submit a folder containing all exercise notebooks from JupyterHub. For the commit hash + PR submission, copy the git commit hash (SHA) of the final push on the branch homework-2 and open a pull request on the main branch. Paste both the commit hash and the PR link on Moodle (check Logistics for more details on how to set up the GitHub repository).
Lect. 311.10.2023 - 23h59 CETMoodle (commit hash + PR)For the submission, copy the git commit hash (SHA) of the final push on the branch homework-3 and open a pull request on the main branch. Paste both the SHA and the PR link on Moodle.
Lect. 418.10.2023 - 23h59 CETMoodle (commit hash + PR)For the submission, copy the git commit hash (SHA) of the final push on the branch homework-4 and open a pull request on the main branch. Paste both the SHA and the PR link on Moodle.
Lect. 525.10.2023 - 23h59 CETMoodle (commit hash + PR)For the submission, copy the git commit hash (SHA) of the final push on the branch homework-5 and open a pull request on the main branch. Paste both the SHA and the PR link on Moodle.
Lect. 601.11.2023 - 23h59 CETMoodle (commit hash + PR)For the submission, copy the git commit hash (SHA) of the final push on the branch homework-6 and open a pull request on the main branch. Paste both the SHA and the PR link on Moodle.
Lect. 708.11.2023 - 23h59 CETMoodle (commit hash + PR)For the submission, copy the git commit hash (SHA) of the final push on the branch homework-7 and open a pull request on the main branch. Paste both the SHA and the PR link on Moodle.
Lect. 8
Lect. 9
\ No newline at end of file diff --git a/index.html b/index.html index 6124e2e0..af2c110c 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: 2023 edition starts Tuesday Sept. 19, 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

  • Part 1 Introducing Julia & PDEs

    • The Julia language: hands-on

    • Solving physical processes: advection, reaction, diffusion & wave propagation

    • Spatial and temporal discretisation: finite-differences and explicit time-stepping

    • Software development tools: Git, Continuous Integration

  • Part 2 Solving PDEs on GPUs

    • Steady-state, implicit & nonlinear solutions

    • Efficient iterative algorithms

    • Parallel and GPU computing

    • Simulation performance limiters

  • Part 3 Projects

    Multi-GPU computing and optimisations

    • xPU computing

    • Distributed computing

    • Advanced optimisations

  • Final projects

    Solve a solid mechanics or fluid dynamics problem of your interest, such as:

    • the shallow water / ice equation

    • acoustic wave propagation, nonlinear diffusion

    • viscous flow or elastic deformation

    • viscous or elastic poromechanics

    • frictional heating

    • Navier-Stokes equations

Detailed content is available on ETHZ course catalogue

Course 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: 2023 edition starts Tuesday Sept. 19, 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

  • Part 1 Introducing Julia & PDEs

    • The Julia language: hands-on

    • Solving physical processes: advection, reaction, diffusion & wave propagation

    • Spatial and temporal discretisation: finite-differences and explicit time-stepping

    • Software development tools: Git, Continuous Integration

  • Part 2 Solving PDEs on GPUs

    • Steady-state, implicit & nonlinear solutions

    • Efficient iterative algorithms

    • Parallel and GPU computing

    • Simulation performance limiters

  • Part 3 Projects

    Multi-GPU computing and optimisations

    • xPU computing

    • Distributed computing

    • Advanced optimisations

  • Final projects

    Solve a solid mechanics or fluid dynamics problem of your interest, such as:

    • the shallow water / ice equation

    • acoustic wave propagation, nonlinear diffusion

    • viscous flow or elastic deformation

    • viscous or elastic poromechanics

    • frictional heating

    • Navier-Stokes equations

Detailed content is available on ETHZ course catalogue

Course 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 aa9d92a3..9fdfa6bb 100644 --- a/lecture1/index.html +++ b/lecture1/index.html @@ -728,7 +728,7 @@

Question 2 diff --git a/lecture10/index.html b/lecture10/index.html index f7dd2b67..34a1ed09 100644 --- a/lecture10/index.html +++ b/lecture10/index.html @@ -417,7 +417,7 @@

Edit this page on
- Last modified: November 06, 2023. Website built with Franklin.jl and the Julia programming language. + Last modified: November 07, 2023. Website built with Franklin.jl and the Julia programming language. diff --git a/lecture2/index.html b/lecture2/index.html index 84a1ba94..406a85f4 100644 --- a/lecture2/index.html +++ b/lecture2/index.html @@ -565,7 +565,7 @@

GitHub task<
diff --git a/lecture3/index.html b/lecture3/index.html index 8ace748f..8a7a5252 100644 --- a/lecture3/index.html +++ b/lecture3/index.html @@ -445,7 +445,7 @@

Task 1

diff --git a/lecture4/index.html b/lecture4/index.html index fd497f0a..5b7a2e07 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 5565935a..cab9c5a7 100644 --- a/lecture5/index.html +++ b/lecture5/index.html @@ -414,7 +414,7 @@

Task 1

diff --git a/lecture6/index.html b/lecture6/index.html index ed7e4678..8378da6b 100644 --- a/lecture6/index.html +++ b/lecture6/index.html @@ -661,7 +661,7 @@

Edit this page on
- Last modified: November 06, 2023. Website built with Franklin.jl and the Julia programming language. + Last modified: November 07, 2023. Website built with Franklin.jl and the Julia programming language. diff --git a/lecture7/index.html b/lecture7/index.html index 694d10d9..cd62b1c6 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 4ccd022c..d2a539d3 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 fdba36e1..34826dd2 100644 --- a/lecture9/index.html +++ b/lecture9/index.html @@ -480,7 +480,7 @@

Edit this page on
- Last modified: November 06, 2023. Website built with Franklin.jl and the Julia programming language. + Last modified: November 07, 2023. Website built with Franklin.jl and the Julia programming language. diff --git a/logistics/index.html b/logistics/index.html index fcae92f0..7d580dd7 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 the General and Helpdesk rooms (you may see an error upon accessing the rooms - refreshing the app should solve the issue).

  4. Download the Element Desktop/Mobile client for more comfortable access.

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.

The exercises in lecture 7 will serve as starting point for the first project:

  1. Within your pde-on-gpu-<moodleprofilename> folder, copy over the PorousConvection you can find in the l7_project_template folder within the scripts folder. Make sure to copy the entire folder as not to loose the hidden files.

  2. Follow the specific instructions given in Lecture 7 - infos about projects.

  3. During lectures 7 and 9 you will be asked to add material to the PorousConvection folder as part of regular homework hand-in which will serve as evaluation for the Part 2 (35% of the final grade) (see Evaluation section).

Project hand-in checklist

The project submission deadline is set to 01.12.2023 - 23h59 CET (see also Homework). The final GitHub SHA has to be added to Moodle in the Lecture 9 section.

Make sure to have following items in your private GitHub repository:

  • a PorousConvection folder containing the structure proposed in Lecture 7

  • the 2D and 3D scripts from Lecture 7

  • the CI set-up to test the 2D and 3D porous convection scripts

  • a lecture_8 folder (different from the PorousConvection folder) containing the codes, README.md and material listed in Exercises - Lecture 8

  • the 3D multi-xPU thermal porous convection script and output as per directions from Exercises - Lecture 9.

In addition enhance the README.md within the PorousConvection folder to include:

  • a short motivation/introduction

  • concise information about the equations you are solving

  • concise information about the numerical method and implementation

  • the results, incl. figures with labels, captions, etc...

  • a short discussion/conclusion section about the performed work, results, and outlook

Note that for evaluation will be considered the following (non-exhaustive) items: code correctness, style, and conciseness; implementation of demanded tasks; final layout and rendering, ...

Final project

For information about topics for the final project, head to Information about final projects page.

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 the General and Helpdesk rooms (you may see an error upon accessing the rooms - refreshing the app should solve the issue).

  4. Download the Element Desktop/Mobile client for more comfortable access.

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.

The exercises in lecture 7 will serve as starting point for the first project:

  1. Within your pde-on-gpu-<moodleprofilename> folder, copy over the PorousConvection you can find in the l7_project_template folder within the scripts folder. Make sure to copy the entire folder as not to loose the hidden files.

  2. Follow the specific instructions given in Lecture 7 - infos about projects.

  3. During lectures 7 and 9 you will be asked to add material to the PorousConvection folder as part of regular homework hand-in which will serve as evaluation for the Part 2 (35% of the final grade) (see Evaluation section).

Project hand-in checklist

The project submission deadline is set to 01.12.2023 - 23h59 CET (see also Homework). The final GitHub SHA has to be added to Moodle in the Lecture 9 section.

Make sure to have following items in your private GitHub repository:

  • a PorousConvection folder containing the structure proposed in Lecture 7

  • the 2D and 3D scripts from Lecture 7

  • the CI set-up to test the 2D and 3D porous convection scripts

  • a lecture_8 folder (different from the PorousConvection folder) containing the codes, README.md and material listed in Exercises - Lecture 8

  • the 3D multi-xPU thermal porous convection script and output as per directions from Exercises - Lecture 9.

In addition enhance the README.md within the PorousConvection folder to include:

  • a short motivation/introduction

  • concise information about the equations you are solving

  • concise information about the numerical method and implementation

  • the results, incl. figures with labels, captions, etc...

  • a short discussion/conclusion section about the performed work, results, and outlook

Note that for evaluation will be considered the following (non-exhaustive) items: code correctness, style, and conciseness; implementation of demanded tasks; final layout and rendering, ...

Final project

For information about topics for the final project, head to Information about final projects page.

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 5ab5c634..86556833 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 259ca0aa..91dfddd3 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -3,103 +3,103 @@ https://pde-on-gpu.vaw.ethz.ch/lecture6/index.html - 2023-11-06 + 2023-11-07 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/lecture4/index.html - 2023-11-06 + 2023-11-07 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/lecture2/index.html - 2023-11-06 + 2023-11-07 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/lecture8/index.html - 2023-11-06 + 2023-11-07 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/software_install/index.html - 2023-11-06 + 2023-11-07 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/logistics/index.html - 2023-11-06 + 2023-11-07 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/lecture3/index.html - 2023-11-06 + 2023-11-07 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/lecture10/index.html - 2023-11-06 + 2023-11-07 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/homework/index.html - 2023-11-06 + 2023-11-07 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/lecture1/index.html - 2023-11-06 + 2023-11-07 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/search/index.html - 2023-11-06 + 2023-11-07 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/final_proj/index.html - 2023-11-06 + 2023-11-07 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/extras/index.html - 2023-11-06 + 2023-11-07 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/lecture5/index.html - 2023-11-06 + 2023-11-07 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/lecture7/index.html - 2023-11-06 + 2023-11-07 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/lecture9/index.html - 2023-11-06 + 2023-11-07 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/index.html - 2023-11-06 + 2023-11-07 monthly 0.5 diff --git a/software_install/index.html b/software_install/index.html index ec5b7119..9a9bd0d0 100644 --- a/software_install/index.html +++ b/software_install/index.html @@ -393,7 +393,7 @@