BADANIE WYDAJNOŚCI ZASTOSOWANIA PLATFORMY CUDA W KOMPUTEROWYM MODELOWANIU RUCHU POJAZDÓW PRT

Podobne dokumenty
Porównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego

CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

Podsystem graficzny. W skład podsystemu graficznego wchodzą: karta graficzna monitor

Parametry wydajnościowe systemów internetowych. Tomasz Rak, KIA

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

i3: internet - infrastruktury - innowacje

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Zadania badawcze prowadzone przez Zakład Technik Programowania:

Spis treści. Przedmowa... XI. Rozdział 1. Pomiar: jednostki miar Rozdział 2. Pomiar: liczby i obliczenia liczbowe... 16

Programowanie procesorów graficznych GPGPU

Numeryczna symulacja rozpływu płynu w węźle

Sieci obliczeniowe poprawny dobór i modelowanie

PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK

Architektura komputerów

Szybkie prototypowanie w projektowaniu mechatronicznym

Budowa komputera Komputer computer computare

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

Zaawansowane programowanie w języku C++ Zarządzanie pamięcią w C++

Raport Hurtownie Danych

Algorytmy i Struktury Danych

Praca dyplomowa magisterska

Zastosowanie symulacji komputerowej do badania właściwości hydraulicznych sieci wodociągowej

Projekt współfinansowany ze środków Europejskiego Funduszu Rozwoju Regionalnego w ramach Programu Operacyjnego Innowacyjna Gospodarka

Załącznik nr 1 do Zapytania ofertowego: Opis przedmiotu zamówienia

Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie. dr inż. Adam Piórkowski. Jakub Osiadacz Marcin Wróbel

Przykładowe sprawozdanie. Jan Pustelnik

Programowanie z wykorzystaniem technologii CUDA i OpenCL Wykład 1

PROJEKTOWANIE SYSTEMU INFORMATYCNEGO

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

Modelowanie jako sposób opisu rzeczywistości. Katedra Mikroelektroniki i Technik Informatycznych Politechnika Łódzka

Właściwości testu Jarque-Bera gdy w danych występuje obserwacja nietypowa.

Literatura. 11/16/2016 Przetwarzanie równoległe - wstęp 1

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Sterowanie wielkością zamówienia w Excelu - cz. 3

Programowanie współbieżne Wykład 2. Iwona Kochańska

I rok. semestr 1 semestr 2 15 tyg. 15 tyg. Razem ECTS. laborat. semin. ECTS. konwer. wykł. I rok. w tym. Razem ECTS. laborat. semin. ECTS. konwer.

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Programowanie aplikacji na urządzenia mobilne

Metody integracji systemów sterowania z wykorzystaniem standardu OPC

XIII International PhD Workshop OWD 2011, October 2011 METODA REEINGINEERINGU ORGANIZACJI Z WYKORZYSTANIEM SYMULATORA PROCESÓW BIZNESOWYCH

Karty graficzne możemy podzielić na:

Spis treści. I. Skuteczne. Od autora... Obliczenia inżynierskie i naukowe... Ostrzeżenia...XVII

Wykorzystanie architektury Intel MIC w obliczeniach typu stencil

Systemy wbudowane. Uproszczone metody kosyntezy. Wykład 11: Metody kosyntezy systemów wbudowanych

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

Grafika komputerowa i wizualizacja

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

10/14/2013 Przetwarzanie równoległe - wstęp 1. Zakres przedmiotu

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

1. Opis aplikacji. 2. Przeprowadzanie pomiarów. 3. Tworzenie sprawozdania

Moc płynąca z kart graficznych

Spis treści Zespół autorski Część I Wprowadzenie 1. Podstawowe problemy transportu miejskiego.transport zrównoważony

Efekty kształcenia dla kierunku studiów INFORMATYKA, Absolwent studiów I stopnia kierunku Informatyka WIEDZA

Algorytm hybrydowy dla alokacji portfela inwestycyjnego przy ograniczonych zasobach

Efekt kształcenia. Ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie algorytmów i ich złożoności obliczeniowej.

PRZETWARZANIE RÓWNOLEGŁE I ROZPROSZONE. Mnożenie macierzy kwadratowych metodą klasyczną oraz blokową z wykorzystaniem OpenMP.

Modelowanie w projektowaniu maszyn i procesów cz.5

7.1. Modelowanie fizyczne 7.2. Modelowanie matematyczne 7.3. Kategorie modelowania matematycznego 7.4. Kategorie modelowania matematycznego 7.5.

