Versions Compared

Key

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

pro-viz to nowa usługa dla użytkowników klastrów Zeus oraz 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 na jednym z klastrów oraz aktywnej usługi dostępu do tego klastra.

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 na przykładzie Java JRE 8):

  1. Po instalacji Java JRE x86 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.

Jeżeli to rozwiązanie nie wystarczy, proszę zastosować się do rozwiązania poniższego (zaczerpnięte z https://stackoverflow.com/questions/18123144/missing-server-jvm-java-jre7-bin-server-jvm-dll):

  1. Przejść do katalogu instalacyjnego (w przykładzie będzie to C:/Program files x86/java/jre1.8.0_121), do podkatalogu bin
  2. Utworzyć katalog 'Server'
  3. Skopiować zawartość katalogu client do katalogu Server

Uruchomienie usługi na klastrze

W pierwszym kroku użytkownik musi uruchomić zadanie na klastrze Zeus lub Prometheus, 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 poleceniem module load  tools/pro-viz

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

Code Block
languagebash
titlepro-viz --help
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 instrukcji przedstawione zostanie uruchomienie jednego zadania batchowego na jednym pełnym węźle obliczeniowym na klastrze Prometheus. Do tego celu należy wykonać np. 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:

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 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 przechodzimy do panelu opcji: Options... -> Security -> Gateway (SSH server or UltraVNC repeater). Odznaczamy opcję Extended encryption and authentication (VeNCrypt)  a w polu 'SSH user' wpisujemy swój login PLGrid: plg... (np. plguser), a jako 'Host' podajemy adres maszyny dostępowej klastra:

  • pro.cyfronet.pl dla Prometheusa
  • zeus.cyfronet.pl dla Zeusa


Note

Jeżeli uruchomili Państwo klienta TurboVNC i nie posiada on zakładki Security opisanej powyżej, proszę zamknąć uruchomionego klienta TurboVNC Viewer i uruchomić klienta Java TurboVNC Viewer opisanego w dokumentacji.

Po kliknięciu 'OK' powracamy do okna głównego i tam wpisujemy jako 'VNC server' adres hosta oraz wyświetlacza zwracany w poleceniu 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 dla klastra Prometheus 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 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 (zadania posiadające skonfigurowany DISPLAY).

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 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. Można w tym momencie już uruchomić terminal, którego ikona znajduje się na dolnym pasku:

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

Warning

Pierwszym ładowanym w terminalu modułem powinien być moduł tools/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.

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 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:

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 klastrze.