Klaster obliczeniowy (PL/HPC) - FAQ

Powrót do usługi

Pytania i odpowiedzi

Jak zalogować się do klastra?

Proces logowania możliwy jest po uzyskaniu i potwierdzeniu loginu oraz hasła dostepowego. Logowanie jest możliwe wyłacznie za pośrednictwem protokołu ssh na adres: blueocean.adm.p.lodz.pl 

Przykładowe logowanie:

ssh twoj.login@blueocean.adm.p.lodz.pl

 

Jak uruchomić zadanie w systemie kolejkowym?

Uruchomienie zadań na klastrze możliwe jest tylko dla użytkownika posiadającego wymagane uprawnienia. W celu uporządkowania pracy na klastrze oraz w celu ograniczenia wystąpienia potencjalnych kłopotów należy zgłaszać zadania do systemu kolejkowego przy pomocy "pliku kontenera" zawierającego definicję środowiska obliczeniowego oraz polecenia do wykonania. Każdy nowy użytkownik po przypisaniu go do domeny ADM.P.LODZ.PL otrzyma przepis na plik, w którym osobiście będzie mógł zmieniać i definiować zadania dla klastra. W obrazowy sposób działanie systemu kolejkowego można opisać jako przekazanie komendy obliczeniowej (lub polecenia systemowego) nodowi zarządzającemu, który sam zadba o to gdzie, kiedy i w jaki sposób zrealizować żądanie użytkownika na nodach obliczeniowych. Po uzupełnieniu "pliku kontenera" poleceniami dla klastra można go uruchomić poleceniem:

$ qsub -S /bin/bash plik_kontener.sh

"Plik kontener" można zapisać:

#!/bin/bash
#$ -cwd
#$ -S /bin/bash
#$ -cwd
#$ -M twoj_login@p.lodz.pl
#$ -m e
#$ -q short
polecenie_program > plik.out 2 > plik.err

Jeśli chcemy uruchomić np. polecenia Gaussiana09 należy wpisać do takiego pliku informację o zmiennych środowiskowych, przykładowy plik o nazwie g09r można zapisać:

#!/bin/bash
cTIME=`date +"%Y%m%d%H%M%S"`
f=g09.$1.$cTIME
echo "#!/bin/bash" > $f
echo "#$ -cwd" >> $f
echo "#$ -M twoj_login@p.lodz.pl" >> $f
echo "#$ -m e" >> $f
echo "#$ -q short" >> $f
echo "export g09root=/opt/gaussian" >> $f
echo "source $g09root/g09/bsd/g09.profile" >> $f
echo "export GAUSS_SCRDIR=/opt/SCRATCH/GAUSSIAN" >> $f
echo "g09 $PWD/$1" >> $f
qsub -S /bin/bash $f

gdzie wykonanie i dodanie do systemu kolejkowego następuje poprzez uruchomienie:

$ ./g09r plik_gaussiana

Do uruchamiania obliczeń Gamess 2010R1 należy utworzyć plik kontener o nazwie gmsr, który można zapisać:

#!/bin/bash
cTIME=`date +"%Y%m%d%H%M%S"`
f=gamess.$1.$cTIME
echo "#!/bin/bash" > $f
echo "#$ -S /bin/bash" >> $f
echo "#$ -cwd" >> $f
echo "#$ -M twoj_login@p.lodz.pl" >> $f
echo "#$ -m e" >> $f
echo "#$ -q short" >> $f
echo "#$ -V" >> $f
echo "/opt/gamess/rungms $1 >& $1.log" >> $f
qsub -S /bin/bash $f

gdzie wykonanie i dodanie do systemu kolejkowego następuje poprzez uruchomienie:

$ ./gmsr plik_gamessa

Najważniejsze polecenia systemu kolejkowego SGE to: qstat - pokazuje stan wszystkich zadań we wszystkich kolejkach
qstat -u user - pokazuje stan zadań użytkownika user
qstat numer_zadania - pokazuje stan wybranego zadania
qstat -u '*' - pokazuje wszystkie zadania wszystkich użytkowników
qdel - usuwanie/"zabijanie" zadania z kolejki
qdel numer_zadania
qhold - wstrzymywanie zadania do czasu jego uwolnienia poleceniem qhold z opcjami lub qrls
qhold numer_zadania - wstrzymanie zadania
qhold -r numer_zadania - wznowienie wstrzymanego zadania z kolejki
qrls - wznowienie zatrzymanego zadania z kolejki
qrls numer_zadania
qsub - wstawianie zadania do kolejki

 

 Jak uruchomić zadanie w systemie kolejkowym ze zintegrowanym środowiskiem Mpich3.2?

Postać kontenera:

