Rozwi zywanie Ukªadów Równa«Liniowych Ax=B metod dekompozycji LU, za pomoc JAVA RMI



Podobne dokumenty
Ukªady równa«liniowych

Lekcja 8 - ANIMACJA. 1 Polecenia. 2 Typy animacji. 3 Pierwsza animacja - Mrugaj ca twarz

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Ukªady równa«liniowych - rozkªady typu LU i LL'

Interpolacja funkcjami sklejanymi

Lekcja 12 - POMOCNICY

Wska¹niki, tablice dynamiczne wielowymiarowe

Metody numeryczne i statystyka dla in»ynierów

1 Bª dy i arytmetyka zmiennopozycyjna

Lab. 02: Algorytm Schrage

Listy i operacje pytania

Metody numeryczne. Wst p do metod numerycznych. Dawid Rasaªa. January 9, Dawid Rasaªa Metody numeryczne 1 / 9

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

Liniowe zadania najmniejszych kwadratów

wiczenie nr 3 z przedmiotu Metody prognozowania kwiecie«2015 r. Metodyka bada«do±wiadczalnych dr hab. in». Sebastian Skoczypiec Cel wiczenia Zaªo»enia

Janusz Adamowski METODY OBLICZENIOWE FIZYKI Zastosowanie eliptycznych równa«ró»niczkowych

1. Wprowadzenie do C/C++

Analiza wydajno±ci serwera openldap

Metody numeryczne i statystyka dla in»ynierów

1. Wprowadzenie do C/C++

Podziaª pracy. Cz ± II. 1 Tablica sortuj ca. Rozwi zanie

POLITECHNIKA WROCŠAWSKA WYDZIAŠ ELEKTRONIKI PRACA DYPLOMOWA MAGISTERSKA

det A := a 11, ( 1) 1+j a 1j det A 1j, a 11 a 12 a 21 a 22 Wn. 1 (Wyznacznik macierzy stopnia 2:). = a 11a 22 a 33 +a 12 a 23 a 31 +a 13 a 21 a 32

Regulamin Usªugi VPS

przewidywania zapotrzebowania na moc elektryczn

Ekonometria - wykªad 8

Elementy animacji sterowanie manipulatorem

Lekcja 6 Programowanie - Zaawansowane

PERSON Kraków

Lekcja 3 - BANKI I NOWE PRZEDMIOTY

Edyta Juszczyk. Akademia im. Jana Dªugosza w Cz stochowie. Lekcja 1Wst p

Programowanie wspóªbie»ne

x y x y x y x + y x y

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Vincent Van GOGH: M»czyzna pij cy li»ank kawy. Radosªaw Klimek. J zyk programowania Java

PRZYPOMNIENIE Ka»d przestrze«wektorow V, o wymiarze dim V = n < nad ciaªem F mo»na jednoznacznie odwzorowa na przestrze«f n n-ek uporz dkowanych:

Matematyka wykªad 1. Macierze (1) Andrzej Torój. 17 wrze±nia Wy»sza Szkoªa Zarz dzania i Prawa im. H. Chodkowskiej

Zagadnienia na wej±ciówki z matematyki Technologia Chemiczna

Macierze. 1 Podstawowe denicje. 2 Rodzaje macierzy. Denicja

Ekonometria. wiczenia 13 Metoda ±cie»ki krytycznej. Andrzej Torój. Instytut Ekonometrii Zakªad Ekonometrii Stosowanej

Lekcja 9 - LICZBY LOSOWE, ZMIENNE

obsług dowolnego typu formularzy (np. formularzy ankietowych), pobieranie wzorców formularzy z serwera centralnego,

INFORMATOR TECHNICZNY WONDERWARE

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy

1 Metody iteracyjne rozwi zywania równania f(x)=0

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

Numeryczne zadanie wªasne

Aproksymacja funkcji metod najmniejszych kwadratów

Lekcja 3 Banki i nowe przedmioty

Programowanie i struktury danych 1 / 44

Macierze i Wyznaczniki

X WARMI SKO-MAZURSKIE ZAWODY MATEMATYCZNE 18 maja 2012 (szkoªy ponadgimnazjalne)

EDUKARIS - O±rodek Ksztaªcenia

Opis matematyczny ukªadów liniowych

Dostp do zasobów dyskowych uytkowników lcme10 przez protokół SMB (Microsoft Networking)

Remote Method Invocation 17 listopada 2010

Podejście obiektowe do budowy systemów rozproszonych

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Instrukcja obsługi Norton Commander (NC) wersja 4.0. Autor: mgr inż. Tomasz Staniszewski

Podejście obiektowe do budowy systemów rozproszonych

Macierz A: macierz problemów liniowych (IIII); Macierz rozszerzona problemów liniowych (IIII): a 11 a 1m b 1 B = a n1 a nm b n

Uczenie Wielowarstwowych Sieci Neuronów o

System Connector Opis wdrożenia systemu

Instalacja. Zawartość. Wyszukiwarka. Instalacja Konfiguracja Uruchomienie i praca z raportem Metody wyszukiwania...

Elementy Modelowania Matematycznego Wykªad 9 Systemy kolejkowe

Informacje pomocnicze

Problemy optymalizacyjne - zastosowania

Opis instalacji systemu Intranet Komunikator

Wywoływanie metod zdalnych

LZNK. Rozkªad QR. Metoda Householdera

Macierze i Wyznaczniki

Projekt konceptualny z Baz Danych "Centralny system zarz dzania salami na AGH"

Metody dowodzenia twierdze«

Wywoływanie metod zdalnych

Opis obsługi systemu Ognivo2 w aplikacji Komornik SQL-VAT

Instrukcja programu PControl Powiadowmienia.

Mathematica - podstawy

Aplikacje RMI

Wstawianie gotowych rysunków w texu - informacje podstawowe.

ANALIZA MATEMATYCZNA Z ALGEBR

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls )

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Modele liniowe i mieszane na przykªadzie analizy danych biologicznych - Wykªad 1

Subversion - jak dziaªa

WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH

Laboratorium Sieci Komputerowych - 1

Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych.

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Bazy danych. Andrzej Łachwa, UJ, /15

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Instrukcja instalacji oprogramowania TSG wer. 5.0 z dost pem do danych poprzez sie Internet.

Zaawansowane metody numeryczne

Model obiektu w JavaScript

I. INSTALACJA BAZY DANYCH ORACLE10g EXPRESS EDITION

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017

2. L(a u) = al( u) dla dowolnych u U i a R. Uwaga 1. Warunki 1., 2. mo»na zast pi jednym warunkiem: L(a u + b v) = al( u) + bl( v)

Remote Method Invocation 17 listopada rozproszonych. Dariusz Wawrzyniak (IIPP) 1

epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji

Transkrypt:

Rozwi zywanie Ukªadów Równa«Liniowych Ax=B metod dekompozycji LU, za pomoc JAVA RMI Marcn Šabudzik AGH-WFiIS, al. Mickiewicza 30, 30-059, Kraków, Polska email: labudzik@ghnet.pl www: http://fatcat.ftj.agh.edu.pl/ labudzik/io 1 Wst p dotycz cy zadania Ukªad algebraicznych równa«liniowych ma form Ax=b, gdzie A jest macierz o rozmiarach, b jest n - wymiarowym wektorem, a x jest nieznanym wektorem rozwi za«, równie» o wymiarze n. Jedn z bezpo±rednich metod rozwi zywania takich liniowych ukªadów jest tzw. rozkªad LU, gdzie macierz A przedstawia si jako iloczyn dwóch macierzy A=LU (L-macierz jednostkowa (z 1 na diagonali) trójk tna dolna, U-macierz trójk tna górna). W metodzie tej ukªad Ax=b przechodzi wi c w ukªad LUx=b, który rozwi zujemy poprzez wyznaczenie w pierwszej kolejno±ci, metod tzw. forward-substitution, wektora y, z dolnego trójk tnego ukªadu równa«ly=b, a nast pnie z górnego trójk tnego ukªadu Ux=y, metod tzw. back-substitution otrzymujemy ju» ko«cowe rozwi zanie w postaci wektora x. Rozkªad LU mo»na zrealizowa c poprzez metod eliminacji Gaussa, gdzie A zostaje zast pione przez U. Algorytm to realizuj cy mógªby wygl da c tak: For k=1to n-1 For i=k+1 to n l ik = a ik /a kk For j=k+1 to n For i=k+1 to n a ij = a ij l ik a kj W ogólno±ci, mo»e by c konieczna wymiana rz dów (tzw. pivoting), aby zapewni c istnienie rozwi zania i stabilno± c numeryczn rozkªadu LU, jednak na razie pozostawimy ten problem. Metoda eliminacja Gaussa potrzebuje okoªo dziaªa«dodawania i mno»enia, wi c czas potrzebny na rozwi zanie danego problemu t metod, mo»na zapisa c wzorem : gdzie -to czas potrzebny na wykonanie jednego dziaªania mno»enia i