Tematy magisterskie: Lp. Sugerowany stopień, kierunek studiów oraz specjalność Elektrotechnika Magisterska Dr hab. inż.

Współczesna problematyka klasyfikacji Informatyki

Wykorzystanie testu Levene a i testu Browna-Forsythe a w badaniach jednorodności wariancji

Wykaz osób pełniących funkcję opiekunów Warsztatów

Field of study: Computer Science Study level: First-cycle studies Form and type of study: Full-time studies. Auditorium classes.

Czym jest OnDynamic? OnDynamic dostarcza wartościowych danych w czasie rzeczywistym, 24/7 dni w tygodniu w zakresie: czasu przejazdu,

MODELOWANIE RUCHU AUTOBUSÓW NA WSPÓLNYM PASIE AUTOBUSOWO-TRAMWAJOWYM

Dostawa oprogramowania. Nr sprawy: ZP /15

Katarzyna Jesionek Zastosowanie symulacji dynamiki cieczy oraz ośrodków sprężystych w symulatorach operacji chirurgicznych.

KONCEPCJA ZASTOSOWANIA INTELIGENTNYCH SYSTEMÓW TRANSPORTOWYCH W DZIELNICY MOKOTÓW W WARSZAWIE

Wstęp do teorii niepewności pomiaru. Danuta J. Michczyńska Adam Michczyński

Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki

4. ZNACZENIE ROZKŁADU WYKŁADNICZEGO

WYZNACZANIE NIEPEWNOŚCI POMIARU METODAMI SYMULACYJNYMI

Systemy na Chipie. Robert Czerwiński

Nowinki technologiczne procesorów

Katedra Budownictwa Drogowego. Uniwersytet Technologiczno-Przyrodniczy w Bydgoszczy W ŚRODOWISKU VISUM. dr inż. Jacek Chmielewski

Architektura komputerów

Analizator wydajności AMD CodeAnalyst

DETEKCJA FAL UDERZENIOWYCH W UKŁADACH ŁOPATKOWYCH CZĘŚCI NISKOPRĘŻNYCH TURBIN PAROWYCH

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.

Analiza niepewności pomiarów

KOMPUTEROWE SYSTEMY POMIAROWE

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

Analiza korespondencji

Budowa Mikrokomputera

Inżynieria oprogramowania. Część 8: Metoda szacowania ryzyka - PERT

Marek Lewandowski, Maciej Łabędzki, Marcin Wolski Konferencja I3, Poznań, 5 listopada 2009r.

Transformata Fouriera. Sylwia Kołoda Magdalena Pacek Krzysztof Kolago

Interfejsy w Java. Przetwarzanie równoległe. Wątki.

Tutaj powinny znaleźć się wyniki pomiarów (tabelki) potwierdzone przez prowadzacego zajęcia laboratoryjne i podpis dyżurujacego pracownika obsługi

Statystyki: miary opisujące rozkład! np. : średnia, frakcja (procent), odchylenie standardowe, wariancja, mediana itd.

Architektura systemów komputerowych. Przetwarzanie potokowe I

PRZESTRZENNY MODEL PRZENOŚNIKA TAŚMOWEGO MASY FORMIERSKIEJ

Algorytm. Krótka historia algorytmów

Zagadnienia egzaminacyjne AUTOMATYKA I ROBOTYKA. Stacjonarne I-go stopnia TYP STUDIÓW STOPIEŃ STUDIÓW SPECJALNOŚĆ

LEKCJA TEMAT: Zasada działania komputera.

Transkrypt:

