Configuring

Preparing the computers

First you have to prepare all the cluster nodes:

- Install the MiddleVR package on all machines. Alternatively you can share MiddleVR/bin folder from the master and add this shared folder to the PATH environement on all clients. See "Creating a shared folder".

- Run the VRDaemon on all machines including on the cluster server,

- Make sure your application is accessible from all the computers of the cluster, by either doing a local copy of the application (see section "Local Copy") or creating a shared folder accessible from all cluster nodes (see section "Creating a shared folder").

Note: Unity applications can't be run from a windows shared folder directly, you will have to mount the shared folder as a network drive. See section "Creating a shared folder".

- Check the Windows firewall options. It is recommended to add exceptions for the VRDaemon and all your cluster applications in your firewalls. MiddleVR communicates on TCP ports 9997, 9998 and 9999.

VRDaemon

Once the MiddleVR package is installed, you must launch the VRDaemon on all the nodes, including the master, standing in C:\Program Files (x86)\MiddleVR\bin\VRDaemon.exe.

The result is a DOS window that should always stay opened:

Creating a shared folder

Locate the folder of your Unity application and share it so that it is visible by all the computers on the network. You can achieve this by right-clicking on your folder and select "Share with":

Once this is done, you have to mount this network path by right cliking on your computer in the file explorer and selecting "Map a network driver":

Make sure to mount the folder with the same drive on all computers, including the server:

Local copy

Local copy consists in copying your application to every computer's hard drive. The goal is mainly to speed-up the loading process. The improvements are generally very good. Several solutions like Microsoft SyncToy, SpiderOak, Dropbox or other synchronization services can do the trick.

Configuring the cluster

In the Cluster tab, you need to create one server and as many clients (+Client) as needed.

This is the window to configure cluster options and cluster nodes.

Table 7.1. Cluster options

NVidiaSwapLockHardware swaplock. See section "Concepts - Cluster Synchronisation".
Disable VSync On ServerIf VSync is enabled in the Viewports configuration, disable VSync only on Server. This is useful if the master uses a different refresh rate than the rest of the cluster. Often the master only has a mono display at 60hz while the other nodes have 120hz displays. In this case, disabling the VSync on the master gives better performances.
Force DirectX > OpenGL conversion (beta)When not using active stereo, you can still force the display of the DirectX rendering in an OpenGL window. This is particularly useful when using a cluster: if your master is not in active stereo but the rest of the cluster nodes are, you should activate this option. This is also required if your cluster is not using active stereo.

Here's the configuration for the cluster server:

Table 7.2. Cluster server options

AddressSpecify the hostname IP address of the cluster server. Should be reachable by all cluster clients. Note: If you specify "localhost" or "127.0.0.1", the clients will not be able to find the server, unless they all run on the same machine.
ViewportsSpecify the viewports used by the server.

Here's the configuration for all cluster clients:

Table 7.3. Cluster client options

AddressSpecify the hostname or IP address of the cluster client.
ClusterIDYou can specify a specific cluster identification name for readability or better debugging.
ViewportsSpecify the viewports used by the client.

Starting a cluster application from the Simulations window

The easiest way to run your cluster application is to use the Simulations window.

If you are using a network drive, make sure to add the application from this network drive. MiddleVR will tell all nodes to use the exact same command line, so if you're adding your application from a local folder that does not exist on the cluster nodes, the VRDaemon will not be able to start it.

Simply choose your application from the network driver and cluster configuration and hit Run. Make sure you have the VRDaemon running on all machines, including the master.

Stopping a cluster application

The easiest way to stop an application is by pressing the Escape key on the server's keyboard.

If the application is frozen, you can also use the "Kill All Cluster Nodes" option in the simulations window:

Pressing this button will send a message to all VRDaemons to kill the last applications that they started.

Manually starting a cluster application

You can also manually start the application without the graphical tool. On the server, you can execute the application by double-clicking on it or create a .bat file that contains the right command line.

MiddleVR will then tell the VRDaemons of all the configured cluster clients to run the same application with the exact same path and command line arguments.

Make sure to use all the required command line arguments. You can find them in the Simulations tab, after clicking on the requested application and configuration file.