12.1. Remote Display

Introduction

EnSight has always been a client / server based application by design to optimize performance for analysis and visualization. For large enough data set sizes the end-user ("user") should make a conscious choice on where to run the EnSight Client ("Client") and EnSight Server ("Server").

In most situations for best performance, it's intended that the Client should be used on the computer that the user is sitting in front of. This document will refer to the computer that the user is sitting in front of as the "workstation" whether it is a typical desktop or laptop computer or a high-end workstation. The reason that the Client is intended to run on the workstation is because it is responsible for the EnSight Graphical User Interface and OpenGL-based graphics rendering - both of which perform better when they utilize the workstation's graphics card.

Since the data to be analyzed may or may not reside on the same computer, the user can choose to run the EnSight Server where the data are located. In many situations this is the same workstation. Simply running the command ensight (or other versions) will start the Client and Server together on the workstation. Various command line options, CEIStart, and other means can be used to run the EnSight Server on a different computer.

Typically, running the Client on the workstation and the Server where the data are located is the best approach for using EnSight in many cases. However, there are situations where it makes sense to run the Client on a computer other than the workstation while still displaying the Client via some remote display or remote rendering mechanism back to the workstation.

One reason to run the Client on another computer is simply because the user's IT department does not install application software on the user's workstation. Another situation is when the workstation is relatively "thin" (underpowered) compared to the needs of the EnSight Client and the data set being visualized. Similarly, it may be advantageous to run the Client on another computer when the network performance between the workstation and where the data are located is undersized relative to the size of the data sent between the Server and Client.

It should be noted, however, that while it is possible to use EnSight with Remote Rendering (or Remote Desktop), overall EnSight performance may still be better in many cases running the Client on the workstation. Modern laptops, desktops, and workstations tend to be extremely powerful. When compared to running a graphical application remotely over typical networks, the native performance of a modern workstation is difficult to beat in many cases.

The rest of the document presents the common approaches to using EnSight with either remote desktop or remote rendering technologies. While there may be other approaches not described here, these are the ones Ansys Inc. uses and tests.

Remote Display Using Microsoft's Remote Desktop

If the user's workstation and the computer intended run the EnSight Client are both running Microsoft Windows, then it is advantageous to use Microsoft Remote Desktop to control and view the EnSight Client on the remote computer. It has the advantage of being completely supported by Microsoft without requiring additional software to be installed. Furthermore, no modifications in configuration nor use are needed by EnSight. The user simply starts the Microsoft Remote Desktop application on their workstation and instructs it to connect to the remote computer running Windows. The entire "display" of the remote computer is transmitted to the user's workstation. At this point the user simply runs the EnSight Client.

The disadvantage of this approach is that the Remote Desktop application may not take advantage of hardware assisted OpenGL rendering on the remote computer. Falling back to software based rendering can be anywhere from 2 to 100 times slower than hardware based rendering. Furthermore, Microsoft Remote Desktop essentially takes over the entire desktop of the remote computer; multiple users cannot typically use the same remote computer at the same time.

Remote Display Using Apple's Screen Sharing

Similar to Microsoft's Remote Desktop application is Apple's Screen Sharing application. It, too, requires that both the workstation and remote computer are running Apple's MacOS X operating system. However, Apple Screen Sharing does use the OpenGL graphics card in the remote computer. As of MacOS X "Yosemite" multiple users may use the same remote computer.

Remote Display using VNC

VNC is the generic name for a remote display protocol that was initially created for Unix and Linux operating systems. It is also supported by Apple's MacOS X operating system. Whereas Microsoft Desktop and Apple Screen Sharing are specific applications provided by those operating systems, VNC requires configuration of the remote computer's display and/or graphics software and installation of a client VNC application. Such client applications exist for Windows, MacOS X, and Linux. Indeed, Apple's Screen Sharing application supports the VNC protocol as well as their own screen sharing protocol.

Depending upon the VNC implementation running on the remote computer, it may or may not support multiple concurrent users. Similarly, it may or may not support hardware based OpenGL support. Deploying and using VNC typically requires IT support by the end-user due to the myriad of options and need for operating system configuration of the remote computer. For this reason we (Ansys) do not support users with generic VNC installations such as TurboVNC. We mention it here merely to suggest that solutions exist that may fulfill the requirements of running EnSight entirely on a remote computer that may be "blessed" solutions by the user's IT department. If a VNC solution is not already configured at your location we do not recommend using one of the VNC solutions. We have tested several of them and find the setup, support, and operation to be somewhat problematic. But of course technology changes over time. Our examination was between February and November of 2014.

