Przejdź do treści

Obliczenia w trybie graficznym pro-viz

Pro-viz to usługa dla użytkowników klastrów Ares i Athena, umożliwiająca korzystanie z aplikacji w trybie graficznym bezpośrednio na węzłach obliczeniowych klastra. Działa w oparciu o TurboVNC – jeden z najszybszych klientów VNC, pozwalający na wygodną pracę z oprogramowaniem naukowym (w tym pakietami Matlab, Mathematica, Maple, Ansys Workbench/Mechanical/Fluent/Electronic Desktop) nawet przy sieci o słabej przepustowości.

Informacja

Więcej informacji na temat usługi można znaleźć na stronie TurboVNC.

Wymagania

  • Użytkownik musi posiadać aktywny grant obliczeniowy na jednym z klastrów oraz aktywną usługę dostępu do tego klastra
  • Nowe wersje usługi nie wymagają od użytkownika instalacji żadnych dodatkowych pakietów, dostęp realizowany jest poprzez interfejs www HTML5 przeglądarki internetowej (zgodnie z opisem w kolejnej sekcji)
  • Możliwe jest również połączenie z użyciem dedykowanego klienta TurboVNC – wtedy wymagana jest jego instalacja na komputerze klienckim
  • TurboVNC w systemach Linux (Ubuntu, Fedora, Mint, etc.) instalowany jest zwykle w katalogu /opt/TurboVNC/bin, zalecamy więc dodanie tego katalogu do zmiennej PATH.
  • TurboVNC do działania wymaga instalacji Java JRE x86

W wersjach niższych niż 2.1.2 należy również rozwiązać problem z brakiem plików serwera (rozwiązanie podane jest na przykładzie Java JRE 8):

  • Po instalacji Java JRE x86 pobierz plik Java Server JRE z tej strony
  • Rozpakuj archiwum, aby otrzymać katalog jdk, np. jdk1.8.0_121
  • Przejdź do katalogu instalacyjnego (w przykładzie będzie to C:/Program files/java/jre1.8.0_121)
  • Skopiuj zawartość rozpakowanego katalogu do katalogu instalacyjnego Javy i zezwól na nadpisanie plików

Jeżeli to rozwiązanie nie jest skuteczne, zastosuj się do tej instrukcji:

  • Przejdź do katalogu instalacyjnego (w przykładzie będzie to C:/Program files x86/java/jre1.8.0_121), do podkatalogu bin
  • Utwórz katalog "Server"
  • Skopiuj zawartość katalogu "client" do katalogu "Server"

Połączenie z usługą za pomocą klienta www (zalecana metoda)

Niektóre z modułów Pro-viz pozwalają na połączenie z GUI klastra bezpośrednio poprzez przeglądarkę internetową wspierającą HTML5. Przykładem może być moduł pro-viz/1.8.4-gua na klastrze Ares. Przy użyciu tego modułu w momencie, gdy zadanie pro-viz już zostało uruchomione, można wykonać polecenie pro-viz password JOBID, gdzie JOBID to ID zadania zwracane w komendzie pro-viz list. W naszym przypadku komenda będzie wyglądała następująco:

pro-viz password 4201152 

Informacja

Hasło można wygenerować wyłącznie dla zadań już działających (posiadających skonfigurowany DISPLAY).

Jako wynik polecenia zostanie zwrócony m.in. adres www, który należy kliknąć lub skopiować do przeglądarki. Link na następującą postać:

Session link:
 https://gui01.ares.cyfronet.pl/screen/#/client/alamakotakotmaale

Po kliknięciu/skopiowaniu zaloguj się poprzez stronę logowania PLGrid, aby uzyskać dostęp do trybu graficznego bezpośrednio w przeglądarce www.

Całość zwracanej informacji zawiera instrukcję połączenia z użyciem interfejsu WWW, klienta Java TurboVNC oraz innych klientów z użyciem tunelowania:

------- Web client ------------------------------------------------------

Session link:
 https://gui01.ares.cyfronet.pl/screen/#/client/alamakota

