Skip to main content

A simple distributed task execution system for GPU servers

Project description

PyLet

PyPI version Python versions License

A simple distributed task execution system for GPU servers. Like Ray/K8s but much simpler.

Install

pip install pylet

For development:

git clone https://github.com/ServerlessLLM/pylet.git
cd pylet
pip install -e ".[dev]"

Quick Start

# Terminal 1: Start head node
pylet start

# Terminal 2: Start worker node with GPUs
pylet start --head localhost:8000 --gpu-units 4

# Terminal 3: Submit an instance
pylet submit 'vllm serve Qwen/Qwen2.5-1.5B-Instruct --port $PORT' \
    --gpu-units 1 --name my-vllm

# Check status
pylet get-instance --name my-vllm

# Get endpoint for inference
pylet get-endpoint --name my-vllm
# Output: 192.168.1.10:15600

# View logs
pylet logs <instance-id>

# Cancel
pylet cancel <instance-id>

See examples/README.md for more detailed examples including vLLM and SGLang.

Commands

Command Description
pylet start Start head node
pylet start --head <ip:port> --gpu-units N Start worker with N GPUs
pylet submit <cmd> --gpu-units N --name <name> Submit instance
pylet get-instance --name <name> Get instance status
pylet get-endpoint --name <name> Get instance endpoint (host:port)
pylet logs <id> View instance logs
pylet logs <id> --follow Follow logs in real-time
pylet cancel <id> Cancel instance
pylet list-workers List registered workers

Key Features

  • Simple: No containers, no complex configs. Just pylet start and pylet submit.
  • GPU-aware: Automatic GPU allocation via CUDA_VISIBLE_DEVICES.
  • Service discovery: Instances get a PORT env var; endpoint available via get-endpoint.
  • Real-time logs: Stream logs from running instances.
  • Graceful shutdown: SIGTERM with configurable grace period before SIGKILL.

Requirements

  • Python 3.9+
  • Linux (tested on Ubuntu)

License

Apache 2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pylet-0.1.0.tar.gz (33.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pylet-0.1.0-py3-none-any.whl (37.1 kB view details)

Uploaded Python 3

File details

Details for the file pylet-0.1.0.tar.gz.

File metadata

  • Download URL: pylet-0.1.0.tar.gz
  • Upload date:
  • Size: 33.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pylet-0.1.0.tar.gz
Algorithm Hash digest
SHA256 27c4c47b0537230045d751671db85dddb5f3c70fcfb162f279860ddecb7a64d7
MD5 c4092f9ff352dc70d81f80c61a486d25
BLAKE2b-256 31ea8f1d01f3f934fcea227dd4247870545c1ed32035def43a695e0184e04ff0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pylet-0.1.0.tar.gz:

Publisher: release.yml on ServerlessLLM/pylet

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pylet-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pylet-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 37.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pylet-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 aa10facfb17966d82762fe6c9ddcbcb3816eb16cab9602be0bbea977604fb116
MD5 6bf94843cd5de020fc97a269716b8a44
BLAKE2b-256 03e562a61438bfe8ca8a515d9961c9f26b42260c3f2670431a06711ee5ace730

See more details on using hashes here.

Provenance

The following attestation bundles were made for pylet-0.1.0-py3-none-any.whl:

Publisher: release.yml on ServerlessLLM/pylet

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page