Rówoległe algorytmy genetyczne w zastosowaniu do problemu

Transkrypt

Rówoległe algorytmy genetyczne w zastosowaniu do problemu
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
[email protected]
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

Podobne dokumenty