DiCE API nvidia_logo_transpbg.gif Up
icluster_manager_configuration.h
Go to the documentation of this file.
1/***************************************************************************************************
2 * Copyright 2023 NVIDIA Corporation. All rights reserved.
3 **************************************************************************************************/
6
7#ifndef MI_NEURAYLIB_ICLUSTER_MANAGER_CONFIGURATION_H
8#define MI_NEURAYLIB_ICLUSTER_MANAGER_CONFIGURATION_H
9
11
12namespace mi {
13
14namespace neuraylib {
15
27
36 base::Interface_declare<0x1b9bfd07,0x9693,0x4e3f,0x83,0xb1,0x85,0x3b,0x91,0x83,0xd2,0x66>
37{
38public:
40 virtual void error_callback() = 0;
41
44 virtual void status_change_callback() = 0;
45
48 virtual void cluster_change_callback() = 0;
49
53 virtual void cluster_ready_callback(bool is_ready) = 0;
54};
55
61 base::Interface_declare<0x6b1cbc68,0x3af1,0x4a56,0x83,0x68,0x00,0x13,0xd4,0xec,0xc2,0xfa>
62{
63public:
65 virtual const char* get_node_name() = 0;
66
68 virtual const char* get_ip_address() = 0;
69
72 virtual const char* get_user_name() = 0;
73
75 virtual Size get_cpu_count() = 0;
76
78 virtual Float32 get_cpu_load() = 0;
79
82
85
87 virtual Size get_gpu_count() = 0;
88
92 virtual Float32 get_gpu_load() = 0;
93
98
104};
105
110 base::Interface_declare<0x5c88e256,0x6d61,0x4d76,0x91,0x13,0xe0,0x37,0x9f,0x4a,0xfd,0x07>
111{
112public:
114 virtual const char* get_head_node() = 0;
115
118 virtual const char* get_software_package_id() = 0;
119
124 virtual const char* get_bridge_protocol_version() = 0;
125
131 virtual const char* get_authentication_token() = 0;
132
135 virtual bool is_compatible() = 0;
136
141
150
152 virtual bool can_be_closed() = 0;
153
155 virtual const char* get_head_node_address() = 0;
156
159
175
197};
198
203 base::Interface_declare<0xd444f7cc,0xf8ff,0x4a79,0xa0,0xe5,0x51,0x02,0xc6,0x66,0x37,0x94>
204{
205public:
209 virtual Size get_number_of_nodes() const = 0;
210
218 virtual ICluster_manager_node* get_node( Size index) const = 0;
219};
220
225class ISoftware_package : public
226 base::Interface_declare<0xa7a3a95c,0x3db8,0x4fef,0xb9,0x10,0x56,0x68,0xd7,0xa2,0xac,0x5>
227{
228public:
230 virtual const char* get_id() const = 0;
231
233 virtual const char* get_description() const = 0;
234
236 virtual const char* get_bridge_protocol_version() const = 0;
237};
238
246 base::Interface_declare<0x0a54aeb4,0xb2e9,0x4893,0x9f,0x93,0x30,0xa4,0x61,0x1b,0xea,0x2a>
247{
248public:
250 virtual const char* get_address() const = 0;
251
259
270
275
282 virtual const ISoftware_package* get_software_package( Size index) const = 0;
283
289
315 Size requested_nodes, const char* software_package_id, Sint32* errors = 0) = 0;
316
325 virtual Sint32 release_cluster() = 0;
326
332
341
360 virtual bool authenticate_user(
361 const char* user_name, const char* password, bool* is_admin = 0, Sint32* errors = 0) = 0;
362
369 virtual void set_auto_release_cluster( bool auto_release_enabled) = 0;
370
374 virtual bool get_auto_release_cluster() = 0;
375
379 virtual const char* get_vca_name() const = 0;
380};
381
384 base::Interface_declare<0x6ac7506d,0x3604,0x49ad,0xb9,0xc3,0x6f,0xb3,0xf5,0x0c,0xa3,0x0f>
385{
386public:
405 const char* address, const char* user_name, const char* password, Sint32* errors = 0) = 0;
406};
407 // end group mi_neuray_cluster_manager
409
410} // namespace neuraylib
411
412} // namespace mi
413
414#endif // MI_NEURAYLIB_ICLUSTER_MANAGER_CONFIGURATION_H
Mixin class template for deriving new interface declarations.
Definition: interface_declare.h:43
Represents a cluster which was reserved through the cluster manager.
Definition: icluster_manager_configuration.h:111
virtual ICluster_manager_node * get_cluster_node(Size index)=0
Returns a node which is part of the cluster.
virtual bool can_be_closed()=0
Indicates if the cluster can be closed by the application through this API.
virtual const char * get_head_node()=0
Returns the name of the head node of the cluster.
virtual ICluster_manager_node * grow_cluster(Sint32 *errors)=0
Grows the cluster by one node.
virtual const char * get_authentication_token()=0
Returns an authentication token which has to be provided by the Bridge client when making the connect...
virtual const char * get_software_package_id()=0
Returns the ID of software package which was started on the cluster, or NULL if no software was start...
virtual Sint32 shrink_cluster(ICluster_manager_node *node)=0
Shrinks the cluster by one node.
virtual const char * get_bridge_protocol_version()=0
Returns the Bridge protocol version of the cluster.
virtual ICluster_manager_node * get_head_node_descriptor()=0
Returns a descriptor of the head node of the cluster.
virtual Size get_number_of_cluster_nodes()=0
Returns the number of nodes in the cluster.
virtual const char * get_head_node_address()=0
Returns the address of the head node of the cluster.
virtual bool is_compatible()=0
Indicates whether server's Bridge protocol version is compatible with the client's Bridge protocol ve...
An API component which can be used to create a connection to a cluster manager.
Definition: icluster_manager_configuration.h:385
virtual ICluster_manager_connection * connect(const char *address, const char *user_name, const char *password, Sint32 *errors=0)=0
Creates a connection to a cluster manager.
Represents a connection to a cluster manager.
Definition: icluster_manager_configuration.h:247
virtual ICluster_manager_cluster * get_cluster()=0
Returns the reserved cluster for this user, or NULL if there is none.
virtual bool get_auto_release_cluster()=0
Return if auto-release is enabled or not.
virtual const char * get_vca_name() const =0
Get the name of the VCA to which this connections connects to.
virtual const ISoftware_package * get_software_package(Size index) const =0
Returns a software package.
virtual ICluster_manager_cluster * reserve_cluster(Size requested_nodes, const char *software_package_id, Sint32 *errors=0)=0
Reserves a cluster of nodes from the pool of free nodes.
virtual const char * get_address() const =0
Returns the address of the cluster manager to which this connection connects to.
virtual void set_cluster_notification_callback(ICluster_notification_callback *callback)=0
Sets a callback to be called in case of certain events.
virtual const ICluster_pool_information * get_cluster_pool_information() const =0
Returns information about the pool.
virtual void set_auto_release_cluster(bool auto_release_enabled)=0
Sets if a reserved cluster should be auto-released, if this connection is closed / lost for example b...
virtual bool authenticate_user(const char *user_name, const char *password, bool *is_admin=0, Sint32 *errors=0)=0
Checks whether an user exists on the cluster manager and whether the password matches.
virtual const ISoftware_package * get_compatible_software_package(Size index) const =0
Returns a compatible software package.
virtual Size get_number_of_compatible_software_packages() const =0
Returns the number of compatible software packages.
virtual Sint32 release_cluster()=0
Releases the reserved cluster for this user.
virtual Size get_number_of_software_packages() const =0
Returns the number of software packages.
Provides information about a node which is part of a node pool or reserved cluster.
Definition: icluster_manager_configuration.h:62
virtual Float32 get_cpu_load()=0
Returns the current CPU load on the node in percent.
virtual Size get_gpu_count()=0
Returns the number of GPUs installed in the node.
virtual const char * get_user_name()=0
Returns the name of a user which has currently reserved the node, or NULL if the node is free.
virtual Size get_total_gpu_memory()=0
Returns the total amount of GPU memory (per GPU).
virtual const char * get_ip_address()=0
Returns the IP address of the node.
virtual Size get_total_main_memory()=0
Returns the total amount of main memory in bytes on the node.
virtual const char * get_node_name()=0
Returns the node name of the node.
virtual Float32 get_gpu_load()=0
Returns the current GPU load on the node in percent.
virtual Size get_free_main_memory()=0
Returns the amount of free main memory in bytes on the node.
virtual Size get_cpu_count()=0
Returns the number of CPU cores installed in the node.
virtual Size get_free_gpu_memory()=0
Returns the amount of free GPU memory (per GPU).
Abstract interface for giving notifications about errors and status changes.
Definition: icluster_manager_configuration.h:37
virtual void cluster_ready_callback(bool is_ready)=0
This callback will be called when the cluster is fully started and connected.
virtual void status_change_callback()=0
This callback will be called when some node in the pool changed status, e.g., a cluster was reserved ...
virtual void cluster_change_callback()=0
This callback will be called when the user's cluster changed.
virtual void error_callback()=0
This callback will be called when an error occurred, like the connection broke down.
Represents a pool of nodes managed though the cluster manager.
Definition: icluster_manager_configuration.h:204
virtual ICluster_manager_node * get_node(Size index) const =0
Returns a node which is part of the pool.
virtual Size get_number_of_nodes() const =0
Returns the number of nodes in the pool.
Represents a software package installed on the pool of nodes.
Definition: icluster_manager_configuration.h:227
virtual const char * get_bridge_protocol_version() const =0
Returns the bridge protocol version.
virtual const char * get_description() const =0
Returns the description of the software package.
virtual const char * get_id() const =0
Returns the ID of the software package.
Uint64 Size
Unsigned integral type that is large enough to hold the size of all types.
Definition: types.h:112
float Float32
32-bit float.
Definition: types.h:51
signed int Sint32
32-bit signed integer.
Definition: types.h:46
Mixin class template for deriving new interface declarations.
Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH.
Definition: dice.h:89