Biocentrum Ochota - Grafen

Infrastruktura informatyczna dla rozwoju strategicznych kierunków biologii i medycyny

URUCHAMIANIE APLIKACJI NA KLASTRZE - PRZYKŁADY

WSTĘP

Wygodnym sposobem uruchamiania zadań na klastrze jest przygotowanie skryptu, który zawiera informacje o potrzebnych zasobach przekazywane do systemu kolejkowego (linie zaczynające się od #PBS) oraz komendy uruchamiające aplikacje obliczeniową lub skompilowany program.

Klaster nie jest przeznaczony do pracy w trybie interaktywnym, więc skrypt należy przygotować wcześniej na własnym komputerze. Trzeba pamiętać, aby programy i skrypty, przygotowane do pracy na klastrze, nie wykorzystywały funkcji wymagających wyświetlania okien graficznych, ponieważ uruchamiane w kolejce programy działają wyłącznie w trybie tekstowym.

ANSYS FLUENT

Przykład można pobrać z katalogu: /home/_EXAMPLE/fluent_job.

Pliki

Katalog fluent_job zawiera pliki:

  • airfoil.cas
  • airfoil.dat
  • journal.jou
  • fluent_job.sh        skrypt uruchamiający symulację

Skrypt

#!/bin/bash -l
#PBS -N fluent_job
#PBS -l nodes=1:ppn=4
#PBS -l walltime=00:05:00

USER_NAME=user  #change to your user name
cd /home/$USER_NAME/fluent_job

journal=journal.jou
FLUENTSOLVER=2ddp

# DON'T CHANGE BELOW THIS LINE
rm -f pnodes
cat  $PBS_NODEFILE | sort > pnodes
export ncpus=`cat pnodes | wc -l`

fluent150 -g -pmpi-auto-selected -mpi=hp $FLUENTSOLVER -t$ncpus -cnf=pnodes -ssh -i 
$journal > fluent.log

#PBS -N fluent_job
#PBS -l nodes=1:ppn=4
#PBS -l walltime=00:05:00

Przekazanie parametrów do systemu kolejkowego: nazwa zadania - fluent_job, liczba węzłów ‑ 1, liczba rdzeni – 4, przewidziany czas: 5 minut

cd /home/$USER_NAME/fluent_job

Zmiana katalogu roboczego.

journal=journal.jou
FLUENTSOLVER=2ddp

rm -f pnodes
cat  $PBS_NODEFILE | sort > pnodes
export ncpus=`cat pnodes | wc -l`

Ustawienie parametrów uruchomienia programu.

fluent150 -g -pmpi-auto-selected -mpi=hp $FLUENTSOLVER -t$ncpus -cnf=pnodes -ssh -i
$journal > fluent.log

Uruchomienie programu z przekierowaniem standardowego wyjścia do pliku fluent.log

Dodanie zadania do kolejki

Przygotowany skrypt dodajemy do kolejki poleceniem:

$ qsub fluent_job.sh

W wyniku działania programu zostanie utworzony plik danych wyjściowych:

  • airfoil-final.dat

oraz pliki:

  • fluent_job.eXXXXXX                  standardowy plik błędów
  • fluent_job.oXXXXXX                  standardowy plik wyjścia (pusty)
  • fluent.log                                    przekierowane wyjście programu.
  • pnodes

Powrót na początek strony

COMSOL

Przykład można pobrać z katalogu: /home/_EXAMPLE/comsol_job.

Pliki

Katalog comsol_job zawiera:

  • mapk-for-kevlar.mph              plik danych do symulacji
  • libegf-b.so                               biblioteka wykorzystywana w symulacji
  • run.sh                                      skrypt uruchamiający symulację

Skrypt

Skrypt uruchamia obliczenia w programie COMSOL

#!/bin/bash
#PBS -N comsol_job
#PBS -l nodes=1:ppn=12

USER_NAME=user #change to your user name
cd /home/$USER_NAME/comsol_job

/home/_PROGS/bin/comsol43b  -ckl  batch\
-inputfile /home/$USER_NAME/comsol_job/mapk-for-kevlar.mph\
-outputfile /home/$USER_NAME/comsol_job/mapk-for-kevlar.out.mph\
-batchlog /home/$USER_NAME/comsol_job/mapk-for-kevlar.out.log

#PBS -N comsol_job
#PBS -l nodes=1:ppn=12

Przekazanie parametrów do systemu kolejkowego: nazwa zadania - comsol_job, liczba węzłów ‑ 1, liczba rdzeni - 12.

cd /home/$USER_NAME/comsol_job

Zmiana katalogu roboczego.

/home/_PROGS/bin/comsol43b  -ckl  batch\
-inputfile /home/$USER_NAME/comsol_job/mapk-for-kevlar.mph\
-outputfile /home/$USER_NAME/comsol_job/mapk-for-kevlar.out.mph\
-batchlog /home/$USER_NAME/comsol_job/mapk-for-kevlar.out.log

Uruchomienie programu COMSOL z parametrami:

  • -inputfile …/mapk-for-kevlar.mph                   dane wejściowe
  • -outputfile …/mapk-for-kevlar.out.mph          dane wyjściowe
  • -batchlog …/mapk-for-kevlar.out.log              log

Dodanie zadania do kolejki

Przygotowany skrypt dodajemy do kolejki poleceniem:

$ qsub comsol_job.sh

W wyniku działania programu, oprócz danych wyjściowych i logu utworzone zostaną pliki:

  • comsol_job.eXXXXXX                                          standardowy plik błędów
  • comsol_job.oXXXXXX                                          standardowy wyjście programu
  • mapk-for-kevlar.out.mph.status                           status zadania obliczeniowego.

Powrót na początek strony

LS-DYNA

Przykład można pobrać z katalogu: /home/_EXAMPLE/lsdyna_job.

Pliki.

Katalog lsdyna_job zawiera pliki wygenerowane przez program LS-PrePost, który pełni funkcję pre- i postprocesora:

  • billet.forge.209.d
  • billet.forge.209.i
  • billet.forge.209.k

oraz skrypt:

  • lsdyna_job.sh

Skrypt.

Skrypt uruchamia obliczenia w programie LS-DYNA w trybie równoległym z wykorzystaniem pakietu mpi MVAPICH.

#!/bin/sh
#PBS -N lsdyna_job
#PBS -l nodes=1:ppn=10,walltime=1:00:00

module purge
module load mvapich2/1.6-intel

USER_NAME=user #change to your user name
cd /home/$USER_NAME/lsdyna_job/

mpirun lsdyna i=/home/$USER_NAME/lsdyna_job/billet.forge.209.k

#PBS -N lsdyna_job
#PBS -l nodes=1:ppn=10,walltime=1:00:00

Przekazanie parametrów do systemu kolejkowego: nazwa zadania LS-DYNA, liczba węzłów -1, liczba rdzeni - 10, przewidywany czas na wykonanie zadania - 1h.

module purge
module load mvapich2/1.6-intel

Usunięcie domyślnego modułu MPI i załadowanie modułu mvapich2/1.6-intel.

cd /home/$USER_NAME/lsdyna_job/

Zmiana katalogu roboczego.

mpirun lsdyna i=/home/$USER_NAME/lsdyna_job/billet.forge.209.k

Uruchomienie programu LS-DYNA z zadaniem nazwa_zadania.k

Dodanie zadania do kolejki

Przygotowany skrypt dodajemy do kolejki poleceniem:

$ qsub lsdyna_job.sh

W wyniku działania programu zostanie utworzony zestaw plików danych oraz logów.

 

Powrót na początek strony

MATLAB

Przykład można pobrać z katalogu: /home/_EXAMPLE/matlab_job.

Skrypt

#!/bin/bash
#PBS -N gen_atoms_job
#PBS -l nodes=1:ppn=1,mem=10mb,walltime=00:05:00

USER_NAME=user #change to your user name
cd /home/$USER_NAME/matlab_job

/home/_PROGS/bin/matlab2013a -nodisplay -nodesktop -nojvm\
-r "run /home/$USER_NAME/matlab_job/gen_atoms; quit"

#PBS -N gen_atoms_job
#PBS -l nodes=1:ppn=1,mem=10mb,walltime=00:05:00

Przekazanie parametrów do systemu kolejkowego. W danym przykładzie deklarujemy, że nasze zadanie będzie się wykonywało na jednym rdzeniu (ppn=1) pojedynczego węzła (nodes=1), wykorzysta 10MB pamięci RAM (mem=10mb), czas trwania zadania nie przekroczy 5 minut (walltime=00:05:00).

cd /home/$USER_NAME/matlab_job

Przejście do katalogu, w którym zostanie uruchomiony docelowy program. Do katalogu zostały wcześniej skopiowany skrypt matlab-a gen_atoms.m oraz skrypt uruchomieniowy matlab_job.sh.

/home/_PROGS/bin/matlab2013a -nodisplay -nodesktop -nojvm -r "run /home/$USER_NAME/matlab_job/gen_atoms; quit"

Uruchomienie MATLABa w trybie wsadowym ze skryptem gen_atoms.m. Po jego wykonaniu program zostanie zamknięty poleceniem quit.

Dodanie zadania do kolejki

Przygotowany skrypt dodajemy do kolejki poleceniem:

$ qsub matlab_job.sh

W wyniku działania programu zostaną utworzone 3 pliki:

  • gen_atoms_job.oXXXX       – zawierający standardowe wyjście programu
  • gen_atoms_job.eXXXX       – zawierający wyjście błędów programu
  • atoms.out                              – dane wyjściowe programu.

Powrót na początek strony