• Nie Znaleziono Wyników

Badanie wydajności zastosowania platformy CUDA w komputerowym modelowaniu ruchu pojazdów PRT Study the effectiveness of the CUDA platform use in computer modelling of PRT vehicle traffic

N/A
N/A
Protected

Academic year: 2021

Share "Badanie wydajności zastosowania platformy CUDA w komputerowym modelowaniu ruchu pojazdów PRT Study the effectiveness of the CUDA platform use in computer modelling of PRT vehicle traffic"

Copied!
11
0
0

Pełen tekst

(1)

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 komu-nikacji zbiorowej. W ramach projektu ECO-Mobilność została opracowana aplikacja do komputero-wego 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 pojaz-dó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 wyko-rzystanie 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 roz-wijających się środków komunikacji zbiorowej [1]. W ramach projektu ECO-Mobilność jed-nym 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 zbudo-wano 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 iden-tycznych 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 ob-liczeń będących podstawą procesu modelowania.

(2)

Komputerowa aplikacja symulatora PRT została zrealizowana w scentralizowanej archi-tekturze, co zakłada między innymi wykonywanie wszelkich niezbędnych obliczeń na pro-cesorze komputera CPU (ang. Central Processing Unit). Podniesienie wydajności przetwa-rzania 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żli-wości zwiększenia częstotlimożli-wości taktowania CPU, preferowanym rozwiązaniem jest podej-ście bazujące na równoległej obsłudze zadań modelowania przez niezależne jednostki obli-czeniowe komputera. Większość współczesnych procesorów posiada od 1 do 8 takich jed-nostek (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 mode-lach 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ścio-wych danych. Wynikiem przetwarzania również jest zbiór danych. Wysoka wydajność pro-cesoró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 kom-puterowym modelowaniu ruchu pojazdów PRT, architekturę systemu informatycznego rea-lizującego algorytm modelowania, a także wyniki badań wydajności zaproponowanych roz-wią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 wyka-zał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 zacho-wanie systemu PRT w różnych przedziałach czasowych (godzina, dzień, etc.). W celu ob-serwowania 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 wy-dajnoś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

(3)

݅ א ሾͲǤ Ǥ ݊ െ ͳሿǡ ݆ א ሾͲǤ Ǥ ݉ െ ͳሿ 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 ܵ௫՜ ܵ௬ od-bywa 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

ko-mó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ą zaj-mują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, ko-mórka ܶ௜௝ zmieni swój stan na „wolna” lub „zajęta przez pojazd oczekujący”. W obu przy-padkach 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ń nume-rycznych z wykorzystaniem jednostek przetwarzania graficznego GPU. Sprzętową część platformy stanowią układy graficzne NVIDIA takie jak GeForce, Quadro lub stosowany

(4)

w samochodach autonomicznych układ Tesla. Programowa część platformy jest reprezento-wana przez zbiór bibliotek komponentów, dostęp do których jest realizowany za pośrednic-twem 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ównole-gł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ła-dami 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 po-jedynczej 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ń zwra-canych 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ęd-niać specyfikę zadania w celu osiągnięcia najlepszych wyników wydajnościowych. Na wy-dajność 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 reprezento-wana 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ć oblicze-nia 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 prze-kazywania 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 wykony-wana w osobnym wątku. Wówczas współrzędne komórki { xCell, yCell } w tablicy dwuwy-miarowej ܶሾͲǤ Ǥ ݊ െ ͳǡͲǤ Ǥ ݉ െ ͳሿ mogą być obliczone jako (rys. 2):

(5)

ݔܥ݈݈݁ ൌ ܾ݈݋ܿ݇ܰݑ݉Ǥ ݔ כ ܾ݈݋ܿ݇ܵ݅ݖ݁Ǥ ݔ ൅ ݐ݄ݎ݁ܽ݀Ǥ ݔ (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 po-przez 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

(6)

GPU z poziomu platformy Microsoft.NET wykorzystanej przy tworzeniu programu symu-lacyjnego.

Po rozpoczęciu procesu komputerowej symulacji ruchu pojazdów program PRT Simula-tor gromadzi dane dot. przebiegu procesu modelowania, które następnie są poddawane sta-tystycznej 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 pojaz-dó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 iden-tycznych 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.

(7)

W pierwszym etapie przeprowadzono badanie rozkładu zmiennej losowej ݐ஼௉௎ (czas wy-konania 100 kroków symulacji) dla sieci PRT o wymiarach 100x100 komórek. Eksperyment powtórzono 35 razy dla identycznych danych wejściowych. Fragment pozyskanych wyni-kó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 kro-kó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).

a) wartości pomiarowe zmiennej ݐҧ஼௉௎ሺଵ଴଴ሻ b) rozkład zmiennej losowej ݐҧ஼௉௎ሺଵ଴଴ሻ

