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:
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ć:
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:
następnie załaduj odpowiedni moduł poleceniem:
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:
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:
którego wynik przedstawiono poniżej:
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.
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:
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:
Po poprawnym wpisaniu hasła dla klastra zostanie wyświetlony komunikat SSH o przykładowej 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 będąc zalogowanym na klastrze, wydaj polecenie:
gdzie JOBID to ID zadania zwracane w komendzie pro-viz list, w naszym przypadku komenda będzie wyglądała następująco:
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.
Jeśli wolisz korzystać z klienta TurboVNC w terminalu, możesz wykonać polecenie, które również wyświetla pro-viz password JOBID, np.:
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:
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.
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:
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.