Parallel Streamline Calculation

Table of Contents

Introduction

For simulations that involve vector fields, integral curves, or streamlines, are one of the most illuminating techniques to obtain insight; they are a cornerstone of visualization and analysis across a great variety of application domains. Drawing on an intuitive interpretation in terms of particle movement, they are an ideal tool to illustrate and describe a wide range of phenomena encountered in the study of application-domain vector fields, such as transport and mixing in fluid flows.

For a stationary vector field v that does not depend on time, an integral curve is called a streamline and is given by the ordinary differential equation

Hence it describes a parameterized curve that starts at the seed point x0 and is tangent to v over its parameter interval [t0 , t1 ] for t0 < t1 .

In the discrete setting we are concerned with here, streamlines are approximated using numerical integration methods to approximate the describing ordinary differential equations. In our streamline implementation, we use an integration scheme of Runge-Kutta type with adaptive stepsize control as proposed by Prince and Dormand (1981). The visualization and analysis of vector fields is an active research area, and so-called integration-based techniques that derive vector field visualization from integral curves have progressed well beyond the direct depiction of individual streamlines or a small subset of them. In particular, we are interested in applications that require tracing a large number of streamlines, thus making parallelization practical

Parallelization Strategies

Compared to isosurface extraction or direct volume rendering, it is difficult to parallelize streamline generation. While it is possible to extract isosurfaces independently within each block of a multi-block data set, or to take samples along a ray within each block independently for volume rendering, it is not possible to extract the portion of a streamline in data blocks independently. This is due to the fact that the streamline depends on the seed point, and for blocks along the path of a streamline it is not known a-priori where on the boundary a streamline enters the block. As a consequence, it is necessary to compute a streamline piece-by-piece, communicating intermediate results between processors as the streamline passes from a blocks owned by a processor to blocks owned by a different processor.

Two extreme parallelization strategies are possible. The first method distributes streamlines to processors. Each streamline remains on the same processor, which load data blocks dynamically as a streamline enters them. This strategy avoids communication and keeps a balanced work load among processors (each processor gets assigned roughly the same number of streamlines). However, in most cases it leads to significant data duplication.

The second method distributes data blocks evenly among processors. Each processors "owns" those streamlines that are currently located in one of its data blocks. This strategy avoids data duplication. However, streamlines need to be communicated from processor to processor as they enter and leave data blocks stored on different processors. Furthermore, this strategy may lead to severe load imbalance if streamlines are distributed unevenly among the data blocks belonging to each processor. VisIt 1.12 implements a third method, which is enabled by default, that uses heuristics to transition its behavior between both methods and attempts minimize data duplication while maintaining an even load balance among processors. In Pugmire (2009) we performed an extensive analysis on the trade offs between the various schemes. In many cases, it is safe to use VisIt's new defaults. However, for a more in-depth understanding, we refer the reader to that paper.

Results

Streamlines in the astrophysics dataset of a proto-neutron star illustrate the nature of the complex magnetic field.
(Left) Streamlines show the flow of the magnetic field inside the toroidal plasma chamber. (Right) Streamlines in the thermal hydraulics dataset illustrate illustrate how the water from twin inlets mix in a box. One inlet introduces warm wa- ter (orange), while the other introduces cold water (blue). Although the warm water dominates one side of the box, both temperatures mix before ulti- mately exiting through the outlet in the upper right.

Collaborators

References

  • Pugmire, D., Chids, H.R., Garth, C., Ahern, S. and Weber, G.H., Scalable computation of streamlines on very large datasets, in: Proceedings of Supercomputing 2009 (SC09), ACM/IEEE, ACM Press, New York, New York, 2009.