VM Size and Type

You can control the size of workers and scheduler with keywords like worker_cpu=16 or scheduler_memory="128 GiB". By default Coiled will select instance types with common CPU/memory ratios

cluster = coiled.Cluster(
    n_workers=15,
    worker_memory="64 GiB",
)
client = cluster.get_client()

Alternatively, if you know the specific instance type that you want, you can specify it explicitly.

cluster = coiled.Cluster(
    n_workers=15,
    worker_vm_types=["m7i.xlarge"],
)

Tip

To avoid instance availability issues, you can specify a list of instance types. Lists of instance types are prioritized in order of decreasing priority.

Allowable Instance Types

You can use coiled.list_instance_types() to return a dictionary of allowed instance types, with values for each instance type and keys containing a dictionary of characteristics for that instance type.

You can specify a single keyword argument or a combination (i.e. backend, cores, memory, arch, and gpus) to filter the results.

import coiled

# Filter instances by cloud provider, cores, and memory
coiled.list_instance_types(backend="aws", cores=2, memory="8 Gib")

You can also provide list_instance_types with a range of values, for example:

coiled.list_instance_types(backend="gcp", cores=[2, 8])

For those interested in GPUs, you can use gpu to specify an exact number or a range of GPUs. The following, for example, will return all Google Cloud instance types containing at least one, but not more than 4 GPUs.

coiled.list_instance_types(backend="gcp", gpus=[1, 2])

Note

For AWS, GPUs are tied to the instance type, but for GCP you can add different GPU types to GPU enabled instances (see GPUs).

You can also use arch to filter by CPU architecture. The following, for example, will return available ARM-based instance types (see ARM):

coiled.list_instance_types(backend="aws", arch="arm64")