Skip to main content
A machine type is a catalog resource that defines the compute shape of an agent VM. Each environment references one machine type by name via machine_type_ref. The platform provides built-in machine types for common VM shapes on GCP and AWS. Built-in machine types are immutable: you cannot edit one or delete it outright. murmur rm machine-type <name> disables a built-in, and murmur set machine-type <name> with no input re-enables it. A VM reads its compute rate from its machine type and its storage rate from its disk type, so price every region your placements use in both entries. See Pricing for every built-in machine type’s current list rate.

Fields

GCE spec fields

Set gce for GCP machine types:

Disk compatibility

An environment names a machine type and a disk type independently, and not every GCE machine family accepts every disk type: the newer families take Hyperdisk and refuse Persistent Disk. List the disk types a machine type accepts in gce.supported_disk_types, and an environment pairing it with a disk type outside that list is rejected when the environment is written, rather than when GCE refuses to create the VM. Compatibility is declared, not inferred. A machine type whose gce.supported_disk_types is empty declares no restriction and pairs with any disk type. Each entry is matched verbatim against a disk type’s gce.disk_type, so entries must be non-empty and distinct. Both records the environment names are held to the pairing for as long as the environment stands: a machine type whose gce.supported_disk_types no longer covers a disk type an environment pairs it with is rejected, as is a disk type repointed at a gce.disk_type its environment’s machine type does not accept. The error names the environment the write would break, so either change is made by writing the environment onto a compatible pair first.

AWS spec fields

Set aws for AWS machine types:

GPU support

A GPU reaches an agent VM through the machine type itself. On GCE, that is an accelerator-optimized machine type: the a2, a3, a4, a4x, g2, and g4 series each include a fixed GPU model and count, so machine_type: a2-highgpu-1g with has_gpu: true provisions the GPUs that machine type comes with. On AWS, an EC2 GPU instance type such as g5.2xlarge works the same way. Nothing attaches a GPU to a GCE machine type that lacks one, so on GCE has_gpu and the machine type must agree:
  • has_gpu: true requires an accelerator-optimized gce.machine_type. On any other machine type it claims a GPU the VM would not have, and is rejected.
  • An accelerator-optimized gce.machine_type requires has_gpu: true (with gpu_kind), so the machine type describes the GPUs its VMs get.
  • gce.accelerator_type and gce.accelerator_count request accelerators attached separately to an ordinary machine type. That is not yet supported: setting either is rejected.
A rejected declaration fails the write, and an environment referencing a machine type stored with one fails VM creation with UNSUPPORTED_GPU_SHAPE.

Region configuration

Each entry in a regions map is a RegionConfig object:

Examples

Listing machine types

The list prints one name per line, with no header. A disabled built-in prints with a (disabled — re-enable: murmur set machine-type <name>) marker.

Reading a single machine type

GCE machine type

GCE GPU machine type

An accelerator-optimized machine type includes its GPUs, so no accelerator fields are set:

AWS machine type

Creating a machine type

Errors