Dynamo Runtime
A Datacenter Scale Distributed Inference Serving Framework
Rust implementation of the Dynamo runtime system, enabling distributed computing capabilities for machine learning workloads.
Prerequisites
Install Rust and Cargo using rustup:
Build
Start Dependencies
Docker Compose
The simplest way to deploy the pre-requisite services is using docker-compose, defined in deploy/docker-compose.yml.
This will deploy a NATS.io server and an etcd server used to communicate between and discover components at runtime.
Local (alternate)
To deploy the pre-requisite services locally instead of using docker-compose
above, you can manually launch each:
- NATS.io server with Jetstream
- example:
nats-server -js --trace
- example:
- etcd server
- follow instructions in etcd installation to start an
etcd-serverlocally
- follow instructions in etcd installation to start an
Run Examples
When developing or running examples, any process or user that shared your core-services (etcd and nats.io) will
be operating within your distributed runtime.
The current examples use a hard-coded namespace. We will address the namespace collisions later.
Most examples require etcd for service discovery. nats.io is required for KV-aware routing with event tracking; for approximate mode (--no-kv-events), NATS is optional.
Rust hello_world
With two terminals open, in one window:
In the second terminal, execute:
which should yield some output similar to:
Python
See the README.md for details
The Python and Rust hello_world client and server examples are interchangeable,
so you can start the Python server.py and talk to it from the Rust client.