Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Eventual Inc Daft ResourceRequest

From Leeroopedia


Knowledge Sources
Domains Data_Engineering, Resource_Management
Last Updated 2026-02-08 00:00 GMT

Overview

Concrete tool for declaring computational resource requirements for query fragment tasks provided by the Daft library.

Description

The ResourceRequest class is a Rust-backed binding that encapsulates CPU, GPU, and memory requirements for UDF scheduling. It supports arithmetic operations (addition and scalar multiplication) for combining resource requests, as well as a static max_resources method for computing field-wise maximums. Builder-style methods (with_num_cpus, with_num_gpus, with_memory_bytes) allow modifying individual fields.

Usage

Import from daft.daft and construct a ResourceRequest when you need to explicitly declare resource requirements for UDF tasks.

Code Reference

Source Location

  • Repository: Daft
  • File: daft/daft/__init__.pyi (Rust binding stub)
  • Lines: L207-232

Signature

class ResourceRequest:
    num_cpus: float | None
    num_gpus: float | None
    memory_bytes: int | None

    def __init__(
        self,
        num_cpus: float | None = None,
        num_gpus: float | None = None,
        memory_bytes: int | None = None,
    ): ...

Import

from daft.daft import ResourceRequest

I/O Contract

Inputs

Name Type Required Description
num_cpus None No Number of CPUs required. None means no CPU constraint.
num_gpus None No Number of GPUs required. None means no GPU constraint.
memory_bytes None No Amount of memory in bytes required. None means no memory constraint.

Outputs

Name Type Description
return ResourceRequest A ResourceRequest object used by the scheduler for task placement and concurrency control.

Usage Examples

Basic Usage

from daft.daft import ResourceRequest

# Request 2 CPUs, 1 GPU, and 4GB of memory
rr = ResourceRequest(num_cpus=2.0, num_gpus=1.0, memory_bytes=4 * 1024**3)

# Builder-style modification
rr2 = rr.with_num_gpus(2.0)

# Combine resource requests
combined = rr + rr2

# Field-wise maximum
max_rr = ResourceRequest.max_resources([rr, rr2])

Related Pages

Implements Principle

Requires Environment

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment