Analysis back-ends

Ascent back-end

Ascent is a many-core capable lightweight in-situ visualization and analysis infrastructure for multi-physics HPC simulations. The SENSEI AscentAnalysisAdaptor enables simulations instrumented with SENSEI to process data using Ascent.

SENSEI XML

The ascent back-end is activated using the <analysis type="ascent">. The supported attributes are:

attribute description
actions Path to ascent specific JSON file configuring ascent
options Path to ascent specific JSON file configuring ascent

Back-end specific configurarion

SENSEI uses XML to select the specific back-end, in this case Ascent. The SENSEI XML will also contain references to Ascent specific configuration files that tell Ascent what to do. These files are native to Ascent. More information about configuring Ascent can be found in the Ascent documentation at https://ascent.readthedocs.io/en/latest/

Examples

Reaction rate in situ demo Ascent in situ demo.

Catalyst back-end

ParaView Catalyst (Catalyst) is an in situ use case library, with an adaptable application programming interface (API), that orchestrates the delicate alliance between simulation and analysis and/or visualization tasks. It brings the renown, scaling capabilities of VTK and ParaView to bear on the in situ use case. The analysis and visualization tasks can be implemented in C++ or Python, and Python scripts can be crafted from scratch or using the ParaView GUI to interactively setup Catalyst scripts (see Catalyst User Guide).

SENSEI XML Options

The Catalyst back-end is activated using the <analysis type="catalyst">.

Python Script

The supported attributes are:

attribute description
pipeline Use “pythonscript”.
filename pythonscript filename.
enabled “1” enables this back-end.
Example XML

Catalyst Python script example. This XML configures a Catalyst with a Python script that creates a pipeline(s).

<sensei>
<analysis type="catalyst" pipeline="pythonscript"
          filename="configs/random_2d_64_catalyst.py" enabled="1" />
</sensei>
Back-end specific configuration

The easiest way to create a python script for Catalyst:

  1. Load a sample of the data (possibly downsampled) into ParaView, including all the desired fields.
  2. Create analysis and visualization pipeline(s) in ParaView by applying successive filters producing subsetted or alternative visual metaphors of data.
  3. Define a Catalyst extracts with the menu choice Catalyst→Define Exports: this will pop up the Catalyst Export Inspector panel.
  4. Export the Catalyst Python script using the menu Catalyst→Export Catalyst Script.

The Catalyst Export Inspector reference.

Slice Fixed Pipeline

For the Catalyst slice fixed pipeline the supported attributes are:

attribute description
pipeline Use “slice”.
mesh The name of the mesh to slice.
array The data array name for coloring.
association Either “cell” or “point” data.
image-filename The filename template to write images.
image-width The image width in pixels.
image-height The image height in pixels.
slice-origin The origin to use for slicing (optional).
slice-normal The normal to use for slicing.
color-range The color range of the array (optional).
color-log Use logarithmic color scale (optional).
enabled “1” enables this back-end
Example XML

This XML configures a C++-based fixed pipeline for a slice using Catalyst.

<sensei>
  <analysis type="catalyst"
            pipeline="slice" mesh="mesh" array="data" association="cell"
            image-filename="slice-%ts.png" image-width="1920" image-height="1080"
            slice-normal="0,0,1"
            color-range="0.0001,1.5" color-log="1"
            enabled="1" />
</sensei>

Particles Fixed Pipeline

For the Catalyst particle fixed pipeline the supported attributes are:

attribute description
pipeline Use “particle”.
mesh The name of the mesh to slice.
array The data array name for coloring.
association Either “cell” or “point” data.
image-filename The filename template to write images.
image-width The image width in pixels.
image-height The image height in pixels.
particle-style The representation such as: “Gaussian Blur”, “Sphere”,
  “Black-edged circle”, “Plain circle”, “Triangle”, and
  “Square Outline”.
particle-radius The normal to use for slicing.
color-range The color range of the array (optional).
camera-position The position of the camera (optional).
camera-focus Where the camera points (optional).
enabled “1” enables this back-end
Example XML

This XML configures a C++-based fixed pipeline for particles using Catalyst.

<sensei>
  <analysis type="catalyst"
     pipeline="particle" mesh="particles" array="data" association="point"
     image-filename="/tmp/particles-%ts.png" image-width="1920" image-height="1080"
     particle-style="Black-edged circle" particle-radius="0.5"
     color-range="0.0,1024.0" color-log="0"
     camera-position="150,150,100" camera-focus="0,0,0"
     enabled="1" />
</sensei>

Example

Reaction rate in situ demo ParaView Catalyst in situ demo.

Histogram back-end

As a simple analysis routine, the Histogram back-end computes the histogram of the data. At any given time step, the processes perform two reductions to determine the minimum and maximum values on the mesh. Each processor divides the range into the prescribed number of bins and fills the histogram of its local data. The histograms are reduced to the root process. The only extra storage required is proportional to the number of bins in the histogram.

SENSEI XML

The Histogram back-end is activated using the <analysis type="histogram">. The supported attributes are:

attribute description
mesh The name of the mesh for histogram.
array The data array name for histogram.
association Either “cell” or “point” data.
file The filename template to write images.
bins The number of histogram bins.

Example XML

Histogram example. This XML configures Histogram analysis.

<sensei>
  <analysis type="histogram"
    mesh="mesh" array="data" association="cell"
    file="hist.txt" bins="10"
    enabled="1" />
</sensei>

Back-end specific configurarion

No special back-end configuration is necessary.

Examples

VM Demo reference.

Autocorrelation back-end

As a prototypical time-dependent analysis routine, the Autocorrelation back-end computes the autocorrelation. Given a signal f(x) and a delay t, we find

\[\sum_{x}f(x)f(x+t).\]

Starting with an integer time delay t, we maintain in a circular buffer, for each grid cell, a window of values of the last t time steps. We also maintain a window of running correlations for each t′ ≤ t. When called, the analysis updates the autocorrelations and the circular buffer. When the execution completes, all processes perform a global reduction to determine the top k autocorrelations for each delay t′ ≤ t (k is specified by the user). For periodic oscillators, this reduction identifies the centers of the oscillators.

SENSEI XML

The Autocorrelation back-end is activated using the <analysis type="autocorrelation">. The supported attributes are:

attribute description
mesh The name of the mesh for autocorrelation.
array The data array name for autocorrelation.
association Either “cell” or “point” data.
window The delay (t) for f(x).
k-max The number of strongest autocorrelations to report.

Example XML

Autocorrelation example. This XML configures Autocorrelation analysis.

<sensei>
  <analysis type="autocorrelation"
    mesh="mesh" array="data" association="cell"
    window="10" k-max="3" enabled="1" />
</sensei>

Examples

VM Demo reference.