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