dodawania. (dodatkowo potrzebne jest jeszcze dziaªa«dzielenia, ale pomijamy ten mniej istotny warunek). Rozkªad LU mo»na zapisa c w ogólnej formie potrójnie zagnie»d»onej p tli, gdzie A zostaje zapisane przez L i U : For -------- For -------- For -------- a ij = a ij (a ik /a kk )a kj Wska¹niki i,j oraz k w p tlach For (powinny by c one wstawione w miejsca - powy»szego algorytmu), mo»na wzi c w ró»norakiej kolejno±ci. Wszystkich mo»liwych wyborów organizowania tych p tli to 3!=6. Ró»na kolejno± c organizacji p tli wymaga ró»nych wymaga«odno±nie dost pu i zaj to±ci pami ci, co mo»e mie c znaczenie w przypadku realizacji zadania na maszynach o ró»nej architekturze. 2 Realizacja rozproszona zadania Zrealizowanie postawionego problemu w ±rodowisku rozproszonym wymaga skonstruowania algorytmu, w którym ka»dy proces b dzie mógª swobodnie wykonywa c obliczenia, niezale»nie od innych procesów. W naszym przypadku jest to bardzo trudne, a wr cz niemo»liwe do osi gni cia za pomoc powszechnie znanych algorytmów dekompozycji LU. W celu zrealizowania zadania w ±rodowisku rozproszonym, zostaªo ono rozªo»one w taki sposób, aby zobaczy c funkcjonowanie mechanizmów zwi zanych z Java RMI. Podstawowy algorytm z którego korzystali±my, to organizacja p tli obliczaj cej rozkªad LU (patrz poprzedni punkt) w formie kji. Forma ta, w postaci algorytmu przyjmuje posta c: For k=1 to n-1 For j=k+1 to n For i=k+1 to n a ij = a ij (a ik /a kk )a kj

2.1 Algorytm rozproszony W realizacji rozproszonej powy»szego algorytmu przyj li±my»e ka»dy proces rozproszony oblicza jeden element macierzy podczas dekompozycji LU. Liczba tych procesów jest wi c równa wymiarowi macierzy wej±ciowej (n x n). Ka»dy proces wykonywany jest przez serwer zalogowany do katalogu serwerów. Ilo± c serwerów zale»y od u»ytkownika, wi c zostaª wprowadzony dodatkowy podziaª zadania, przydzielaj cy wykonanie procedury rozproszonej odpowiednim serwerom. Ka»dy taki serwer otrzymuje obiekt klasy LUParameters (o czym dalej), wykonuje odpowiednie obliczenie warto±ci wspóªczynnika macierzy wej±ciowej, w zale»no±ci od tego którym jest z kolei procesem wywoªanym przez klienta. Nast pnie zwraca wynik oblicze«w postaci uaktualnionego obiektu klasy LUParameters. Schemat wykonywania operacji oblicze«rozproszonych przedstawia poni»szy rysunek. Niestety jest to nieudolny algorytm, który tak naprawd nic nie wnosi do zwykªego sekwencyjnego wykonania zadania, ale w celu zaznajomienia si z tworzeniem i dziaªaniem aplikacji rozproszonych, przyj li±my wªa±nie takie rozwi zanie. 2.2 Realizacja programu Do wykonania zadania u»yli±my mechanizmu JAVA RMI, znajduj cego si w ka»dym pakiecie instalacyjnym Javy. W pierwszym etapie stworzyli±my tzw. Interfejs (LUInterface.java), który zawiera deklaracje metod które b d wywoªywane zdalnie w ±rodowisku rozproszonym. W naszym przypadku jest to jedna metoda któr nazwali±my MyLU. Metoda ta zwraca obiekty klasy LUParameters oraz jest wywoªywana z parametrem który równie» jest obiektem tej klasy. Klasa LUParameters deniuje typy przesyªanych obiektów, którymi u nas s dwie tablice dwu wymiarowe A (macierz gªówna) i L (macierz dolna trójk tna), jedna jednowymiarowa B (wektor rozwi za«), oraz dwie liczby typu intiger i,j (odpowiednio numer wiersza, kolumny w macierzy A), dodatkowo klasa ta deniuje liczb typu oat zawieraj c kod bª du - errorcode. Klasa LUParameters implementuje klas Serializable, umo»liwiaj c spakowanie przesyªanych danych. Wspominany wcze±niej interfejs stanowi rozszerzenie klasy Remote i zwraca wyj tek RemoteException. W drugim etapie przyst pili±my do stworzenia kodu serwera, wykonuj cego obliczenia (LUImplementation.java). Klasa ta rozszerza klas UnicastRemoteObject oraz implementuje stworzony wcze±niej interfejs-luinterface. W konstruktorze tej klasy który równie» podobnie jak klasa interfejsu zwraca wyj tek RemoteException, wywoªali±my konstruktor klasy nadrz dnej. Nast pnie zaimplementowali±my metod MyLU wykonuj c gªówne obliczenia rozkªadu macierzy A na LU. W zale»no±ci od parametrów i oraz j, przekazywanych w obiekcie klasy LUParameters wraz z macierz wej±ciow A, wykonuje odpowiednie obliczenie zgodnie z algorytmem powy»ej i uaktualnia warto± c elementu aij (i-wiersz,jkolumna) macierzy A. Uaktualniony obiekt zwracany jest do klienta, który wywoªaª zdaln metod. Oczywi±cie, aby zapewni c komunikacj mi dzy serwerami a klientem ka»dy klient musi si zalogowa c do tzw. katalogu serwerów.

