Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Wykorzystanie obliczeń równoległych w eksploracji danych: algorytmy wyszukiwania zbiorów częstych Marek Puścian Politechnika Warszawska 2008.

Podobne prezentacje


Prezentacja na temat: "Wykorzystanie obliczeń równoległych w eksploracji danych: algorytmy wyszukiwania zbiorów częstych Marek Puścian Politechnika Warszawska 2008."— Zapis prezentacji:

1 Wykorzystanie obliczeń równoległych w eksploracji danych: algorytmy wyszukiwania zbiorów częstych Marek Puścian Politechnika Warszawska 2008

2 Plan prezentacji Problem analizy pozyskanych danych Wykorzystanie przetwarzania równoległego do eksploracji danych Podstawowe zagadnienia dotyczące przetwarzania równoległego Przykłady równoległych algorytmów wyszukiwania zbiorów częstych Charm++ Podsumowanie

3 Gwałtowny wzrost ilości informacji firma IDC prognozuje sześciokrotny wzrost ilości informacji w każdym roku na przestrzeni między latami 2006 i 2010 (30% generowane przez placówki naukowe i przedsiębiorstwa) przykłady największych baz danych (wg zestawienia z 2007) : World Data Centre for Climate - baza danych przechowująca dane związane z badaniem zmian klimatu 220 TB danych dostępnych przez Internet (~49 tyś. płyt DVD) 6 PB danych zmagazynowanych na taśmach magnetycznych National Energy Research Scientific Computing Center – baza danych o wielkości 2,8 PB przechowująca dane związane z badaniami poświęconymi m.in. fizyce wielkich energii AT&T – baza danych najstarszej z firm telekomunikacyjnych działających na rynku USA o rozmiarze 312 TB, zawierająca 1,9 tryliona rekordów dotyczących wykonywanych połączeń

4 Problem analizy pozyskanych danych większość repozytoriów zawiera użyteczną wiedzę ukrytą w danych pod postacią trendów, regularności, korelacji lub osobliwości rozmiary współczesnych kolekcji danych skutecznie uniemożliwiają ręczną analizę zgromadzonych informacji w ostatnich latach zaproponowano wiele metod automatycznego i półautomatycznego pozyskiwania wiedzy z danych, które noszą wspólną nazwę metod eksploracji danych (ang. data mining) lub odkrywania wiedzy (ang. knowledge discovery) pomimo tego, wydajność systemów komputerowych nie wzrasta wystarczająco szybko, aby zaspokoić potrzeby aplikacji wykorzystywanych do drążenia danych

5 Obliczenia równoległe w eksploracji danych sekwencyjne algorytmy eksploracji danych przy obecnych ilościach informacji mogą nie dać wyników w rozsądnym czasie pamięć dostępna w ramach jednego procesora może nie wystarczyć do przechowania wymaganych danych nie radzą sobie z problemami wielkiej skali równoległe algorytmy eksploracji danych możliwość wykorzystania dużych ilości pamięci oraz mocy obliczeniowej równoległych procesorów pojawiają się jednak problemy z jednoczesnym uzyskaniem wysokiej wydajności i dobrej skalowalności pod względem ilości analizowanych danych

6 Najważniejsze zagadnienia związane z przetwarzaniem równoległym dobry kod równoległy powinien zapewnić efektywne wykorzystanie wszystkich procesorów (ang. load-balancing) oraz zawierać tylko niezbędną komunikację między procesorami. głównym problemem jest dekompozycja algorytmu na podzadania (tzw. ziarna), które muszą być od siebie nie zależne lub słabo zależne. w zależności od rozwiązywanego zadania wykorzystuje się dekompozycję funkcjonalną dekompozycję danych w większości przypadków algorytm nie może być do końca zrównoleglony

7 Dekompozycja funkcjonalna 1) Idea przetwarzania taśmowego (ang. pipelining) zadanie zostaje rozbite na bloki operacji, które dla określonych danych muszą być wykonywane sekwencyjnie bloki operacji są wykonywane przez różne procesory – każdy procesor w danej chwili przetwarza inną porcje danych przykład: rozpoznawanie obrazów Procesor 1 Przetwarzanie wstępne Procesor 2 Wydobycie cech Procesor 3 Rozpoznawanie obrazu