PRACE NAUKOWE POLITECHNIKI WARSZAWSKIEJ z. 119 Transport 2017 Andrzej Czerepicki, Marcin Nikoniuk, Maciej Kozłowski Politechnika Warszawska, Wydział Transportu BADANIE WYDAJNOŚCI ZASTOSOWANIA PLATFORMY CUDA W KOMPUTEROWYM MODELOWANIU RUCHU POJAZDÓW PRT Rękopis dostarczono, listopad 2017 Streszczenie: Systemy PRT należą do współczesnych dynamicznie rozwijających się środków komunikacji zbiorowej. W ramach projektu ECO-Mobilność została opracowana aplikacja do komputerowego modelowania ruchu pojazdów PRT, z uwzględnieniem topologii sieci połączeń oraz natężenia ruchu pasażerów. Przy modelowaniu większych obszarów oraz wielokrotnym uruchomieniu aplikacji na różnych zbiorach wejściowych danych, istotnym aspektem jest szybkość działania programu. W artykule zaproponowano koncepcję zwiększenia wydajności komputerowej symulacji ruchu pojazdów PRT poprzez wykorzystanie platformy równoległych obliczeń CUDA. Przedstawiono wybrane aspekty modyfikacji systemu modelowania mające na celu umożliwienie równoległego przetwarzania poszczególnych kroków symulacji. Przeprowadzono pomiary wydajności aplikacji przy wykonaniu na procesorze CPU oraz dokonano ich porównania z wynikami przetwarzania na procesorze graficznym GPU. Na podstawie analizy wyników badań stwierdzono, iż dla złożonych topologii sieci PRT wykorzystanie platformy CUDA istotnie zmniejsza czas modelowania oraz jego wariancję. Słowa kluczowe: PRT, komputerowe modelowanie, platforma CUDA 1. WSTĘP Systemy PRT (ang. Personal Rapid Transport) należą do współczesnych dynamicznie rozwijających się środków komunikacji zbiorowej [1]. W ramach projektu ECO-Mobilność jednym z tematów prac badawczych była analiza efektywności wykorzystania PRT w różnych topologiach sieci dróg oraz odmiennym natężeniu ruchu pasażerów [2]. W tym celu zbudowano komputerowy symulator ruchu pojazdów PRT, za pomocą którego przeprowadzono liczne symulacje procesu obsługi pasażerów [3]. Jedną z istotnych charakterystyk komputerowego systemu modelowania jest szybkość jego działania. W celu podniesienia wiarygodności statystycznych danych pozyskanych drogą komputerowej symulacji, należy przeprowadzić wielokrotne testy systemu na identycznych zbiorach danych wejściowych. Przy zmianie topologii sieci PRT symulacje należy powtórzyć dla każdej konfiguracji, co znacząco wydłuża czas modelowania. Dlatego dalsze prace nad symulatorem ruchu PRT zostały skupione na kwestii podniesienia wydajności obliczeń będących podstawą procesu modelowania.

42 Andrzej Czerepicki, Marcin Nikoniuk, Maciej Kozłowski Komputerowa aplikacja symulatora PRT została zrealizowana w scentralizowanej architekturze, co zakłada między innymi wykonywanie wszelkich niezbędnych obliczeń na procesorze komputera CPU (ang. Central Processing Unit). Podniesienie wydajności przetwarzania danych w systemie scentralizowanym jest możliwe poprzez zwiększenie częstotliwości procesora lub zastosowanie równoległych obliczeń. Ze względu na ograniczone możliwości zwiększenia częstotliwości taktowania CPU, preferowanym rozwiązaniem jest podejście bazujące na równoległej obsłudze zadań modelowania przez niezależne jednostki obliczeniowe komputera. Większość współczesnych procesorów posiada od 1 do 8 takich jednostek (ang. Core), co teoretycznie pozwala na przyspieszenie symulacji odpowiednią ilość razy. W praktyce jednak należy się liczyć ze stratą czasu niezbędnego do podziału zadań pomiędzy jednostkami obliczeniowymi. Platforma CUDA (ang. Compute Unified Device Architecture) firmy NVIDIA pozwala na wykorzystanie mocy obliczeniowej procesorów kart graficznych GPU (ang. Graphics Processing Unit), zbudowanych z wielu jednostek obliczeniowych. W najnowszych modelach powszechnie dostępnych kart NVIDIA liczba ta wynosi do 256 układów. Każdy z nich jest zorientowany na wykonanie prostych operacji matematycznych na zbiorach wejściowych danych. Wynikiem przetwarzania również jest zbiór danych. Wysoka wydajność procesorów GPU zaowocowała powstaniem koncepcji wykorzystania zasobów karty graficznej w programach komputerowych niezwiązanych bezpośrednio z grafiką. W artykule przedstawiono autorską koncepcję wykorzystania platformy CUDA w komputerowym modelowaniu ruchu pojazdów PRT, architekturę systemu informatycznego realizującego algorytm modelowania, a także wyniki badań wydajności zaproponowanych rozwiązań. 2. KOMPUTEROWY SYMULATOR RUCHU POJAZDÓW PRT Do badań wykorzystano oprogramowanie PRT Simulator opracowane w ramach projektu ECO Mobilność [1, 3]. Koncepcja modelowania bazuje na idei wykorzystania automatów komórkowych dla obliczenia stanów poszczególnych elementów symulatora [4]. Jak wykazały badania [5], wykorzystane podejście pozwala poprawnie oraz efektywnie modelować pracę złożonych systemów transportowych. Modelowanie ruchu pojazdów w programie PRT Simulator odbywa się w trybie mikrosymulacji, tj. odstęp czasowy pomiędzy kolejnymi krokami symulacji jest krótki. Zmiana stanów wszystkich pojazdów w systemie następuje synchronicznie. Modelowanie jest uruchamiane w trybie offline. Analizowane jest zachowanie systemu PRT w różnych przedziałach czasowych (godzina, dzień, etc.). W celu obserwowania procesu symulacji można posłużyć się wbudowanym modułem animacji, jednak z punktu widzenia analizy wyników modelowania nie jest on niezbędny. Dlatego w dalszych obliczeniach przyjęto założenie, iż szybkość modelowania jest ograniczona wyłącznie wydajnością komputera. Topologia sieci dróg PRT jest przedstawiona w postaci dyskretnej siatki komórek gdzie oraz są wymiarami siatki. Każda komórka gdzie

