Use Hardware Profiles
Virtual machines use memory swapping to create space for data storage and networking tasks while still reserving memory for RAM, ROM, and server processing. The memory allocation lets you configure your virtual machine to simulate a specific number of Central Processing Units (CPUs) and the number and type of Graphics Processing Units (GPUs).
This hardware configuration for virtual device allocation is known as a hardware profile.
Hardware Profiles on the C3 Agentic AI Platform
You can use hardware profiles with the C3 Agentic AI Platform when your C3 cluster is running in a cloud environment.
Specifically, when your C3 AI Cluster is running on a cloud environment such as Microsoft Azure, Amazon Web Service (AWS), or Google Cloud Provider (GCP), it is within a pre-configured virtual machine that includes a combination of CPUs, GPUs, memory, storage, and networking capacity.
Re-allocate configurations
The C3 Agentic AI Platform is typically bundled with a Cassandra and Postgres database, and individual servers are maintained and orchestrated by Kubernetes. By default, Kubernetes controls the size of the hardware configurations used for the cluster and the applications within a cluster.
Based on the complexity and volume of the processes that the application and server are running, Kubernetes can add more memory or processing power. For instance, if you have a server that is already running, and you realize you require more memory on that server, you can bring down the server and reallocate the memory, CPUs, and GPUs. If your server is often running high loads, you can bring up new nodes to increase capacity. This is known as horizontal scaling.
Application nodes
Individual C3 AI applications are backed by server nodes that are grouped into various App.NodePools. See Overview of Cluster Architecture for more information about how leader nodes and task nodes are used within the C3 Agentic AI Platform.
Node pools
Hardware profiles are associated with C3 AI Node Pools. See Configure and Manage Node Pools for more information.
Batch jobs and MapReduce jobs are two of the most process-intense objects that you can use within your C3 AI application. If you are running a method from the BatchJob or MapReduce Types (on one of the task nodes in your application), you can use the HardwareProfile Type to re-allocate the memory on your cloud instance to a specific node pool.
Create and modify a Hardware Profile
In past releases, hardware profiles were based on Amazon EC2 instance types. Instance types are no longer used with hardware profiles in version 8 of the C3 Agentic AI Platform.
The corresponding C3 AI Type is called HardwareProfile and includes the following fields:
- name: string, the name of the hardware profile
- cpu: number of virtual CPUs to allocate
- gpu: number of virtual GPUs to allocate
- memoryMb: amount of memory to allocate to the application
- gpuVendor: the name of the GPU manufacturer
- gpuKind: the GPU product name
For example, to configure a hardware profile, enter the following command in the C3 AI Console:
HardwareProfile.upsertProfile({
'name' : 'large',
'cpu' : 4,
'gpu' : 2,
'memoryMb' : 4000,
'gpuVendor' : 'nvidia'
'gpuKind' : 'nvidia-tesla-t4'
});See the HardwareProfile Type documentation for a list of the supported fields.
Get the hardware profile for a specific node pool
To retrieve the hardware configuration for a specific node pool, run the following commands in the C3 AI Console:
# Find the node of interest:
app = App.forId(<application-id>);
app.nodes();
# Find all configurations for a given node pool
app.node(<nodeId>).nodePool().config()
# Find just hardware profile configurations for a given node pool
app.node(<nodeId>).nodePool().config().hardwareProfileUpdate hardware profile for a specific node pool
To update the hardware profile for a specific node pool, run the following commands in the C3 AI Console:
np = C3.app().nodePool("<nodepool_name>")
np.setHardwareProfile(8, 32000, 40)
np.update()See App.NodePool#setHardwareProfile for hardware profile fields you can set.