WYDZIAŁ INŻYNIERII ELEKTRYCZNEJ I KOMPUTEROWEJ KATEDRA AUTOMATYKI I TECHNIK INFORMACYJNYCH Przetwarzanie Rozproszone i Równoległe www.pk.edu.pl/~zk/prir_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl
Wykład 1: Wprowadzenie do PRIR Co to jest PRIR? Tradycyjne obszary przetwarzania równoległego i rozproszonego Porównanie systemów równoległych i rozproszonych Konwergencja systemów RiR Argumenty za rozwojem systemów RiR Charakterystyka systemów RiR Modele i paradygmaty Wnioski
Co to jest PRIR? Pojęcie przetwarzania RiR obejmuje homogeniczne bądź heterogeniczne systemy wieloprocesorowe zbudowane w celu : połączenia (zdalnych) zasobów w jedną całość prowadzenia obliczeń o dużej skali (np. symulacji) przyspieszenia krytycznych obliczeń (systemy obronne, loty kosmiczne, prognozy) przetwarzania dużej liczby rozproszonych danych rozwiązania trudnych problemów optymalizacji (przeszukiwania dużych przestrzeni rozwiązań)
Tradycyjne obszary przetwarzania równoległego równoległość = skrócenie czasu obliczeń budowa równoległego sprzętu o różnych architekturach - od końca lat 80. główna trudność - środowiska programowania równoległego główne obszary zastosowań - obliczenia naukowe i inżynierskie bariera rozwoju - zbyt mały rynek zbytu konsekwencja - upadek wielu doskonałych firm perspektywa - klastry jako nowa platforma
Tradycyjne obszary przetwarzania rozproszonego system rozproszony jako zbiór autonomicznych połączonych ze sobą komputerów współpracujących ze sobą i dzielących zasoby zastosowania komercyjne - od małych systemów klient-serwer poprzez sieci obejmujące całą jednostkę organizacyjną do Internetu różne stopnie powiązania systemów organiczny rozwój od LAN do WAN
Tradycyjne obszary przetwarzania rozproszonego problemy podstawowe - brak wspólnego zegara, możliwość błędów transmisji wspólny dostęp do dzielonych zasobów implikuje możliwość interferencji programów użytkowników heterogeniczność systemów rozproszonych implikuje konieczność współpracy komponentów różniących się na poziomie sprzętu, systemów operacyjnych, języków itp. stale rosnące znaczenie bezpieczeństwa
Porównanie systemów równoległych i rozproszonych podobieństwa - wiele procesorów, obecność sieci komunikacyjnej, równoczesność i współpraca wielu procesów obliczeniowych system równoległy dzieli zadanie obliczeniowe na podzadania wykonywane w tym samym czasie system rozproszony dzieli zadanie obliczeniowe na podzadania wykonywane w różnych miejscach przy użyciu różnych zasobów
Systemy równoległe - podsumowanie zadanie jest dzielone na podzadania rozwiązywane równolegle, najczęściej przez procesory ściśle ze sobą współpracujące system równoległy wykonuje w danym czasie tylko jedno zadanie i jego celem jest przyspieszenie przetwarzania tego zadania programy równoległe są zwykle wykonywane w homogenicznych architekturach, które mogą być wyposażone w pamięć dzieloną
Systemy rozproszone - podsumowanie obliczenie wykorzystuje wiele zasobów (takich jak procesory, pamięci, dyski, bazy danych) umieszczonych w odległych fizycznie miejscach system rozproszony wykonuje w danym czasie wiele aplikacji, które mogą należeć do wielu użytkowników Systemy rozproszone są często heterogeniczne, otwarte (hardware i software od różnych dostawców) i dynamiczne (struktura systemu jest zmienna w czasie) użytkownik widzi system jak jedną maszynę brak pamięci dzielonej (przynajmniej sprzętowej)
Konwergencja systemów od połowy lat 90. następuje szybka konwergencja systemów równoległych i rozproszonych stosowane są te same architektury - szybkie technologie sieciowe umożliwiają budowę klastrów dla systemów równoległych; maszyny równoległe są stosowane jako serwery w systemach rozproszonych zagadnienia równoległości i rozproszenia są często powiązane i dlatego są badane łącznie istnieją wspólne instytucje badawcze i wspólne spotkania/konferencje obszarem badań jest suma obu obszarów
Pojęcia pokrewne przetwarzanie współbieżne - concurrent computing (wiele ścieżek sterowania, konkurencja o zasoby) przetwarzanie wysoce równoległe - highly parallel computing (powyżej 100 lub 1000 procesorów) przetwarzanie wysoce wydajne (szybkie) - high-performance computing/supercomputing przetwarzanie sieciowe - networked computing (użytkownik widzi zbiór maszyn a nie jedną) przetwarzanie zdecentralizowane - decentralized computing ( brak centralnej jednostki sterującej) przetwarzanie wspólne - collaborative computing (użytkownicy ściśle współpracują w jednym celu)
Argumenty za rozwojem systemów RiR rosnące zapotrzebowanie na moc obliczeniową - modelowanie klimatu/pogody, symulacje astrofizyczne, materiałoznawstwo, projektowanie nowych pojazdów - w zadaniach symulacji istnieje korelacja między dokładnością a kosztem obliczeń stosunek ceny do mocy obliczeniowej - komputery równoległe są obecnie tańsze niż komputery sekwencyjne o tej samej mocy - nie ponosi się kosztu projektu procesora i ryzyka rynkowego bariery technologiczne rozwoju procesorów sekwencyjnych w połączeniu z jakością i niskim kosztem sieci
Argumenty za rozwojem systemów RiR czas dostępu do pamięci w procesorze sekwencyjnym jest wąskim gardłem - ubocznym skutkiem dużej liczby procesorów jest wzrost pojemności pamięci głównej i cache, ponadto są przetwarzane bliżej miejsca gdzie są generowane, co ogranicza używanie pamięci systemowej są aplikacje inherentnie równoległe/rozproszone (modelowanie systemów rzeczywistych, systemy informacyjne firm itp.) dzielenie zasobów - w systemach rozproszonych użytkownicy dzielą zasoby sprzętowe i software (np. bazy danych, programy), mogą dzielić takie zasoby specjalizowane jak superkomputery
Argumenty za rozwojem systemów RiR osiagalność - systemy RiR posiadają wiele zasobów tego samego rodzaju, w przypadku awarii czy obsługi jeden komponent może zastąpić drugi - wymaga to odpowiedniego projektu systemu; osiągalność ma znaczenie w wielu zastosowaniach komercyjnych (bazy danych) systemy RiR są skalowalne, można dodawać procesory i inne komponenty do zakupionego/ zbudowanego systemu moc obliczeniowa wielu systemów rozproszonych jest marnowana poza godzinami pracy firmy, można udostępnić innym użytkownikom/aplikacjom współbieżna praca programów sekwencyjnych
Charakterystyka systemów RiR miary jakości prawa Amdahl a prawo Gustafsona-Barsis a : instancje problemów przetwarzane w systemach równoległych są zwykle większe niż w systemach sekwencyjnych - stąd wpływ części sekwencyjnej jest mniejszy w systemach klient-serwer - czas odpowiedzi (czas od zgłoszenia zadania do otrzymania wyniku) przepustowość - zdolność systemu do obsługi dużych obciążeń (miara - l. zadań / j. czasu) jakość serwisu (QoS) - gwarantowana liczba wymaganych zasobów (video-on-demand)
Charakterystyka systemów RiR Optymalizacja wydajności - obciążalność, komunikacja (minimalizacja czasu transmisji pomiędzy dwoma punktami, maksymalizacja przepustowości w stanie stabilnym)
Charakterystyka systemów RiR Techniki minimalizacji czasu transmisji : redukcja (np. nadmiarowości protokołu) optymalizacja lokalności w dostępie do pamięci(cache, pamieć lokalna, pamięć zdalna) replikacja danych i obliczeń (praca z wieloma kopiami danych, lokalne powtarzanie obliczeń) ukrycie czasu transmisji (prefetching - dostęp do zdalnych danych z wyprzedzeniem, multithreading - przełączanie sterowania pomiędzy zadaniami)
Charakterystyka systemów RiR kompromis w optymalizacji wydajności : obciążalność <-> optymalizacja lokalności optymalizacja krytycznych sekcji programu za pomocą narzędzi profilowania i wizualizacji oszacowanie wydajności na wczesnym etapie projektowania oprogramowania
Charakterystyka systemów RiR Czynniki złożoności projektowania programu granulacja (rozmiar zadań) - mała, średnia, gruba szeregowanie zadań (w czasie i przestrzeni) dystrybucja danych pomiędzy procesory koordynacja (zarządzanie komunikacją i synchronizacją) poprawność ( zjawisko wyścigu - różne wyniki przy tych samych danych wejściowych) blokada (deadlock) - procesy obl. wzajemnie oczekują na siebie, a program zatrzymuje się
Charakterystyka systemów RiR problemy trudne obliczeniowo mapowanie grafu problemu na graf architektury systemu przy kryterium minimalizacji pewnej funkcji jakości (dla wielu istotnych z punktu widzenia praktyki funkcji jakości problem mapowania jest NP-trudny i nieaproksymowalny) języki programowania nowe lub rozszerzenia istniejących
Charakterystyka systemów RiR transparentność (dla użytkownika) lokalizacji współbieżności (dzielenia zasobów z innymi użytkownikami) błędów (transmisji, czasowej nieosiągalności pewnego procesora) równoległości systemu (w przyszłości) Uwaga: automatyczna transparentność może być wadą, gdy użytkownik chce skorzystać z określonego zasobu
Charakterystyka systemów RiR przenośność kodu i wydajności (program jest przenośny, gdy działa w wielu architekturach, również tych, które pojawią się w przyszłości) przenośność kodu (te same wyniki w różnych architekturach) zapewniają stabilne standardy przenośność wydajności (wydajność programu mierzona miarami jakości odzwierciedla potencjał właściwy dla danej architektury systemu)
Charakterystyka systemów RiR skalowalność system jest skalowalny jeżeli jego zasoby mogą być rozbudowane/wymienione tak aby uzyskać wiekszą moc obliczeniową) poziom sprzętu (procesory + komunikacja, skalowalność architektury) poziom systemu operacyjnego (nowa wersja) poziom oprogramowania (więcej procesorów/ mocniejsza maszyna, wzrost rozmiaru danych) skalowalność może oznaczać wzrost wydajności skalowalność nie idzie w parze z centralizacją
Charakterystyka systemów RiR heterogeniczność (system jest zbudowany z różnorodnego sprzętu i oprogramowania - możliwość kombinowania specjalizowanych komponentów) heterogeniczność a przenośność systemy rozproszone są często heterogeniczne programy równoległe są często pisane na maszyny homogeniczne klastry powodują wzrost znaczenia heterogeniczności
Charakterystyka systemów RiR interoperacyjność zdolność do współpracy komponentów systemu pochodzacych od różnych producentów w tym części programów napisanych w różnych językach) - systemy otwarte niezawodność software u (dependability) i sprzętu (reliability) (kontynuacja pracy w obecności błędów, maksymalizacja osiągalności czyli części czasu pracy, w której system jest użyteczny) unikanie/detekcja/naprawa błędów
Charakterystyka systemów RiR techniki naprawy : nadmiarowość (redundancja), checkpointing przywracanie stanu programu zachowanego okresowo w wyznaczonych punktach) bezpieczeństwo (safety ) - zapobieganie błędom katastrofalnym odporność na ataki (security) - istotna zwłaszcza w systemach rozproszonych, gdzie wielu użytkowników ma dostęp w wielu punktach systemu
Charakterystyka systemów RiR systemy ogólnego przeznaczenia systemy specjalizowane (czasu rzeczywistego, DSP, przetwarzania informacji, przetwarzania pewnych wąskich klas problemów) - w innych zastosowaniach wykazują brak użyteczności lub ograniczoną (nieoptymalną) funkcjonalność/ wydajność
Modele i paradygmaty model ( uproszczony lub wyidealizowany opis systemu) - łatwość operowania zbiorem najważniejszych własności, stabilność w czasie modele rzadko odpowiadają sobie 1:1 paradygmat - model opisujący typowe struktury/wzory programów aplikacyjnych (modele programistyczne systemu a API -(application programming interface), modele abstrakcyjne stosowane w projektowaniu algorytmów)
Literatura Leopold C. : Parallel and distributed computing. A survey of models, paradigms, and approaches, John Wiley & Sons, Inc., 2001
Modele i paradygmaty