Kompendium wiedzy¶
potrzebnej do tworzenia wydajnych aplikacji, które potrafią wykorzystać możliwości obliczeniowe współczesnych systemów komputerowych.
używaj efektywnie CPU
akceleruj obliczenia poprzez GPU
korzystaj z ogromnej mocy superkomputerów
Działy platformy¶
01. Podstawy¶
Co powinieneś wiedzieć, żeby napisać wydajną aplikację?
W tym dziale omówione są czynniki mające wpływ na wydajność aplikacji - od implementacji, przez kompilację, aż do sposobu wykonania.
Zarysowana zostaje specyfika architektury współczesnych komputerów oraz środowiska HPC, a także pojęcia wykorzystywane do opisu i analizy wydajności programów.
02. Technologie¶
Z czego możesz skorzystać?
Przegląd rozwiązań programistycznych służących zrównoleglaniu i prowadzeniu wydajnych obliczeń.
To nie tylko różne technologie programistyczne, ale także gotowe biblioteki obliczeniowe oraz sprawdzone rozwiązania dla sztucznej inteligencji.
03. Dobre praktyki¶
Jak napisać kod, który wykorzysta dostępne możliwości sprzętowe?
Wskazówki dotyczące pisania kodu, który jest w stanie wydobyć jak największą wydajność z dostępnego sprzętu obliczeniowego.
Zarówno ogólne jak i specyficzne dla konkretnych technologii.
04. Analiza wydajności¶
Jak ocenić wydajność programu i dokonać jego optymalizacji?
W tym dziale opisane są narzędzia służące do oceny wydajności programu. Dzięki nim możliwa jest optymalizacja wydajności.
Od podstawowych rozwiązań standardowo dostępnych w systemie, po rozbudowane narzędzia specjalnie przeznaczone do tego celu.
Każdy dział tworzy odrębną całość, przy czym dalsze działy bazują na informacjach i pojęciach z wcześniejszych działów.
Działy Platformy odpowiadają różnym obszarom wiedzy potrzebnej do programowania wydajnych aplikacji.
Platforma łączy w sobie wiedzę podstawową ze specjalistyczną, ma
charakter ogólno-programistyczny
Będzie przydatna zarówno przy tworzeniu aplikacji “od zera” jak i przy optymalizacji już napisanego kodu.
Będzie użyteczna przy pisaniu dowolnego kodu obliczeniowego - zarówno małych jak i masywnie równoległych programów.
Będzie pomocna zarówno dla początkujących jak i bardziej zaawasowanych programistów.
Szczególny nacisk kładziemy na: