Resource requirements

Argument Type / values Omitted HTTP field
model Free-text workload description No model hint requirements.model
compute_class "accelerator" for GPU workloads Accelerator requirements.compute_class
peak_memory_gb Positive number in GB per GPU No explicit memory hint requirements.peak_memory_gb
optimization "automatic", "lowest_cost", "lower_cost", "balanced", "faster", "fastest". Compatibility only Not sent requirements.optimization
gpu "A100", "H100", "H200", "B200", "A10", "A10G", "L4", "L40", "L40S", "T4", "V100", "RTX A6000", "RTX 3090", "RTX 4090", "RTX 5090". Examples and aliases Nodus chooses requirements.gpu
gpu_count Exactly 1, 2, 4, or 8 on one machine One GPU requirements.gpu_count
gpu_interconnect "any" No topology guarantee requirements.gpu_interconnect
requirements Dictionary Optional resource hints requirements

The workload file uses the same argument names. You do not need to predict how long your program will run. Provide memory only when you know the requirement. model describes your workload and does not download model weights.

Optimization

Optimization tiers are not supported. New workloads use qualified estimates of runtime cost when every eligible configuration has comparable measurements. Otherwise Nodus orders compatible on-demand configurations by hourly price. Spending limits and independent price limits apply in both cases. This does not guarantee the lowest total cost or shortest runtime.

Omit optimization in new code. The SDK accepts automatic, lowest_cost, lower_cost, balanced, faster, and fastest for backward compatibility. These values have no preference effect on new workload or stage routing. The API records automatic for newly accepted workloads. Empty nested values remain accepted for compatibility. The flat shortcut does not accept an empty string.

GPU, memory, CPU, disk, image compatibility, location and budget requirements remain mandatory. An explicit GPU model is never replaced by another model. Omit gpu to allow more compatible models. Accepted names do not establish available capacity.

GPU model

gpu is a hard requirement. Nodus never substitutes another model, including when retrying a run. If matching capacity is unavailable, the run reports that condition. Omit gpu to let Nodus choose compatible capacity. An accepted model name does not guarantee matching capacity. GPU, memory, and other resource requirements must all fit an available machine.

These are all accepted canonical model names. Use the Python argument shown in client.run(), or the same quoted value for gpu in a workload file.

GPU model Exact Python argument
A100 gpu="A100"
H100 gpu="H100"
H200 gpu="H200"
B200 gpu="B200"
A10 gpu="A10"
A10G gpu="A10G"
L4 gpu="L4"
L40 gpu="L40"
L40S gpu="L40S"
T4 gpu="T4"
V100 gpu="V100"
RTX A6000 gpu="RTX A6000"
RTX 3090 gpu="RTX 3090"
RTX 4090 gpu="RTX 4090"
RTX 5090 gpu="RTX 5090"

Names are case-insensitive. Whitespace, hyphens, and underscores are ignored. An optional NVIDIA prefix and compact RTX names are accepted, such as "nvidia h100" and "RTX4090". "A6000" is an alias for "RTX A6000". These names describe models, not a guarantee of current capacity. Choose the model family and specify memory separately, such as gpu="A100" with peak_memory_gb=80. Supplier names and machine IDs are not GPU names.

Inside a with nodus.Client() as client: block:

Python
workload = client.run(
    image="pytorch/pytorch:2.8.0-cuda12.8-cudnn9-runtime",
    command=["python", "-c", "import torch\nprint(torch.cuda.get_device_name(0))"],
    gpu="H100",
    budget=5,
)

An explicit dictionary key wins over the matching flat shortcut: requirements={"peak_memory_gb": 48}, peak_memory_gb=24 sends 48. Workload files reject duplicate flat and nested settings so the choice is clear.

Additional dictionary fields

These fields belong inside requirements={...} in Python or [requirements] in a workload file. They are not flat run() arguments.

Field Type and units Omitted
disk_gb Finite nonnegative number in GB No explicit disk requirement
vcpus Finite nonnegative number of virtual CPUs No explicit CPU requirement
dataset_bytes Nonnegative integer in bytes No dataset-size hint
notes Text with additional workload context No notes

Omitted or zero disk and CPU values in a stage inherit the workload requirements. These fields do not transfer data or install dependencies. nodus.Requirements(...) provides optional static typing. The SDK validates GPU names, compatibility values, and numeric resource bounds for both typed and ordinary dictionaries before submission. Booleans and nonfinite numbers are not valid resource quantities. Explicit peak_memory_gb must be positive.

Multiple GPUs on one machine

Set gpu_count=8, gpu="H100", peak_memory_gb=80 to require eight H100s on one machine, each with at least 80 GB of memory. Supported counts are 1, 2, 4 and 8. Omission retains single-GPU behavior. A smaller allocation or a group of machines cannot satisfy this request. Matching capacity may be unavailable.

The count does not guarantee NVLink, NVSwitch or pooled device memory. gpu_interconnect="any" declares no topology constraint. Other interconnect values are rejected because the platform cannot yet verify that guarantee. Do not submit topology-dependent training until its topology is supported.

The displayed node hourly price covers the whole allocation. Your budget covers the run, including all devices, rather than applying separately to each GPU. Recovery and saved-run reuse preserve the requested count. Nodus preserves your command arguments. Supply your own distributed launcher and application configuration, such as torchrun --nnodes=1 --nproc_per_node=8.