NVIDIA IndeX API nvidia_logo_transpbg.gif Up
nv::index::IDistributed_data_access Class Referenceabstract

Interface class enabling custom distributed data accesses. More...

#include <idistributed_data_access.h>

Inherits mi::base::Interface_declare< 0xd9ff4bf, ... >.

Public Member Functions

virtual mi::Sint32 access (const mi::math::Bbox_struct< mi::Float32, 3 > &query_bbox, mi::neuraylib::IDice_transaction *dice_transaction)=0
 Accessing a subset of a distributed dataset. More...
 
virtual const mi::math::Bbox_struct< mi::Float32, 3 > & get_bounding_box () const =0
 Get the determined bounding box that bounds the accessed distributed data. More...
 
virtual mi::neuraylib::Tag_struct get_scene_element () const =0
 The volume scene element that corresponds to the accessed distributed dataset. More...
 
virtual const IDistributed_data_subsetget_distributed_data_subset () const =0
 Returns the accessed and assembled distributed data subset. More...
 

Detailed Description

Interface class enabling custom distributed data accesses.

The access functionality facilitates an application to operate and make use of the data distributed and uploaded
by NVIDIA IndeX to GPUs and nodes in the cluster environment. User-defined computing algorithms, analysis techniques, data export strategies of today's or future workflows can make use of the distributed data through the distributed data access interfaces.

Distributed data can be queried from the cluster environment. A query bounding box provided by the application developer defines the extent used for accessing distributed data. The NVIDIA IndeX library then manages the cluster-wide data access and returns a local copy of the data to the caller. The size of the bounding box defines the amount of data that is routed through the network and the amount of memory allocated for the local data copy. Typically, the available system memory on the calling node constrains the amount of data that an application may request by means of the access functionality. The network bandwidth has an effect on the the performance the Distributed data export functionalities rely on the access functionality. An export strategy may, for instance, choose to either query all distributed data of a dataset at once or multiple smaller sized data subsets in sequential order depending on the network and system memory contraints.

The interface class IDistributed_data_access_factory returns an interface specific to a distributed data scene element type and referred to by the element's tag.

Member Function Documentation

 access()

virtual mi::Sint32 nv::index::IDistributed_data_access::access ( const mi::math::Bbox_struct< mi::Float32, 3 > &  query_bbox,
mi::neuraylib::IDice_transaction *  dice_transaction 
)
pure virtual

Accessing a subset of a distributed dataset.

The access query relies on the user-defined bounding box and creates a local copy of the data. The query bounding box may be larger than the dataset uploaded to the cluster.

Parameters
[in]query_bboxSpecifies the query bounding box to perform the distributed data access. The bounding box is defined in the dataset's local space.
[in]dice_transactionThe DiCE transaction active when launching the distributed data access.
Returns
Returns a status code. The access operation succeeded, if the returned values is larger-equal 0, otherwise the access procedure failed.

 get_bounding_box()

virtual const mi::math::Bbox_struct< mi::Float32, 3 > & nv::index::IDistributed_data_access::get_bounding_box ( ) const
pure virtual

Get the determined bounding box that bounds the accessed distributed data.

The determined bounding box may differ from the one used for querying the distributed data using the /c access call, e.g., if all or part of the distributed data resides outside the user-defined bounding box.

Returns
The bounding box of the accessed distributed data subset. The bounding box is defined in the local space of the scene element.

 get_distributed_data_subset()

virtual const IDistributed_data_subset * nv::index::IDistributed_data_access::get_distributed_data_subset ( ) const
pure virtual

Returns the accessed and assembled distributed data subset.

The extent of the stored data corresponds to the determined bounding box. The method returns a pointer to an IDistributed_data_subset interface. For accessing the datasets specific data, such as voxel values, the interface class needs to be cast to a concrete data subset, e.g., ISparse_volume_subset. A IDistributed_data_subset interface class owns the data and shall only grant access to the data. In particular, the destructor of the implemented interface class deletes the local data.

Returns
Interface pointer to an IDistributed_data_subset instance giving access a datasets data.

 get_scene_element()

virtual mi::neuraylib::Tag_struct nv::index::IDistributed_data_access::get_scene_element ( ) const
pure virtual

The volume scene element that corresponds to the accessed distributed dataset.

Returns
The unique tag that references the distributed data scene element.

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