|
Should I care about Chromium? What are its advantages and disadvantages?
If applications are using Chromium does that mean they are just as fast as EnSight DR?
EnSight 8.2 supports several types of parallel rendering for
increased performance, increased display resolution, and virtual
reality. EnSight Gold supports shared-memory parallel rendering,
which is limited to a single EnSight client and up to 36 screens.
EnSight DR supports distributed-memory parallel rendering, which allows
multiple EnSight clients running on one or more workstations to combine
rendering results to support high-resolution and/or high-performance
rendering to 1 or more screens.
Distributed-memory
Distributed-memory parallel rendering allows the user to combine the
capability of multiple high-performance graphics pipes (in either a
shared-memory machine or cluster configuration) in various ways.
The following brief descriptions of the distributed rendering methods
will help you decide which approach is best for different
applications. It is quite likely that a user of EnSight DR will
need to use different parallel rendering configuration in different
circumstances.
Compositing
Parallel compositing enables users with an
extremely large amount of visible geometry to distribute the
client-side computation and rendering among multiple CPUs and GPUs in
either a shared-memory machine or a cluster of workstations. The final
result is an image in the EnSight rendering window that is
indistinguishable from a standard EnSight client running on a single
workstation, but at much higher performance.
Pros:
- very-high polygon rates (Billions of triangles / sec)
scalable client memory and computation
- ability to render remotely and view locally
Cons:
- frame-rate cap dependent on network bandwidth
- resolution limited to a single workstation display
Summary: Compositing is for users working in a desktop environment who
have large data that overwhelms the capability of a single workstation,
in terms of memory, processing power, and/or rendering
performance. Note that compositing is not an application for
ganging together dozens of old workstations that have no other use -
compositing itself requires fast processors and a fast network in order
to achieve any measure of scalability.
Replication
Replication is a distributed rendering strategy for users with data of
moderate size which can be rendered on a single workstation at
acceptable frame-rate, who are looking to increase display resolution
or render to multi-screen virtual reality and/or stereo displays.
In replication mode each render node loads the full visible geometry,
and each node is configured to render a different portion of the
display. Replication has the absolute highest possible frame rate for
distributed rendering, because the rendering performed by each node is
completely independent.
Pros:
- highest frame-rate option
- unlimited resolution for multi-screen walls and VR
Cons:
- not scalable in compute or rendering performance
- aggregate memory requirement are higher than for compositing
Replication with Compositing
Replication can be combined with compositing when the features of
replication and the performance of compositing are required. As
in the basic replication scenario, multiple render nodes are configured
to render to multiple screens. For each 'N' screens, some number
of additional render nodes 'M' are designated to increase performance
and lower the per-node memory requirements. The total amount of
replicated data is the same as in the basic replicated case - the data
is replicated N times, but each copy is distributed over M nodes, for
an effective memory requirement of 1/M per node.
Pros:
- high polygon rates
- scalable client memory and computation
Cons:
- higher hardware costs (M x N nodes)
Chromium
Chromium
is a very flexible cluster rendering toolkit that allows the user to
specify via a configuration file how the geometry and/or images from
EnSight are transferred over the network and reassembled to one or more
displays. In this mode, EnSight is largely unaware of what
happens to the geometry that it renders. Depending on the
Chromium configuration, the behavior may be similar to any of the other
distributed rendering techniques discussed. Chromium can
potentially render in some configurations, which are currently not
possible in with EnSight alone, such as rendering to a display wall
without requiring the application to replicate the data. In
reality the performance of this mode can vary, because geometry still
has to find it's way to the actual display nodes in the form of OpenGL
commands.
Pros:
- user-extensible
- flexible rendering and display configurations
- native support for Myrinet and SDP (Infiniband) communication
Cons:
- Performance and scalability are highly dependent on the configuration, and certain modes may not perform or scale well at all.
- Communication at the network layer is serial and can cause bottlenecks when rendering from M clients to N screens.
- When display lists are transmitted through Chromium to a tiled display, the display lists have to be cached on the rendering node. As a scene is transformed, these display lists may effectively cause the entire scene to be loaded on a single node, which is counter to the goals of cluster computing.
- Immediate mode rendering can incur a high cost.
While Chromium, overall, works pretty well and can be configured to
display to almost any environment in relatively short time, it is an
open-source package with known limitations and limited support.
Please note that Chromium is not a CEI product and is not controlled by
CEI. No guarantee is made that Chromium will perform as
advertised. We will make every effort to make EnSight conform to the
Chromium API where required, but in some cases there may be Chromium
features which do not work with EnSight. There is commercial
support for Chromium through Tungsten Graphics, including a proprietary version of Chromium that addresses some of the limitations of the open source version.
It
is also possible to use Chromium in an application-transparent mode, by
intercepting the OpenGL calls from a *single* application. In
particular it is quite easy to configure Chromium to take the OpenGL
calls from one node and distribute them over a display wall. This
is similar in theory to replication mode, but note that the application
is *not* running in parallel, so the OpenGL stream from the application
is serial. This mode of Chromium can be useful for application
that are not parallel in nature, but due to the performance and scaling
limitations, this mode is not supported by EnSight DR.
|