Długotrwałe obliczenia w Fire Dynamics Simulator (FDS) są kluczowe dla zaawansowanego modelowania pożarów, ale niosą ze sobą ryzyko utraty postępów z powodu nieoczekiwanej awarii. Na szczęście FDS posiada wbudowany mechanizm restartu, który pozwala wznowić przerwaną symulację od ostatniego zapisanego stanu.
W tym poradniku wyjaśniamy, jak prawidłowo skonfigurować i wykorzystać tę funkcjonalność. Skupimy się na kluczowych parametrach, takich jak DT_RESTART i CLIP_RESTART_FILES, które są niezbędne do efektywnego zarządzania złożonymi symulacjami i minimalizowania ryzyka utraty cennych godzin pracy obliczeniowej.
Czym jest i kiedy stosować restart symulacji FDS?
Funkcja restartu w FDS to mechanizm umożliwiający kontynuację przerwanej symulacji od ostatniego zapisanego punktu kontrolnego. Jest to fundamentalne zabezpieczenie postępu w przypadku długich obliczeń, które mogą zostać zatrzymane przez:
- Awarię sprzętu lub zasilania
- Błąd systemu operacyjnego
- Celowe zatrzymanie przez użytkownika
Jej główne zastosowanie to odzyskiwanie postępu po nieprzewidzianych zdarzeniach. W środowiskach High-Performance Computing (HPC), gdzie czas obliczeniowy jest często limitowany, funkcja restartu jest niezbędna do kontynuowania zadań w kolejnych sesjach bez utraty dotychczasowych wyników.
Podstawowa Konfiguracja: Krok po Kroku
Aby móc wznowić symulację, należy najpierw włączyć zapis plików kontrolnych w oryginalnym pliku wejściowym. Służą do tego dwa podstawowe parametry.
1. Włączanie Zapisu Plików Restartu: Parametr DT_RESTART
Kluczowym parametrem jest DT_RESTART, który definiuje się w grupie &DUMP. Określa on, co ile sekund czasu symulacji program ma zapisywać pliki stanu.
&DUMP DT_RESTART=1800. /
Optymalna częstotliwość zależy od złożoności modelu. Zbyt częsty zapis niepotrzebnie obciąża dysk, a zbyt rzadki grozi utratą dużej części postępu w razie awarii. Dobrą praktyką jest ustawienie zapisu co 30-60 minut czasu symulacji (np. DT_RESTART=1800. dla 30 minut).
Uwaga historyczna: W starszych wersjach FDS podobną funkcję pełnił parametr
DTCOREw grupie&MISC.
2. Uruchomienie Symulacji w Trybie Restartu: Parametr RESTART
Aby wznowić przerwane obliczenia, w pliku wejściowym należy aktywować opcję RESTART=.TRUE. w sekcji &MISC.
&MISC RESTART=.TRUE. /
Domyślnie parametr ten ma wartość .FALSE., co oznacza, że każde uruchomienie FDS rozpoczyna symulację od początku (t=0) i nadpisuje istniejące pliki. Po włączeniu restartu, FDS automatycznie odnajdzie i wczyta najnowszy plik z rozszerzeniem .restart z katalogu roboczego.
Warunki Konieczne do Pomyślnego Wznowienia
Aby restart zakończył się sukcesem, muszą być spełnione następujące warunki:
- W katalogu roboczym muszą znajdować się pliki
.restartz poprzedniego etapu obliczeń. - Należy użyć tej samej wersji FDS, która została użyta do pierwotnego uruchomienia.
- Należy użyć identycznej liczby procesorów (siatek MPI) jak w pierwotnej konfiguracji.
Symulacje można wznawiać w środowiskach wieloplatformowych, np. rozpoczynając na Windows i kontynuując na systemie typu UNIX.
Zarządzanie Plikami Restartu z CLIP_RESTART_FILES
Pliki restartu mogą zajmować znaczną przestrzeń dyskową, szczególnie przy częstym zapisie. FDS oferuje parametr CLIP_RESTART_FILES do automatycznego zarządzania tymi plikami.
CLIP_RESTART_FILES=.TRUE.: W tym trybie FDS automatycznie usuwa starsze pliki, zachowując tylko dwa najnowsze. Zapewnia to zapasowy punkt wznowienia, na wypadek gdyby ostatni plik został uszkodzony podczas nagłej awarii.CLIP_RESTART_FILES=N: W nowszych wersjach FDS można podać konkretną liczbę plików do przechowania, np.CLIP_RESTART_FILES=5. Daje to większą kontrolę nad kompromisem między bezpieczeństwem danych a zużyciem miejsca na dysku.
Bezpieczne Zatrzymywanie Symulacji: Mechanizm "Soft Stop"
Zamiast gwałtownie przerywać proces, FDS oferuje metodę kontrolowanego zatrzymania, zwaną „soft stop”. Aby ją zainicjować, wystarczy utworzyć w katalogu roboczym pusty plik o nazwie CHID.stop (gdzie CHID to nazwa Twojego przypadku).
Gdy FDS wykryje ten plik:
- Kończy bieżący krok czasowy.
- Zapisuje kompletny, finalny plik
.restart. - Bezpiecznie kończy działanie.
Funkcja ta działa tylko wtedy, gdy wcześniej włączono zapis plików restartu za pomocą DT_RESTART.
| Cecha | Soft Stop (Kontrolowane) | Hard Stop (Nagłe) |
|---|---|---|
| Przyczyna | Utworzenie pliku CHID.stop | Awaria zasilania, błąd systemu |
| Stan pliku restart | Gwarantowany, kompletny i nieuszkodzony | Ryzyko uszkodzenia ostatniego pliku |
| Pewność wznowienia | Wysoka | Niepewna, zależna od integralności pliku |
Praktyczne Zastosowania i Ograniczenia Funkcji Restartu
Wydłużanie Czasu Symulacji
Najczęstszym i najbezpieczniejszym zastosowaniem jest przedłużenie czasu symulacji. Wystarczy zmodyfikować wartość parametru T_END w pliku wejściowym i uruchomić symulację z RESTART=.TRUE.. Pozwala to kontynuować analizę bez ponownego przeliczania początkowej fazy.
Ważne: Zmiany w geometrii, siatce obliczeniowej czy liczbie procesorów zazwyczaj uniemożliwiają restart i wymagają uruchomienia symulacji od początku.
Analiza Wariantowa
Restart jest idealnym narzędziem do analizy wariantowej. Można przeprowadzić symulację do pewnego momentu (np. do momentu zapłonu), a następnie od tego punktu uruchomić kilka różnych scenariuszy (np. z różnymi ustawieniami wentylacji). Oszczędza to ogromną ilość zasobów obliczeniowych, eliminując potrzebę ponownego liczenia wspólnej fazy początkowej.
Najczęstsze Problemy i Znane Błędy
Wznawianie obliczeń w FDS, choć potężne, może prowadzić do problemów. Należy być świadomym najczęstszych pułapek.
Typowe błędy konfiguracyjne:
- Niezgodność wersji FDS: Próba wznowienia symulacji przy użyciu innej wersji programu.
- Zmiana liczby procesorów MPI: Liczba procesorów musi być identyczna.
- Brak miejsca na dysku: Długie symulacje bez aktywacji
CLIP_RESTART_FILESmogą szybko zapełnić dysk, prowadząc do awarii. - Powielone dane wyjściowe: Po restarcie FDS domyślnie dopisuje dane do istniejących plików wyjściowych, co może prowadzić do niespójności, jeśli pliki nie zostaną odpowiednio przycięte.
Ryzyko Niespójności Wyników i Historyczne Błędy
Nawet przy poprawnym wznowieniu mogą pojawić się subtelne różnice w wynikach w porównaniu do symulacji prowadzonej bez przerw. Jest to szczególnie widoczne w złożonych scenariuszach z aktywowanymi czasowo zdarzeniami (urządzenia DEVC).
Warto również pamiętać o historycznych błędach. Przykładowo, w wersjach FDS 6.7.6 i 6.7.7 zidentyfikowano poważny błąd:
Po wznowieniu symulacji, otwarte przed przerwaniem drzwi (zdefiniowane jako
OBSTzCTRL_ID), choć w Smokeview wyglądały poprawnie, w rzeczywistości blokowały przepływ gazów. Prowadziło to do całkowicie błędnych wyników.
Problem ten został naprawiony w nowszych wersjach, co podkreśla, jak ważne jest korzystanie z aktualnego oprogramowania i krytyczna weryfikacja wyników uzyskanych po restarcie.