Skip to main content
Version: Latest

Compute Config API Reference

Check your docs version

These docs are for the new Anyscale design. If you started using Anyscale before April 2024, use Version 1.0.0 of the docs. If you're transitioning to Anyscale Preview, see the guide for how to migrate.

Customer-hosted cloud features

note

Some features are only available on customer-hosted clouds. Reach out to preview-help@anyscale.com for info.

Compute Config Models

ComputeConfig

Configuration for instance types and cloud resources for a cluster.

Fields

  • cloud (str | None): The Anyscale Cloud to run this workload on. If not provided, the organization default will be used (or, if running in a workspace, the cloud of the workspace).
  • head_node (HeadNodeConfig | Dict | None): Configuration options for the head node of the cluster. Defaults to the cloud's default head node configuration.
  • worker_nodes (List[WorkerNodeGroupConfig | Dict] | None): Configuration options for the worker nodes of the cluster. If not provided, worker nodes will be automatically selected based on logical resource requests. To use a head-node only cluster, pass [] here.
  • max_resources (Dict[str, float] | None): Total maximum logical resources across all nodes in the cluster. Resources omitted from this field have no maximum. Only 'CPU' and 'GPU' resource limits are currently supported.
  • zones (List[str] | None): Availability zones to consider for this cluster. Defaults to all zones in the cloud's region. By default all instances will run in the same zone to save cost, unless enable_cross_zone_scaling is set.
  • enable_cross_zone_scaling (bool): Allow instances in the cluster to be run across multiple zones. This is recommended when running production services (for fault-tolerance in a zone failure scenario). It is not recommended for workloads that have a large amount of inter-zone communication due to the possibility of higher costs and degraded performance.
  • advanced_instance_config (Dict[str, Any] | None): Advanced instance configurations that will be passed through to the cloud provider.
  • flags (Dict[str, Any] | None): Cluster-level flags specifying advanced or experimental options.

Python Methods

def __init__(self, **fields) -> ComputeConfig
"""Construct a model with the provided field values set."""

def options(self, **fields) -> ComputeConfig
"""Return a copy of the model with the provided field values overwritten."""

def to_dict(self) -> Dict[str, Any]
"""Return a dictionary representation of the model."""

Examples

cloud: my-cloud
head_node:
instance_type: m5.8xlarge
worker_nodes:
- instance_type: m5.8xlarge
min_nodes: 5
max_nodes: 5
- instance_type: m5.4xlarge
min_nodes: 1
max_nodes: 10
market_type: SPOT

HeadNodeConfig

Configuration options for the head node of a cluster.

Fields

  • instance_type (str): Cloud provider instance type, e.g., m5.2xlarge on AWS or n2-standard-8 on GCP.
  • resources (Dict[str, float] | None): Logical resources that will be available on this node. Defaults to match the physical resources of the instance type.
  • advanced_instance_config (Dict[str, Any] | None): Advanced instance configurations that will be passed through to the cloud provider.
  • flags (Dict[str, Any] | None): Node-level flags specifying advanced or experimental options.

Python Methods

def __init__(self, **fields) -> HeadNodeConfig
"""Construct a model with the provided field values set."""

def options(self, **fields) -> HeadNodeConfig
"""Return a copy of the model with the provided field values overwritten."""

def to_dict(self) -> Dict[str, Any]
"""Return a dictionary representation of the model."""

Examples

head_node:
instance_type: m5.8xlarge

WorkerNodeGroupConfig

Configuration options for a worker node group in a cluster.

Clusters can have multiple worker node groups that use different instance types or configurations.

Fields

  • instance_type (str): Cloud provider instance type, e.g., m5.2xlarge on AWS or n2-standard-8 on GCP.
  • resources (Dict[str, float] | None): Logical resources that will be available on this node. Defaults to match the physical resources of the instance type.
  • advanced_instance_config (Dict[str, Any] | None): Advanced instance configurations that will be passed through to the cloud provider.
  • flags (Dict[str, Any] | None): Node-level flags specifying advanced or experimental options.
  • name (str | None): Unique name of this worker group. Defaults to a human-friendly representation of the instance type.
  • min_nodes (int): Minimum number of nodes of this type that will be kept running in the cluster.
  • max_nodes (int): Maximum number of nodes of this type that can be running in the cluster.
  • market_type (str | MarketType): The type of instances to use (see MarketType enum values for details).

Python Methods

def __init__(self, **fields) -> WorkerNodeGroupConfig
"""Construct a model with the provided field values set."""

def options(self, **fields) -> WorkerNodeGroupConfig
"""Return a copy of the model with the provided field values overwritten."""

