SENSEI
A frame work for generic in situ analytics
sensei::ConfigurableAnalysis Class Reference

An adaptor that creates and configures one or more adaptors from XML. More...

#include <ConfigurableAnalysis.h>

Inheritance diagram for sensei::ConfigurableAnalysis:
[legend]
Collaboration diagram for sensei::ConfigurableAnalysis:
[legend]

Public Member Functions

 senseiTypeMacro (ConfigurableAnalysis, AnalysisAdaptor)
 
void PrintSelf (ostream &os, svtkIndent indent) override
 
int SetCommunicator (MPI_Comm comm) override
 Set the MPI communicator to be used by the adaptor. More...
 
void SetVerbose (int val) override
 Set the level of verbosity of console output. More...
 
void SetAsynchronous (int val) override
 When set the analysis should buffer the simulation data and run in the background returning to the simulation immediately. More...
 
void SetDeviceId (int val) override
 Set the device that the analysis should run on. More...
 
void SetDevicesToUse (int val) override
 Set the number of devices to use per node. More...
 
void SetDeviceStart (int val) override
 Set the first on node device to use in automatic device selection. More...
 
void SetDeviceStride (int val) override
 Set the number of devices to skip in automatic device selection. More...
 
int Initialize (const std::string &filename)
 Initialize the adaptor using the configuration specified. More...
 
int Initialize (const pugi::xml_node &root)
 Initialize the adaptor using the configuration specified. More...
 
bool Execute (DataAdaptor *data, DataAdaptor **result) override
 Invokes the Execute method on the currently configured adaptors. More...
 
int Finalize () override
 Invokes the Finalize method on the currently configured adaptors. More...
 
- Public Member Functions inherited from sensei::AnalysisAdaptor
 senseiBaseTypeMacro (AnalysisAdaptor, svtkObjectBase)
 
void PrintSelf (ostream &os, svtkIndent indent) override
 Prints the current state of the adaptor. More...
 
MPI_Comm GetCommunicator ()
 returns the MPI communicator to be used for all communication More...
 
virtual int GetVerbose ()
 Get the level of verbosity of console output. More...
 
virtual int GetAsynchronous ()
 Get asynchronous mode. More...
 
virtual int GetDeviceId ()
 Get the device that the analysis should run on. More...
 
virtual int GetDevicesToUse ()
 Get the number of devices to use per node. More...
 
virtual int GetDeviceStart ()
 Get the first device to use. More...
 
virtual int GetDeviceStride ()
 Get the number of devices to skip. More...
 

Static Public Member Functions

static ConfigurableAnalysisNew ()
 creates a new instance. More...
 

Protected Member Functions

 ConfigurableAnalysis (const ConfigurableAnalysis &)=delete
 
void operator= (const ConfigurableAnalysis &)=delete
 
- Protected Member Functions inherited from sensei::AnalysisAdaptor
 AnalysisAdaptor (const AnalysisAdaptor &)=delete
 
void operator= (const AnalysisAdaptor &)=delete
 

Additional Inherited Members

- Public Types inherited from sensei::AnalysisAdaptor
enum  { DEVICE_HOST =-1, DEVICE_AUTO =-2 }
 values controling device selection More...
 
- Protected Attributes inherited from sensei::AnalysisAdaptor
MPI_Comm Comm
 
int Verbose
 
int DeviceId
 
int DevicesPerNode
 
int DevicesToUse
 
int DeviceStart
 
int DeviceStride
 
int Asynchronous
 

Detailed Description

An adaptor that creates and configures one or more adaptors from XML.

When the Execute method is invoked the calls are forwarded to the active instances. The supported adaptors include:

Class Description
sensei::Histogram Computes histograms
sensei::ADIOS2AnalysisAdaptor The write side of the ADIOS2 transport
sensei::HDF5AnalysisAdaptor The write side of the HDF5 transport
sensei::AscentAnalysisAdaptor Processes simulation data using Ascent
sensei::CatalystAnalysisAdaptor Processes simulation data using ParaView Catalyst
sensei::LibsimAnalysisAdaptor Processes simulation data using VisIt Libsim
sensei::Autocorrelation Compute autocorrelation of simulation data over time
sensei::VTKPosthocIO Writes simulation data to disk in a SVTK format
sensei::VTKAmrWriter Writes simulation data to disk in a SVTK format
sensei::PythonAnalysis Invokes user provided Pythons scripts that process simulation data
sensei::SliceExtract Computes planar slices and iso-surfaces on simulation data
sensei::DataBinning Bins point/particle data onto a cartesian grid with arbitrary axes
sensei::ParticleDensity Computes particle spatial density on a cartesian grid

