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. Więcej w sekcji "Połączenie z usługą za pomocą klienta Java TurboVNC Viewer".

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

Aktualnie wszystkie 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.9.3 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/tokensesji

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/tokensesji

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 <put_your_username_here>@ares.cyfronet.pl -password=000000 ac0078:1
-------------------------------------------------------------------------

------- Other VNC clients -----------------------------------------------
Use the following command to forward VNC port to your local computer:
 ssh <put_your_username_here>@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 CORES-PER-NODE | -p PARTITION | -t TIME | -A ACCOUNT | -r RESERVATION | -g GPUS | -C constraints | -m EMAIL-ADDRESS | -M memory ] - start a new batch session
  interactive [ -p PARTITION | -t TIME | -A ACCOUNT | -r RESERVATION | -g GPUS | -C constraints | -M memory ] - 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 wcześniej zainstalować dedykowanego klienta TurboVNC dostępnego do pobrania na stronie GitHub projektu. 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. Klient Java TurboVNC do działania wymaga instalacji Java JRE x86

Po instalacji 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". 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 <put_your_username_here>@ares.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: 7 marca 2025