Obliczenia wysokiej wydajności
Kurs przedstawia podstawowe zagadnienia związane z uzyskaniem wysokiej wydajności programów oraz sprzętu.
Kurs przedstawia podstawowe zagadnienia związane z uzyskaniem wysokiej wydajności programów oraz sprzętu.
Obliczenia wysokiej wydajności (ang. High Performance Computing) są prężnie rozwijającą się dziedziną informatyki, dzięki której możliwym staje się wykonywanie bardzo skomplikowanych obliczeń oraz przetwarzanie bardzo dużych ilości danych.
W trakcie kursu poznasz budowę nowoczesnych systemów komputerowych i nauczysz się mierzyć oraz uzyskiwać jak najwyższą wydajność na dostępnym sprzęcie. Dzięki podstawom języka asembler nauczysz się dokonywać analizy stworzonych programów i poznasz podstawowe techniki optymalizacyjne możliwe zarówno przy optymalizacji ręcznej jak i wspomaganej funkcjami kompilatora. Dzięki uczestnictwie w kursie, poznasz również podstawy języka Nvidia CUDA oraz programowania akceleratorów GPU.
Każdy temat jest omówiony w postaci prezentacji wideo, a dzięki pytaniom kontrolnym utrwalisz sobie zdobyte wiadomości. Zadania programistyczne do samodzielnego wykonania pozwolą wykorzystać zdobytą wiedzę w praktyce.
Kurs wymaga średnio zaawansowanej obsługi komputera oraz umiejętności programowania w języku C lub C++. Preferowana jest znajomość systemu operacyjnego Linux, ale nie jest to warunek konieczny. Ponadto, do udziału w kursie potrzebne Ci będzie urządzenie z dostępem do Internetu oraz słuchawki lub głośniki.
Docelową grupa są studenci lub osoby chcące podnieść swoje kwalifikacje związane z programowaniem niskopoziomowych aplikacji, programowaniem akceleratorów lub optymalizacją kodu. Kurs powinien być interesujący zarówno dla osób zajmujących się zagadnieniami obliczeń inżynieryjnych i naukowo-technicznych jak i dla programistów wysokowydajnych aplikacji wszelakiego zastosowania. Brak tego typu kursów na rynku powoduje, że użytkownicy aplikacji bardzo często skarżą się na poziom ich optymalizacji, a równocześnie nie wykorzystują w pełni potencjału swoich jednostek obliczeniowych (komputerów, laptopów, tabletów, smartphonów itp.).
Kurs Obliczenia wysokiej wydajności składa się z czterech modułów:
Wprowadzenie – z modułu tego uczestnik dowie się do czego wykorzystywane są Obliczenia Wysokiej Wydajności oraz jak działa sprzęt do nich wykorzystywany.
Optymalizacja – w module tym są zaprezentowane sposoby poznania oraz polepszania wydajności zarówno sprzętu jak i programów. Uczestnik nabędzie umiejętność dokonywania optymalizacji programów zarówno ręcznej jak i automatycznej.
Przetwarzanie równoległe i rozproszone – w module tym uczestnik pozna najpopularniejsze metody przyśpieszania programów w ramach Obliczeń wysokiej wydajności czyli zrównoleglenie oraz rozproszenie. Z modułu tego uczestnik dowie się również w jaki sposób mierzyć i uzyskiwać wysoką wydajność zrównoleglonych programów.
Akceleratory obliczeń – na przykładzie środowiska Nvidia CUDA uczestnik kursu pozna sposoby programowania akceleratorów opartych o budowę kart graficznych (GPU)
Każdy moduł składa się z szeregu lekcji, w skład których wchodzi wykład, pytania kontrolne oraz zadania do wykonania.
Kurs realizowany jest w trybie we własnym tempie, co oznacza, że poszczególne aktywności nie posiadają skonfigurowanych dat udostępnień ani ostatecznych terminów na wykonanie poszczególnych ćwiczeń. Kursanci mogą pracować z materiałami kursowymi według własnego uznania i ukończyć kurs w dowolnym czasie przed datą jego zamknięcia. Edycja kursu otwarta jest przez 3 miesiące, a rekomendowany czas nauki to 4 godziny tygodniowo przez 10 tygodni. Możliwe jest jednak ukończenie kursu nawet w ciągu jednego tygodnia.
W każdym z modułów znajdziesz punktowane pytania sprawdzające zdobytą wiedzę oraz punktowane zadania programistyczne do samodzielnego wykonania.
Aby zaliczyć kurs (i uzyskać potwierdzenie ukończenia), musisz uzyskać wynik końcowej oceny na poziomie co najmniej 40% punktów.
Każdy kursant, który ukończy kurs i zgromadzi co najmniej 40% punktów, uzyska dokument potwierdzający. Zaświadczenie jest generowane automatycznie po ukończeniu kursu.
Autorem treści merytorycznej kursu oraz prowadzącym kurs jest dr inż. Filip Krużel, zatrudniony na stanowisku adiunkta badawczo-dydaktycznego w Katedrze Informatyki wydziału Informatyki i Telekomunikacji Politechniki Krakowskiej im. Tadeusza Kościuszki w Krakowie. Od wielu lat zajmujący się zagadnieniami związanymi z obliczeniami wysokiej wydajności, programowaniem równoległym oraz akceleratorami obliczeń.