3.2.2. Graphical Cluster Setup

To use ScaleViz facilities on a cluster, the user’s ScaleViz application first connects to the ScaleViz daemon. This daemon is in charge of running all of the necessary OIRUs (including the ScaleViz gateway), depending on what the configuration requests for the application. This is why the user must supply a configuration (defined in a simple configuration file or programmatically) describing what the application needs: how many GPUS, how to distribute and compose the rendering, which nodes to use, etc.

Here is a quick example showing the configuration file of a user application requesting four flat screens, with the ScaleViz daemon running on the cluster node named “master”:

Example 3.1.  Example configuration file


The role of the ScaleViz daemon is quite simple: to listen to requests coming from the application. The application will search for the daemon on the machines specified by the SoMasterConfig SoMasterConfig SoMasterConfig Open Inventor node. If the connection succeeds, the application sends the configuration file to the daemon, which will then initialize all needed OIRUs on the cluster.

As described earlier, the daemon is in charge of connecting the user application to the cluster. It’s a stand-alone program which will wait for an incoming connection from a user application.

By default, the daemon waits for incoming connections on port 3456, but this can be set to a different value using a command-line option when the daemon is started. The most important thing is then to check that the selected port can accept incoming connections to allow the user application to communicate freely with the daemon.

The following sections explain how to configure the daemon and also how to install/uninstall and start/stop it.

In order to simplify the setup of the application described at the beginning of the chapter, a resource file can be written in order to allow the ScaleViz daemon to automatically set up the runtime environment on the cluster. By knowing the resources available in the cluster, the daemon is able to determine the best configuration to match the application requested configuration, which can therefore have limited dependency with actual cluster setup. Otherwise, the application needs to specify a configuration relying on knowledge of cluster details.

The notion of resources is very important, and depends on the hardware available on a node. From a general point of view, you can consider that you have as many resources as you have GPUs. A GPU set up with SLI can be considered as one or multiple GPU resources. Using them as multiple resources allows the use of all of the available texture memory.

Examples:

You describe the resources of the cluster in a file specified by the environment variable SCALEVIZD_RESOURCES_FILE, used by the daemon. The file consists of two parts. The first part, required, describes each resource of the cluster (see the section called “Resource Description” below). The second, optional, describes the position of the screens connected to each resource (see the section called “ Screen Position Description” below). Lines starting with # are not interpreted.

When doing tiled compositing (see the section called “ Tile compositing”), the way the daemon distributes the scene is only dependent on the number of resources requested by the user. In other words, it is not necessary to supply the cluster display matrix portion of the auto config file.

  • For an even number of nodes, the height of the scene is separated into two rows, and the width into “Number_of_nodes/2” columns. The following figure illustrates the situation for 8 and 6 nodes.


  • For an odd number of nodes, the scene is distributed as indicated by the following figure (example for 5 and 7 resources):


If you want to use a different layout, you will need to specify the tiles manually in your configuration file using the tileOrigin and tilePosition fields of the SoTileComposer SoTileComposer SoTileComposer node.

ScaleViz currently supports different communication libraries for each supported operating system. The library used by ScaleViz at runtime is specified by the SCALEVIZ_CLUSTERCOM environment variable in your oiv.cfg configuration file.

The following sections detail the library availability and configuration for each supported platform.