Parallel and Distributed Computing Laboratory
Wyposażenie pracowni
Dla potrzeb kształcenia oraz prac badawczych z zakresie przetwarzania rozproszonego i obliczeń równoległych Grupa posiada dwa klastry:
Pierwszy klaster Racksaver Cluster (10x2 AMD 2800+, 1GB RAM, FE, Dolphin Scali networks) składa się z dziesięciu komputerów, połączonych wysokowydajnymi interfejsami SCI.
Drugi klaster - TYPU BLADE - jest produkcji HP. Jego cechy są następujące:: HP Blade Cluster System – 18 Blades BL20p G3 (18x2 Pentium Xeon 2.8GHz, 1GB RAM, 72GB disk, GbE)
Oba klastry służą także do prac naukowo-badawczych związanych z rozwojem technologii gridowych.
Na obu klastrach używa się środowisk programowania równoległego MPI oraz PVM.
Prowadzone zajęcia
W laboratorium odbywają się zajęcia z przedmiotu "algorytmy równoległe". W czasie ich trwania studenci wykonują następujące ćwiczenia.
Równoległy algorytm mnożenia macierzy Celem ćwiczenia jest implementacja równoległego algorytmu mnożenia macierzy przy użyciu różnych kombinacji technik dostępnych w MPI, np. tylko w oparciu o operacje punkt-punkt, w oparciu o komunikację kolektywną oraz przy użyciu komunikacji kolektywnej i dodatkowo pochodnych typów danych. Należy porównać wydajność poszczególnych realizacji algorytmu. Plan ćwiczenia:
- Projekt algorytmu mnożenia macierzy.
- Koncepcja różnych wariantów implementacji algorytmu.
- Implementacja w oparciu o komunikację punkt-punkt (zadanie dodatkowe: przetestowanie różnych wariantów tej komunikacji).
- Implementacja w oparciu o komunikację kolektywną.
- Implementacja przy użyciu różnych wariantów komunikacji i pochodnych typów danych.
- Pomiar wydajności różnych wariantów implementacji.
Równoległa transpozycja macierzy Celem ćwiczenia jest powtórzenie poznanych wcześniej przez studentów zaawansowanych mechanizmów środowiska MPI. Konieczna jest znajomość złożonych operacji komunikacji kolektywnej oraz wirtualnych topologii. Przykładem algorytmu, do którego te mechanizmy mogą być efektywnie wykorzystane jest transpozycja macierzy. W trakcie ćwiczenia należy napisać program w MPI, który:
- Generuje macierz (dla uproszczenie można założyć że jest to macierz kwadratowa). Każdy proces generuje tylko swoją część macierzy - należy zastanowić sie nad wygodnym podziałem (blokowy, inny?).
- Wypisuje macierz na ekran (w tym celu potrzebne może być przesłanie elementów macierzy do procesu zerowego -- można spróbować zrobić to bez tego przesyłania -- jak?).
- Transponuje macierz przy użyciu pochodnych typów danych oraz instrukcji komunikacyjnej all-to-all.
- Wypisuje na ekran macierz po transpozycji.
Wskaźniki wydajności algorytmów równoległych Celem ćwiczenia jest zapoznanie się z technikami oceny wydajności programów równoległych. Konieczna jest znajomość zasad zrównoleglania programów sekwencyjnych. Przykładem algorytmu, do którego mogą być wykorzystane techniki oceny wydajności, może być Kernel EP z zestawu benchmarków NAS. Implementacja i pomiar wydajności własnych algorytmów komunikacji kolektywnej Celem ćwiczenia jest implementacja dwóch wybranych operacji komunikacji kolektywnej MPI przy użyciu komunikacji punkt-punkt. ćwiczenie zaplanowane jest na dwa tygodnie. Plan ćwiczenia:
- Wybór dwóch operacji kolektywnych.
- Opracowanie dwóch algorytmów dla każdej z wybranych operacji (na podstawie literatury lub własnego pomysłu).
- Implementacja wybranych algorytmów.
- Przeprowadzenie testu wydajności zaimplementowanych algorytmów. Porównanie wydajności z odpowiednią funkcją biblioteki MPI.
Zrównoleglenie algorytmu w oparciu o metodę dekompozycji domenowej i metodologię PCAM Celem ćwiczenia jest zapoznanie się z techniką zrównoleglenia algorytmów sekwencyjnych poprzez podział danych. Konieczna jest znajomość zasad przetwarzania równoległego. Przykładem algorytmu, do którego może być zastosowana przedstawiona technika, jest algorytm sortowania. Laboratorium zaplanowane jest na trzy tygodnie. Plan ćwiczenia:
- Zaimplementować program realizujący równoległe sortowanie z użyciem biblioteki MPI.
- Wykorzystać różne sposoby komunikacji: punkt-punkt i kolektywną.
- Przeprowadzić eksperymenty zmieniając rozmiar zadania, i liczbę procesorów.
- Na podstawie uzyskanych danych pomiarowych wysunąć wnioski, jakie czynniki jak wpływają na efektywność i przyspieszenie.
Zrównoleglenie algorytmu w oparciu o metodę dekompozycji funkcjonalnej i metodologię PCAM Celem ćwiczenia jest implementacja programu równoległego rozwiązującego wybrany problem metodą dekompozycji funkcjonalnej z użyciem metodologii PCAM. Laboratorium zaplanowane jest na trzy tygodnie. Plan ćwiczenia:
- Zapoznanie się z algorytmem drzewa poszukiwań oraz strategią branch and bound.
- Analiza sposobu zrównoleglania algorytmu drzewa poszukiwañ z uwzględnieniem metodologii PCAM.
- Implementacja problemu rozplanowania powierzchni.
- Wybór problemu do zrównoleglania przy zastosowaniu dekompozycji funkcjonalnej i strategii PCAM.
- Projekt algorytmu równoległego dla wybranego problemu.
- Implementacja opracowanego algorytmu.
Badanie równoważenia obciążenia w schemacie master-worker na przykładzie obliczania zbioru Mandelbrota Celem ćwiczenia jest zapoznanie się ze schematem zrównoleglania typu farma zadañ (inne terminy: Parameter Study, Master-Worker, Embarassingly Parallel Programs) na przykładzie równoległego obliczania zbioru Mandelbrota. ćwiczenie zaplanowane jest na dwa tygodnie. Plan ćwiczenia:
- Uruchomić program Mandel dla ilości dostępnych procesorów,
- Zmierzyć doświadczalnie przyspieszenie i efektywność -- zrobić wykres -- wyjaśnić jego kształt,
- Zobaczyć wyniki osiągnięte na 32-procesorowej maszynie Sun w pliku times.dat -- zrobić wykres,
- Poeksperymentować z ziarnistością zadañ i zbadać jak zmienia się przyspieszenie i efektywność. Czy podział zadañ pomiędzy robotników jest dobrze rozłożony?