Restart symulacji FDS: Konfiguracja i bezpieczne wznowienie

#fds
#poradnik
#restart
#symulacja

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 DTCORE w 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 .restart z 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:

  1. Kończy bieżący krok czasowy.
  2. Zapisuje kompletny, finalny plik .restart.
  3. Bezpiecznie kończy działanie.

Funkcja ta działa tylko wtedy, gdy wcześniej włączono zapis plików restartu za pomocą DT_RESTART.

CechaSoft Stop (Kontrolowane)Hard Stop (Nagłe)
PrzyczynaUtworzenie pliku CHID.stopAwaria zasilania, błąd systemu
Stan pliku restartGwarantowany, kompletny i nieuszkodzonyRyzyko uszkodzenia ostatniego pliku
Pewność wznowieniaWysokaNiepewna, 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_FILES mogą 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 OBST z CTRL_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.

Najczęściej zadawane pytania

Jaka jest zalecana wartość dla parametru DT_RESTART w FDS?

Dobrą praktyką jest ustawienie wartości DT_RESTART tak, aby pliki stanu symulacji zapisywane były co 30 do 60 minut czasu symulacji. Na przykład, DT_RESTART=1800. spowoduje zapis co 30 minut. Optymalna wartość zależy od stabilności systemu i długości całej symulacji.

Czy mogę zmienić siatkę obliczeniową lub geometrię podczas restartu symulacji FDS?

Nie, większość fundamentalnych zmian w konfiguracji, takich jak modyfikacja siatki obliczeniowej (MESH), geometrii (OBST) czy liczby procesorów MPI, uniemożliwia prawidłowe wznowienie symulacji. Takie zmiany wymagają uruchomienia obliczeń od samego początku.

Co się stanie, jeśli mój komputer ulegnie awarii podczas symulacji FDS? Czy nadal mogę ją wznowić?

Tak, jest to możliwe, pod warunkiem, że miałeś włączony zapis plików restartu (DT_RESTART). Nagła awaria (tzw. "hard stop") stwarza jednak ryzyko uszkodzenia ostatniego zapisywanego pliku. Dlatego FDS z opcją CLIP_RESTART_FILES=.TRUE. przechowuje dwa ostatnie pliki, co zwiększa szansę na pomyślne odzyskanie postępu z przedostatniego zapisu.

W jaki sposób parametr CLIP_RESTART_FILES pomaga oszczędzać miejsce na dysku?

Parametr CLIP_RESTART_FILES włącza mechanizm automatycznego usuwania starych plików .restart. Domyślnie FDS przechowuje wszystkie pliki, co może szybko zapełnić dysk. Ustawienie CLIP_RESTART_FILES=.TRUE. ogranicza liczbę plików do dwóch najnowszych, a CLIP_RESTART_FILES=N pozwala zachować N ostatnich plików, co jest kompromisem między bezpieczeństwem a oszczędnością miejsca.

Dlaczego do wznowienia symulacji FDS wymagana jest ta sama wersja programu i liczba procesorów MPI?

Pliki restartu zawierają szczegółowy stan symulacji, w tym dane specyficzne dla algorytmów danej wersji FDS oraz informacje o podziale siatki obliczeniowej między procesory MPI. Zmiana któregokolwiek z tych elementów powoduje, że dane w pliku restartu stają się niekompatybilne z nową konfiguracją, co uniemożliwia ich poprawne wczytanie i kontynuację obliczeń.