3.2.1. Overview

The design of ScaleViz allows an application to take advantage of cluster rendering, possibly without requiring any change in the application source code. Unlike other extensions, it is not necessary to explicitly initialize the extension, i.e., call SoScaleViz::init(). However, the application must be based on SoXt / SoWin SoWin / SoQt classes, and more specifically on SoXtRenderArea / SoWinRenderArea SoWinRenderArea / SoQtRenderArea (or their derived classes).

The main principle of ScaleViz cluster rendering is distribution of the scene graph. ScaleViz transparently distributes and synchronizes SoNode SoNode SoNode and SoField SoField SoField (and derived class) components of the scene graph attached to your viewer. Thus, only changes to the scene graph (node creation, deletion, field updates…) are transmitted through the network. This minimizes the network traffic.

ScaleViz scene graph synchronization

Figure 3.1. ScaleViz scene graph synchronization



From the user perspective, there are only two steps required to be able to use cluster rendering:

  1. Set up a graphics cluster with the ScaleViz daemon and gateway, both running on the same or different nodes of the cluster (see Section 3.2.2, “Graphical Cluster Setup”). These cluster nodes must be reachable through the network from the application node and able to access all other cluster nodes. They don’t need to be graphical nodes. Typically they are both set up on the Master node of the cluster.

  2. Define a ScaleViz configuration on the application side (see Section 3.2.3, “Application Setup”). This configuration, described using a standard Open Inventor scene graph, contains the type and the number of render units to use and provides information about the cluster to use for this configuration. Optionally, the ScaleViz daemon can guess automatic settings for the user based on specification of available resources, allowing a simplified configuration file (see the section called “ ScaleViz daemon setup”).

The ScaleViz daemon is responsible for receiving ScaleViz configuration layout requests from the user application and for launching OIRUs on the cluster to do the distributed work – if the necessary resources (hardware /licenses) are available.

The ScaleViz gateway is the cluster node responsible for communications between Open Inventor Render Units (OIRUs) and the application. This node uses two network interfaces and addresses: one for communication with the application (called the external address) and another one for communication with OIRUs inside the cluster (called the internal address). For the external address, a specific port can be defined if the default (1234) is not appropriate for your network configuration.

Definition of this node is not mandatory. If the gateway is not explicitly defined in your configuration, ScaleViz will define it with the same properties of the node running the daemon (and both addresses will be set to the same hostname). It is highly recommended to define the gateway properties as it allows you to take advantage of any high bandwidth network that may be available inside the cluster.

Figures Figure 3.2, “ Application sending request for cluster configuration to ScaleViz daemon” and Figure 3.3, “ ScaleViz network once application is connected to the cluster through gateway” illustrate the two steps for connecting an application to the cluster.

  1. The application sends the configuration file to the daemon which launches the OIRUs if resources and licenses are available.

    Application sending request for cluster configuration to ScaleViz daemon

    Figure 3.2.  Application sending request for cluster configuration to ScaleViz daemon



  2. Once the daemon has launched all the OIRUs, the application is directly connected to the gateway through the external address, and the OIRUs are connected to the gateway through the internal address.

    ScaleViz network once application is connected to the cluster through gateway

    Figure 3.3.  ScaleViz network once application is connected to the cluster through gateway



Interesting points:

  • Your application does not need to be launched on a computer physically close to the cluster. Of course performance will decrease depending on the network bandwidth/latency available between your computer and the cluster (see the section called “ Remote rendering support”.)

  • While all the nodes of a cluster must be homogenous (same OS/architecture), your application can run on any supported operating system and hardware (see the section called “ Limitations”).

  • In the case of VolumeViz LDM, cluster rendering enables better image quality because it will take advantage of the system memory and GPU texture memory of all of the render nodes, effectively increasing the total amount of volume data that can be cached in memory. Moreover, the highest resolution will be obtained quickly.