Politechnika Warszawska - Centralny System Uwierzytelniania
Strona główna

High Performance Computing in Scientific Applications

Informacje ogólne

Kod przedmiotu: 1050-00000-MSP-0HPC
Kod Erasmus / ISCED: (brak danych) / (brak danych)
Nazwa przedmiotu: High Performance Computing in Scientific Applications
Jednostka: Wydział Fizyki
Grupy:
Punkty ECTS i inne: 3.00 Podstawowe informacje o zasadach przyporządkowania punktów ECTS:
  • roczny wymiar godzinowy nakładu pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się dla danego etapu studiów wynosi 1500-1800 h, co odpowiada 60 ECTS;
  • tygodniowy wymiar godzinowy nakładu pracy studenta wynosi 45 h;
  • 1 punkt ECTS odpowiada 25-30 godzinom pracy studenta potrzebnej do osiągnięcia zakładanych efektów uczenia się;
  • tygodniowy nakład pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się pozwala uzyskać 1,5 ECTS;
  • nakład pracy potrzebny do zaliczenia przedmiotu, któremu przypisano 3 ECTS, stanowi 10% semestralnego obciążenia studenta.
Język prowadzenia: angielski
Liczba godzin zajęć praktycznych:

20h

Liczba godzin zajęć teoretycznych:

10h

Skrócony opis:

Studenci zapoznają się z praktycznymi aspektami wykorzystania klastrów obliczeniowych i superkomputerów. W trakcie zajęć student nabywa umiejętność projektowania i tworzenia programów rozwiązujących typowe problemy obliczeniowe z wykorzystaniem obliczeń równoległych i procesorów graficznych. Zagadnienia numeryczne dotyczą algebry liniowej, analizy spektralnej, rozwiązywania równań różniczkowych oraz metody Monte Carlo. Przedmiot składa się z wykładu, części laboratoryjnej i części projektowej. W celu realizacji części laboratoryjnej i projektowej studenci otrzymają dostęp do klastra obliczeniowego Wydziału Fizyki DWARF. Studenci zapoznają się również z polskimi zasobami obliczeniowymi dostępnymi dla nauki i przemysłu oraz metodami ich udostępniania.

Pełny opis:

Wykład (10 godz):

1. Podstawy architektury systemów komputerowych. Klastry obliczeniowe. Superkomputery.

2. Definicja wydajności obliczeniowej i intensywności obliczeniowej. Modele obliczeń równoległych: obliczenia wielowątkowe i wieloprocesowe.

3. Obliczenia równoległe z modelem pamięci współdzielonej. Specyfikacja OpenMP. Przykład z biblioteką FFTW.

4. Kody o ograniczonej wydajności i przepustowości. Łączenie języków wysokiego poziomu z językami niskiego poziomu (przykład C i Python, cython).

5. Obliczenia równoległe z pamięcią rozproszoną. Specyfikacja MPI.

6. Algebra liniowa. Biblioteki BLAS i LAPACK.

7. Przyspieszone przetwarzanie dzięki procesorom graficznym (GPU), języki CUDA i HIP.

8. Przetwarzanie macierzy rzadkich. Rozwiązywanie równań różniczkowych cząstkowych poprzez sprowadzenie ich do problemów z macierzami rzadkimi.

9. Generatory liczb losowych. metody Monte Carlo.

10. Skalowanie kodu numerycznego. Słabe i mocne skalowanie. Zasoby informatyczne w Polsce iw Europie oraz sposoby ich udostępniania.

Laboratorium (10 godz)

1. Studenci uzyskają dostęp do klastra obliczeniowego Wydziału Fizyki DWARF.

2. W ramach zajęć laboratoryjnych studenci będą tworzyć programy obliczeniowe w języku C korzystając z instrukcji prowadzącego oraz dostarczonych szablonów kodów. Wykorzystane zostaną przedstawione na wykładzie metody programowania równoległego/heterogenicznego. Przygotowane programy będą musiały zostać uruchomione na odpowiednim komputerze (zwykle na klastrze wydziałowym), aby wykazać, że działają.

3. W sumie studenci stworzą około 5 kodów demonstrujących użycie różnych technik/bibliotek HPC.

4. Programy stworzone na laboratoriach będą oceniane.

Projekt (10 godz)

1. Student napisze kod rozwiązujący projekt naukowy z wykorzystaniem technik HPC.

2. Temat projektu może być wybrany z listy przekazanej przez prowadzącego lub zaproponowany przez studenta (np. związany z pracą dyplomową studenta).

3. Projekt musi być zrealizowany przy użyciu repozytorium git, aby nauczyciel mógł monitorować postępy.

4. Projekt będzie podlegał ocenie.

Literatura:

1. Thomas Rauber, Gudula Rünger, „Parallel Programming for Multicore and Cluster Systems”, Springer 2013,

2. R.W. Hamming, “Numerical Methods for Scientists and Engineers”, ‎ Dover Publications, 1987

3. Foster I., “Designing and Building Parallel Programs”, e-book: www-unix.mcs.anl.gov/dbpp;

4.. Strony internetowe: www.openmp.org, www.mpi-forum.org, www.netlib.org, https://developer.nvidia.com/cuda-zone.

Metody i kryteria oceniania:

Ocena końcowa będzie wynosić: (1/3) * ocena z laboratoriów + (2/3) ocena z projektu.

Ocena z laboratorium będzie obliczona jako średnia z ocen uzyskanych z kodów stworzonych na zajęciach.

Projekt musi zostać zrealizowany z wykorzystaniem repozytorium kodu git. Ocenie będą podlegały:

• Metoda / Poprawność merytoryczna zastosowanych technik programowania.

• Testy wydajnościowe stworzonego kodu.

• Systematyczność pracy studenta nad projektem.

Zajęcia w cyklu "rok akademicki 2023/2024 - sem. zimowy" (w trakcie)

Okres: 2023-10-01 - 2024-02-18
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 10 godzin, 9 miejsc więcej informacji
Projekt, 10 godzin, 9 miejsc więcej informacji
Wykład, 10 godzin, 9 miejsc więcej informacji
Koordynatorzy: Gabriel Wlazłowski
Prowadzący grup: Andrzej Makowski, Gabriel Wlazłowski
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Zaliczenie na ocenę
Laboratorium - Ocena łączna
Projekt - Ocena łączna
Wykład - Ocena łączna
Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Politechnika Warszawska.
pl. Politechniki 1, 00-661 Warszawa tel: (22) 234 7211 https://pw.edu.pl kontakt deklaracja dostępności USOSweb 7.0.0.0-5 (2023-11-30)