Web interface link:
 https://gui01.ares.cyfronet.pl/screen/# 
-------------------------------------------------------------------------

------- TurboVNC client -------------------------------------------------
Session password (for external client): 000000
Full command (for external client): vncviewer -SecurityTypes=VNC,UnixLogin,None -via plguser@ares.cyfronet.pl -password=000000 ac0078:1
-------------------------------------------------------------------------

------- Other VNC clients -----------------------------------------------
Use the following command to forward VNC port to your local computer:
 ssh plguser@ares.cyfronet.pl -L5901:ac0078:5901

Start your VNC client and connect to the forwarded port:
 i.e: gvncviewer localhost:1

Session password: 000000
-------------------------------------------------------------------------

Uruchomienie usługi Pro-viz na klastrze

W pierwszym kroku użytkownik musi uruchomić na danym klastrze zadanie, które będzie pozwalało na przekazywanie trybu graficznego. Do tego celu służy aplikacja, której moduł należy załadować na maszynie dostępowej odpowiedniego klastra za pomocą systemu Lmod. Najpierw należy sprawdzić, jak dokładnie nazywa się moduł usługi na klastrze. Służy do tego w tym przypadku polecenie:

module avail pro-viz

następnie załaduj odpowiedni moduł poleceniem:

module load <nazwa_modułu>

Przykładowo, na klastrze Ares będzie to: module load pro-viz.

Dzięki temu program Pro-viz stanie się dostępny w terminalu. Jego składnia jest następująca:

Usage: pro-viz
  start [-n CORES | -N NODES | -p PARTITION | -t TIME | -A ACCOUNT | -r RESERVATION | -g GPUS | -C constraints | -m EMAIL-ADDRESS ] - start a new batch session
  interactive [ -p PARTITION | -t TIME | -A ACCOUNT | -r RESERVATION | -g GPUS | -C constraints  ] - start a new interactive session
  list - list all sessions
  attach JOBID - attach session to a working job with JOBID
  password JOBID - generate access token for session JOBID
  stop JOBID - terminate session JOBID
  killall - terminate all sessions
  help - duh

W dalszej części instrukcji przedstawiono uruchomienie jednego zadania batchowego na jednym pełnym węźle obliczeniowym na klastrze Prometheus. Do tego celu należy wykonać przykładowe polecenie:

module load tools/pro-viz
pro-viz start -N 1 -n 24 -p plgrid -A provizgrant -t 03:00:00

Gdzie provizgrant to nazwa odpowiedniego grantu na klastrze, w ramach którego ma zostać uruchomione zadanie. Należy teraz poczekać, aż zadanie wystartuje. Status zadania można sprawdzić korzystając z polecenia:

pro-viz list

którego wynik przedstawiono poniżej:

JOBID                   HOST    DISPLAY
------                  -----   -------
4201152                 p1788     1

Wynik ten oznacza, że zadanie o JOBID 4201152 zostało uruchomiona na hoście p1788 na wyświetlaczu 1. Dane te będą potrzebne do zestawienia sesji dla klienta TurboVNC.

Połączenie z usługą za pomocą klienta Java TurboVNC Viewer

Aby połączyć się z usługą, należy uruchomić na swoim komputerze klienta Java TurboVNC Viewer, a następnie skonfigurować połączenie z wcześniej uruchomionym zadaniem. Aby połączenie mogło zostać zestawione, wymagane jest skonfigurowanie tunelu do maszyny dostępowej klastra. Funkcjonalność ta jest wbudowana w klienta TurboVNC (Java TurboVNC Viewer).

Najpierw należy skonfigurować tunel. W tym celu przejdź do panelu opcji: Options... --> Security -> Gateway (SSH server or UltraVNC repeater). Odznacz opcję "Extended encryption and authentication" (VeNCrypt), a w polu "SSH user" wpisz swój login PLGrid z prefiksem "plg", (np. plguser). Jako "Host" podaj adres maszyny dostępowej klastra:

  • ares.cyfronet.pl dla Aresa
  • athena.cyfronet.pl dla Atheny

Informacja