Rysunek 1: Schemat przekazywania danych dla algorytmu rozproszonego

W kodzie serwera cz ± c programu odpowiedzialn wªa±nie za to umie±cili±my w metodzie main. Pobiera ona nazw hosta na którym jest uruchomiony serwer i loguje siebie i swoj metod któr klient mo»e wykona c zdalnie pod odpowiednim adresem postaci przypominaj cej URL: //hostname/mylu. Po kompilacji tak stworzonego serwera, trzeba uruchomi c program rmic (nale» cy do pakietu Java) z argumentem b d cym nazw klasy serwera. W ten sposób generuj c klasy ze szkieletem serwera i namiastkami. Kolejnym etapem byªo stworzenie kodu klienta. Klient w swojej metodzie main, wczytuje dane z pliku wej±ciowego, nast pnie wykonuje pivoting na tych danych, dokonuj c odpowiedniego przestawienia wierszy, tak aby zadanie byªo jak najlepiej rozwi zywalne numerycznie. Klient wczytuje te» z pliku nazwy komputerów-serwerów na których b dzie wykonywaª odpowiednie obliczenia. Po wczytaniu wszystkich danych, nast puje podziaª zadania na odpowiednie serwery, ka»dy z nich otrzyma cz ± c danych które b dzie obliczaª. Obrazóje to rysunek 3. Niestety problem który rozwi zujemy, nie jest mo»liwy do rozwi zywania jednocze±nie przez wi cej w tków, wi c musieli±my zrobi c synchronizacj polegaj ca na tym,»e po wykonaniu cz ±ci oblicze«przez jeden serwer i zwróceniu wyników do klienta, ten wysyªa ju» uaktualnione dane do nast pnego serwera, który oblicza swoj cz ± c. Schemat tego pokazany jest na rys.1. Klient próbuj c wywoªa c metod zdaln, szuka najpierw w katalogu serwerów czy serwer do którego si on odwoªuje si zalogowaª i uzyskuje do niego odpowiedni adres, dzi ki któremu mo»e si z nim ju» kontaktowa c i wysyªa c mu dane do oblicze«. Po rozªo»eniu macierzy A na LU, klient wykonuje ju» tylko obliczenia ko«- cowe, pozwalaj ce na znalezienie ostatecznego rozwi zania zadanego problemu, poprzez wyliczenie wektora rozwi za«(rozwi zania zapisywane s w wektorze B). 3 Schemat blokowy algorytmu Schemat przedstawiony zostaªna rysunku 2. 4 Opis dziaªania programu 4.1 Struktura pliku wej±ciowego Plik wej±ciowy zawieraj cy dane wykorzystywane przy obliczeniach musi mie c odpowiedni struktur. Przyj li±my»e, pierwszy element to jest rozmiar zadania, okre±lony wymiarem wektora rozwi za«ukªadu Ax=b. Nast pnie znajduje si odpowiednia liczba danych wej±ciowych stanowi cych macierz A oraz wektor rozwi za«b. Przykªad takiej struktury, dla wymiaru 3 znajduje si poni»ej : 3 // wymiar zadania -1 1 2 // macierz A

