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:
- Load a sample of the data (possibly downsampled) into ParaView, including all the desired fields.
- Create analysis and visualization pipeline(s) in ParaView by applying successive filters producing subsetted or alternative visual metaphors of data.
- Define a Catalyst extracts with the menu choice Catalyst→Define Exports: this will pop up the Catalyst Export Inspector panel.
- 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
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.