14.8. Determining Where EnSight Components Run

When EnSight needs to launch any of its components (SOS, Servers, CollabHub, and DRClients) while using EnShell, it queries the EnShell network for the roles of all EnShells running in the connected EnShell network. Based upon role names and possibly other details (described later), EnSight then instructs the appropriate EnShell to launch the EnSight component.

The role names SOS, SERVER, SOS_SERVERS, COLLABHUB, and DRCLIENTS are special. Respectively, these indicate where the EnSight SOS, the EnSight Server, the EnSight Servers for SOS use, the EnSight CollabHub, and the EnSight rendering Clients should run. In other words when the EnSight Client decides to launch the EnSight SOS (because -sos was specified on the EnSight command line), the Client queries the EnShell network for the roles assigned to each EnShell. It looks for the EnShell closest to it in the EnShell network that has the role SOS; if found, the Client asks the EnShell network to launch the SOS on that particular EnShell. If a EnShell cannot be found with the role SOS, then the SOS will be launched on the same computer as the Client. The localhost is always the fallback should the appropriate role not be found.

Similarly, if the Client simply wishes to launch a Server, it looks for the closest EnShell with role SERVER. The Servers launched by the SOS are a bit different. The SOS in this case will first query the EnShell network starting at its associated EnShell for the list of EnShells with the role SOS_SERVERS. If found, those EnShells will launch EnSight Servers for use by the SOS. If no EnShells have the role SOS_SERVERS, then it will look for EnShells with the role SERVER. If found, those EnShells will launch Servers. If no EnShells have the role SERVER, then a single EnSight Server will be launched on the same computer running the SOS.

The CollabHub and DRCLIENTS operate similarly as do the SOS and SOS_SERVERS.

The logic is a bit more involved, though, due to support for EnSight legacy file formats and options. If a specific name is requested for a component, then a EnShell that has the matching role name is used. For example, if EnSight is started with ensight -enshell, then the EnSight Server will start on computer that has a EnShell with role name 'SERVER'. However, if EnSight is started with ensight -enshell -c ale, then the EnSight Server will start on the computer that has a EnShell with role name ale. Recall that all EnShells have at least four role names: localhost, their long Internet name, their short Internet name, and an automatically assigned unique name. If a EnShell is running on a computer named ale.bigcompany.com, then its short Internet name is ale; and, this will be computer that runs the Server. Furthermore, EnShells can be given additional role names. Any EnShell could be given the role 'ale'. This allows for virtualization of hosts. Therefore, the complete search to find the correct EnShell consists of looking for a EnShell with role 'ale' and if it cannot be found, then it will look for a EnShell with role name 'SERVER'. If that cannot be found, then it will fallback back to 'localhost' which always matches the local EnShell.

The EnSight SOS uses a similar approach for determining where, and perhaps how many, EnSight Servers to launch. If specific names are specified for where to run EnSight Servers, such as via an EnSight .sos Case file, then EnShells with those roles are used (for example,, ale); otherwise the order of fallback is: SOS_SERVERS, SERVER, localhost. If an EnSight .sos Case file is not used, then the search order is: SOS_SERVERS, SERVER, localhost. If multiple instances of SOS_SERVERS are found, then all will be used. If not, then multiple instances of SERVER will be used. Finally, if none can be found, then a single EnSight Server will be invoked on localhost.

The CollabHub uses the following search order for determining where and how many rendering clients to use: DRCLIENTS, SOS_SERVERS, SERVER, localhost. Parallel compositing based rendering (see Ansys EnSight User Manual and Ansys EnSight How-To Manual), can be specified to EnSight by using the command line ensight -enshell -sos -prdist.


Note:  No prdist file is specified with the -prdist command line option. This greatly simplifies distributed parallel rendering as no prdist configuration file is needed. Parallel rendering based on dconfig files still require the specification of the dconfig file even when using EnShell. The hostnames specified in the dconfig file are treated as role names. Recall that EnShells always have role names that match the hostnames that they are running on.


See also

Use Server of Servers

Use Root Level Server of Servers

Connect EnSight Client & Server