client.run(). Hardware is allocated per Call, so different parts of the same application can use different combinations of CPUs, memory, and GPUs.
CPUs
Usecpu to specify the number of CPUs assigned to the Call. Requested CPUs are assigned to one worker. The default is one CPU.
Memory
Usememory_bytes to set the amount of RAM available to the worker. Memory is specified in bytes. The limit includes temporary shared memory (used by /dev/shm). If memory_bytes is omitted, OuterProduct provides 2 GiB of memory per requested CPU.
GPUs
Setgpu_type to request a particular GPU and gpu to specify the count. When gpu_type is provided and gpu is omitted, OuterProduct assigns one GPU by default.
gpu=2 assigns two GPUs to the same worker and container. It does not start two workers or divide the function into two Calls. Your code must use a multi-GPU framework such as PyTorch Distributed to take advantage of both GPUs. To run independent work across multiple workers, use client.map() to create multiple Calls with one GPU instead.
Your Image must also contain the drivers and libraries required by your application, such as a CUDA-enabled build of PyTorch.
Supported GPUs
OuterProduct supports several NVIDIA GPU types, including L4, L40S, A10G, A100, and H100. Available GPU models and supported counts depend on the platform’s execution backend and may change over time. The Python API does not currently expose a complete list of supported (gpu_type, gpu) configurations.
You can inspect the GPU types and per-node counts currently available to your account from the Python API:
A supported (
gpu_type, gpu) configuration may still take longer to start when capacity is limited. Unsupported configurations return an error.