Dla nowszych wersji TurboVNC zaznacz wyłącznie opcję Standard VNC.

Połączenie z usługą VNC

Uwaga

Jeżeli uruchomiony klient TurboVNC nie posiada on zakładki Security opisanej powyżej, prosimy o zamknięcie uruchomionego klienta TurboVNC Viewer i uruchomienie klienta Java TurboVNC Viewer opisanego w dokumentacji.

Po kliknięciu "OK" wróć do okna głównego i tam wpisz jako "VNC server" adres hosta oraz wyświetlacza zwracany w poleceniu pro-viz list w notacji HOST:DISPLAY, np. p1788:1:

Serwer VNC

Po kliknięciu "Connect" pojawi się kolejne okno, które pozwoli na zestawienie tunelu do serwera VNC. Jako "User name" wpisany będzie użytkownik podany wcześniej w konfiguracji "Gateway ...", jako hasło należy wpisać hasło tego użytkownika PLGrid:

Uwierzytelnienie usługi VNC

Po poprawnym wpisaniu hasła dla klastra zostanie wyświetlony komunikat SSH o przykładowej treści:

ssh message dla usługi VNC

Należy ją potwierdzić klikając w przycisk "OK". Pojawi się okno, w którym należy wpisać hasło połączeniowe do serwera VNC.

Aby wygenerować hasło będąc zalogowanym na klastrze, wydaj polecenie:

pro-viz password JOBID 

gdzie JOBID to ID zadania zwracane w komendzie pro-viz list, w naszym przypadku komenda będzie wyglądała następująco:

pro-viz password 4201152

Hasło można wygenerować wyłącznie dla zadań już działających (posiadających skonfigurowany DISPLAY). Jako komunikat zwrotny otrzymasz m.in. one-time password (for external client), który należy skopiować i wpisać w otwartym oknie TurboVNC. W dalszych rozważaniach zakładamy, że zwrócone hasło to 000000.

hasło dla usługi VNC

Jeśli wolisz korzystać z klienta TurboVNC w terminalu, możesz wykonać polecenie, które również wyświetla pro-viz password JOBID, np.:

vncviewer -via plg...@pro.cyfronet.pl -password=000000 p1788:1

Po połączeniu ukaże się widok z zadaniem w trybie GUI. Można już w tym momencie uruchomić terminal, którego ikona znajduje się na dolnym pasku:

widok z zadaniem w trybie GUI dla usługi VNC

i po załadowaniu odpowiedniego modułu aplikacji korzystać z przydzielonych zasobów.

Uwaga

Pierwszym ładowanym w terminalu modułem powinien być moduł pro-viz, który doda odpowiednie ścieżki do środowiska użytkownika.

Poniżej przykład z uruchomieniem aplikacji Matlab. Widać, że użytkownik uruchomił w trybie GUI przykładowy benchmark Parallel Computing Toolbox, używając 24 rdzeni na maszynie.

widok uruchomionej aplikacji Matlab w trybie GUI w VNC

Rozłączenie z sesją

Ponieważ zadanie TurboVNC może działać bez otwartego klienta, możliwe jest po zleceniu obliczeń zamknięcie okna klienta TurboVNC przyciskiem zamknij/zakończ lub rozłącz. W tym przypadku obliczenia wykonują się nadal, jednak bez podglądu.

Aby ponownie zalogować się do rozłączonej sesji, ponownie wygeneruj hasło poleceniem pro-viz password 4201152, a następnie podaj podczas logowania tak wygenerowane hasło.

Kończenie sesji

Po zakończeniu obliczeń należy zamknąć okno TurboVNC oraz wydać w konsoli klastra polecenie:

pro-viz stop 4201152

Zamiast tego możesz również kliknąć w nazwę użytkownika widoczną w prawym górnym roku ekranu TurboVNC na panelu, a następnie wybrać opcję "wyloguj". To automatycznie zakończy sesję na klastrze.

Kończenie sesji VNC

Kończenie sesji VNC 2


Ostatnia aktualizacja: 23 kwietnia 2024