8 Dekompozycja funkcjonalna, cd. 2) Idea farmy zadań jeden z procesorów pełni funkcję nadzorcy, który zarządza pozostałymi procesorami (pracownikami) głównym zadaniem nadzorcy jest rozdzielenie zadań oraz danych pomiędzy pracownikami po wykonaniu zadania pracownicy zwracają rezultat do kolektora wyników (jego funkcję zwykle pełni nadzorca) Nadzorca Pracownik

9 Narzuty podczas obliczeń równoległych czas potrzebny na uruchomieniem zadania synchronizacja w trakcie wykonania komunikacja w celu wymiany danych narzuty związane z kompilatorami, dodatkowymi bibliotekami, systemami operacyjnymi czas potrzebny na zatrzymanie zadania

10 Obliczenia równoległe w eksploracji danych Problemy występujące podczas przygotowania nowych lub zrównoleglenia istniejących algorytmów eksploracji danych: wybór właściwej organizacji danych i przygotowanie strategii dekompozycji, dzięki której zadania będą równomiernie rozdystrybuowane pomiędzy dostępnymi procesorami, a zależności pomiędzy danymi minimalne minimalizacja narzutów związanych z synchronizacją i komunikacją pomiędzy zadaniami wykonywanymi równolegle (w celu zapewnienia dobrej skalowalności przy wzroście liczy procesorów) równoważenie obciążeń w trakcie wykonania ograniczenie operacji odczytu/zapisu do wolnych pamięci dyskowych

11 Odkrywanie reguł asocjacyjnych polega na znajdowaniu związków pomiędzy występowaniem grup elementów w zadanych zbiorach danych znalezione korelacje są prezentowane jako reguły postaci X Y, gdzie X i Y są rozłącznymi zbiorami elementów z każdą regułą postaci X Y związane są dwa parametry: wsparcie - liczba wystąpień zbioru elementów X Y w kolekcji danych zaufanie – prawdopodobieństwo wystąpienia zbioru Y, jeśli w kolekcji wystąpił zbiór X (czyli P(Y|X)) reguła asocjacyjna jest uważana za silną regułę asocjacyjną, jeżeli jej wsparcie i zaufanie jest większe od progów zadanych przez użytkownika

12 Odkrywanie reguł asocjacyjnych, cd. klasyczny przykład: analizy koszyka zakupów odkryte reguły asocjacyjne mogą być wykorzystane do organizowania promocji i sprzedaży wiązanej, do konstruowania katalogów wysyłkowych, ustalania rozmieszczenia towarów na półkach inne IdPozycje 1kiełbasa, chleb, musztarda 2ogórki, pomarańcze, sól 3ogórki, kiełbasa, chleb 4kiełbasa, chleb 5paluszki, pomarańcze przykład wyszukanej reguły: {kiełbasa,chleb} {musztarda}

13 Przetwarzanie równoległe w algorytmach wyszukiwaniu zbiorów częstych istnieje kilka sekwencyjnych algorytmów wyszukiwania zbiorów częstych (etap wyszukiwania reguł asocjacyjnych) Apriori - Rakesh Agrawal, John C. Shafer Eclat - Mohammed J. Zaki, Mitsunori Ogihara, Srinivasan Parthasarathy, Wei Li FP-growth - Jiawei Han, Jian Pei, Yiwen Yin D-Club - Jianwei Li, Alok Choudhary, Nan Jiang, Wei-keng Liao dla każdego z powyższych algorytmów przygotowano wersję równoległą

14 Algorytmy równoległe bazujące na Apriori Apriori iteracyjnie generuje i testuje kandydatów na zbiory częste o długości od 1 do k do momentu aż znalezione zostaną wszystkie zbiory częste algorytmy równoległe należące do tej klasy można podzielić na następujące grupy: Count Distribution – algorytmy bazujące na dekompozycji danych, baza dzielona jest na statyczne partycje, w których niezależnie zliczane jest wsparcie dla kandydatów na zbiory częste Data Distribution – algorytmy w tej grupie dążą do lepszego wykorzystania pamięci poprzez podzielenie bazy na partycje i rozdzielenie listy wyszukiwanych kandydatów pomiędzy procesory. Każdy kandydat jest wyszukiwany przez tylko jeden proces, dlatego procesy muszą wymieniać się partycjami w czasie każdej iteracji Candidate Distribution – algorytmy w tej grupie rozdzielają listę wyszukiwanych kandydatów i replikują transakcje z bazy danych