Rysunek 2: Podziaª pracy na poszczegòlne procesy

Rysunek 3: Schemat blokowy algorytmu

-8 7 1 5 6 1 1 //wektor b 3 1 Drugi plik wej±ciowy powinien zawiera c nazwy hostów na których pracuj aplikacje serwerów i na których b d wykonywane obliczenia. W pliku tym nazwy te powinny znajdowa c si jedna pod drug. Mo»liwe jest wykomentowanie danego serwera, poprzez dodanie na pocz tku linii znaku, dzi ki czemu program nie b dzie braª tego serwera pod uwag. 4.2 Proces kompilacji - makele Aby uªatwi c kompilacje programu i jego uruchomienie, stworzyli±my plik makele, który zawiera odpowiednie reguªy to realizuj ce. Przed uruchomieniem makele ( za pomoc polecenia make) u»ytkownik powinien wpisa c w pliku makele odpowiednie dane. W polu J2SDK nale»y wpisa c ±cie»k dost pu do katalogu gdzie zainstalowano Jav. Makele skompiluje nam wszystkie programy i wygeneruje kod serwera i klienta. Wy±wietli tak»e dodatkow informacje jak uruchomi c odpowiednie programy. 4.3 Uruchomienie aplikacji Aby wykona c program nale»y uruchomi c odpowiedni liczb serwerów (minimum jeden) i program klienta. Przed wykonaniem programu serwera nale»y, wystartowa c na danym komputerze katalog serwerów poprzez wykonie polecenia: rmiregistry 1099 -java.rmi.server.codebase & Domy±lnie catalog ten uruchamiany jest na porcie 1099. Nast pnie nale»y wyeksportowa c domy±ln scierzke bibliotek: export LD_LIBRARY PATH=SOURCE_PATH oraz uruchomi c aplikacje serwera poprzez: java -cp. -Djava.security.policy=$(PATH)/java.policy -Djava.rmi.server.codebase=file://$(PATH)/ LUImplementation gdzie PATH to podobnie jak poprzednio ±cie»ka do programów serwera, klienta i interfejsu. Plik java.policy uruchamiany jest, aby umo»liwi c komunikacj. W naszym przypadku dla uproszczenia zezwala on na wszystko, ale powinien zawiera c tylko odpowiednie przepisy pozwalaj ce na uruchomienie aplikacji i jednocze±nie zapewnienie bezpiecze«stwa. Aby uruchomi c program klienta wystarczy wpisa c: java client hostlist in2.dat gdzie hostlist to nazwa pliku z list serwerów, a drugi parametr wywoªania to nazwa pliku z danymi. Opcja make clean, przywraca pierwotn zawarto± c katalogu.

4.4 Dziaªanie aplikacji Klient wysyªa dane przeczytane z pliku do odpowiedniego serwera. Serwer z kolei oblicza dany element macierzy w zale»no±ci od parametrów i (wiersz) oraz j (kolumna), deniuj cych poªo»enie argumentu który dany serwer powinien obliczy c i zmodykowa c. Wynik obliczenia macierzy U zapisywany jest do macierzy A, wraz z wynikami potrzebnymi do dalszych wylicze«. Natomiast wynik obliczenia macierzy L, zapisywany jest do macerzy o takiej samej nazwie. Caªo± c w postaci obiektu LUParameters, zwracana jest do klienta. Mo»na porówna c wyniki dziaªania naszego programu z wynikami rzeczywistymi. Oczywi±cie wyniki si pokrywaj, co ±wiadczy o tym»e nasz algorytm dziaªa poprawnie. W ¹ródle programu znajduj si dodatkowo komentarze, uªatwiaj ce zrozumienie dziaªania caªego programu. References 1. http://www.javasoft.pl/java 2. http://java.sun.com 3. http://www.cs.caltech.edu/ frazier/cs20/c/lab2/lab.html 4. http://www.zis.agh.edu.pl/ksn/ 5. http://www.library.cornell.edu/nr/bookcpdf.html