Badanie efektywności zastosowania platformy CUDA w komputerowym modelowaniu ruchu 43 stanowi automat skończony, który w danej chwili może przebywać w jednym z predefiniowanych stanów (np. przystanek może być wolny lub zajęty przez pojazd). Przejście z jednego stanu do następnego odbywa się zgodnie z ustalonymi regułami (zdarzeniami) dla wszystkich komórek jednocześnie. Reguły stanowią zbiór gdzie każda reguła jest zapisana w postaci funkcji matematycznej. Argumentami funkcji są stany sąsiadujących komórek oraz komórki centralnej (rys. 1). W pojazd PRT (ang. Wehicle) R odcinek drogi (ang. Road) T siatka dróg dojazdowych (tablica komórek) Rys. 1. Fragment topologii sieci PRT w strukturze automatu komórkowego W przykładzie przedstawionym na rys. 1 pojazd W1 porusza się ze stałą prędkością zajmując w chwili bieżącej komórkę o adresie. Stan komórki można określić jako zajęta przez pojazd poruszający się z określoną prędkością. W następnym kroku pojazd W1 ma możliwość kontynuacji jazdy wolnym torem lub zaczekania aż poprzedzający go pojazd W2 zwolni komórkę. W zależności od decyzji podjętej przez algorytm sterowania, komórka zmieni swój stan na wolna lub zajęta przez pojazd oczekujący. W obu przypadkach nowy stan komórki jest funkcją argumentami której są wartości komórek {,, }. Reguły mają postać funkcji zapisanych w języku programowania C#. 3. KONCEPCJA WYKORZYSTANIA PLATFORMY CUDA W MODELOWANIU PRT Technologia CUDA [6] została opracowana i jest obecnie rozwijana przez firmę NVIDIA. Stanowi ona platformę sprzętowo-programową do wykonania równoległych obliczeń numerycznych z wykorzystaniem jednostek przetwarzania graficznego GPU. Sprzętową część platformy stanowią układy graficzne NVIDIA takie jak GeForce, Quadro lub stosowany

