Prometheus:Podstawy: Różnice pomiędzy wersjami

Z Komputery Dużej Mocy w ACK CYFRONET AGH
Skocz do:nawigacja, szukaj
(dodanie info o gridftp)
(poprawki w formatowaniu oraz kilka linków)
Linia 135: Linia 135:
  
 
Klastry Zeus i Prometheus nie współdzielą żadnych zasobów dyskowych, w związku z tym, aby korzystać z danych zgromadzonych na Zeusie, należy je najpierw skopiować. W tym celu możemy posłużyć się komendami:
 
Klastry Zeus i Prometheus nie współdzielą żadnych zasobów dyskowych, w związku z tym, aby korzystać z danych zgromadzonych na Zeusie, należy je najpierw skopiować. W tym celu możemy posłużyć się komendami:
* scp - w przypadku małych plików,
+
* <code>scp</code> - w przypadku małych plików (używa loginu i hasła),
* globus-url-copy - w przypadku dużych plików,
+
* <code>globus-url-copy</code> - w przypadku dużych plików (używa loginu i hasła LUB grid proxy),
* uberftp - w przypadku dużych plików, interaktywnie.
+
* <code>uberftp</code> - w przypadku dużych plików, interaktywnie (używa grid proxy).
  
  
 
Podstawowe informacje o komendzie globus-url-copy:
 
Podstawowe informacje o komendzie globus-url-copy:
* składnia: globus-url-copy ŻRÓDŁO CEL, gdzie źródło i cel poprzedzone są nazwą protokołu: np. "file://",
+
* składnia: <code>globus-url-copy ŻRÓDŁO CEL</code>, gdzie źródło i cel poprzedzone są nazwą protokołu: np. <code>file://</code>,
 
* aby pobrać pliki z zeusa używamy 2 protokołów:
 
* aby pobrać pliki z zeusa używamy 2 protokołów:
** gsiftp - gsiftp://zeus.cyfronet.pl/ - uwierzytelnianie za pomocą proxy (musimy najpierw stworzyć grid proxy komendą grid-proxy-init),
+
** gsiftp - <code>gsiftp://zeus.cyfronet.pl/</code> - uwierzytelnianie za pomocą proxy (musimy najpierw stworzyć grid proxy komendą <code>grid-proxy-init</code>),
** sshftp - sshftp://zeus.cyfronet.pl/ - uwierzytelnianie hasłem plgrid,
+
** sshftp - <code>sshftp://zeus.cyfronet.pl/</code> - uwierzytelnianie hasłem PLGrid,
 
* uwierzytelnianie proxy pozwala uruchamiać wiele transferów bez podawania hasła za każdym razem,
 
