Scheduling Auctions
All hosts within a lattice participate in auctions. An auction is performed when a client of the lattice control interface (e.g. the wash
CLI, wadm
, or another application) publishes a set of requirements to all hosts within the lattice.
Each host in the lattice will determine whether or not it meets those requirements. If it does, the host will respond to the auction. The primary reason to hold an auction is to use the results for scheduling workloads. A target host for an actor or capability provider can be chosen from among the auction responders.
Specifying Requirements
The set of requirements are defined as a set of label name-value pairs. A host meets these requirements only if all of the name-value pairs are defined on the host.
Examples
Auction requirements are simple but flexible. Consider deploying a machine learning inferencing capability provider to a lattice where some hosts are running on hardware that have attached hardware accelerators. These hosts can be started with a label like gpu=A100
, allowing a client to schedule the capability provider on an appropriate host.
Auctions can also be used to ensure that an entire workload is run in a specific area, such as a cloud's availability zone. For example, hosts could be started with labels like az=us-east-1a
and az=us-east-1b
. This approach can be use to guarantee that traffic for an application is kept local.
In Practice
In production, it's unlikely to perform auctions directly. However, wadm
uses similar logic internally to schedule workloads.