44 Andrzej Czerepicki, Marcin Nikoniuk, Maciej Kozłowski w samochodach autonomicznych układ Tesla. Programowa część platformy jest reprezentowana przez zbiór bibliotek komponentów, dostęp do których jest realizowany za pośrednictwem specjalizowanego API (ang. Application Programming Interface). Pierwotnie dedykowana do gier komputerowych, platforma CUDA obecnie jest coraz szerzej wykorzystywana w badaniach naukowych wymagających czasochłonnych obliczeń [8, 9]. Można więc stwierdzić, że istnieją przesłanki do wykorzystania platformy równoległych obliczeń CUDA w symulatorze PRT. Obiekty w systemie PRT są reprezentowane przez poszczególne komórki automatu i współdziałają tylko z najbliższym otoczeniem tj. sąsiadującymi komórkami. To pozwala podzielić zadania pomiędzy poszczególnymi układami obliczeniowymi GPU. Platforma CUDA ma pewne ograniczenia, co spowodowało konieczność dostosowania programu PRT Simulator do specyfiki jej programowego interfejsu API. Przede wszystkim, kod wykonywany na pojedynczej jednostce obliczeniowej GPU (będziemy dalej nazywali ją rdzeniem) stanowi niezależny wątek (ang. thread) i powinien być zapisany w postaci pojedynczej procedury statycznej. Oznacza to, że wewnątrz wątku nie można korzystać ze zmiennych globalnych programu tj. wszystkie dane do obliczeń muszą być przekazywane, jako parametry procedury uruchamiającej wątek. To samo dotyczy wyników obliczeń zwracanych przez procedurę. Typ parametrów wątku oraz zwracana wartość muszą należeć do ściśle ograniczonego zbioru typów danych CUDA. Kolejnym zagadnieniem jest efektywność wykorzystania poszczególnych rdzeni. Należy dążyć do równomiernego obciążenia wszystkich rdzeni GPU, wówczas można oczekiwać największego przyrostu wydajności. Organizacja obliczeń równoległych powinna uwzględniać specyfikę zadania w celu osiągnięcia najlepszych wyników wydajnościowych. Na wydajność przetwarzania CUDA mają bezpośredni wpływ rozmiar danych wejściowych, liczbą rdzeni układu GPU, liczba równolegle przetwarzanych na jednym rdzeniu wątków, a także sposób podziału zadań pomiędzy rdzeniami. W przypadku komputerowego modelowania ruchu PRT sieć połączeń jest reprezentowana przez dwuwymiarową tablicę komórek, wymiar której wynosi. W pamięci RAM jest ona przechowywana jako ciągły liniowy obszar danych ułożonych wg wierszy. Wewnątrz wiersza, numer komórki w pamięci odpowiada numerowi kolumny. Niech układ CUDA posiada rdzeni, każdy z których jest w stanie równolegle wykonywać obliczenia w wątkach. Oznacza to, że cały układ jest w stanie wykonywać obliczeń równolegle. Jeśli liczba ta jest mniejsza od liczby komórek w automacie, obliczenia należy rozłożyć na kilka podejść. W tym celu wątki są łączone w bloki, które są przekazywane do układu GPU. Rozmiar bloku w najprostszym przypadku można obliczyć jako iloraz liczby komórek a liczby wątków: (1) Podział obszaru pamięci danych na bloki nazywany jest siatką (ang. grid). Podczas przekazywania danych do jednostki obliczeniowej, należy wskazać adres danej w postaci zbioru { numer bloku, numer wątku, współrzędne zmiennej w bloku }. Zakładamy, że pojedyncza operacja zmiany stanu komórki zostanie wykonywana w osobnym wątku. Wówczas współrzędne komórki { xcell, ycell } w tablicy dwuwymiarowej mogą być obliczone jako (rys. 2):

Badanie efektywności zastosowania platformy CUDA w komputerowym modelowaniu ruchu 45 (2) gdzie dwuwymiarowy indeks bloku w tablicy, rozmiar bloku (liczba komórek), dwuwymiarowy indeks wątku wewnątrz bloku. Rys. 2. Adresacja pojedynczej komórki w bloku danych CUDA 4. STANOWISKO KOMPUTEROWEGO MODELOWANIA PRT W celu analizy wpływu wykorzystania platformy CUDA na wydajność modelowania ruchu pojazdów PRT zostało zbudowane środowisko komputerowe. Jego struktura oraz najważniejsze komponenty zostały przedstawione na rys. 3. Topologia sieci PRT jest projektowana w programie PRT Designer. Mapa PRT zawiera informację o wymiarach obszaru symulacji (liczba komórek mapy oraz rozmiar pojedynczej komórki) sieci połączeń dróg dojazdowych, rodzajach oraz lokalizacji skrzyżowań, etc. Przygotowany plik mapy jest eksportowany do programu PRT Simulator. Przed rozpoczęciem eksperymentu niezbędne jest zdefiniowanie parametrów komputerowej symulacji poprzez wskazanie: liczby pojazdów PRT obsługujących system, natężenia strumieni pasażerów dla każdego z przystanków, wejściowych parametrów symulacji (w tym czy ma korzystać ze wsparcia platformy CUDA). Program PRT Simulator został zmodyfikowany w celu umożliwienia wykorzystania mocy obliczeniowej GPU za pośrednictwem biblioteki komponentów programowych Alea.CUDA [7]. Realizuje ona dostęp do metod programowania jednostek obliczeniowych

46 Andrzej Czerepicki, Marcin Nikoniuk, Maciej Kozłowski GPU z poziomu platformy Microsoft.NET wykorzystanej przy tworzeniu programu symulacyjnego. Po rozpoczęciu procesu komputerowej symulacji ruchu pojazdów program PRT Simulator gromadzi dane dot. przebiegu procesu modelowania, które następnie są poddawane statystycznej analizie. Rys. 3. Struktura środowiska modelowania ruchu PRT z wykorzystaniem platformy CUDA 5. ANALIZA WYDAJNOŚCI ZASTOSOWANIA PLATFORMY CUDA W MODELOWANIU PRT Celem analizy jest porównanie czasu wykonania komputerowej symulacji ruchu pojazdów PRT dla obliczeń wykonywanych przez CPU w wersji klasycznej symulatora PRT oraz czasu wykonania tychże operacji w symulacji wykorzystującej układ GPU, dla identycznych zbiorów wejściowych danych. Postawiono hipotezę, iż czasy symulacji oraz są zmiennymi losowymi o normalnym rozkładzie. Badania przeprowadzono na komputerze z procesorem Intel Core i7 3,2 GHz 16 GB RAM posiadającym kartę graficzną z układem CUDA o parametrach: liczba rdzeni - 192, objętość pamięci operacyjnej RAM - 2 GB, liczba bloków danych - 256.