Remote Display Using HPRGS

HP offers a remote desktop solution called RGS, which offers functionality similar to VNC in that it allows a whole desktop to be displayed on a remote machine. Linux and Windows are supported for both the workstation and remote computer. It also supports hardware accelerated OpenGL. All OpenGL features in EnSight 2024 R2 work under RGS, except for stereo displays. Its main drawback is the somewhat difficult installation and configuration process, which is roughly as difficult as the installation of other VNC software. The remote computer can run one instance of the RGS sender. One or more RGS receivers can connect to it, allowing collaboration. The cost starts at $200 for a node-locked RGS sender, and the receivers are free (as of November 2014). We (Ansys) have tested and continue to use HPRGS. This is the recommended "remote desktop" solution for Linux and mixed Windows, Mac, Linux installations.

EnSight's "Remote Renderer"

EnSight implements an approach called EnSight Remote Renderer. With this approach, the EnSight Client still runs on the user's workstation but the actual graphics rendering occurs on a remote computer with images automatically sent back to the Client running on the workstation. Visually, the EnSight Client appears the same as it does without Remote Renderer.

EnSight Remote Renderer has several advantages. It has the advantage of working without additional software. Also, it can use hardware or software based rendering on the remote computer with the user simply choosing which to use via a checkbox. Another advantage is that remote desktop sharing software isn't needed. Remote Renderer can also be more efficient compared to desktop sharing approaches since it doesn't send images of the entire desktop - only the EnSight graphics window is communicated to the workstation. Furthermore, it is the only solution that supports stereo displays. One disadvantage compared to previous approaches is that it requires EnSight to also be installed on the workstation as well as the remote computer.

Using EnSight Remote Renderer

Remote Renderer is started via ceistart. When properly configured, the user will see the Remote Renderer option in the CEIStart dialog. See the figure below.

Selecting the Remote Renderer option displays the list of options for the CEIStart configuration described as follows:

'Remote computer:' is the computer where EnSight will run the Server, and Remote Rendering components (SOS, CollabHub, and DRClient). The user is required to have a valid account on that computer, working password-less SSH or equivalent authentication, and a compatible version of EnSight installed.

'SSH cmd:' is the name of the SSH command - typically 'ssh' on Linux and Macs. The application 'plink.exe' is recommended on Microsoft Windows. Note that 'pagent.exe' needs to be configured and used to support password-less authentication by plink.exe.

'Use SSH tunnel.' will enable SSH tunneling. This is typically required if the user's desktop computer, where ceistart is running, is not directly accessible by the remote computer. This is common if the desktop computer sits on an opposite side of a firewall or router from the remote computer.

'User name:' is the user's login name on the remote computer.

'EnSight options:' can be used to specify any command line options normally given on the ensight command line.

'Use multiple servers:' can be toggled on to use more than one EnSight Server (i.e. SOS or EnSight Enterprise, formerly HPC). Note that this requires that the site have an appropriate license that enables EnSight Enterprise (formerly HPC).

'Number of Servers:' specifies the number of EnSight Servers if using EnSight Enterprise (formerly HPC).

Use software rendering toggles on/off OpenGL Software Rendering. If off, EnSight will try to use hardware-enabled OpenGL rendering on the remote computer. This requires that the remote computer be properly configured to support applications using OpenGL remotely. Contact Ansys Support if you require guidance. If Use software rendering is toggled on, then EnSight will use software rendering on the remote computer. This does not require any special hardware nor system support on the remote computer. However, rendering performance can vary between 2x to 100x worse compared to hardware rendering.

'Amount of diagnostics:' indicates the amount of output generated by CEIStart. 0 should be used for normal use since that greatly reduces the amount of output thus improving performance. 1 or 2 should be used for debugging start up issues or EnSight errors. If requiring support from Ansys, please use 2 to gather helpful output. In such situations, please also specify the EnSight option -v 3. This can be added to the ceistart command line.

Local EnShell port: and Remote EnShell port: are auto generated random numbers for TCP port numbers. These are used to prevent conflict with other EnSight users on the same computers.