NVIDIA IndeX API nvidia_logo_transpbg.gif Up
idata_distribution.h
Go to the documentation of this file.
1/******************************************************************************
2 * Copyright 2023 NVIDIA Corporation. All rights reserved.
3 *****************************************************************************/
6
7#ifndef NVIDIA_INDEX_IDATA_DISTRIBUTION_H
8#define NVIDIA_INDEX_IDATA_DISTRIBUTION_H
9
10#include <mi/dice.h>
11#include <mi/base/interface_declare.h>
12#include <mi/neuraylib/iserializer.h>
13
16
17namespace nv
18{
19namespace index
20{
21
49 public mi::base::Interface_declare<0x841224fe,0x3c17,0x43b3,0xaa,0xc8,0xbc,0x32,0x72,0xc8,0x44,0xf1,
50 mi::neuraylib::ISerializable>
51{
52public:
69
87 IDistributed_data_locality* determined_locality) = 0;
88
116 virtual void execute_subset(
117 mi::neuraylib::IDice_transaction* dice_transaction,
118 const nv::index::IData_distribution* data_distribution,
120 mi::Size data_subset_index, // not to confuse with subset data ID
121 mi::Size data_subset_count) = 0;
122
159 mi::neuraylib::ISerializer* serializer,
160 mi::neuraylib::IDice_transaction* dice_transaction,
161 const nv::index::IData_distribution* data_distribution,
163 mi::Size data_subset_index,
164 mi::Size data_subset_count) = 0;
165
194 mi::neuraylib::IDeserializer* deserializer,
195 mi::neuraylib::IDice_transaction* dice_transaction,
196 const nv::index::IData_distribution* data_distribution,
197 mi::Size data_subset_index,
198 mi::Size data_subset_count) = 0;
199};
200
209template <mi::Uint32 id1, mi::Uint16 id2, mi::Uint16 id3,
210 mi::Uint8 id4, mi::Uint8 id5, mi::Uint8 id6, mi::Uint8 id7,
211 mi::Uint8 id8, mi::Uint8 id9, mi::Uint8 id10, mi::Uint8 id11,
212 class I = IDistributed_data_job>
213class Distributed_data_job : public mi::neuraylib::Base<id1, id2, id3, id4, id5, id6, id7, id8, id9, id10, id11, I>
214{
215public:
223 IDistributed_data_locality* determined_locality)
224 {
225 (void)determined_locality; // avoid unused warnings
226 return; /* do nothing */
227 }
228};
229
247 public mi::base::Interface_declare<0x91224ed0,0x6e2a,0x48c9,0xb1,0x79,0x61,0x8e,0x22,0xd2,0x5e,0xf2,
248 mi::base::IInterface>
249{
250public:
258 virtual mi::Sint32 execute(
260 mi::neuraylib::IDice_transaction* dice_transaction) const = 0;
261};
262
263}} // namespace index / nv
264
265#endif // NVIDIA_INDEX_IDATA_DISTRIBUTION_H
Mixin class that implements the mi::neuraylib::Distributed_data_job interface.
Definition: idata_distribution.h:214
virtual void receive_data_locality(IDistributed_data_locality *determined_locality)
Receiving a distributed data locality from the NVIDIA IndeX job scheduler.
Definition: idata_distribution.h:222
Retrieving information about the data distribution and scheduling tasks against distributed data.
Definition: idistributed_data_locality.h:694
Receives user-implemented compute tasks and applies them to distributed data subsets.
Definition: idistributed_data_edit.h:82
Scheduling and launching distributed data analysis and processing jobs.
Definition: idata_distribution.h:249
virtual mi::Sint32 execute(IDistributed_data_job *job, mi::neuraylib::IDice_transaction *dice_transaction) const =0
Launching the user-implemented distributed data job.
Distributed job interface enabling analysis and processing running against distributed subset data.
Definition: idata_distribution.h:51
virtual IDistributed_data_locality_query_mode * get_scheduling_mode() const =0
A data locality query mode specifies which data subsets to process.
virtual void execute_subset(mi::neuraylib::IDice_transaction *dice_transaction, const nv::index::IData_distribution *data_distribution, nv::index::IData_subset_compute_task_processing *data_subset_processing, mi::Size data_subset_index, mi::Size data_subset_count)=0
Local execution of the distributed data job for a processing a data subset.
virtual void receive_data_locality(IDistributed_data_locality *determined_locality)=0
Receiving a distributed data locality from the NVIDIA IndeX system.
virtual void execute_subset_remote(mi::neuraylib::ISerializer *serializer, mi::neuraylib::IDice_transaction *dice_transaction, const nv::index::IData_distribution *data_distribution, nv::index::IData_subset_compute_task_processing *data_subset_processing, mi::Size data_subset_index, mi::Size data_subset_count)=0
Remote execution of the distributed data job for a processing a data subset.
virtual void receive_subset_result(mi::neuraylib::IDeserializer *deserializer, mi::neuraylib::IDice_transaction *dice_transaction, const nv::index::IData_distribution *data_distribution, mi::Size data_subset_index, mi::Size data_subset_count)=0
Receives the result of a remote distributed data job execution.
Query modes enable the purposeful selection of data subsets for data localities.
Definition: idistributed_data_locality.h:61
Data locality information for distributed datasets.
Definition: idistributed_data_locality.h:518
Interfaces for distributed data processing.
Interfaces for exposing the data distribution scheme.
Common namespace for all NVIDIA APIs.
Definition: iindex.h:349