15 Count Distribution algorytmy z tej grupy wykazują najlepszą wydajność spośród wszystkich algorytmów bazujących na Apriori kroki algorytmu dla maszyny wieloprocesorowej z pamięcią rozproszoną: 1. Równy podział bazy na partycje w orientacji poziomej i przydzielenie partycji każdemu procesowi TIDItemsProcess Number 1f d b e P0 2f e b 3a d b P1 4a e f c 5a d e P2 6a c f e

16 Count Distribution, cd. 2. Każdy proces skanuje lokalną partycje w celu zliczenia występowania każdego elementu 3. Wszystkie procesy wymieniają i sumują lokalne liczniki, aby uzyskać globalną liczbę wystąpień każdego elementu, po czym wyszukują wszystkie zbiory częste o długości 1 Element Lokalny licznik Globalny licznik P0P1 a0224 b2103 c0112 d1113 e2125 f2114 TIDPozycjeProces 1f d b e P0 2f e b 3a d b P1 4a e f c 5a d e P2 6a c f e

17 Count Distribution, cd. 4. Ustaw długość kandydata k = 2 5. Wszystkie procesy generują kandydatów o długości k ze zbiorów częstych o długości k – 1 6. Każdy proces skanuje lokalną partycje w celu policzenia wystąpień każdego zbioru elementów o długości k 7. Wszystkie procesy wymieniają i sumują lokalne liczniki, aby uzyskać globalną liczbę wystąpień każdego zbioru elementów o długości k, po czym wyszukują wszystkie k-zbiory częste 8. Powtarzaj kroki (5) – (8) z k := k + 1 do momentu, aż nie znaleziony zostanie żaden zbiór częsty Kandydaci na zbiory częste są generowani w taki sam sposób jak w algorytmie Apriori - sklejane są pozycje, które po usunięciu ostatnich elementów są identyczne

18 Count Distribution, cd. 2-Zbiór Lokalny licznik Globalny licznik P0P1 ab0101 ac0112 ad0112 ae0123 af0112 bc0000 bd1102 be2002 bf2002 cd0000 ce0112 ……...…… 3-Zbiór Lokalny licznik Globalny licznik P0P1 ace0112 acf0112 ade0011 aef0112 bde1001 bef2002 cef Zbiór Lokalny licznik Globalny licznik P0P1 acef0112

19 Count Distribution - podsumowanie. Zalety komunikacja pomiędzy procesami jest ograniczona do wymiany liczników na końcu każdej iteracji, w pozostałych częściach algorytmu procesy działają niezależnie i wykorzystują lokalny fragment bazy danych Wady pamięć nie jest wykorzystywana efektywnie – kandydaci i zbiory częste są przechowywane na każdej jednostce wykonawczej praca związana z wygenerowaniem kandydatów i wyborem zbiorów częstych jest powtarzana na każdej jednostce (może być kosztowne, jeżeli jest dużo takich zbiorów) nie można uniknąć kosztu związanego z odczytem bazy danych oraz synchronizacją pomiędzy procesami w każdej iteracji

20 Par-Eclat powstał poprzez zrównoleglenie Eclata charakteryzuje się lepszym wykorzystaniem zasobów komputerowych oraz doskonałą skalowalnością wykorzystuje pionową orientację danych – zamiast bazy zawierającej rekordy typu {id transakcji, lista pozycji} używane są tid-listy, czyli listy posortowanych identyfikatorów transakcji, w których występuje dana pozycja (element) zbiory częste o długości k są zorganizowane w rozłączne klasy równoważności (zbiory posiadające identyczne k-1 elementowe prefiksy) kandydaci o długości k+1 są generowani poprzez połączenie dwóch częstych k-zbiorów z tej samej klasy