* uwierzytelnianie proxy pozwala uruchamiać wiele transferów bez podawania hasła za każdym razem,
* protokół docelowy to 'file://' czyli plik/katalog lokalny,
+
* protokół docelowy to <code>file://</code> czyli plik/katalog lokalny,
* dla ŻRÓDŁA i CELU musimy podać pełną ścieżkę pliku lub możemy użyć skrótu w postaci '~plgLOGIN' do naszego katalogu domowego,
+
* dla ŻRÓDŁA i CELU musimy podać pełną ścieżkę pliku lub możemy użyć skrótu w postaci <code>~plgLOGIN</code> do naszego katalogu domowego,
* dla CELU (czyli protokołu "file://") możemy podać też zmienne środowiskowe np. "$PWD" - bieżący katalog,
+
* dla CELU (czyli protokołu <code>file://</code>) możemy podać też zmienne środowiskowe np. <code>$PWD</code> - bieżący katalog,
* w przypadku CELU gdy podamy nazwę pliku np. "$PWD/nazwa.txt", plik zapisze się pod daną nazwą, a gdy podamy tylko katalog, to plik zapisze się pod taką samą nazwą jak źródłowy,
+
* w przypadku CELU gdy podamy nazwę pliku np. <code>$PWD/nazwa.txt</code>, plik zapisze się pod daną nazwą, a gdy podamy tylko katalog, to plik zapisze się pod taką samą nazwą jak źródłowy,
* aby przesyłać całe katalogi, należy je najpierw spakować komendą "tar -czf archiwum.tar katalog"'
+
* aby przesyłać całe katalogi, należy je najpierw spakować komendą <code>tar -czf archiwum.tar katalog</code>,
 +
* w przypadku gdy nasz login na klastrze Prometheus różni się od tego na klastrze Zeus możemy użyć wyłącznie protokołu "sshftp://" a do ŹRÓDŁA należy dodać login na klastrze Zeus np. <code>sshftp://MOJ_USERNAME@zeus.cyfronet.pl/</code>.
  
  
Przykład użycia komendy globus-url-copy:
+
Przykład użycia komendy <code>globus-url-copy</code>:
* <code>globus-url-copy sshftp://zeus.cyfronet.pl/~plgLOGIN/bigfile.txt file://$PWD/</code> - skopiuj z katalogu domowego użytkownika plgLOGIN na klastrze Zeus, do bieżącego katalogu plik "bigfile.txt" i nadaj mu tą samą nazwę,
+
* skopiuj z katalogu domowego użytkownika plgLOGIN na klastrze Zeus, do bieżącego katalogu plik "bigfile.txt" i nadaj mu tą samą nazwę:
* <code>globus-url-copy sshftp://zeus.cyfronet.pl//mnt/gpfs/work/plgrid/groups/plggGROUP_NAME/bigfile.txt file://$PWD/</code> - skopiuj plik "/mnt/gpfs/work/plgrid/groups/plggGROUP_NAME/bigfile.txt" z klastara Zeus do bieżącego katalogu.
+
<pre>globus-url-copy sshftp://zeus.cyfronet.pl/~plgLOGIN/bigfile.txt file://$PWD/</pre>
 +
* skopiuj plik "/mnt/gpfs/work/plgrid/groups/plggGROUP_NAME/bigfile.txt" z klastara Zeus do bieżącego katalogu:
 +
<pre>globus-url-copy sshftp://zeus.cyfronet.pl//mnt/gpfs/work/plgrid/groups/plggGROUP_NAME/bigfile.txt file://$PWD/</pre>
 +
* j.w. ale z podanym loginem z klastra Zeus (domyślnie używany jest taki sam użytkownik na jakiego jesteśmy zalogowani)
 +
<pre>globus-url-copy sshftp://MOJ_USERNAME@zeus.cyfronet.pl//mnt/gpfs/work/plgrid/groups/plggGROUP_NAME/bigfile.txt file://$PWD/</pre>
 +
 
 +
 
 +
Odnośniki do dodatkowych pomocy/dokumentacji:
 +
* scp:
 +
** http://linux.die.net/man/1/scp
 +
* globus-url-copy:
 +
** http://linux.die.net/man/1/globus-url-copy
 +
** http://toolkit.globus.org/toolkit/docs/4.0/data/gridftp/rn01re01.html
 +
* uberftp:
 +
** http://linux.die.net/man/1/uberftp
 +
** https://twiki.opensciencegrid.org/bin/view/Documentation/StorageUberFtp
 +
* grid-proxy-init
 +
** http://linux.die.net/man/1/grid-proxy-init
 +
** http://toolkit.globus.org/toolkit/docs/4.0/security/prewsaa/rn01re05.html
  
 
== Zasady obowiązujące na klastrze Prometheus ==
 
== Zasady obowiązujące na klastrze Prometheus ==

Wersja z 10:09, 11 sie 2015


Logowanie

Dostęp do klastra Prometheus realizowany jest za pośrednictwem maszyny dostępowej:

 login01.pro.cyfronet.pl

Możliwe jest także użycie dłuższego aliasu login01.prometheus.cyfronet.pl (a także, zamiast cyfronet.pl, domeny cyf-kr.edu.pl).

Logowanie na maszynę dostępową możliwe jest poprzez SSH.

Aktualnie logowanie jest ograniczone i możliwe jedynie pośrednio z maszyny dostępowej Zeusa.

Dostępne oprogramowanie

Opis dostępnego oprogramowania znajduje się tutaj.

Dostęp do oprogramowania realizoway jest za pomocą narzędzia Lmod.

Partycje

Odpowiednikiem kolejek PBS dla systemu SLURM są partycje. Prometheus posiada aktualnie następujące partycje:

Nazwa partycji Zasoby Maksymalny czas
trwania zadania
Informacje
red 576 węzłów (13824 CPU) Inf Partycja domyślna, pierwsza wyspa
green 576 węzłów (13824 CPU) Inf Druga wyspa
blue 576 węzłów (13824 CPU) Inf Trzecia wyspa
plgrid 288 węzłów (6912 CPU) 72:00:00 Partycja dla infrastruktury PL-Grid (aktualnie jedyna dostępna dla użytkowników)
all 1728 węzłów (41472 CPU) Inf Zbiór wszystkich węzłów Prometheusa

Dokładne informacje na temat partycji można otrzymać przy pomocy polecenia

scontrol show partition [<nazwa_partycji>]

Uwagi:

  • Aktualnie dla użytkowników udostępniona jest wyłącznie partycja plgrid
  • Zadania nieprzekraczające rozmiaru wyspy obliczeniowej powinny być uruchamiane w ramach partycji wyspy. Zlecanie obliczeń w partycji all powoduje potencjalne rozbicie zadania pomiędzy wyspami obliczeniowymi, co skutkuje obniżeniem efektywności obliczeń.

Uruchamianie zadań

Zlecanie zadań na klastrze Prometheus odbywa się poprzez system kolejkowy SLURM.

Zadanie może być zlecone zarówno w trybie wsadowym jak i w trybie interaktywnym.

Tryb wsadowy

Do zlecania zadania w trybie wsadowym służy komenda sbatch. Użycie komendy: sbatch skrypt.sh

Przykładowy skrypt:

#!/bin/bash -l
## Nazwa zlecenia
#SBATCH -J ADFtestjob
## Liczba węzłów
#SBATCH -N 2
## Maksymalna liczba zadań w zleceniu (domyślnie ilość rdzeni)
#SBATCH -n 48
## Ilość zadań na węzeł
#SBATCH --ntasks-per-node=24
## Maksymalna ilość zużytej pamięci na węzeł (w MB)
#SBATCH --mem 24000
## Maksymalny czas trwania zlecenia
#SBATCH --time=20:00:00 
## Nazwa grantu do rozliczenia zużycia zasobów
#SBATCH -A testgrant
## Specyfikacja partycji
#SBATCH -p blue
## Plik ze standardowym wyjściem
#SBATCH --output="adf.out"
## Plik ze standardowym wyjściem błędów
#SBATCH --error="adf.err"
## Typ powiadomień e-mail
#SBATCH --mail-type=ALL
## E-mail na który wysłać powiadomienia 
#SBATCH --mail-user=user@example.com

## przejscie do katalogu z ktorego wywolany zostal sbatch
cd $SLURM_SUBMIT_DIR

srun /bin/hostname
module load apps/adf/2014.07 
adf input.adf

Tryb interaktywny

Do zlecania zadań w trybie interaktywnym z powłoką służy komenda (przykład): srun -p plgrid -N 2 --ntasks-per-node=24 -n 48 -A grant_id --pty /bin/bash -l Powyższa komenda uruchomi zadanie na 2 węzłach i 48 rdzeniach (24 rdzenie na węzeł).

Samo polecenie srun odpowiada za uruchomienie komendy w ramach zaalokowanych zasobów.
Jednak w przypadku, gdy zasoby nie zostały wcześniej zaalokowane, komenda ta uprzednio dokonuje ich rezerwacji tuż przed uruchomieniem obliczeń.


Uwaga: Wszelkie informacje na temat komend SLURMa można znaleźć w manualu, np.: man sbatch

Monitorowanie kolejek, partycji, węzłów, zadań i zasobów

  • statystyki dla uruchomionych zadań użytkownika
pro-jobs #Uwaga: statystyki dla aktualnie uruchomionych zadań nie zawsze są dokładne
  • statystyki dla zakończonych zadań użytkownika
pro-jobs-history
  • lista aktualnie zakolejkowanych/uruchomionych zadań
squeue
  • szczegóły zadania
scontrol show job [<ID_zadania>]
  • zużycie zasobów w ramach kroków (step) działającego zadania
sstat -a -j ID_zadania/ID_zadania.batch
  • zużycie zasobów zakończonego już zadania/kroku
sacct
  • właściwości partycji
scontrol show partition [<nazwa_partycji>]
  • lista węzłów
sinfo
  • właściwości węzła
scontrol show node [<nazwa_węzła>]


Przenoszenie danych z klastra Zeus

Klastry Zeus i Prometheus nie współdzielą żadnych zasobów dyskowych, w związku z tym, aby korzystać z danych zgromadzonych na Zeusie, należy je najpierw skopiować. W tym celu możemy posłużyć się komendami:

  • scp - w przypadku małych plików (używa loginu i hasła),
  • globus-url-copy - w przypadku dużych plików (używa loginu i hasła LUB grid proxy),
  • uberftp - w przypadku dużych plików, interaktywnie (używa grid proxy).


Podstawowe informacje o komendzie globus-url-copy:

  • składnia: globus-url-copy ŻRÓDŁO CEL, gdzie źródło i cel poprzedzone są nazwą protokołu: np. file://,
  • aby pobrać pliki z zeusa używamy 2 protokołów:
    • gsiftp - gsiftp://zeus.cyfronet.pl/ - uwierzytelnianie za pomocą proxy (musimy najpierw stworzyć grid proxy komendą grid-proxy-init),
    • sshftp - sshftp://zeus.cyfronet.pl/ - uwierzytelnianie hasłem PLGrid,
  • uwierzytelnianie proxy pozwala uruchamiać wiele transferów bez podawania hasła za każdym razem,
  • protokół docelowy to file:// czyli plik/katalog lokalny,
  • dla ŻRÓDŁA i CELU musimy podać pełną ścieżkę pliku lub możemy użyć skrótu w postaci ~plgLOGIN do naszego katalogu domowego,
  • dla CELU (czyli protokołu file://) możemy podać też zmienne środowiskowe np. $PWD - bieżący katalog,
  • w przypadku CELU gdy podamy nazwę pliku np. $PWD/nazwa.txt, plik zapisze się pod daną nazwą, a gdy podamy tylko katalog, to plik zapisze się pod taką samą nazwą jak źródłowy,
  • aby przesyłać całe katalogi, należy je najpierw spakować komendą tar -czf archiwum.tar katalog,
  • w przypadku gdy nasz login na klastrze Prometheus różni się od tego na klastrze Zeus możemy użyć wyłącznie protokołu "sshftp://" a do ŹRÓDŁA należy dodać login na klastrze Zeus np. sshftp://MOJ_USERNAME@zeus.cyfronet.pl/.


Przykład użycia komendy globus-url-copy:

  • skopiuj z katalogu domowego użytkownika plgLOGIN na klastrze Zeus, do bieżącego katalogu plik "bigfile.txt" i nadaj mu tą samą nazwę:
globus-url-copy sshftp://zeus.cyfronet.pl/~plgLOGIN/bigfile.txt file://$PWD/
  • skopiuj plik "/mnt/gpfs/work/plgrid/groups/plggGROUP_NAME/bigfile.txt" z klastara Zeus do bieżącego katalogu:
globus-url-copy sshftp://zeus.cyfronet.pl//mnt/gpfs/work/plgrid/groups/plggGROUP_NAME/bigfile.txt file://$PWD/
  • j.w. ale z podanym loginem z klastra Zeus (domyślnie używany jest taki sam użytkownik na jakiego jesteśmy zalogowani)
globus-url-copy sshftp://MOJ_USERNAME@zeus.cyfronet.pl//mnt/gpfs/work/plgrid/groups/plggGROUP_NAME/bigfile.txt file://$PWD/


Odnośniki do dodatkowych pomocy/dokumentacji:

Zasady obowiązujące na klastrze Prometheus

  • obliczenia wykonywane na maszynie dostępowej będą usuwane bez ostrzeżenia
  • obliczenia wykraczające poza zakres deklarowanego tematu badań zużywające znaczną część zasobów klastra będą usuwane bez ostrzeżenia
  • W celu skompilowania programu proszę użyć polecenia: srun -p plgrid -A grant_id -n 1 --pty /bin/bash -l
    Polecenie to spowoduje zalogowanie użytkownika na węzeł obliczeniowy, tam proszę uruchomić kompilację programu
  • Dane obliczeniowe należy składować i przetwarzać na systemie plików Lustre pod lokalizacją $SCRATCH
  • W obliczeniach nie należy korzystać z katalogu /tmp ani ze zmiennych $TMP lub $TMPDIR

Kontakt

Pomoc dla użytkowników PL-Grid: mailto:helpdesk@plgrid.pl
Kontakt z administratorami: mailto:prometheus@cyfronet.pl, +48 12 632 33 55 w. 603.