SQ Field Tracer
In order to provide scalable parallel performance the SciberQuest (SQ) field tracer implements a load-on-demand strategy and distributed or demand generated seed geometry. This document describes these features and how to make use of them.
A Test Dataset
A small dataset is provided for the following example. Download and untar this dataset on your local system. (download Rankine.tar.gz)
Reading in Data
The load on demand feature of our stream tracer depends on the reader exporting a specific api that gives the integrator access to I/O functionality. For this reason our reader has to operating modes, 1) normal mode, 2) meta-mode. It is the second, meta-mode, that is used with our parallel stream tracer. The reader is placed in meta-mode by opening a file ending in the extension ".bovm".
Using ParaView's File Open dialog to browse to the test dataset and select the file rankine.bovm. In the reader's UI panel select the vi array, for this example, the default settings may be used. When dealing with large data the Decomp Dims, and No. Blocks To Cache fields control the domain decomposition, block cache, and can be used to fine tune I/O performance. Hit apply. ParaView will return very quickly as no I/O is done at this point. For perforamance reasons, when in meta-mode, the reader simply returns an empty dataset with the bounds of the actual dataset. The specific I/O required to integrate streamlines will be initiated by the field tracer as it executes.
|
Figure 1. The SQ BOV Meta Reader Panel.
|
Creating Seed Geometry
Our field tracer expects vtkPolyData or vtkUnstructuredData for it's seed input. There are two methods of distrubting work in our field tracer, 1) static decomposition, 2) dynamic decomposition. Dynamic decomposition is usually not not needed when generating streamline geometry so it will be discussed elsewhere. In the static decomposition method of distributing of work to the field tracer each process's work is determined by the domain decomposition of the seed geometry. The static domain decomposition of seed cells is acheived through standard ParaView mechanisms, where the source responds to ParaView's piece based requests. The seed geometry is generated in a distributed manner and in the field tracer each rank will integrate streamlines from the local seeds.
In ParaView create a plane using the Sources->SciberQuest->Plane Source menu option. Initialize the plane source using the settings shown in Figure 2. This will create a plane distributed across mpi ranks to use as input seed geometry for our field tracer.
|
Figure 2. The SQ Plane Source Panel.
|
Field Tracer
Select the meta-reader in ParaView's pipeline browser. Create the field tracer from Filters->SciberQuest->SQ RK45 Field Tracer. In ParaView's input connection dialog make sure the reader is selected under vector field and the plane source is selected under seeds. Leave the termination surfaces empty. In the GUI panel increase the arc length and max number of steps to 10000. Hit apply.
|
Figure 2. The ParaView input dialog and the SQ Field Tracer Panel.
|
Results
|
Figure 3. Result of tracing 256 streamlines using 4 cores, colored by process id.
|