Badanie efektywności zastosowania platformy CUDA w komputerowym modelowaniu ruchu 47 W pierwszym etapie przeprowadzono badanie rozkładu zmiennej losowej (czas wykonania 100 kroków symulacji) dla sieci PRT o wymiarach 100x100 komórek. Eksperyment powtórzono 35 razy dla identycznych danych wejściowych. Fragment pozyskanych wyników przedstawiono w tab. 1 oraz na wykresie (rys. 4a). Tablica 1 Dane eksperymentalne komputerowej symulacji z wykorzystaniem CPU (fragment) Lp. Wymiary planszy, n = m Liczba kroków symulacji Czas symulacji, [s] 1 100 100 00:00:00.2008261 2 100 100 00:00:00.1695847 3 100 100 00:00:00.1695245 4 100 100 00:00:00.1630351 5 100 100 00:00:00.1538601 6 100 100 00:00:00.1690659 7 100 100 00:00:00.1473182 8 100 100 00:00:00.1692215 9 100 100 00:00:00.1598406 10 100 100 00:00:00.1543392 11 100 100 00:00:00.1252713 Statystyczna analiza uzyskanych danych wykazuje, że średni czas wykonania 100 kroków symulacji dla planszy o wymiarach 100 x 100 z wykorzystaniem procesora CPU wynosi 0,1465105 s, przy tym przedział ufności dla granicy błędu ma granice [0,129946, 0,163075], współczynnik wariancji = 13,48%. Rozkład zmiennej losowej ma postać zbliżoną do normalnej (rys. 4b). Czas, [s] 0,25 0,2 0,15 0,1 0,05 0 0 10 20 30 40 Lp. pomiaru Częstość 18 16 14 12 10 8 6 4 2 0 16 8 4 5 1 1 0,11 0,12 0,14 0,16 0,18 0,20 Czas modelowania, [s] a) wartości pomiarowe zmiennej b) rozkład zmiennej losowej Rys. 4. Wartości pomiarowe oraz rozkład czasu symulacji na procesorze CPU

48 Andrzej Czerepicki, Marcin Nikoniuk, Maciej Kozłowski Identyczne pomiary zostały wykonane w trakcie symulacyjnego eksperymentu z wykorzystaniem układu graficznego GPU. Średni czas wykonania 100 kroków symulacji w tym przypadku wyniósł 0,22 s, co jest 1,5 razy wolniejsze od obliczeń wykonywanych na CPU. Wynik może świadczyć o niskiej wydajności obliczeń równoległych CUDA przy małych rozmiarach obszaru symulacji. Korzyść z równoległych obliczeń okazała się niższa od czasu niezbędnego na zorganizowanie takich obliczeń, przekazanie danych do procesora graficznego oraz odczyt wyniku. Należy jednak zwrócić uwagę na mniejszą wariancję wyników eksperymentu wynoszącą 3,20%, co pozwala estymować czas eksperymentu bardziej precyzyjnie. Wyniki eksperymentu obrazuje rys. 5. Czas, [s] 0,24 0,235 0,23 0,225 0,22 0,215 0,21 0,205 0,2 0 10 20 30 40 Lp. pomiaru Częstość 25 20 15 10 5 0 0,206 0,212 0,219 0,225 0,232 0,238 0,244 Czas, [s] a) wartości pomiarowe zmiennej b) rozkład zmiennej Rys. 5. Wartości pomiarowe oraz rozkład czasu symulacji na procesorze GPU (CUDA) W dalszej części badań postanowiono sprawdzić, jak zależy czas wykonania komputerowej symulacji od rozmiaru obszaru modelowania, poprzez stopniowe zwiększenie wymiarów tablicy komórek. W tym celu przeprowadzono badania symulacyjne dla rozmiarów obszaru modelowania n z zakresu od 100 do 1050 komórek z interwałem 50. W celu uproszczenia przyjęto, iż obszar modelowania ma kształt kwadratu, tj. sumaryczna liczba komórek dla rozmiaru obszaru wynosi. Rejestrowano czas wykonania 100 kroków symulacji dla obliczeń wykonywanych na CPU oraz GPU. Każdy z pomiarów przeprowadzono 10 razy w celu uzyskania średniego czasu eksperymentu dla określonych parametrów wejściowych. Pozyskane wyniki są przedstawione w postaci wykresu porównującego czas wykonania zadania przez CPU oraz GPU (rys. 6.). Na podstawie porównania czasów modelowania dla GPU oraz CPU przy identycznych rozmiarach siatki można wnioskować, że w obu przypadkach zależność czasu wykonania komputerowej symulacji od rozmiaru obszaru modelowania ma charakter wielomianu drugiego stopnia, co jest zgodne z oczekiwaniami. Czas obliczeń z wykorzystaniem GPU jest krótszy od czasu obliczeń na CPU poczynając od rozmiaru planszy 150 x 150 komórek. Dla sieci PRT o dużych wymiarach wykorzystanie GPU pozwala więc na skrócenie czasu komputerowej symulacji ruchu pojazdów. Analizując dane statystyczne eksperymentu należy również zauważyć, że obliczenia wykonywane na CPU są bardziej wrażliwe na dane wejściowe, co skutkuje większym odchyleniem czasu wykonania symulacji od mediany. Można przypuszczać, że przy obliczeniach