Member Function Documentation

◆ Execute()

bool sensei::ConfigurableAnalysis::Execute ( DataAdaptor data,
DataAdaptor **  result 
)
overridevirtual

Invokes the Execute method on the currently configured adaptors.

Implements sensei::AnalysisAdaptor.

◆ Finalize()

int sensei::ConfigurableAnalysis::Finalize ( )
overridevirtual

Invokes the Finalize method on the currently configured adaptors.

Reimplemented from sensei::AnalysisAdaptor.

◆ Initialize() [1/2]

int sensei::ConfigurableAnalysis::Initialize ( const std::string &  filename)

Initialize the adaptor using the configuration specified.

◆ Initialize() [2/2]

int sensei::ConfigurableAnalysis::Initialize ( const pugi::xml_node &  root)

Initialize the adaptor using the configuration specified.

◆ New()

static ConfigurableAnalysis* sensei::ConfigurableAnalysis::New ( )
static

creates a new instance.

◆ SetAsynchronous()

void sensei::ConfigurableAnalysis::SetAsynchronous ( int  val)
overridevirtual

When set the analysis should buffer the simulation data and run in the background returning to the simulation immediately.

This mode requires MPI_THREAD_MULTIPLE and each thread must use a different communictor or serialize the calls to MPI collectives. The environment variable SENSEI_ASYNCHRONOUS provides the initial value. Oterwise the default is 0.

Reimplemented from sensei::AnalysisAdaptor.

◆ SetCommunicator()

int sensei::ConfigurableAnalysis::SetCommunicator ( MPI_Comm  comm)
overridevirtual

Set the MPI communicator to be used by the adaptor.

The default communicator is a duplicate of MPI_COMMM_WORLD, giving each adaptor a unique communication space. Users wishing to override this should set the communicator before doing anything else. Derived classes should use the communicator returned by GetCommunicator.

Reimplemented from sensei::AnalysisAdaptor.

◆ SetDeviceId()

void sensei::ConfigurableAnalysis::SetDeviceId ( int  val)
overridevirtual

Set the device that the analysis should run on.

A value of DEVICE_HOST (-1) indicates that the analysis should run on the host while a value greater or equal to 0 specifies the device explicitly. The special value of DEVICE_AUTO (-2) is reserved for automatic device selection. The environment variable SENSEI_DEVICE_ID provides the initial value. Otherwise the default is DEVICE_HOST. See ::GetDeviceId for an explanation of the automatic device selection algorithm.

Reimplemented from sensei::AnalysisAdaptor.

◆ SetDeviceStart()

void sensei::ConfigurableAnalysis::SetDeviceStart ( int  val)
overridevirtual

Set the first on node device to use in automatic device selection.

The environment variable SENSEI_DEVICE_START provides the initial value. Otherwise the default is 0. See ::SetDeviceId for an explanation of automatic device selection.

Reimplemented from sensei::AnalysisAdaptor.

◆ SetDevicesToUse()

void sensei::ConfigurableAnalysis::SetDevicesToUse ( int  val)
overridevirtual

Set the number of devices to use per node.

This value can be smaller than the number of actual devices but should not exceed it. The environment variable SENSEI_DEVICES_TO_USE provides the initial value. Otherwise the default is the number of actual devices available. See ::SetDeviceId for an explanation of automatic device selection.

Reimplemented from sensei::AnalysisAdaptor.

◆ SetDeviceStride()

void sensei::ConfigurableAnalysis::SetDeviceStride ( int  val)
overridevirtual

Set the number of devices to skip in automatic device selection.

The environment variable SENSEI_DEVICE_STRIDE provides the initial value. Otherwise the default is 0. See ::SetDeviceId for an explanation of automatic device selection.

Reimplemented from sensei::AnalysisAdaptor.

◆ SetVerbose()

void sensei::ConfigurableAnalysis::SetVerbose ( int  val)
overridevirtual

Set the level of verbosity of console output.

The environment variable SENSEI_VERBOSE provides the initial value if set. Otherwise the default is 0.

Reimplemented from sensei::AnalysisAdaptor.


The documentation for this class was generated from the following file: