O'Reilly logo

High Performance Visualization by E. Wes Bethel, Charles Hansen, Hank Childs

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 21
The EnSight Visualization Application
Randall Frank
Computational Engineering International, Inc.
Michael F. Krogh
Computational Engineering International, Inc.
21.1 Introduction ...................................................... 429
21.2 EnSight Architectural Overview ................................. 429
21.3 Cluster Abstraction: CEIShell ................................... 432
21.3.1 Virtual Clustering Via CEIShell Roles .................. 433
21.3.2 Application Invocation .................................. 434
21.3.3 CEIShell Extensibility ................................... 434
21.4 Advanced Rendering ............................................. 434
21.4.1 Customized Fragment Rendering ........................ 435
21.4.2 Image Composition System ............................. 437
21.5 Conclusion ........................................................ 440
References .......................................................... 442
21.1 Introduction
The vision behind EnSight has always been a full-featured, interactive,
high performance visualization tool capable of scaling to the largest data sets.
At the center of that vision is the ability to effectively leverage advanced
computer systems both at the desktop/display and in computational clusters.
This chapter reviews the EnSight framework for distributed application launch
and rendering. The distributed launch system facilitates custom deployment
of scalable EnSight visualization solutions. It has evolved to meet the increas-
ingly varied requirements of its users, including heterogeneous environments
with potentially complex and restrictive access controls. The rendering system
is specifically geared toward improved user interaction and advanced rendering
in distributed, high performance scenarios by exploiting advances in desktop
graphics card technologies and direct interaction methodologies.
429
430 High Performance Visualization
21.2 EnSight Architectural Overview
To place these commentaries in context, it is useful to provide a brief
overview of the EnSight visualization framework. EnSight [6] was designed
around a core, client–server architecture. The server provides the means for
reading data from storage through a built-in or user-defined reader. It is re-
sponsible for the extraction of geometric primitives from the data, which are
transmitted to the client for display. The client performs all of the graphi-
cal rendering and manipulation tasks using these primitives. Geometry and
commands move between client and server applications over an abstract com-
munications channel capable of leveraging TCP/IP, MPI, or other transport
layers via user-written plug-ins.
The core server includes the ability to read multiple data files as a single
data set utilizing a single process—thread-based, parallel processing. Larger
data sets stress scalability limits of the thread-based parallelism utilized in
the basic client–server application scenario. For such data sets, the framework
supports distributed memory processing (e.g., on cluster systems). The server
of servers (SOS) and collaboration hub (C-HUB) applications are introduced
in these scenarios. The applications provide the logic and processing necessary
to allow multiple client (C-HUB) and server (SOS) instances to work collec-
tively. The SOS can be used without the C-HUB to allow multiple servers to
interact with a single client, but the use of the C-HUB, to utilize multiple
clients, necessitates the use of an SOS.
In most visualization scenarios, the extracted geometric primitive data is a
small fraction of the size of the raw data. The magnitude of this data reduction,
coupled with client performance benefits realized though the exploitation of
modern programmable graphics cards, makes it practical to use far fewer
client instances than server instances for distributed visualization. For a large
number of cases, only a single client instance is required, resulting in the
common configurations shown in Figure 21.1.
The SOS provides distributed processing capabilities layered on top of the
core server, providing cross-server aggregation and dynamic object remapping.
The SOS also allows for optional automatic decomposition of a single data
set over multiple servers with dynamic ghost element generation. These two
features allow for N to M conversions between the degree of natural decom-
position present in the data set (N) and the number of servers (M). The SOS
provides a parallel asynchronous data reduction network (similar to the MPI
all-reduce functionality). This network allows servers and user-defined readers
to perform global computations, exchange particle trace locations, etc. The
SOS manages the merging and chunking of geometry packets from the various
servers, including the ability to compute new geometric decompositions that
target specific numbers of client applications. The revised geometric decompo-
sition is routed to the various clients via the C-HUB to load balance rendering
work over the clients.
The C-HUB serves to link together multiple instances of the client applica-

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required