Badanie efektywności zastosowania platformy CUDA w komputerowym modelowaniu ruchu 49 sekwencyjnych modelowanie wybranych sytuacji transportowych istotnie zależy od danych wejściowych, ponieważ niektóre kombinacje mogą powodować opóźnienie obliczeń i co za tym idzie następne obliczenia będą również opóźnione. Z drugiej strony, przy równoległych obliczeniach opóźnienie w dokonaniu obliczeń przez jedną z wielu równoległych jednostek mniej wpływa na sumaryczny czas modelowania. CPU GPU 25 20 Czas, [s] 15 10 5 0 Rozmiar modelowanego obszaru, n Rys. 6. Zależność czasu komputerowej symulacji od rozmiarów modelowanego obszaru W celu oszacowania trendu wzrostu czasu oczekiwania od rozmiarów obszaru modelowania, w następnym etapie kontynuowano badania eksperymentalne dla GPU w zakresie rozmiarów planszy od 1000 do 2000 klatek z krokiem 50. Wyniki są przedstawione na rys. 7. Wzór aproksymujący zależność czasu komputerowej symulacji od rozmiaru obszaru modelowania może być zapisany w formie wielomianu drugiego stopnia. Przy projektowaniu sieci PRT jednej klatce na planszy mogą odpowiadać fragmenty terenu różnej wielkości. Przyjmując, że jedna klatka ma fizyczny rozmiar 5x5 m, można stwierdzić, że na obszarze modelowania (1000 x 1000 klatek) komputerowa symulacja będzie się wykonywała z prędkością kroków symulacji/s. Jest to 10,5 razy szybsze w porównaniu z modelowaniem wykonywanym klasyczną metoda na CPU. Przeprowadzone badania nie uwzględniały faktycznej topologii sieci PRT więc uzyskany wynik czasowy należy interpretować jako górną granicę przedziału czasu modelowania. W praktyce nie wszystkie komórki sieci PRT biorą udział w modelowaniu, dlatego dla topologii sieci reprezentowanej w postaci rzadkich grafów czas modelowania powinien być znacznie krótszy.

50 Andrzej Czerepicki, Marcin Nikoniuk, Maciej Kozłowski Czas 7 6 5 Czas, [s] 4 3 2 1 0 100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000 Rozmiar obszaru modelowania, n Rys. 7. Zależność czasu komputerowej symulacji od rozmiarów modelowanego obszaru dla GPU 6. WNIOSKI W artykule przedstawiono wyniki badań wydajności zastosowania platformy równoległych obliczeń CUDA w komputerowym systemie modelowania ruchu pojazdów PRT. Analizowany system został opracowany w ramach projektu ECO Mobilność [1] i stanowi programową realizację autorskich algorytmów modelowania [3] z wykorzystaniem automatów komórkowych. Jak wykazały badania [4, 5, 9] zastosowanie technologii CUDA pozwala znacząco podnieść wydajność obliczeń w systemach komputerowych wykorzystujących podobne zasady modelowania. W ramach prac badawczych zostały przeprowadzone modyfikacje programu PRT Simulator, celem których było umożliwienie wykorzystania jednostek obliczeniowych procesora GPU do równoległego przetwarzania danych w zakresie obliczenia kolejnych stanów automatów komórkowych reprezentujących poszczególne elementy systemu PRT. Następnie przeprowadzono komputerową symulację funkcjonowania systemu PRT w wersji klasycznej wykorzystującej jednostkę obliczeniową CPU oraz w wersji dedykowanej do wykorzystania GPU, dla identycznych danych wejściowych. W obu przypadkach oszacowano rozkład czasu wykonania 100 kroków symulacji jako zmiennej losowej, obliczono jej podstawowe charakterystyki oraz wykazano, iż ma miejsce normalny rozkład. Zwiększając rozmiar obszaru modelowania sieci PRT, obliczono poszczególne wartości czasów wykonania obliczeń oraz. Na podstawie porównania czasów modelowania oszacowano wpływ wykorzystania platformy CUDA na wydajność komputerowej symulacji PRT. Dla topologii sieci PRT o wymiarach 1000x1000 komórek czas modelowania wyniósł