#!/bin/bash
cTIME=`date +"%Y%m%d%H%M%S"`
f=pe.$1.$cTIME
echo "#!/bin/bash" > $f
echo "#$ -cwd" >> $f
echo "#$ -M uzytkownik@p.lodz.pl (link sends e-mail)" >> $f
echo "#$ -m e" >> $f
echo "#$ -pe mpi 5" >> $f
echo "#$ -q short" >> $f
#echo "#$ -V" >> $f
#echo "#$ -j y" >> $f
#echo "#$ -o $f.out" >> $f
echo "export PATH=/opt/MPI/mpich3.2/bin:$PATH" >> $f
echo "mpiexec program_mpi" >>$f
qsub -S /bin/bash $f

parametr „#$ -pe mpi 5” oznacza deklarację jaki ma być tryb rozłożenia obliczeń oraz ile rdzeni zostanie wykorzystanych do obliczenia.

Zmienne

mpi - definiuje ilość zadeklarowanych procesów uruchamianych na jednym nodzie.

Jeżeli ilość zadeklarowanych procesów jest wyższa niż posiada nod część zadania uruchamiana jest na kolejnym nodzie.

make = rr (roud robin) – zadania uruchamiane są na nodach w zrównoważony sposób.

smp = pe (pe_slots) – zadania uruchamiane są na jednym nodzie, jeżeli liczba zadeklarowanych procesów jest wyższa niż liczba procesorów noda zadanie nie zostanie uruchomione.

 

 

Jak uruchomić zadanie w systemie kolejkowym ze zintegrowanym środowiskiem Mpich2?

Wersja Mpich2 dostępna tylko dla użytkowników klastra v.1.4.

Do uruchamiania obliczeń w środowisku równoległym opartym o system kolejkowy niezbędne jest przyznanie odpowiednich uprawnień. Tak więc osoby zainteresowane powinny wyrazić chęć korzystania z tego typu obliczeń poprzez email. W obecnym stanie środowiska obliczenia mogą być prowadzone na 4 nodach. Ograniczenie wyłacznie do 4 nodów uwarunkowane jest utrzymaniem stabilności pozostałych obliczeń i będzie zmieniane w zależności od potrzeb, wydajności klastra.

Przykładowy kontener dla obliczeń MPI:

#!/bin/bash
cTIME=`date +"%Y%m%d%H%M%S"`
f=pe.$1.$cTIME
echo "#!/bin/bash" > $f
echo "#$ -cwd" >> $f
echo "#$ -M twoj.email@p.lodz.pl" >> $f
echo "#$ -m e" >> $f
echo "#$ -pe mpirr 10 " >> $f
echo "#$ -V" >> $f
echo "#$ -j y" >> $f
echo "#$ -o $f.out" >> $f
echo "/opt/mpich2/bin/mpiexec $PWD/$1" >>$f
qsub -S /bin/bash $f

Jeżeli kontener zapisany jest jako pe_run to obliczenia wykonyje się: ./pe_run skrypt_mpi

W przykładzie zastosowano jedną z metod alokacji obliczeń round_robin o czym  świadczy dyrektywa: mpirr. Metoda ta charakteryzuje się równym rozłożeniem obliczeń na nodach. Istnieją jeszcze dwie  metody alokacji fill_up: mpifu oraz pe_slots: mpips. Pierwsza mpifu oznacza prowadzenie obliczeń na jednym nodzie. Jeżeli nod nie pozwala osiągnąć wskazanej liczby procesów, pozostałe obliczenia przeniesione są na noda następnego. Metoda mpips umożliwia wykoanywanie obliczeń na jednym nodzie. Liczba "10" w tej samej dyrektywie wskazuje na liczbę uruchomionych procesów w zadaniu. Należy zwrócić uwage, ze liczba gniazd na wspomniane procesy w każdym nodzie jest ograniczona do 16 (liczba procesorów). Należy więc dobierać obliczenia optymalnie dla zadań tak aby umożliwić prace innym. Ponadto dzięki systemowi priorytetów kolejki użytkownicy liczacy najintensywniej będą otrzymywali niższy priorytet obliczeń, a co za tym idzie ich prace będa wykonywane  po pracach użytkowników liczących mniej intensywnie. Dokładne dobieranie liczby procesów ma wpływ na priorytet w kolejce.

qstat -g t - przeglądanie obliczeń równoległych

 

 Jak uruchomić zadanie w systemie kolejkowym dla oprogramowania Ansys:

Przykładowy kontener o nazwie ansys_run:

#!/bin/bash
cTIME=`date +"%Y%m%d%H%M%S"`
f=ansys.$cTIME
echo "#!/bin/bash" > $f
echo "#$ -cwd" >> $f
echo "#$ -M twoj.login@p.lodz.pl" >> $f
echo "#$ -m e" >> $f
echo "#$ -q ansys" >> $f
echo "export PATH=$PATH:/opt/ansys_inc/v140/CFX/bin/" >> $f
echo "export MPI_REMSH=ssh" >> $f
echo '/opt/ansys_inc/v140/CFX/bin/cfx5solve  $1 >> $f
qsub -S /bin/bash $f

Przykładowe wywołanie:

~/ansys_run -def CFX.def -continue-from-file CFX.res -par -part 4 -start-method "MPICH2 Local Parallel"

 

Powrót do usługi