|
1 | | ---- |
2 | | -layout: home |
| 1 | +<div style="text-align: center; margin: 1.5rem 0 2rem;"> |
| 2 | + <img src="/pylet-docs/pylet_logo.png" alt="PyLet" style="width: 100%; max-width: 480px;" /> |
| 3 | +</div> |
3 | 4 |
|
4 | | -hero: |
5 | | - name: PyLet |
6 | | - text: Pythonic GPU Cluster Management |
7 | | - tagline: Pure Python, no containers, no YAML — just pylet start and pylet submit. |
8 | | - actions: |
9 | | - - theme: brand |
10 | | - text: Quick Start |
11 | | - link: /getting-started/quickstart |
12 | | - - theme: alt |
13 | | - text: View on GitHub |
14 | | - link: https://github.com/ServerlessLLM/pylet |
| 5 | +# PyLet |
15 | 6 |
|
16 | | -features: |
17 | | - - icon: 🚀 |
18 | | - title: Simple |
19 | | - details: One pip install, ~5 commands to learn. No containers, no complex configs. |
20 | | - - icon: 🎮 |
21 | | - title: GPU-Aware |
22 | | - details: Automatic GPU allocation via CUDA_VISIBLE_DEVICES. Request by count or specific indices. |
23 | | - - icon: 🔍 |
24 | | - title: Service Discovery |
25 | | - details: Instances get a PORT env var. Look up endpoints with one command. |
26 | | - - icon: 🐍 |
27 | | - title: Python API |
28 | | - details: Full programmatic control alongside the CLI. Async API included. |
29 | | - - icon: 📄 |
30 | | - title: Config Files |
31 | | - details: Define jobs in TOML for reproducibility. CLI args override config values. |
32 | | - - icon: 📋 |
33 | | - title: Real-Time Logs |
34 | | - details: Stream logs from running instances. Never lose output — even on crash. |
35 | | ---- |
| 7 | +PyLet is a lightweight distributed task execution system for GPU servers. Pure Python, no containers, no YAML — just `pylet start` and `pylet submit`. |
36 | 8 |
|
37 | | -## Install |
| 9 | +**Simple · GPU-Aware · Python-Native** |
38 | 10 |
|
39 | | -```bash |
40 | | -pip install pylet |
41 | | -``` |
| 11 | +## Getting Started |
42 | 12 |
|
43 | | -## 30-Second Demo |
| 13 | +- [**Quick Start**](getting-started/quickstart) — Install PyLet and run your first task in 30 seconds |
44 | 14 |
|
45 | | -```bash |
46 | | -# Terminal 1: Start the head node |
47 | | -pylet start |
| 15 | +## Guide |
48 | 16 |
|
49 | | -# Terminal 2: Start a worker with 4 GPUs |
50 | | -pylet start --head localhost:8000 --gpu-units 4 |
| 17 | +- [**Core Concepts**](guide/concepts) — Tasks, workers, GPU allocation |
| 18 | +- [**Configuration**](guide/configuration) — TOML config files and CLI overrides |
| 19 | +- [**Examples**](guide/examples) — Common usage patterns and workflows |
51 | 20 |
|
52 | | -# Terminal 3: Run something! |
53 | | -pylet submit 'echo Hello from PyLet!' --name hello |
54 | | -``` |
| 21 | +## Reference |
55 | 22 |
|
56 | | -That's it. You now have a working cluster. |
| 23 | +- [**CLI Reference**](reference/cli) — All commands and options |
| 24 | +- [**Python API**](reference/python-api) — Programmatic and async API |
57 | 25 |
|
58 | | -## Why PyLet? |
| 26 | +## Advanced |
59 | 27 |
|
60 | | -| Problem | PyLet's Answer | |
61 | | -|:--------|:---------------| |
62 | | -| "Who's using which GPU?" | Automatic GPU allocation via `CUDA_VISIBLE_DEVICES` | |
63 | | -| "How do I run my job on a remote machine?" | `pylet submit "python train.py" --gpu-units 2` | |
64 | | -| "How do I find my running service?" | `pylet get-endpoint --name my-service` | |
65 | | -| "I just want to run something, not learn K8s" | PyLet has ~5 commands to learn | |
66 | | - |
67 | | -## Requirements |
68 | | - |
69 | | -- Python 3.9+ |
70 | | -- Linux (tested on Ubuntu) |
| 28 | +- [**Architecture**](advanced/architecture) — System design and internals |
| 29 | +- [**Troubleshooting**](advanced/troubleshooting) — Common issues and solutions |
0 commit comments