INSTRUKCJA PRZYGOTOWANIA REFERATU NA OWD`2005
Transkrypt
INSTRUKCJA PRZYGOTOWANIA REFERATU NA OWD`2005
XIV International PhD Workshop OWD 2012, 20–23 October 2012 WYKORZYSTANIE ZAAWANSOWANYCH SYSTEMÓW INFORMATYCZNYCH NA PRZYKŁADZIE STEROWANIA RUCHEM ULICZNYM PREPARATION OF THE EFFECTIVE STRATEGY IN TRAFFIC LIGHTS USING ADVANCE INFORMATIC SYSTEMS Konrad Andrzej MARKOWSKI, Warsaw University of Technology Abstract Control of traffic in urban conditions is nowadays very important element in connection with dramatic increase of traffic in the cities. Preparation of the effective strategy in traffic lights switching and determination of alternative transport ways in the case of collision or blockade demands more and more working load and gathering of big amount of information. In the paper is described basic problems connected with building of data base and using GPU computing to for this kind of problems. Streszczenie Gwałtownie rosnący ruch uliczny w miastach powoduje, że zagadnienie sterowania ruchem drogowym jest jednym z najważniejszych elementów w inżynierii ruchu drogowego. Powstają coraz to nowsze strategie ustalania przełączania świateł drogowych i wyznaczanie alternatywnych dróg transportu. Jednocześnie wymaga to coraz większych nakładów pracy i gromadzenia znacznej ilości informacji. W artykule zostaną omówione wybrane zagadnienia związane z budową zaawansowanego systemu bazodanowego, którego zadaniem będzie rozwiązanie podstawowych problemów pojawiających się w zagadnieniu sterowania ruchem ulicznym oraz zostanie pokazana możliwość wykorzystania do tego celu obliczeń wykonywanych na kartach graficznych GPU. 1. Wprowadzenie Sterowanie ruchem drogowym z racji ilości elementów z jakich się on składa (sygnalizacja, układ świateł, ręcznie regulowane strumienie ruchu, sensory i czujniki, itd. ) jest zadaniem o wysokim stopniu złożoności [1]. Dodatkowo należy wziąć pod uwagę, iż sygnalizacja powinna być skoordynowana nie tylko w skali skrzyżowania ale również w skali rejonu sterowania ruchem. W związku z tym możemy powiedzieć, iż głównym celem efektywnego sterowania powinno być oprogramowanie, które pozwoli na opracowanie części obliczeń planów świateł. Elementem tego oprogramowania jest: baza danych zapewniająca przechowywanie bieżących i historycznych danych pochodzących z systemu, oprogramowanie inżynierskie, dzięki któremu będzie możliwe wykonywanie złożonych obliczeń numerycznych z wykorzystaniem technologii kart graficznych (GPU). 2. Systemy informatyczne 2.1 Bazy danych Jednym z elementów systemu informatycznego sterującego ruchem drogowym jest baza danych [7], [8]. Głównym zadaniem bazy danych jest gromadzenie danych historycznych oraz danych bieżących pochodzących z systemu sterującego ruchem ulicznym. Dodatkowo baza przechowuje informacje na temat topologii skrzyżowań wykorzystując w tym celu dane przestrzenne zgodne ze standardem OpenGIS. Na etapie koncepcyjnej pracy nad budową fizycznego modelu danych prowadzone były rozważania nad wyborem odpowiedniego systemu zarządzania bazą danych. Rozważane były następujące systemy: mySQL 5.5, Postgress 9.0, Microsoft SQL Server 2008 oraz Oracle 11g. Głównym czynnikiem decydującym o wyborze systemu zarządzającego bazą danych było posiadanie obsługi geometrycznych i geograficznych typów danych. W pierwszym etapie poczynione zostały próby porównania wyżej wymienionych systemów. W ich wyniku, ze względów dużych wymagań sprzętowych, został odrzucony system zarządzania bazą danych Oracle 11g. Następnie w wyniku zbyt dużych różnic w stosunku do standardu OpenGIS odpadł system zarządzania bazą danych 521 Postgress 9.0. W kolejnym etapie ze względu na brak zaawansowanych mechanizmów, ograniczone możliwości programowania bazy danych oraz brak dedykowanej platformy raportowania odpadł mySQL 5.5. Zastawienie rozważanych systemów zarządzania bazami danych pokazano w Tabeli 1. Tab.1. Systemy zarządzania bazą danych mySQL Postgrss MS SQL Oracle Database ma nagement s ystem Wieloplatformowość + - - + Wymagania sprzętowe ↓ ↓ ↓ ↑ Standard OpenGIS ↑ ↓ ↑ ↑ - - + + - - + + Mechanizmy zaawansowane Platforma raportująca Ostatecznie dokonano wyboru systemu zarządzania bazą danych Microsoft SQLServer 2008R2. Więcej informacji na temat analizowanych systemów zarządzania bazą danych można znaleźć w pozycji: [13], [14], [15] oraz [16]. Jak zostało już wspomniane jednym z kluczowych elementów jakie były brane podczas wyboru systemu są dane przestrzenne. Dane przestrzenne to dane, które identyfikują geograficzne lokalizacje i kształty w szczególności na kuli ziemskiej. SQL Server 2008R2 udostępnia dwa rodzaje danych przestrzennych [8], [16]: Dane geometryczne. W tym typie danych obiekty umieszczone na płaskiej powierzchni zdefiniowanej przez użytkownika. Typ GEOMETRY służy do przechowywania i obsługi danych w płaskim euklidesowym układzie współrzędnych (tzw. układzie płaskiej ziemi). Stosujemy go w sytuacji kiedy krzywizna Ziemi nie ma znaczenia. Wybór jednostki dla tego typu zależy od użytkownika. Dane geograficzne. W tym typie danych obiekty umieszczone na kuli ziemskiej. Typ GEOGRAPHY umożliwia przechowywanie i obsługę danych geograficznych w układzie elipsoidalnym, w którym wykorzystywana jest długość i szerokość geograficzna. Położenie wszystkich kształtów geograficznych określana jest za pomocą szerokości i długości geograficznej mierzonej w stopniach, minutach i sekundach odległości punktu od punktu zerowego. Typ GEOMETRY i GEOGRAPHY są zgodne ze specyfikacją stworzoną przez konsorcjum OGC. Typy te są typami abstrakcyjnymi. Oznacza to, że dokładny typ danych przestrzennych możemy określić dopiero podczas tworzenie obiektu geograficznego lub geometrycznego. W SQL Server 2008R2 możemy utworzyć następujące obiekty danych przestrzennych: POINT - reprezentuje punkt w przestrzeni określony współrzędnymi X i Y. MULTIPOINT reprezentuje uporządkowany zbiór instancji typu POINT. Zbiór może być pusty. Punkty nie są ze sobą połączone LINESTRING reprezentuje uporządkowany zbiór instancji typu POINT. Zbiór może być pusty jednakże jeżeli nie jest pusty musi zawierać co najmniej dwa punkty. Punkty połączone są ze sobą odcinkami. MULTILINESTRING - reprezentuje zbiór zera lub więcej instancji typu LINESTRING. POLYGON - reprezentuje zbiór instancji typu POINT będącymi wierzchołkami wielokąta zewnętrznego oraz zera lub więcej wielokątów wewnętrznych. MULTIPOLYGON - reprezentuje zbiór zera lub więcej instancji typu POLYGON. GEOMETRYCOLLECTION - reprezentuje zbiór zera lub więcej instancji dowolnych typów obiektów wymienionych powyżej. Dane przestrzenne są przechowywane w serwerze jako duże obiekty binarne o wielkości do 2GB. Przy definiowaniu danych przestrzennych można posłużyć się jednym z trzech formatów określonych przez konsorcjum OGC [8]: Dane binarne zgodne ze standardem WBK (ang. Well Known Binary). Do definiowania danych przestrzennych w postaci danych binarnych służą metody o nazwach zbudowanych według szablonu ST[typdanych]FromWBK, gdzie [typdanych] to jeden z typów danych przestrzennych. Dane tekstowe zgodne ze standardem WKT (ang. Well-Known Text). Do definiowania danych przestrzennych w postaci tekstowej służą metody o nazwach zbudowanych według szablonu ST[typdanych]FromText gdzie [typdanych] to jeden z typów danych przestrzennych Dane XML zgodne ze standardem GML (ang. Geography Marpup Language). Do definiowania danych przestrzennych w postaci XML służy metoda GeomFromGnl. 522 2.2 Obliczenia na procesorach GPU Kolejnym elementem systemu informatycznego sterującego ruchem drogowym jest moduł obliczeniowy. Ideą przewodnią dla technologii obliczeń na GPU jest współpraca procesora centralnego (CPU) z układem GPU w ramach środowiska obliczeniowego o heterogenicznym modelu przetwarzania [9], [12]. Sekwencyjna część aplikacji wykonywana jest przez układ CPU [6], [10], zaś za złożone obliczeniowo fragmenty odpowiada układ GPU. Zatem z punktu widzenia użytkownika aplikacja działa po prostu szybciej, ponieważ dzięki wykorzystaniu wysokowydajnego układu GPU wydajność przetwarzania wzrasta. Istnieje wiele różnych rodzajów oprogramowania wspierającego nowoczesne metody obliczeniowe. Najpopularniejszymi pakietami oprogramowania inżynierskiego używanego do rozwiązywania różnorodnych problemów technicznych są Matlab [11] oraz Mathematica [17]. Cechą wspólną wymienionego oprogramowania jest środowisko obliczeniowe, które daje możliwość: przeprowadzania obliczeń matematycznych, przeprowadzania analiz numerycznych, wizualizacji otrzymanych wyników, tworzenie algorytmów i programów. Ostatnio na popularności zyskuje Parallel Computing Toolbox [11], który daje możliwość: wykorzystywania do obliczeń maksymalnie do ośmiu rdzeni procesora CPU oraz wykonywanie obliczeń bezpośrednio na procesorach GPU. Zatem w połączeniu z serwerem uzyskujemy potężne środowisko obliczeniowe wykorzystujące zarówno procesory CPU jak również procesory GPU. Matlab ® Distributed Computing Server Parallel Computing Toolbox Parallel Computing Toolbox Parallel Computing Toolbox GPU Tesla C2075 Procesor AMD FX-8150 Rys.1. Rozproszone obliczenia numeryczne w matlabie Fig.1. Using matlab for distributed numerical solutions . Tak jak pokazano na Rysunku 1 wykorzystując Matlab ® Distributed Computing Server możemy zarządzać maksymalnie ośmioma maszynami z zainstalowanym oprogramowaniem Matlab ® Parallel Computing Toolbox, który jest w stanie obsłużyć do ośmiu rdzeni CPU oraz cztery karty graficzne typu nVidia [12]. Przykładowo używając ośmiordzeniowego procesora CPU typu AMD FX-8150 oraz czterech kart graficznych typu Tesla C2075 dostajemy potężną moc obliczeniową. Zatem w maksymalnej konfiguracji rozwiązanie pokazane na Rysunku 1 ma następująca moc obliczeniową: 84 rdzenie jakie dają nam procesory CPU oraz 32 karty graficzne wyposażone w 14 336 rdzeni CUDA. W skład systemu obliczeniowego wykorzystywanego do rozwiązania postawionego problemu wchodzą następujące elementy: 523 oprogramowanie inżynierskie Matlab ® wraz z dodatkiem Parallel Computing Toolbox oraz dodatkiem Database Toolbox. System obliczeniowy wykorzystuje do obliczeń nie tylko jednostkę CPU ale również karty graficzne wyposażone w procesory graficzne GPU. Łącznikiem pomiędzy bazą danych MS SQL Server 2008 a oprogramowaniem Matlab na którym wykonywane są obliczenia jest Database Toolbox, który daje możliwość połączenia się z bazą danych a następnie zaimportowania danych do środowiska obliczeniowego oraz eksportu danych z środowiska obliczeniowego do bazy danych. W tym miejscu należy wspomnieć, iż wykorzystanie oprogramowania inżynierskiego to nie jedyny sposób oprogramowania kart graficznych. Specjalnie dla nich powstały języki programowania CUDA [3], [4] oraz OpenCL [5]. 3. Sformułowanie problemu Baza danych w swojej pierwotnej postaci uwzględniała następujące założenia: Skrzyżowanie składa się z wielu pasów ruchu; Na skrzyżowaniu znajduje się co najmniej eden sygnalizator świetlny; Kontroler zarządza jednym lub wieloma sygnalizatorami świetlnymi; Każdy kontroler zawiera co najmniej jeden scenariusz; Na skrzyżowaniu znajduje się co najmniej jeden detektor; Pomiędzy dwoma skrzyżowaniami mamy ściśle określona odległość. Przykładową sytuacje spełniająca powyższe założenia pokazano na Rysunku 2. System obliczeniowy w swojej pierwotnej postaci będzie uwzględniał następujące założenia: Wyznaczanie nastaw czasów przełączania sygnalizatorów świetlnych na podstawie danych z detektorów oraz na podstawie danych historycznych; Analiza zanieczyszczenia powietrza na podstawie danych z stacji monitorujących; Analiza wpływu ruchu drogowego na poziom zanieczyszczenia powietrza [2]. CROSSING 1 CROSSING 2 Sensors: Sensors: 1. Inductive Loop 2. Broadcasting 2. Camera 1. Inductive loop 2. Camera Algorithms: SCENARIO 1 SCENARIO 2 SCENARIO 3 Algorithms: SCENARIO 2 SCENARIO 4 SCENARIO 5 CONTROLLER CONTROLLER CONTROLLER DISTANCE Rys.2. Szkic problemu Fig.2. Problem definition. 4. Przykładowe rozwiązanie problemu Biorąc pod uwagę założenia jakie zostały postawione na system, możemy rozrysować następującą jego topologię co pokazano na Rysunku 3. Rozwiązanie składa się z następujących elementów: System zarządzania sygnalizacją w skład którego wchodzą wszystkie urządzenia wykorzystywane w procesie sterowania sygnalizacją. W systemie tym sterownik zbiera informacje z czujników znajdujących się w obrębie jego strefy działania i w 524 paczkach za pomocą łącza internetowego przesyła je do systemu komputerowego. System monitorujący zanieczyszczenie powietrza składa się z automatycznej stacji monitorującej, która zbiera informacje na temat zanieczyszczenia powietrza w danym regionie. Informacje ze stacji w postaci paczek danych przesyłane są do systemu komputerowego System komputerowy składa się z bazy danych, w której zapisywane są informacje na temat: sterowania ruchem ulicznym, topologii skrzyżowania jak również na temat poziomu zanieczyszczenia środowiska. Dane zebrane i zapisywane w bazie są na trwale System zarządzania sygnalizacją System komputerowy Serwer DNS Sygnalizacja świetlna Serwer Bazodanowy (SQL Server 2008) Serwer Aplikacji (Matlab®) Serwer plików Przesyłanie i odbieranie danych z systemu Kamera Pętla indukcyjna Sterownik Sieć Internet System monitorujący zanieczyszczenie powietrza Przesyłanie danych do systemu Terminal Terminal Komputer Stacja monitorująca powietrze Użytkownicy systemu Rys.3. Topologia systemu Fig.3. System infrastructure. System komputerowy System zarządzania sygnalizacją Baza Danych Matlab Matlab Workspace Parallel Cmputing Toolbox System monitorujący zanieczyszczenie środowiska Dane wyjściowe z systemu monitorującego zanieczyszczenie powietrza Dane wejściowe Przesyłane do bazy danych Dane Dane Dane Database Toolbox Dane wyjściowe z systemu zarządzania sygnalizacją Wyznaczone nastawy przesyłane do systemu zarządzania sygnalizacją Nastawy Dane wejściowe Przesyłane do bazy danych Rys.4. System komputerowy Fig.4. Computer systems 525 Uruchamianie skryptu Obliczenia Nastawy Nastawy Drukarka przechowywane. Następnie przy użyciu oprogramowania Matlab ® Database Toolbox następuje łączenie z bazą danych i pobranie danych do Matlaba gdzie za pomocą Parallel Computing Toolbx są one analizowane z użyciem jednostek CPU i GPU. Analiza danych odbywa się w dwóch obszarach. Pierwszy to wyznaczenia nowych nastaw sterownika zarządzającego swoją strefą. Drugi to wyznaczenie modelu badający zależność pomiędzy natężeniem ruchu a stężeniem zanieczyszczeń. Dzięki temu modelu jesteśmy w stanie dobrać w taki sposób nastawy sterowania ruchem ulicznym żeby nie przekraczane były dopuszczalne stężenia zanieczyszczeń. Dokładny schemat systemu komputerowego pokazano na Rysunku 4. Użytkownicy systemu. Możemy podzielić ich na dwie grupy. Pierwsza mająca możliwość ingerencji w system (administratorzy bazy danych, administratorzy sieci, programiści). Druga grupa to osoby mogące poprzez interfejs webowy oglądać statystki i raporty 5. Podsumowanie Sterowanie ruchem drogowym z racji ilości elementów z jakich się on składa jest zadaniem o wysokim stopniu złożoności i wysokim stopniu trudności. Chcąc osiągnąć najlepsze nastawy sterowania przy dodatkowym założeniu odpowiednich wskaźników jakości powietrza wymagane są szeregi obliczeń numerycznych. Tak jak pokazaliśmy do tego celu możemy użyć odpowiednio skonfigurowane i współdziałające systemy informatyczne (bazy danych, oprogramowanie inżynierskie jak również karty graficzne wyposażone w procesory GPU). W dalszych badaniach ciekawa wydaje się próba opracowania algorytmów grafowych, które odpowiednio zaprojektowane i zaimplementowane w środowisku GPU powinny przyśpieszać proces wyznaczania nastaw sterownika. Podziękowania „Badanie zrealizowano dzięki stypendium naukowemu w ramach projektu pn. „Technologie informacyjne: badania i ich interdyscyplinarne zastosowania” współfinansowanego ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego, Program Operacyjny Kapitał Ludzki (Umowa nr UDA-POKL.04.01.01-00-051/10-00)” Literatura 1. Graca S., Suchorzewski W., Tracz M.: Inżynieria ruchu drogowego, WKiŁ, Warszawa 2008 2. Badyda A.: Wpływ ruchu drogowego na poziom zanieczyszczeń powietrza oraz ryzyko chorób układu oddechowego, Modelowanie Inżynierskie, 37, pp. 1118, Gliwice 2009 3. Farber R.: CUDA Application Design and Development, Elsevier, 2011 4. Sanders J., Kandrot E.: CUDA by Example, Addison-Wesley, 2011 5. Gaster B.: Heterogeneous Computing with OpenCL, Elsevier, 2011 6. Herlihy M., Shavit N.: The Art of Multiprocessor Programming, Elsevier, 2008 7. Thomas M.C., Carolyn E.B.: Database Systems: A Practical Approach to Design, Implementation and Management, Addison Wesley Publishing Company, 2004 8. Garcia-Molina H., Ullman J.D., Widom J.: Database Systems: The Complete Book, Prentice Hall, 2008 9. Sheppard A.: Programming GPUs, O'Reilly Media, 2012 10. Attaway S.: Matlab, Second Edition: A Practical Introduction to Programming and Problem Solving, Butterworth-Heinemann, 2011 11. http://www.mathworks.com – Dokumentacja oprogramowania Matlab. 12. http://www.nvidia.com – Strona producenta kart graficznych. 13. http://www.mysql.com/ - Strona producenta MySQL 14. http://www.oracle.com/ - Strona producenta Oracle 15. http://www.postgresql.org/ - Strona producenta producenta Postgress 16. http://www.microsoft.com/sqlserver/en/us/def ault.aspx - Strona producenta MS SQL Server 17. http://www.wolfram.com/ - Dokumentacja oprogramowania Mathematica Adres służbowy Autora: dr inż. Konrad Andrzej MARKOWSKI Politechnika Warszawska, Wydział Elektryczny, ISEP ul. Koszykowa 75 00-662 Warszawa tel. (022) 234 56 25 fax (022) 625 62 78 526 email: [email protected]