Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

pro-viz to nowa usługa dla użytkowników klastra Prometheus umożliwiająca pracę w trybie graficznym na węzłach obliczeniowych. Usługa oparta jest o rozwiązanie TurboVNC, które jest jednym z najszybszych klientów VNC pozwalających na wygodną pracę nawet przy używaniu sieci o słabej przepustowości.

Info
Więcej o TurboVNC można znaleźć na stronie programu TurboVNC

Założenia usługi

Usługa ma pozwalać na wygodną pracę z oprogramowaniem naukowym (Matlab, Mathematica, Maple, Ansys Workbench/Mechanical/Fluent/Electronic Desktop itp.) poprzez udostępnienie trybu graficznego tych aplikacji bezpośrednio na węźle obliczeniowym.

Wymagania

Usługa wymaga od użytkownika instalacji klienta programu TurboVNC na komputerze klienckim. Oprócz tego wymagane jest oczywiście posiadanie aktywnego grantu właściwego na maszynie Prometheus oraz dostępu do tego klastra.

TurboVNC do działania wymaga instalacji Java JRE oraz rozwiązania problemu z brakiem plików serwera (rozwiązanie podane na przykładzie Java JRE 8):

  1. Po instalacji Java JRE należy pobrać plik Java Server JRE ze strony http://www.oracle.com/technetwork/java/javase/downloads/server-jre8-downloads-2133154.html
  2. Rozpakować archiwum, aby otrzymać katalog jdkWERSJA, np. jdk1.8.0_121
  3. Następnie przejść do katalogu instalacyjnego (w przykładzie będzie to C:/Program files/java/jre1.8.0_121)
  4. Skopiować zawartość rozpakowanego katalogu do katalogu instalacyjnego Javy i zezwolić na nadpisanie plików.

Uruchomienie usługi na klastrze

W pierwszym kroku użytkownik musi uruchomić zadanie na klastrze Prometheus, które będzie pozwalało na przekazywanie trybu graficznego. Do tego celu służy skrypt pro-viz (/net/software/vnc/pro-viz), którego składnia pokazana jest poniżej:

Code Block
languagebash
titlepro-viz --help
Usage: pro-viz
  start [-n CORES | -N NODES | -p PARTITION | -t TIME | -A ACCOUNT | -r RESERVATION ] - start a new batch session
  interactive [-n CORES | -N NODES | -p PARTITION | -t TIME | -A ACCOUNT | -r RESERVATION ] - 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 instrukcji przedstawione zostanie uruchomienie jednego zadania batchowego na jednym pełnym węźle obliczeniowym. Do tego celu należy wykonać np. polecenie:
/net/software/vnc/pro-viz start -N 1 -n 24 -p plgrid -A provizgrant -t 03:00:00
Należy teraz poczekać, aż zadanie wystartuje. Status zadania można sprawdzić korzystając z polecenia /net/software/vnc/pro-viz list, którego wynik przedstawiono poniżej:

Code Block
languagebash
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 TurboVNC

Aby połączyć się z usługą należy uruchomić klienta TurboVNC, 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 przechodzimy do panelu opcji: Options... -> Security -> Gateway (SSH server or UltraVNC repeater). W polu 'SSH user' wpisujemy login plg..., a jako 'Host' podajemy adres pro.cyfronet.pl

Po kliknięciu 'OK' powracamy do okna głównego i tam wpisujemy jako 'VNC server' adres hosta oraz wyświetlacza zwracany w poleceniu /net/software/vnc/pro-viz list w notacji HOST:DISPLAY, np. p1788:1:

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 danego użytkownika PLGrid:

Po poprawnym wpisaniu hasła zostanie wyświetlona wiadomość SSH Message o treści:

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, musimy będąc zalogowanym na klastrze wydać polecenie /net/software/vnc/pro-viz password JOBID, gdzie JOBID to id zadania zwracane w komendzie /net/software/vnc/pro-viz list, w naszym przypadku komenda będzie wyglądała następująco: /net/software/vnc/pro-viz password 4201152

Jako komunikat zwrotny otrzymamy m.in. one-time password (for external client), który kopiujemy i wpisujemy w otwartym oknie TurboVNC. W dalszych rozważaniach zakładamy, że zwrócone hasło to 000000.

Dodatkowo, jeśli ktoś woli korzystać z klienta TurboVNC w terminalu może wykonać polecenie, które również wyświetla komenda /net/software/vnc/pro-viz password JOBID, np.:

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

Po połączeniu ukaże się połączenie z zadaniem w trybie GUI:

Należy jeszcze zamknąć komunikat błędu XFCE PolicyKit Agent przyciskiem 'Zamknij', a następnie uruchomić terminal i po załadowaniu odpowiedniego modułu aplikacji, korzystać z przydzielonych zasobów. 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.

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, należy ponownie wygenerować hasło poleceniem /net/software/vnc/pro-viz password 4201152, a następnie podać podczas logowania wygenerowane tak hasło.

Kończenie sesji

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

/net/software/vnc/pro-viz stop 4201152

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