FDS. Analiza procesu obliczeniowego symulacji pożaru w tunelu

W pracy, na przykładzie przeprowadzonej symulacji pożaru, porównano czasy obliczeń otrzymane z użyciem różnej ilości rdzeni mikroprocesora. Rozważany przypadek dotyczył jednej nitki tunelu samochodowego o długości 4000 m. Źródłem ognia była cysterna z benzyną, dla której założono moc źródła ognia 100 kW. Obliczenia dotyczyły szybkości rozprzestrzeniania się pożaru i badania skuteczności działania różnych rozwiązań wentylacji. Otrzymane przebiegi wielkości fizycznych typu temperatura, czy stężenie niebezpiecznych gazów miały drugorzędne znaczenie i nie były poddawane analizie oraz weryfikacji. Istotnym z punktu widzenia pracy był natomiast czas wykonania symulacji oraz przyspieszenie uzyskane przez zastosowanie wielu komputerów do obliczeń. Obliczenia zostały wykonane dla 4 przypadków: a/ stały rozmiar zadania do wykonania, rosnąca liczba procesów wykonujących te same zadanie, b/ stały rozmiar zadania do wykonania, różne liczby wątków wykonujących obliczenia, c/ rosnący rozmiar zadania obliczeniowego, rosnąca liczba procesorów wykonujących zadanie, d/ rosnący rozmiar zadania obliczeniowego, rosnąca liczba wątków wykonujących obliczenia. Do oceny otrzymanych czasów wykonania różnych przypadków symulacji zastosowano miary przyspieszenia obliczeń przy stałej wielkości zadania, wzrostu wydajności systemu przy stałej wielkości zadania oraz wzrostu wydajności systemu przy rosnącej wielkości zadania. W analizowanym przypadku przestrzeń symulacji została podzielona na n domen obliczeniowych wzdłuż osi najdłuższego boku tunelu. Obliczenia dla jednej domeny obliczeniowej zostały wykonane przez wersję szeregową FDS, która korzystała z jednego rdzenia procesora. W przypadkach z liczbą domen obliczeniowych większą od jedności, obliczenia zostały wykonane przez wersję równoległą FDS i używały różnej liczby rdzeni. Dla każdej z domen obliczeniowych, obliczenia przeprowadzał osobny proces. Każdy z procesów był przydzielony do osobnego rdzenia procesora. Do komunikacji między procesami wykorzystano mechanizm Message Passing Interface (MPI), który organizował komputer w logiczną maszynę z pamięcią rozproszoną. Odmiana FDS ograniczająca się do wykorzystania do obliczeń wielu rdzeni tego samego procesora została napisana przy użyciu dyrektyw OpenMP, natomiast wersja równoległa, która do obliczeń może używać zarówno komputerów połączonych w sieć, jak i wielu rdzeni jednego procesora korzysta z wywołań funkcji MPI. Wyniki przeprowadzonych eksperymentów numerycznych pokazały, że oba użyte mechanizmy przyspieszają obliczenia symulacji w stosunku do wykonania przez jeden rdzeń procesora choć nie w sposób liniowy. Czasy wykonania symulacji przez wersję OpenMP były znacząco wyższe niż MPI. Przebadano również skalowalność systemu rozumianego jako komputer oraz program. Również i w tym przypadku otrzymane wyniki wykazały, że lepiej zachowuje się wersja MPI. Wersja OpenMP okazała się nie skalowalną w przeprowadzonych eksperymentach. Porównując szybkości wykonywanych obliczeń na procesorach pochodzących od dwóch wiodących producentów Intela I AMD zauważono, że na procesorach Intel symulacje są wykonywane zdecydowanie szybciej.

Czasopismo: Bezpieczeństwo i Technika Pożarnicza
Dziedziny: nauki inżynieryjno-techniczne
Dyscypliny: inżynieria lądowa i transport