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_subset * | get_distributed_data_subset () const =0 |
Returns the accessed and assembled distributed data subset. More... | |
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.
|
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.
[in] | query_bbox | Specifies the query bounding box to perform the distributed data access. The bounding box is defined in the dataset's local space. |
[in] | dice_transaction | The DiCE transaction active when launching the distributed data access. |
|
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.
|
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.
IDistributed_data_subset
instance giving access a datasets data.
|
pure virtual |
The volume scene element that corresponds to the accessed distributed dataset.