Badanie efektywności zastosowania platformy CUDA w komputerowym modelowaniu ruchu 51. Czas modelowania charakteryzuje się również mniejszym odchyleniem od średniej, co może stanowić dodatkowy atut przy wykorzystaniu oprogramowania w systemach zarządzania PRT czasu rzeczywistego. Należy zauważyć, iż uzyskane wyniki odnoszą się do powszechnie dostępnego sprzętu CUDA o przeciętnej mocy obliczeniowej. Wykorzystanie układów graficznych typu NVI- DIA Tesla K80 [10] mogłoby przyczynić się do znaczącego wzrostu wydajności. Dalsze badania planuje się prowadzić w kierunku optymalizacji podziału zadań modelowania pomiędzy jednostki obliczeniowe CUDA, poprzez dobór rozmiaru bloków symulacji tj. obszarów sieci PRT przekazywanych do obróbki przez pojedynczą jednostkę obliczeniową. Bibliografia 1. Podcar City Conferences (2015): Innovative Mobility in the Era of Automation. (http://podcarcity.org, last access: 17.11.2017). 2. ECO-Mobility Project Implemented Under European Union Operation Programme Innovative Economy (http://www.eco-mobilnosc.pw.edu.pl/en_personal-rapid-transit,14.html, last access: 17.11.2017). 3. Choromański W., Daszczuk W. B., Grabski W., Dyduch J., Maciejewski M., Brach. P.: Personal Rapid Transit (PRT) Computer Network Simulation and Analysis of Flow Capacity. Automated People Movers and Transit Systems 2013, April 21-24, 2013, Phoenix, pp. 296-312. 4. Maerivoet S., De Moor B.: Cellular automata models of road traffic. Physics Reports, vol. 419, Issue 1, 2005, pp. 1-64. 5. Shi J., Cheng L., Long J., Liu Y.: A New Cellular Automaton Model for Urban Two-Way Road Networks. Computational Intelligence and Neuroscience, 2014. 6. NVidia CUDA Project (http://www.nvidia.com/object/cuda home.html#, last access: 17.11.2017). 7. Alea.CUDA GPU Programming reference (http://www.quantalea.com/static/app/manual/reference/ alea_cuda_il/index.html, last access: 17.11.2017). 8. Nickolls J., Dally W. J.: The GPU computing era. IEEE Micro, 30(2), 2010. 9. Sungpack H., Sang K., Tayo O., Kunle O.: Accelerating CUDA graph algorithms at maximum warp. Proceedings of the 16th ACM symposium on Principles and practice of parallel programming, 2011, ACM, New York, USA, pp. 267-276. 10. NVIDIA Tesla K80 Accelerator (http://www.nvidia.com/object/tesla-k80.html, last access: 17.11.2017). STUDY THE EFFECTIVENESS OF THE CUDA PLATFORM USE IN COMPUTER MODELLING OF PRT VEHICLE TRAFFIC Summary: PRT systems are among the most dynamically developing means of public transport. The ECO- Mobility project has developed an application for estimating the efficiency of PRT implementation using computer modelling, considering the topology of the network and passengers traffic. When modeling large and complex PRT network configurations, the speed of computer modelling is an important aspect. The paper proposes a concept for increasing the performance of PRT traffic computer simulation by using the CUDA parallel computing platform. The selected aspects of software modifications aimed at enabling parallel processing of simulation steps are presented. Modelling performance measurements using the GPU were performed and compared to CPU processing results. Based on the analysis of research results, it was found that for complex PRT network topologies, modelling using the CUDA platform reduces modelling time and its variance for large and complex PRT networks. Keywords: PRT, computer modeling, CUDA platform