402 High Performance Visualization
the ViSUS design and how they can be used in practical applications, both in
scientific visualization and other domains such as digital photography or the
exploration of geospatial models.
19.1 Introduction
The ViSUS software framework was designed with the primary philosophy
that the visualization of massive data need not be tied to specialized hardware
or infrastructure. In other words, a visualization environment for large data
can be designed to be lightweight, highly scalable, and run on a variety of plat-
forms or hardware. Moreover, if designed generally, such an infrastructure can
have a wide variety of applications, all from the same code base. Figure 19.1
details example applications and the major components of the ViSUS infras-
tructure. The components can be grouped into three major categories: first,
a lightweight and fast out-of-core data management framework using multi-
resolution space-filling curves. This allows the organization of information in
an order that exploits the cache hierarchies of any modern data storage ar-
chitectures. Second, a data flow framework that allows data to be processed
during movement. Processing massive data sets in their entirety would be a
long and expensive operation, which hinders interactive exploration. By de-
signing new algorithms to fit within this framework, data can be processed
as it moves. The third category is a portable visualization layer, which was
designed to scale from mobile devices to Powerwall displays with same the
code base. This chapter describes the ViSUS infrastructure, and also explores
practical examples in real-world applications.
19.2 ViSUS Software Architecture
Figure 19.1 provides a diagram of the ViSUS software architecture. This
section details ViSUS’s three major components and how they are used to
achieve a fast, scalable, and highly portable data processing and visualization
environment.
Data Access Layer. The ViSUS data access layer is a key component allow-
ing an immediate and efficient data pipeline processing that otherwise would
be stalled by traditional system I/O cost. In particular, the ViSUS I/O com-
ponent, and its generalized database component, are focused on enabling the
effective deployment of out-of-core and data streaming algorithms. Out-of-
core computing [11] specifically addresses the issues of algorithm redesign and
data layout restructuring. These are necessary to enable data access patterns
having minimal performance degradation with external memory storage. Al-
gorithmic approaches in this area also yield valuable techniques for parallel
and distributed computing. In this environment, one typically has to deal with