Rys. 4. Wartości pomiarowe oraz rozkład czasu symulacji na procesorze CPU

0 0,05 0,1 0,15 0,2 0,25 0 10 20 30 40 Czas, [ s] Lp. pomiaru 1 4 8 16 5 1 0 2 4 6 8 10 12 14 16 18 0,11 0,12 0,14 0,16 0,18 0,20 Częstość Czas modelowania, [s]

(8)

Identyczne pomiary zostały wykonane w trakcie symulacyjnego eksperymentu z wyko-rzystaniem 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ń wykonywa-nych 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 pro-cesora graficznego oraz odczyt wyniku. Należy jednak zwrócić uwagę na mniejszą warian-cję wyników eksperymentu wynoszącą 3,20%, co pozwala estymować czas eksperymentu bardziej precyzyjnie. Wyniki eksperymentu obrazuje rys. 5.

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 komputero-wej symulacji od rozmiaru obszaru modelowania, poprzez stopniowe zwiększenie wymia-rów tablicy komórek. W tym celu przeprowadzono badania symulacyjne dla rozmiawymia-rów ob-szaru modelowania n z zakresu od 100 do 1050 komórek z interwałem 50. W celu uprosz-czenia 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 za-dania 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 dru-giego 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 kom-puterowej symulacji ruchu pojazdów.

Analizując dane statystyczne eksperymentu należy również zauważyć, że obliczenia wy-konywane na CPU są bardziej wrażliwe na dane wejściowe, co skutkuje większym odchy-leniem czasu wykonania symulacji od mediany. Można przypuszczać, że przy obliczeniach

0,2 0,205 0,21 0,215 0,22 0,225 0,23 0,235 0,24 0 10 20 30 40 Czas, [ s] Lp. pomiaru 0 5 10 15 20 25 0,206 0,212 0,219 0,225 0,232 0,238 0,244 Częstość Czas, [s]

(9)

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.

Rys. 6. Zależność czasu komputerowej symulacji od rozmiarów modelowanego obszaru W celu oszacowania trendu wzrostu czasu oczekiwania od rozmiarów obszaru modelo-wania, 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 te-renu 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 symu-lacja 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 to-pologii sieci reprezentowanej w postaci rzadkich grafów czas modelowania powinien być znacznie krótszy. 0 5 10 15 20 25 Czas, [ s]

Rozmiar modelowanego obszaru, n

(10)

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. Analizo-wany system został opracoAnalizo-wany w ramach projektu ECO Mobilność [1] i stanowi progra-mową realizację autorskich algorytmów modelowania [3] z wykorzystaniem automatów ko-mórkowych. Jak wykazały badania [4, 5, 9] zastosowanie technologii CUDA pozwala zna-cząco podnieść wydajność obliczeń w systemach komputerowych wykorzystujących po-dobne zasady modelowania.

W ramach prac badawczych zostały przeprowadzone modyfikacje programu PRT Simu-lator, celem których było umożliwienie wykorzystania jednostek obliczeniowych procesora GPU do równoległego przetwarzania danych w zakresie obliczenia kolejnych stanów auto-matów komórkowych reprezentujących poszczególne elementy systemu PRT. Następnie przeprowadzono komputerową symulację funkcjonowania systemu PRT w wersji klasycz-nej wykorzystującej jednostkę obliczeniową CPU oraz w wersji dedykowaklasycz-nej do wykorzy-stania GPU, dla identycznych danych wejściowych. W obu przypadkach oszacowano roz-kład czasu ݐ wykonania 100 kroków symulacji jako zmiennej losowej, obliczono jej podsta-wowe charakterystyki oraz wykazano, iż ma miejsce normalny rozkład. Zwiększając roz-miar 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ł

0 1 2 3 4 5 6 7 100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000 Czas, [ s]

Rozmiar obszaru modelowania, n

(11)

ݐீ௉௎ൎ ݐ஼௉௎ȀͳͲǤͷ. Czas modelowania ݐீ௉௎ charakteryzuje się również mniejszym odchy-leniem 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 po-między jednostki obliczeniowe CUDA, poprzez dobór rozmiaru bloków symulacji tj. obsza-ró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. Pro-ceedings 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 com-puter 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 pro-cessing of simulation steps are presented. Modelling performance measurements using the GPU were per-formed 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.

Cytaty

Powiązane dokumenty