Tags:
create new tag
view all tags

Remote Visualization mit TurboVNC

Um große Datenmengen auf Palma mit Programmen wie vapor bearbeiten zu können, steht mit dem Rechner palma50 ein Rechner mit schnellen Grafikkarten zur Verfügung. Folgende Anleitung erläutert die nötigen Schritte. Um die übertragene Datenmenge zum Clientrechner möglichst klein zu halten, werden die Daten direkt auf palma50 gerendert und der Desktop per vnc beim Benutzer dargestellt. Für eine möglichst schnelle Übertragung kommt das Programm turboVNC zum Einsatz. Das Programm für Linux und Windows kann hier http://www.virtualgl.org/Downloads/TurboVNC heruntergeladen werden.

Starten des VNC-Servers:

ssh palma50
/opt/TurboVNC/bin/vncserver :{Portnummer zwischen 10 und 99} -g 1200x1000
Der Schalter -g legt die Größe des Fensters fest. Falls der vncserver wieder beendet werden soll:
/opt/TurboVNC/bin/vncserver -kill :{Portnummer}

Hinweis: Alle Benutzer müssen sich die Ports zwischen 10 und 99 teilen. Falls das starten des Servers auf dem gewünschten Port nicht klappt, ist dieser wahrscheinlich schon belegt und es muss ein anderer gewählt werden.

Herstellen der Verbindung (auf eigenem Rechner):

Unter Linux:

Damit die Verbindung verschlüsselt wird, sollte generell ein ssh-Tunnel verwendet werden:

/opt/TurboVNC/bin/vncviewer -via User@palma50 localhost:{Portnummer}
Jetzt sollte sich das VNC Fenster öffnen und der Desktop erscheinen.

Unter Windows: ssh-Tunnel mit putty starten (Hier im Beispiel wird der Tunnel für Port 10 eingerichtet):

putty.png

Solange die ssh-Verbindung offen ist, kann mit dem Turbovnc-Client eine Verbindung zu localhost:{Portnummer} geöffnet werden.

Starten von 3D Anwendungen mit:

/opt/VirtualGL/bin/vglrun [vglrun options] {application_executable_or_script} {arguments}
z.B. VAPOR via
module add vapor
/opt/VirtualGL/bin/vglrun vaporgui
wobei die erste Zeile auch in die eigene Shell-Konfigurationsdatei (z.B. ~/.bashrc) aufgenommen werden kann.

Vorhandene Visualisierungssoftware

Im Moment sind folgende Programme installiert, die zur Datenauswertung dienen:

Es stehen jeweils Module bereit, damit die Programme gestartet werden können. Bei Bedarf können auch noch andere Programme installiert werden. Es ist zu beachten, dass alle hier aufgeführten Programme 3D Beschleunigung benötigen und demzufolge mit "vglrun Programmname" gestartet werden müssen.

GPGPU

General Purpose GPU Computing meint die Berechnung von rechenintensiven Problemen auf Grafikkarten. Da diese durch eine massiv parallele Architektur für bestimmte Operationen eine deutlich höhere Performance bieten, als reguläre CPUs, können so stellenweise die Berechnungen stark beschleunigt werden. Es gibt dabei verschiedene Programmiermodelle, die zum Einsatz kommen können. Die verbreitetsten, CUDA und OpenCL, werden auf Palma50 unterstützt.

Auswahl der Grafikkarte mit CUDA

Um in einem CUDA-Programm die vewendete Grafikkarte auszuwählen, kann die Anweisung cudaSetDevice() verwendet werden. Beispiel:

//--------------------------------------------------
// Verwende bestimmte GPU

  int gpu=3;
  cudaSetDevice(gpu);   // Choose GPU

//--------------------------------------------------

Um die Remote Visualisierung nicht unnötig auszubremsen, sollten CUDA und OpenCL Anwendungen nur auf den Karten 1-3 laufen, so dass Karte 0 frei bleibt.

Beispielprogramme

Das Nvidia GPU Computing SDK befindet sich auf palma50 unter /local/NVIDIA_GPU_COMPUTING_SDK. Dort sind kleine Programme für CUDA und OpenCL im Quellcode und als Binary verfügbar.

Überwachen der Auslasung der Grafikkarten

Im Webinterface Ganglia lässt sich die Auslastung der Grafikkarten einsehen. Damit kann man abschätzen, welche GPU noch frei ist, da diese nicht automatisch zugeteilt werden, sondern vom Nutzer selbst angefordert werden müssen.

-- HolgerAngenent - 2010-11-22

Topic attachments
I Attachment HistorySorted ascending Action Size Date Who Comment
PNGpng putty.png r1 manage 8.7 K 2010-11-30 - 12:48 HolgerAngenent Screenshot Putty ssh-Tunnel
Edit | Attach | Watch | Print version | History: r12 < r11 < r10 < r9 < r8 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r12 - 2012-07-31 - HolgerAngenent
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding ZIVwiki? Send feedback
Datenschutzerklärung Impressum