Abaqus
Na klastrze Zeus zainstalowano pakiet Abaqus w wersjiach 6.x, 2016, 2017.
Spis treści
Informacje ogólne
Do ustawiania środowiska uruchomieniowego oprogramowania na klastrze Zeus służy narzędzie Modules. Pliki tymczasowe należy tworzyć używając zasobu dyskowego Lustre. Do załadowania domyślnej wersji pakietu służy komenda:
module add apps/abaqus
Domyślna wersja to 2017.
Program uruchamiany jest poleceniem abaqus.
Graficzne środowisko użytkownika uruchamiane jest poleceniem abaqus cae (Uwaga: należy pamiętać o przekierowaniu wyświetlania XWidnows).
Przegląd funkcji i poleceń dostępny zostanie wyświetlony po wykonaniu komendy abaqus help.
Wersja Abaqusa
Zmienne środowiskowe ustawia się ładując moduł apps/abaqus/ver gdzie ver to wersja Abaqusa (10, 11, 12, 13, 14, 2016 lub 2017)
module add apps/abaqus/ver
Przykładowy skrypt
Obliczenia w trybie wątków ze współdzieloną pamięcią
Zadanie Abaqusa będzie się wykonywać na jednym węźle i będzie wykorzystywało 4 procesory.
#!/bin/bash -l
## Nazwa zlecenia
#SBATCH -J <nazwa_zadania>
## Liczba alokowanych węzłów
#SBATCH -N 1
## Liczba zadań per węzeł (domyślnie jest to liczba alokowanych rdzeni na węźle)
#SBATCH --ntasks-per-node=4
## Ilość pamięci przypadającej na jeden rdzeń obliczeniowy (domyślnie 5GB na rdzeń)
#SBATCH --mem-per-cpu=1GB
## Maksymalny czas trwania zlecenia (format HH:MM:SS)
#SBATCH --time=01:00:00
## Nazwa grantu do rozliczenia zużycia zasobów
#SBATCH -A <grant_id>
## Specyfikacja partycji
#SBATCH -p plgrid-testing
## Plik ze standardowym wyjściem
#SBATCH --output="output.out"
## Plik ze standardowym wyjściem błędów
#SBATCH --error="error.err"
## przejscie do katalogu z ktorego wywolany zostal sbatch
cd $SLURM_SUBMIT_DIR
input=<plik_wejsciowy>
np=$NTASKS
srun /bin/hostname
module load plgrid/apps/abaqus/<ver>
abaqus j=$input cpus=$np mp_mode=threads interactive interactive
Obliczenia w trybie MPI
Zadanie Abaqusa będzie się wykonywać na 4 węzłach i na każdym węźle będzie wykorzystywało 2 procesory.
#!/bin/bash -l
## Nazwa zlecenia
#SBATCH -J <nazwa_zadania>
## Liczba alokowanych węzłów
#SBATCH -N 4
## Liczba zadań per węzeł (domyślnie jest to liczba alokowanych rdzeni na węźle)
#SBATCH --ntasks-per-node=2
## Ilość pamięci przypadającej na jeden rdzeń obliczeniowy (domyślnie 5GB na rdzeń)
#SBATCH --mem-per-cpu=1GB
## Maksymalny czas trwania zlecenia (format HH:MM:SS)
#SBATCH --time=01:00:00
## Nazwa grantu do rozliczenia zużycia zasobów
#SBATCH -A <grant_id>
## Specyfikacja partycji
#SBATCH -p plgrid-testing
## Plik ze standardowym wyjściem
#SBATCH --output="output.out"
## Plik ze standardowym wyjściem błędów
#SBATCH --error="error.err"
## przejscie do katalogu z ktorego wywolany zostal sbatch
cd $SLURM_SUBMIT_DIR
input=<plik_wejsciowy>
np=$NTASKS
srun /bin/hostname
module load plgrid/apps/abaqus/<ver>
abaqus j=$input cpus=$np mp_mode=mpi interactive
6.12
Zmienne środowiskowe ustawia się ładując moduł apps/abaqus/6.12
module add apps/abaqus/6.12
Przykładowy skrypt
Obliczenia w trybie wątków ze współdzieloną pamięcią
Zadanie Abaqusa będzie się wykonywać na jednym węźle i będzie wykorzystywało 4 procesory.
#!/bin/env bash
##### Maksymalnie 12 rdzeni na wezle
#PBS -l nodes=1:ppn=4:intel
##### Maksymalna pamiec przydzielona na jeden rdzen! Czyli sumarycznie 1GB*1*4=4GB na zadanie!
#PBS -l pmem=1gb
##### Maksymalny czas obliczen 1 godzina
#PBS -l walltime=1:00:00
##### Nazwa kolejki
#PBS -q l_short
##### Nazwa zadania widoczna w systemie kolejkowym
#PBS -N nazwa_obliczen
##### Nazwa grantu uzytego do obliczen
#PBS -A nazwa_grantu
# ustawienie sciezek do pakietu Abaqus ver 6.12
module add apps/abaqus/6.12
# przejscie do katalogu, z ktorego wywolano skrypt PBS
cd $PBS_O_WORKDIR
# zliczenie zadanych procesorow
np=$PBS_NP
# ustawianie dostepnej pamieci na wezle obliczeniowym
echo 'memory = "4 gb"' > abaqus_v6.env
input=plik_z_danymi_wejsciowymi
abaqus job=$input cpus=$np mp_mode=threads interactive
Oblicznia w trybie MPI
Zadanie Abaqusa będzie się wykonywać na 4 węzłach i na każdym węźle będzie wykorzystywało 12 procesorów.
#!/bin/env bash
##### Maksymalnie 12 rdzeni na wezle
#PBS -l nodes=4:ppn=12:intel
##### Maksymalna pamiec przydzielona na jeden rdzen! Czyli sumarycznie 1GB*4*12=48GB na zadanie!
#PBS -l pmem=1gb
##### Maksymalny czas obliczen 1 godzina
#PBS -l walltime=1:00:00
##### Nazwa kolejki
#PBS -q l_short
##### Nazwa zadania widoczna w systemie kolejkowym
#PBS -N nazwa_obliczen
##### Nazwa grantu uzytego do obliczen
#PBS -A nazwa_grantu
# ustawienie sciezek do pakietu Abaqus ver 6.12
module add apps/abaqus/6.12
# przejscie do katalogu, z ktorego wywolano skrypt PBS
cd $PBS_O_WORKDIR
# ustawianie dostepnej pamieci na wezle obliczeniowym
echo 'memory = "12 gb"' > abaqus_v6.env
# zliczenie zadanych procesorow
np=$PBS_NP
input=plik_z_danymi_wejsciowymi
abaqus job=$input cpus=$np standard_parallel=all mp_mode=mpi interactive