def to_dict(self) -> Dict[str, Any]
"""Return a dictionary representation of the model."""

Examples

worker_nodes:
- instance_type: m5.8xlarge
min_nodes: 5
max_nodes: 5
- instance_type: m5.4xlarge
min_nodes: 1
max_nodes: 10
market_type: SPOT

MarketType

Market type of instances to use (on-demand vs. spot).

Values

  • ON_DEMAND: Use on-demand instances only.
  • SPOT: Use spot instances only.
  • PREFER_SPOT: Prefer to use spot instances, but fall back to on-demand if necessary. If on-demand instances are running and spot instances become available, the on-demand instances will be evicted and replaced with spot instances.

ComputeConfigVersion

Details of a created version of a compute config.

Includes the config options and metadata such as the name, version, and ID.

Fields

  • name (str): Name of the compute config including the version tag, i.e., 'name:version'.
  • id (str): Unique ID of the compute config.
  • config (ComputeConfig): The compute configuration.

Python Methods

def to_dict(self) -> Dict[str, Any]
"""Return a dictionary representation of the model."""

Examples

import anyscale
from anyscale.compute_config.models import (
ComputeConfigVersion
)

version: ComputeConfigVersion = anyscale.compute_config.get("my-compute-config")

Compute Config CLI

anyscale compute-config create

Usage

anyscale compute-config create [OPTIONS] [COMPUTE_CONFIG_FILE]

Create a new version of a compute config from a YAML file.

(1) To use the new schema defined at https://docs.anyscale.com/preview/reference/compute-config-api#computeconfig, use the -f/--config-file flag:

anyscale compute-config create -f new_schema_config.yaml

(2) To use the old schema defined at https://docs.anyscale.com/reference/python-sdk/models#createclustercomputeconfig, use the positional argument:

anyscale compute-config create old_schema_config.yaml

Options

  • -n/--name: Name for the created compute config. This should not include a version tag. If a name is not provided, an anonymous compute config is generated. Anonymous compute configs are not accessible in the UI and can only be referenced by their ID.
  • -f/--config-file: Path to a YAML config file defining the compute config. Schema: https://docs.anyscale.com/preview/reference/compute-config-api#computeconfig.

anyscale compute-config get

Usage

anyscale compute-config get [OPTIONS] [COMPUTE_CONFIG_NAME]

Get the details of a compute config.

The name can contain an optional version, e.g., 'name:version'. If no version is provided, the latest one will be archived.

Options

anyscale compute-config archive

Usage

anyscale compute-config archive [OPTIONS] [COMPUTE_CONFIG_NAME]

Archive all versions of a specified compute config.

Options

  • -n/--name: Name of the compute config to archive.
  • --compute-config-id/--id: ID of the compute config to archive. Alternative to name.

Compute Config SDK

anyscale.compute_config.create

Create a new version of a compute config.

Returns the full name of the registered compute config, including the version.

Arguments

  • config (ComputeConfig): The config options defining the compute config.
  • name (str | None): The name of the compute config. This should not include a version tag. If a name is not provided, one will be automatically generated.

Returns: str

Examples

import anyscale
from anyscale.compute_config.models import ComputeConfig, HeadNodeConfig, MarketType, WorkerNodeGroupConfig

config = ComputeConfig(
head_node=HeadNodeConfig(
instance_type="m5.8xlarge",
),
worker_nodes=[
WorkerNodeGroupConfig(
instance_type="m5.8xlarge",
min_nodes=5,
max_nodes=5,
),
WorkerNodeGroupConfig(
instance_type="m5.4xlarge",
min_nodes=1,
max_nodes=10,
market_type=MarketType.SPOT,
),
],
)
full_name: str = anyscale.compute_config.create(config, name="my-compute-config")

anyscale.compute_config.get

Get the compute config with the specified name.

The name can contain an optional version tag, i.e., 'name:version'. If no version is provided, the latest one will be returned.

Arguments

  • name (str): The name of the compute config. This can inclue an optional version tag, i.e., 'name:version'. If no version tag is provided, the latest version will be returned.
  • include_archived (bool) = False: Whether to consider archived compute configs (defaults to False).

Returns: ComputeConfigVersion

Examples

import anyscale
from anyscale.compute_config.models import ComputeConfig

compute_config: ComputeConfig = anyscale.compute_config.get("my-compute-config")

anyscale.compute_config.archive

Archive a compute config and all of its versions.

The name can contain an optional version, e.g., 'name:version'. If no version is provided, the latest one will be archived.

Once a compute config is archived, its name will no longer be usable in the organization.

Arguments

  • name (str): Name of the compute config.

Examples

import anyscale

anyscale.compute_config.archive(name="my-compute-config")