High Performance Visualization
by Robert van Liere
The importance of visualization in high performance computing is well known. The reason for this is that increasingly complex phenomena are being simulated and that the resulting data sets are becoming too difficult to interpret without appropriate visualization tools. In the HPV project (1996-1998) generic and pragmatic approaches to high performance visualization tools are being explored. HPV is financed and supported by the Dutch High Performance Computing and Networking initiative. The research is being carried out by CWI, TNO-FEL, ACE, Arcobel, and CAP-Gemini.
One of the tools in the HPV environment is a data browser to analyse very large scientific data bases. In contrast to prerecorded video sequences, the data browser allows the user to first select visualization mappings and then play through any part of the data base at interactive rates. Adjusting the mapping parameters provides the end user with a mechanism to highlight certain aspects of the data which may otherwise stay hidden.
One of the visualization techniques that has been incorporated in the data browser is an interactive version of the spot noise algorithm. Spot noise is a texture synthesis technique which can be used to visualize flow fields. Rather than mapping the underlying vector field to produce colored geometric objects, spot noise uses texture. The primary advantage over other flow visualization techniques is that texture can give a continuous view of a 2D field opposed to visualization at only discrete positions, as with arrow plots or streamlines. The basic idea is that if many particles are used to represent the flow, the individual particles can no longer be discerned and texture is perceived instead. Spot noise generates texture by adding a large number of randomly positioned spots which have a random intensity. Properties of the spot directly control the properties of the texture. Therefore, by modifying the shape of the spot as a function of the data, the data are visualized by texture.
Unfortunately, spot noise is a computationally very expensive technique. A large number of particle paths and particle positions must be calculated, spots must be transformed, scan converted, textured and blended. Previously, spot noise textures were generated as a preprocessing step and the resulting sequence of images was animated. The team has developed an interactive spot noise algorithm which runs on very high performance graphics workstations. Textures can now be generated on the fly so that spot noise can be used in the data browser at interactive speeds.
As an example, the data browser has been applied to analyze a turbulent flow field. The goal of this application is to study the evolution of the vortex shedding behind a block, the transition from laminar to turbulent flow, and how these relate to other physical phenomena, such as pressure or helicity. The computation and the size of the resulting database is impressive: a few weeks of computing on a 12 processor Cray C90 can easily produce a few terabytes of data.
The figure on is a snapshot of a slice of the data set. The flow is from left to right and impinges a block placed in the field. One can clearly see the transition from laminar to turbulent flow behind the block. Only if the number of frames per second exceeds a threshold can the user monitor how the vortices behave in time.
Direct numerical simulation of the wake behind a block showing vortex shedding and transition from laminar to turbulent flow.
The data used is a slice from the three-dimensional data set which is read in parallel from a disk array and is streamed to a data slicer. The data is defined on a rectilinear grid with a resolution of 278x208 cells. Each texture has a resolution of 512x512 pixels and uses 40,000 spots. Each spot is represented as a mesh with a resolution of 16x3 vertices this results in about 1.9 million quadrilaterals per texture.
The group has implemented the spot noise algorithm on a SGI Onyx with 8 R10000 processors and 4 InfiniteReality graphics pipes. A 800 MByte/sec bus connects the processors with the graphics pipes. A divide and conquer technique has been developed to distribute the spots among the processors and graphics pipes. With this implementation we can achieve approximately 7 frames per second, resulting in a net rendering performance of approx. 14 million quadrilaterals per second.
The HPV project is exploring generic tools for the visualization of high performance simulations and very large scientific data bases. The focus is on those tools and techniques that can be used for interactive visualization, so that the end user has direct control of many aspects of the simulation and visualization.
Robert van Liere - CWI
Tel: +31 20 592 4118