Organizacja ćwiczeń, tematyka zajęć
1. Przedstawienie zasad realizacji projektów

Zakres zagadnień realizowanych w czasie zajęć:
- Zasady zaliczania ćwiczeń
- Dostępność wymaganego oprogramowania
- Omówienie literatury pomocniczej
- Przydzielenie tematów projektów
2. MPI - wprowadzenie

Zakres zagadnień realizowanych w czasie zajęć:
- Przygotowanie środowiska MPI w systemie Linux
- Kodowanie pierwszego programu MPI w języku C
- Kompilacja w środowisku MPI
- Uruchomienie aplikacji MPI
• Konfiguracja FIS Lab MPI (link lokalny)
3. MPI - komunikacja globalna

Zakres zagadnień realizowanych w czasie zajęć:
- Uruchomienie aplikacji MPI w środowisku MPICH
- Rozgłaszanie zmiennych - broadcast
- Agregacja zmiennych - reduce
• Lab MPI → Π (link lokalny)
4. MPI - komunikacja lokalna

Zakres zagadnień realizowanych w czasie zajęć:
- Pomiar czasu wykonania aplikacji MPI
- Przesyłanie zmiennych między procesami
- Odczyt statusu przesyłanych komunikatów
• Lab MPI → Π Monte Carlo (link lokalny)
5. MPI - komunikatory

Zakres zagadnień realizowanych w czasie zajęć:
- Tworzenie komunikatorów pochodnych
- Równoległe generatory liczb losowych
- Biblioteka SPRNG
• Lab MPI → SPRNG (link lokalny)
6. MPI - grafika MPE

Zakres zagadnień realizowanych w czasie zajęć:
- Interfejs graficzny MPE
- Wizualizacja działania aplikacji MPI w środowisku MPE
• Lab MPI → MPE Graphics (link lokalny)
7. Dyrektywy OpenMP

Zakres zagadnień realizowanych w czasie zajęć:
- Uruchamianie aplikacji wykorzystujÄ…cych dyrektywy OpenMP
- Porównanie metod zrównoleglania obliczeń dostępnych w OpenMP
- Aplikacje hybrydowe OpenMP / MPI
• Lab OpenMP → przykÅ‚ady (link lokalny)
8. MPI - profilowanie, MPE - zdarzenia

Zakres zagadnień realizowanych w czasie zajęć:
- Śledzenie wykonania aplikacji równoległej - debugger
- Rejestracja i analiza profilu aplikacji równoległej
- Rejestrowanie zdarzeń w aplikacji MPI za pomocą funkcji biblioteki MPE
- Wizualizacja logu wykonania aplikacji MPI
- Zastosowanie interfejsu profilujÄ…cego w bibliotece MPI
9. Aplikacja MPI - Projekt 1

Zakres zagadnień realizowanych w czasie zajęć:
- Odbiór projektu nr 1 - aplikacja w środowisku równoległym MPI
- [ umieszczenie projektu w UPeL ]
- [ spotkanie w lab. komp. D-10 204 ]
- [ prezentacja działania projektów w lab. komp. ]
10. Åšrodowisko CUDA

Zakres zagadnień realizowanych w czasie zajęć:
- Zasady działania aplikacji korzystającej z usług akceleratora GPU
- Kompilacja i uruchomienie aplikacji w środowisku CUDA
- Integracja modułów CUDA w aplikacjji OpenMP 4.x / MPI
11. Systemy PGAS (1)

Zakres zagadnień realizowanych w czasie zajęć:
- Zasady działania aplikacji zgodnej z modelem Partitioned Global Address Space
- Utworzenie aplikacji w języku Unified Parallel C
- Kompilacja i uruchomienie programu za pomocÄ… kompilatora Berkeley UPC
- Kompilacja i uruchomienie programu za pomocÄ… biblioteki Berkeley UPC++
12. Systemy PGAS (2)

Zakres zagadnień realizowanych w czasie zajęć:
- Kompilacja i uruchomienie programu za pomocÄ… biblioteki GPI-2/GASPI
- Asynchroniczna komunikacja między procesami aplikacji GASPI
- Kompilacja i uruchomienie programu za pomocÄ… pakietu XcalableMP
- Globalny widok pamięci XMP/C - podział danych i obliczeń
- Lokalny widok pamięci XMP/C - komunikacja za pomocą tablic coarray
13. Åšrodowisko Parallel Computing in Java | Java RMI+JNI

Zakres zagadnień realizowanych w czasie zajęć:
- Konfiguracja aplikacji równoległej PCJ
- Uruchomienie aplikacji równoległej PCJ
- Komunikacja między zadaniami aplikacji PCJ
—
- Zdefiniowanie interfejsu RMI
- Generacja szkieletu RMI i nagłówków JNI
- Uruchomienie katalogu serwerów
- Utworzenie serwera RMI/JNI
- Utworzenie klienta RMI
- Uruchomienie aplikacji RMI/JNI
- Interfejs FFI (Foreign Function Interface)
14. Zaawansowane MPI | Åšrodowisko CORBA

Zakres zagadnień realizowanych w czasie zajęć:
- Dynamiczne uruchaminie procesów MPI
- Komunikacja jednostronna
- Zapewnianie prostępu komunikacji asynchronicznej
- Przetwarzanie wielowÄ…tkowe a komunikacja MPI
- Integracja MPI i OpenMP
- Komunikacja z wykorzystaniem partycji
- Komunikacja z wykorzystaniem sesji
- CUDA-aware MPI
- Zdefiniowanie interfejsu w języku IDL
- Generacja szkieletu serwera i namiastek w języku C++
- Utworzenie serwera usługi CORBA
- Utworzenie klienta usługi CORBA w języku C++ / Java
- Utworzenie klienta usługi CORBA w języku Java
- Uruchomienie aplikacji klient/serwer
- Utworzenie serwera i klienta usługi CORBA z obsługą serwisu nazw
- Uruchomienie aplikacji klient/serwer środowisku rozproszonym
- Utworzenie aplikacji usługi CORBA z przekazywaniem komunikatów
15. Aplikacja rozproszona/PGAS - Projekt 2

Zakres zagadnień realizowanych w czasie zajęć:
- Odbiór projektu nr 2 - aplikacja w środowisku rozproszonym lub PGAS
- Wystawianie zaliczeń
|