Fluent sekwencyjny
From Centrum Komputerów Dużej Mocy, ICM Uniwersytet Warszawski
| FLUENT | |
|---|---|
| |
| Produkt: | FLUENT |
| Producent: | ANSYS |
| Licencja: | |
| Zainstalowany na: | halo2 rekin labuz1 labuz3 lab edukacyjny |
| Wersja: | 12.1, 13.0.LM2, 14.0 |
| Email: | fluent@icm.edu.pl |
| Program Fluent | |
| Licencja krajowa | |
| Fluent w ICM | |
| Uruchamianie | |
| Obliczenia równoległe | |
| Program Gambit | |
| Gambit w ICM | |
| Uruchamianie | |
| Program Tgrid | |
| Tgrid w ICM | |
| Uruchamianie | |
| Obliczenia w ICM | |
| Tryb wsadowy | |
| Fluent sekwencyjny | |
| Fluent równoległy | |
| Wstawianie do kolejki | |
| Rozmaitości | |
| Projekty użytkowników | |
| Linki | |
PRZYKŁAD SKRYPTU KOLEJKOWEGO - Fluent sekwencyjny
Skrypty kolejkowe różnią się w zależności od tego czy obliczenia będą wykonywane na jednym procesorze czy też będą prowadzone w trybie równoległym.
Przykładowy skrypt kolejkowy uruchamiający obliczenia na jednym procesorze może wyglądać następująco:
#!/bin/csh
#PBS -S /bin/csh
#PBS -N zadanie
#PBS -l cput=100:00:00
#PBS -l mem=460mb
#PBS -l nodes=1:ppn=1
#PBS -l walltime=200:00:00
#PBS -m e
#
env | grep PBS
cd /home/users/ala/test
mkdir -p /tmp1/$USER/$PBS_JOBID
cp example.cas inputfile /tmp1/$USER/$PBS_JOBID
cd /tmp1/$USER/$PBS_JOBID
use_fluent
fluent 3ddp -g -i inputfile >output
cd /home/users/ala/test
cp -r /tmp1/$USER/$PBS_JOBID . && rm -rf /tmp1/$USER
Najważniejsze w tym skrypcie polecenie wywołujące FLUENTa zostało pogrubione. Jest to polecenie opisane w punkcie Uruchamianie programu Fluent. Przypomnijmy, że opcja -g oznacza wyłączenie trybu graficznego, -i inputfile oznacza, ze odpowiedzi na pytania Fluenta będą pobierane z pliku inputfile natomiast wszystkie komunikaty generowane przez Fluenta, które podczas pracy interaktywnej pojawiałyby się na konsoli, będą zapisywane do pliku output.
Przez przystąpieniem do omówienia znaczenia kolejnych linii przypominany o obowiązującej użytkowników dużych maszyn w ICM sugestii aby wszystkie dane oraz wyniki wykonywanych programów przechowywać w katalogach /tmp1, a nie w katalogu domowym. Przedstawiany skrypt sprawi, że ten wymóg zostanie automatycznie spełniony.
Zakładamy dodatkowo, że dane dla Fluenta (pliki example.cas oraz inputfile) znajdują się w katalogu /home/users/ala/test.
Powróćmy do skryptu:
#!/bin/csh
#PBS -S /bin/csh
shell do interpretacji pliku ze skryptem
#PBS -N zadanie
Określenie nazwy zadania (tu: zadanie). Pod taką nazwą będzie widziane zadanie w systemie (np. podczas oglądania zawartości kolejki poleceniem qstat) oraz tak zaczynać się będą nazwy plików generowanych przez system kolejkowy: zadanie.eXXX oraz zadanie.oXXX, gdzie XXX to numer zadania jaki przydzielił system kolejkowy PBS.
Definiowanie limitów:
#PBS -l cput=100:00:00
limit czasu cpu, tu: 100 godzin
#PBS -l mem=460mb
limit pamięci
#PBS -l nodes=1:ppn=1
liczba procesorów. Tu: jeden węzeł (nodes=1), a na nim jeden procesor (ppn=1).
#PBS -l walltime=200:00:00
Określenie "czasu zegarowego" realizowanego zadania.
#PBS -m e
Po zakończeniu obliczeń użytkownik zostanie o tym poinformowany za pomocą poczty elektronicznej.
env | grep PBS
Polecenie "informacyjne", nie mające wpływu na realizację zadania. W pliku zadanie.oXXX wypisane zostaną wartości wszystkich zmiennych środowiskowych związanych z systemem kolejkowym PBS.
cd /home/users/ala/test
Przejście do katalogu, w którym zgodnie z założeniem przyjętym dla potrzeb przykładu znajdują się dane dla Fluenta.
mkdir -p /tmp1/$USER/$PBS_JOBID
Utworzenie katalogu roboczego /tmp1/$USER/$PBS_JOBID w katalogu /tmp1 na dysku lokalnym. $USER jest zmienną środowiskową, której wartością jast nazwa użytkownika (tu: ala), zaś $PBS_JOBID jest numerem zadania przydzielonym przez system kolejkowy. Zauważmy, że katalog ten zostanie utworzony na tym komputerze, który zostanie przydzielony do realizacji naszego zadania. Przed rozpoczęciem wykonywania skryptu nie wiadomo, który z komputerów w klastrze będzie realizował nasze zadanie.
cp example.cas inputfile /tmp1/$USER/$PBS_JOBID
Skopiowanie plików z danymi dla Fluenta do katalogu roboczego. Należy skopiować wszystkie pliki, które będą potrzebne do uruchomienia programu (np. pliki zawierające funkcje zdefiniowane przez użytkownika, ew. pliki .dat w przypadku kontynuowania obliczeń.
cd /tmp1/$USER/$PBS_JOBID
Katalog roboczy /tmp1/$USER/$$ staje się katalogiem bieżącym.
use_fluent
Ustawienie środowiska dla programu Fluent.
fluent 3ddp -g -i inputfile >output
Uruchomienie programu Fluent.
Wszystkie komunikaty, które podczas pracy w trybie interakcyjnym ukazywałyby się w 'oknie głównym' Fluenta, zostaną zapisane w pliku o nazwie output.
cp -r /tmp1/$USER/$PBS_JOBID . && rm -rf /tmp1/$USER
Po zakończeniu obliczeń skopiowanie całego katalogu roboczego do podkatalogu test katalogu bieżącego i skasowanie (o ile nie wystąpiły błędy przy kopiowaniu, np. brak miejsca w katalogu domowym) katalogu roboczego.
Uwaga: Po zakończeniu obliczeń warto obejrzeć nie tylko wyniki działania programu, ale również zapoznać się z zawartością plików .oXXX oraz .eXXX aby upewnić się, że podczas wykonywania programu nie wystąpiły błędy. Pliki te znajdują się w katalogu, z którego wstawiono zadanie do kolejki.
