From 05930f182ac910e770388357c5e07292b67ae2a6 Mon Sep 17 00:00:00 2001 From: luraess <61313342+luraess@users.noreply.github.com> Date: Sun, 17 Sep 2023 18:44:53 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=205905d?= =?UTF-8?q?9e87d1f6f598649b4f0d13a9600e18ec30b=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 404.html | 2 +- assets/literate/l1_1-admin_web.md | 4 +-- assets/literate/l1_3-julia-intro_web.md | 2 +- extras/index.html | 2 +- final_proj/index.html | 2 +- homework/index.html | 2 +- index.html | 2 +- lecture1/index.html | 6 ++--- 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 +- 21 files changed, 40 insertions(+), 40 deletions(-) diff --git a/404.html b/404.html index 80c1b69c..17ee4fd2 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/assets/literate/l1_1-admin_web.md b/assets/literate/l1_1-admin_web.md index c72e6836..f7187a8c 100644 --- a/assets/literate/l1_1-admin_web.md +++ b/assets/literate/l1_1-admin_web.md @@ -43,7 +43,7 @@ Join [Element (https://chat.ethz.ch/)](https://chat.ethz.ch/) by logging in with Bring your laptop to all lectures! -- Who has access to an Nvidia GPU? +- Who has access to an Nvidia / AMD GPU? - What operating system are you on? In the first few lecture we will use JupyterHub (accessible within Moodle) to get you started. Later we plan to get you all setup with a personal Julia installation. @@ -55,6 +55,6 @@ In the first few lecture we will use JupyterHub (accessible within Moodle) to ge If some important info is missing, ping us so we can add it or make a PR. -> **Suggestion:**\ +> **Suggestion:** \ > Bookmark [https://pde-on-gpu.vaw.ethz.ch](hhttps://pde-on-gpu.vaw.ethz.ch) diff --git a/assets/literate/l1_3-julia-intro_web.md b/assets/literate/l1_3-julia-intro_web.md index 7b071ce1..df3aba56 100644 --- a/assets/literate/l1_3-julia-intro_web.md +++ b/assets/literate/l1_3-julia-intro_web.md @@ -656,7 +656,7 @@ plot( (1:10).^2 ) All public Julia packages are listed on [https://juliahub.com/ui/Packages](https://juliahub.com/ui/Packages). You can install a package, say `UnPack.jl` by -``` +```julia-repl using Pkg Pkg.add("UnPack.jl") using UnPack diff --git a/extras/index.html b/extras/index.html index 3ae58f70..2a06ea06 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 36adf144..c05414d2 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 6031ecdf..eab17848 100644 --- a/homework/index.html +++ b/homework/index.html @@ -1 +1 @@ - Homework

Homework

AssignmentDue dateSubmissionNotes
Lect. 127.09.2023 - 23h59 CET
Lect. 204.10.2023 - 23h59 CET
Lect. 311.10.2023 - 23h59 CET
Lect. 418.10.2023 - 23h59 CET
Lect. 525.10.2023 - 23h59 CET
Lect. 601.11.2023 - 23h59 CET
Lect. 7
Lect. 8
Lect. 9
\ No newline at end of file + Homework

Homework

AssignmentDue dateSubmissionNotes
Lect. 127.09.2023 - 23h59 CET
Lect. 204.10.2023 - 23h59 CET
Lect. 311.10.2023 - 23h59 CET
Lect. 418.10.2023 - 23h59 CET
Lect. 525.10.2023 - 23h59 CET
Lect. 601.11.2023 - 23h59 CET
Lect. 7
Lect. 8
Lect. 9
\ No newline at end of file diff --git a/index.html b/index.html index a8ca777e..d27b9069 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

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

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 b2c8f1df..58bf43fe 100644 --- a/lecture1/index.html +++ b/lecture1/index.html @@ -1,4 +1,4 @@ - Lecture 1

Lecture 1

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

Agenda
💡 Welcome words & The small print
📚 Why GPU computing
💻 Intro to Julia
🚧 Exercises:

  • Numerical solutions

  • Predictive modelling

  • Visualisation


Content

👉 get started with exercises

💡 Note
This week's homework have to be handed in as Jupyter notebook. See here for details.

\(\texttt{The small print of}\)

Solving partial differential equations in parallel on GPUs

The Team

Logistics

All you need should be available on the course website:
https://pde-on-gpu.vaw.ethz.ch

If something is missing, ping us so we can add it (or even better do a pull request
at https://github.com/eth-vaw-glaciology/course-101-0250-00/)

Let's have a brief tour of the course website

Discussion & help

We use the Element-chat as the main communication channel for the course, both between the teachers and the student, and hopefully also between students.

Join Element (https://chat.ethz.ch/) by logging in with you NETHZ username & password.

Grading

Computing

Bring your laptop to all lectures!

In the first few lecture we will use JupyterHub (accessible within Moodle) to get you started. Later we plan to get you all setup with a personal Julia installation.

Summary

If some important info is missing, ping us so we can add it or make a PR.

Suggestion:
Bookmark https://pde-on-gpu.vaw.ethz.ch

back to Content

Why solve PDEs on GPUs? & The tool for the job

Why solve PDEs on GPUs?

A brief intro about GPU computing:

Propaganda

Why we do it

Predict the evolution of natural and engineered systems.

ice2

e.g. ice cap evolution, stress distribution, etc...

Physical processes that describe those systems are complex and often nonlinear

👉 a numerical approach is required to solve the mathematical model

A numerical solution means solving a system of (coupled) differential equations

\[ \mathbf{mathematical ~ model ~ → ~ discretisation ~ → ~ solution}\\ \frac{∂C}{∂t} = ... ~ → ~ \frac{\texttt{C}^{i+1} - \texttt{C}^{i}}{\texttt{∆t}} = ... ~ → ~ \texttt{C} = \texttt{C} + \texttt{∆t} \cdot ... \]

Solving PDEs is computationally demanding

\[ \frac{∂C}{∂t} = -\frac{(C-C_{eq})}{ξ} \]

but...

\[ \frac{∂C}{∂t} = D~ \left(\frac{∂^2C}{∂x^2} + \frac{∂^2C}{∂y^2} \right) \]

Computational costs increase

Use parallel computing to address this:

mem_wall

GPUs are massively parallel devices

cpu_gpu_evo

👉 We are memory bound: requires to re-think the numerical implementation and solution strategies

Why it is cool

julia-gpu

GPU are cool

perf_gpu

titan_node

Julia is cool

Solution to the "two-language problem"

two_lang

Backend agnostic:

Interactive:

Examples from current research

back to Content

Tool for the job: introduction to Julia

julia-logo

Aside 1: Jupyter Notebooks

These slides are a Jupyter notebook; a browser-based computational notebook.

💡 Note
You can follow the lecture along live from the Moodle-based JupyterHub server.

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

Aside 2: What is your previous programming experience?

  1. Julia

  2. Matlab, Python, Octave, R, ...

  3. C, Fortran, ...

  4. Pascal, Java, C++, ...

  5. Lisp, Haskell, ...

  6. Assembler

  7. Coq, Brainfuck, ...

Google survey link

The Julia programming language

Julia is a modern, interactive, and high performance programming language. It's a general purpose language with a bend on technical computing.

julia-logo

What does Julia look like

An example solving the Lorenz system of ODEs:

using OrdinaryDiffEq, Plots
+              Lecture 1   

Lecture 1

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

Agenda
💡 Welcome words & The small print
📚 Why GPU computing
💻 Intro to Julia
🚧 Exercises:

  • Numerical solutions

  • Predictive modelling

  • Visualisation


Content

👉 get started with exercises

💡 Note
This week's homework have to be handed in as Jupyter notebook. See here for details.

\(\texttt{The small print of}\)

Solving partial differential equations in parallel on GPUs

The Team

  • Ludovic Räss – the good

  • Ivan Utkin – the pro

  • Samuel Omlin – the bad

  • Mauro Werder – the ugly

  • Giacomo Aloisi (Teaching Assistant)

Logistics

All you need should be available on the course website:
https://pde-on-gpu.vaw.ethz.ch

If something is missing, ping us so we can add it (or even better do a pull request
at https://github.com/eth-vaw-glaciology/course-101-0250-00/)

Let's have a brief tour of the course website

Discussion & help

We use the Element-chat as the main communication channel for the course, both between the teachers and the student, and hopefully also between students.

Join Element (https://chat.ethz.ch/) by logging in with you NETHZ username & password.

  • Login link is available on Moodle.

  • Join the General (course infos) and Helpdesk (exercises Q&A) rooms.

Grading

  • Weekly exercises 5 (out of 6) as homework (alone or groups of 2) 30%

  • Consolidation project (alone or groups of 2) 35%

  • Final project (groups of 2) 35%

Computing

Bring your laptop to all lectures!

  • Who has access to an Nvidia / AMD GPU?

  • What operating system are you on?

In the first few lecture we will use JupyterHub (accessible within Moodle) to get you started. Later we plan to get you all setup with a personal Julia installation.

Summary

If some important info is missing, ping us so we can add it or make a PR.

Suggestion:
Bookmark https://pde-on-gpu.vaw.ethz.ch

back to Content

Why solve PDEs on GPUs? & The tool for the job

Why solve PDEs on GPUs?

A brief intro about GPU computing:

  • Why we do it

  • Why it is cool (in Julia)

  • Examples from current research

Propaganda

Why we do it

Predict the evolution of natural and engineered systems.

ice2

e.g. ice cap evolution, stress distribution, etc...

Physical processes that describe those systems are complex and often nonlinear

  • no or very limited analytical solution is available

👉 a numerical approach is required to solve the mathematical model

A numerical solution means solving a system of (coupled) differential equations

\[ \mathbf{mathematical ~ model ~ → ~ discretisation ~ → ~ solution}\\ \frac{∂C}{∂t} = ... ~ → ~ \frac{\texttt{C}^{i+1} - \texttt{C}^{i}}{\texttt{∆t}} = ... ~ → ~ \texttt{C} = \texttt{C} + \texttt{∆t} \cdot ... \]

Solving PDEs is computationally demanding

  • ODEs - scalar equations

\[ \frac{∂C}{∂t} = -\frac{(C-C_{eq})}{ξ} \]

but...

  • PDEs - involve vectors (and tensors) 👉 local gradients & neighbours

\[ \frac{∂C}{∂t} = D~ \left(\frac{∂^2C}{∂x^2} + \frac{∂^2C}{∂y^2} \right) \]

Computational costs increase

  • with complexity (e.g. multi-physics, couplings)

  • with dimensions (3D tensors...)

  • upon refining spatial and temporal resolution

Use parallel computing to address this:

  • The "memory wall" in ~ 2004

  • Single-core to multi-core devices

mem_wall

GPUs are massively parallel devices

  • SIMD machine (programmed using threads - SPMD) (more)

  • Further increases the Flop vs Bytes gap

cpu_gpu_evo

👉 We are memory bound: requires to re-think the numerical implementation and solution strategies

Why it is cool

julia-gpu

GPU are cool

  • Price vs Performance; Close to 1.5TB/s memory throughput (nonlinear diffusion) that one can achieve 🚀

perf_gpu

  • Availability (less fight for resources); Still not many applications run on GPUs

  • Workstation turns into a personal Supercomputers; GPU vs CPUs peak memory bandwidth: theoretical 10x (practically more)

titan_node

Julia is cool

Solution to the "two-language problem"

  • Single code for prototyping and production

two_lang

Backend agnostic:

  • Single code to run on single CPU or thousands of GPUs

  • Single code to run on various CPUs (x86, Power9, ARM)
    and GPUs (Nvidia, AMD)

Interactive:

  • No need for 3rd-party visualisation software

  • Debugging and interactive REPL mode

  • Efficient for development

Examples from current research

back to Content

Tool for the job: introduction to Julia

julia-logo

Aside 1: Jupyter Notebooks

These slides are a Jupyter notebook; a browser-based computational notebook.

💡 Note
You can follow the lecture along live from the Moodle-based JupyterHub server.

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

Aside 2: What is your previous programming experience?

  1. Julia

  2. Matlab, Python, Octave, R, ...

  3. C, Fortran, ...

  4. Pascal, Java, C++, ...

  5. Lisp, Haskell, ...

  6. Assembler

  7. Coq, Brainfuck, ...

Google survey link

The Julia programming language

Julia is a modern, interactive, and high performance programming language. It's a general purpose language with a bend on technical computing.

julia-logo

  • first released in 2012

  • reached version 1.0 in 2018

  • current version 1.8.1 (09.2022)

  • thriving community, for instance there are currently around 8300 packages registered

What does Julia look like

An example solving the Lorenz system of ODEs:

using OrdinaryDiffEq, Plots
 
 function lorenz(x, p, t)
     σ = 10
@@ -406,7 +406,7 @@ 

Packages

Note package installation does not work on the moodle-Jupyterhub. But it will work on your local installation.

All public Julia packages are listed on https://juliahub.com/ui/Packages.

You can install a package, say UnPack.jl by

-
using Pkg
+
using Pkg
 Pkg.add("UnPack.jl")
 using UnPack

In the REPL, there is also a package-mode (hit ]) which is for interactive use.

@@ -695,7 +695,7 @@

Question 2

diff --git a/lecture10/index.html b/lecture10/index.html index 6d1c50a9..fbcc1213 100644 --- a/lecture10/index.html +++ b/lecture10/index.html @@ -417,7 +417,7 @@

Edit this page on
- Last modified: September 15, 2023. Website built with Franklin.jl and the Julia programming language. + Last modified: September 17, 2023. Website built with Franklin.jl and the Julia programming language.

diff --git a/lecture2/index.html b/lecture2/index.html index 7ac24349..6eaf7596 100644 --- a/lecture2/index.html +++ b/lecture2/index.html @@ -512,7 +512,7 @@

GitHub task<
diff --git a/lecture3/index.html b/lecture3/index.html index 307a741b..cca5b5c6 100644 --- a/lecture3/index.html +++ b/lecture3/index.html @@ -407,7 +407,7 @@

Task 1

diff --git a/lecture4/index.html b/lecture4/index.html index 50a9db7a..7c72086c 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 4c89b755..f77f249f 100644 --- a/lecture5/index.html +++ b/lecture5/index.html @@ -376,7 +376,7 @@

Task 1

diff --git a/lecture6/index.html b/lecture6/index.html index 3c8b8f66..6f81aec1 100644 --- a/lecture6/index.html +++ b/lecture6/index.html @@ -653,7 +653,7 @@

Edit this page on
- Last modified: September 15, 2023. Website built with Franklin.jl and the Julia programming language. + Last modified: September 17, 2023. Website built with Franklin.jl and the Julia programming language. diff --git a/lecture7/index.html b/lecture7/index.html index e5c604de..d1182068 100644 --- a/lecture7/index.html +++ b/lecture7/index.html @@ -494,7 +494,7 @@

Tasks

diff --git a/lecture8/index.html b/lecture8/index.html index 91f44e22..f8fe0442 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 61561c93..48a090cb 100644 --- a/lecture9/index.html +++ b/lecture9/index.html @@ -480,7 +480,7 @@

Edit this page on
- Last modified: September 15, 2023. Website built with Franklin.jl and the Julia programming language. + Last modified: September 17, 2023. Website built with Franklin.jl and the Julia programming language. diff --git a/logistics/index.html b/logistics/index.html index 55300326..5a3d24a0 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 scripts (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, homework script submission happens on GitHub.

🚧 More infos to come soon.

Feedback

After submission deadline, you will find relevant scripts in a shared Polybox folder. Information on how to access it is available on Moodle.

Personal feedback and points (not grades) for weekly homework exercises will be shared individually among participants using a private file or folder on Polybox.

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.

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 scripts (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, homework script submission happens on GitHub.

🚧 More infos to come soon.

Feedback

After submission deadline, you will find relevant scripts in a shared Polybox folder. Information on how to access it is available on Moodle.

Personal feedback and points (not grades) for weekly homework exercises will be shared individually among participants using a private file or folder on Polybox.

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.

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 3d48990c..3f889254 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 0dddde4c..6ea2c01a 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -3,103 +3,103 @@ https://pde-on-gpu.vaw.ethz.ch/lecture6/index.html - 2023-09-15 + 2023-09-17 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/lecture4/index.html - 2023-09-15 + 2023-09-17 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/lecture2/index.html - 2023-09-15 + 2023-09-17 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/lecture8/index.html - 2023-09-15 + 2023-09-17 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/software_install/index.html - 2023-09-15 + 2023-09-17 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/logistics/index.html - 2023-09-15 + 2023-09-17 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/lecture3/index.html - 2023-09-15 + 2023-09-17 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/lecture10/index.html - 2023-09-15 + 2023-09-17 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/homework/index.html - 2023-09-15 + 2023-09-17 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/lecture1/index.html - 2023-09-15 + 2023-09-17 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/search/index.html - 2023-09-15 + 2023-09-17 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/final_proj/index.html - 2023-09-15 + 2023-09-17 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/extras/index.html - 2023-09-15 + 2023-09-17 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/lecture5/index.html - 2023-09-15 + 2023-09-17 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/lecture7/index.html - 2023-09-15 + 2023-09-17 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/lecture9/index.html - 2023-09-15 + 2023-09-17 monthly 0.5 https://pde-on-gpu.vaw.ethz.ch/index.html - 2023-09-15 + 2023-09-17 monthly 0.5 diff --git a/software_install/index.html b/software_install/index.html index ee3052a2..5cb4e259 100644 --- a/software_install/index.html +++ b/software_install/index.html @@ -139,7 +139,7 @@

Julia MPI