pro-viz to nowa usługa dla użytkowników klastrów Ares 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.
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.
Użytkownik musi posiadać aktywny grant obliczeniowy na jednym z klastrów oraz aktywną usługę dostępu do danego 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.
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 do katalogu /opt/TurboVNC/bin
zalecamy więc dodanie tego katalogu do zmiennej PATH
.
TurboVNC do działania wymaga instalacji Java JRE x86 - https://www.java.com/pl/download/manual.jsp.
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):
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):
W pierwszym kroku użytkownik musi uruchomić zadanie na klastrze Ares lub Prometheus, które będzie pozwalało na przekazywanie trybu graficznego (informacje jak zalogować się na klaster znajdują się na stronie dokumentacji Sposoby dostępu i przesyłania danych). 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 poleceniem module avail pro-viz
, a następnie załadować odpowiedni moduł poleceniem module load ...
, np. na klastrze Prometheus będzie to module load tools/pro-viz, na klastrze Ares - 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 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:
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.
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
. Hasło można wygenerować wyłącznie dla zadań już działających (zadania posiadające 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 należy zalogować się poprzez panel 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/alamakotakotmaale
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
-------------------------------------------------------------------------
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 Prometheusaares.cyfronet.pl
dla AresaDla nowszych wersji TurboVNC zaznaczamy wyłącznie opcję Standard VNC.
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.
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.
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.
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.