21 Par-Eclat, cd. wsparcie kandydującego zbioru obliczamy poprzez wyznaczenie części wspólnej tid-list podzbiorów, z których go utworzono zrównoleglenie uzyskujemy poprzez rozdzielenie zadań generacji i weryfikacji kandydatów dla poszczególnych klas równoważności pomiędzy dostępne procesy istnieją również inne odmiany zrównoleglonego Eclata, które różnią się organizacją oraz strategiami przeszukiwania danych ParMaxEclat ParClique ParMaxClique

22 Par-Eclat, cd. kroki algorytmu dla maszyny wieloprocesorowej z pamięcią rozproszoną: 1. Równy podział bazy na partycje w orientacji poziomej i przydzielenie partycji każdemu procesowi 2. Każdy proces odczytuje swoją lokalną partycję w celu zliczenia wystąpień zbiorów o długości 1 oraz o długości 2 3. Wszystkie procesy wymieniają i sumują lokalne liczniki, aby uzyskać globalną liczbę wystąpień każdego 1-zbioru i 2-zbioru po czym wyszukują pośród nich wszystkie zbiory częste 4. Utworzenie klas równoważności dla wszystkich częstych 2- zbiorów 5. Przypisanie klas równoważności poszczególnym procesom 6. Każdy proces przekształca swoją lokalną część danych do orientacji pionowej (tid-listy) dla wszystkich częstych 2-zbiorów

23 Par-Eclat, cd. 7. Każdy proces wymienia lokalne tid-listy z innymi procesami, aby otrzymać ich globalną postać dla przypisanych klas równoważności 8. Dla każdej przypisanej klasy równoważności na każdej jednostce wykonawczej wykonywane jest rekursywne wykrywanie zbiorów częstych (każde dwie dwójki zbiorów z tej samej klasy równoważności są łączone i wyznaczna część wspólna tid-list)

24 Par-Eclat, przykład:

25 Par-Eclat, podsumowanie Zalety: znacząca redukcja narzutu związanego z operacjami we/wy - Par-Eclat wykonuje trzy odczyty z bazy danych nie jest potrzebna komunikacja/synchronizacja w trakcie generacji kolejnych kandydatów na zbiory częste Wady: narzut związany z komunikacją wynika z potrzeby ustalenia na początku algorytmu globalnych tid-list (zwykle amortyzowany w kolejnych iteracjach algorytmu) liczba procesów powinna być dużo mniejsza niż liczba klas równoważności dla zbiorów częsty o długości 2 (w celu uniknięcia nierównego obciążenia procesorów) może być konieczne przygotowanie strategii rozdziału klas równoważności i równoważenia obciążeń

26 Komputer równoległy - definicja system zawierający szereg procesorów, zdolnych do wspólnego rozwiązywania pewnego zagadnienia obliczeniowego (inaczej równoległy system komputerowy) podobnymi cechami charakteryzują się rozproszone systemy komputerowe

27 Charm++ jest paradygmatem programowania równoległego opartym o asynchroniczną wymianę komunikatów i zorientowanym obiektowo powstał jako grupowy wysiłek osób pracujących w Laboratorium Programowania Równoległego Uniwersytetu Illinois w Urbana-Champaign językiem bazowym wykorzystywanym przy pisaniu programów jest C++

28 Środowisko sprzętowe: W chwili obecnej CHARM++ wspiera następujące platformy sprzętowe: BlueGene/L, BlueGene/P, PSC Lemieux, IBM SP, IBM RS-6000 (AIX) SGI (IRIX 5.3 or 6.4), SGI Origin2000, Cray XT3/4, Cray X1, Cray T3E, pojedynczą stację roboczą lub sieć stacji roboczych firmy Sun Microsystems (Solaris), HP (HP-UX), Intel x86 (Linux, Windows 98/2000/XP), Intel IA64, Intel x86 64, wielordzeniowe x86 oraz x86 64, Apple Mac

