Remote Visualization with TurboVNC

To render large amounts of data with programs like vapor, palma50 is equipped with fast graphics cards. This makes it possible to render the data directly on Palma without transferring it via the LAN to you local computer. To keep the amount of submitted data small, only the desktop output of palma50 is transferred via a vnc session. For a fast transmission, turboVNC is used. The client for Linux and Windows can be downloaded here .

Initial configuration

Create the executable file ~/.vnc/xstartup.turbovnc on palma50 with the following content:

#!/bin/sh

startxfce4 &

Starting the VNC server

ssh palma50
/opt/TurboVNC/bin/vncserver :{port number between 10 and 99} -g 1200x1000
The switch -g determines the size of the winows. To end the session, type:
/opt/TurboVNC/bin/vncserver -kill :{port number}

All users share the ports between 10 and 99. If it is already used, just pick another.

Connecting to the session (from your own computer)

With Linux:

/opt/TurboVNC/bin/vncviewer -via User@palma50 localhost:{Portnummer}
The command established a ssh-tunnel and opens the connection to the vnc session on palma50.

With Windows: Create a ssh-tunnel with putty (in this example for port 10):

putty.png

As long as the ssh connection stays open, the turbovnc client is able to connect to localhost:{port number}

Executing 3D applications

/opt/VirtualGL/bin/vglrun [vglrun options] {application_executable_or_script} {arguments}
for example VAPOR via
module add vapor
/opt/VirtualGL/bin/vglrun vaporgui

Software for visualizing data on palma50

At the moment there are different programs avaliable, which can be added to the environment variables via modules:

GPGPU

General Purpose GPU Computing 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.

Topic attachments
I Attachment History Action Size Date Who Comment
PNGpng putty.png r1 manage 8.7 K 2011-11-10 - 10:18 HolgerAngenent  
Edit | Attach | Watch | Print version | History: r5 < r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r2 - 2011-11-10 - HolgerAngenent
 
  • Edit
  • Attach
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