29 Program w Charm++ z punktu widzenia programisty aplikacja w Charm++ jest kolekcją kontenerów równoległych (ang. chares) komunikacja pomiędzy kontenerami równoległymi odbywa się poprzez wysyłanie komunikatów po odebraniu komunikatu wywoływana jest odpowiednia metoda wejściowa (ang. entry method) kontenera operacja przekazania wiadomości jest nie blokująca Charm++ umożliwia również synchroniczną wymianę komunikatów (odbiorca może odesłać rezultat wykonania metody do nadawcy)

30 Hello world w Charm++ // hello.ci file mainmodule hello { mainchare mymain { entry mymain(CkArgMsg *m); }; // hello.ci file mainmodule hello { mainchare mymain { entry mymain(CkArgMsg *m); }; // hello.C file #include hello.decl.h class mymain : public Chare { public: mymain(CkArgMsg *m) { ckout <

31 System wykonawczy Charm++ zarządza jak największą liczbą szczegółów związanych z fizycznymi zasobami w imieniu aplikacji oraz programisty wśród zadań, którymi w imieniu aplikacji zajmuje się system wykonawczy Charm++ można wyróżnić: rozmieszczanie kontenerów równoległych na fizycznych jednostkach wykonawczych równoważenie obciążeń dystrubucja wiadomości obsługa punktów kontrolnych lub migawek (ang. checkpoints) tolerowanie błędów dynamiczna realokacja zasobów fizycznych

32 System wykonawczy Charm++

33 Migracja obiektów kontenery mogą swobodnie migrować pomiędzy fizycznymi jednostkami przetwarzającymi system wykonawczy Charm++ przemieszcza kontenery pomiędzy procesorami korzystając z informacji zbieranych w czasie wykonania programu programista nie musi wiedzieć, na którym procesorze wykonuje się dany kontener - system wykonawczy zadba, aby komunikat został przekazany do odpowiedniego procesora

34 Migracja obiektów, cd.

35 Automatyczne równoważenie obciążeń programista może wybrać jedną z dostępnych strategii równoważenia obciążeń lub napisać swoją własną wśród dostępnych strategii można wyróżnić: RandCentLB – losowe przypisanie kontenerów do procesorów GreedyLB – wykorzystuje algorytm zachłanny, przenosi najbardziej obciążający kontener do najmniej obciążonego procesora. GreedyCommLB - wykorzystuje algorytm zachłanny, ponadto brane są pod uwagę narzuty związane z komunikacją TopoCentLB: wykorzystuje algorytm zachłanny, ponadto brana jest pod uwagę topologia procesorów RefineLB – kontenery są przenoszone z najbardziej obciążonego procesora tak, aby uzyskać na nim średnie obciążenie (minimalizacja niezbędnych migracji)

36 Architektura Charm++

37 Projections narzędzie ułatwiające analizę działania i badanie wydajności aplikacji w Charm++ pozwala śledzić obciążenie poszczególnych procesorów (zebrane dane można zapisać na dysk)

38 Projections, cd.

39 Podsumowanie Ilość danych przechowywanych przez przedsiębiorstwa i ośrodki naukowe gwałtownie wzrasta Wykorzystanie tradycyjnych metod służących do eksploracji danych może być kłopotliwe i nie dać wyników na czas Powoli zaczyna wzrastać (powracać) zainteresowanie równoległymi metodami eksploracji danych

40 Literatura 1. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz, Obliczenia równoległe i rozproszone, Oficyna Wydawnicza Politechniki Warszawskie, Jianwei Li, Ying Liu, Wei-keng Liao, Alok Choudhary Parallel Data Mining Algorithms for Association Rules and Clustering, CRC Press, LLC, Mohammed J. Zaki. Parallel and distributed association mining: A survey IEEE Concurrency, 7(4):14–25, Mohammed J. Zaki, Mitsunori Ogihara, Srinivasan Parthasarathy, and Wei Li. Parallel data mining for association rules on shared- memory multi-processors. In Proc. of the ACM/IEEE Conf. on Supercomputing, November The Charm++ Programming Language Manual

41 Pytania?

42 Dziękuje za uwagę.


Pobierz ppt "Wykorzystanie obliczeń równoległych w eksploracji danych: algorytmy wyszukiwania zbiorów częstych Marek Puścian Politechnika Warszawska 2008."

Podobne prezentacje


Reklamy Google