diff --git a/mkdocs/docs/concepts/tasks.md b/mkdocs/docs/concepts/tasks.md
index 0d82e5d2a..d35f9d3c9 100644
--- a/mkdocs/docs/concepts/tasks.md
+++ b/mkdocs/docs/concepts/tasks.md
@@ -223,10 +223,10 @@ the index of the node within that group.
Currently, only `resources`, `commands`, and `ports` can be configured per node group. [`groups`](../reference/dstack.yml/task.md#groups) and top-level `nodes` are mutually exclusive.Support for other properties is coming soon.
-??? info "Prefill/decode example"
- Node groups can mix CPU and GPU roles. This SGLang prefill/decode split uses a CPU
+??? info "PD disaggregation"
+ While PD disaggregaton is mostly used with [services](services.md#pd-disaggregation), it also possible to run it as tasks. The example below runs a CPU
router (`groups[0]`, the master) and GPU workers. `startup_order: workers-first`
- starts prefill and decode before the router.
+ instructs `dstack` to start prefill and decode workers before the router.
@@ -241,8 +241,7 @@ Currently, only `resources`, `commands`, and `ports` can be configured per node
startup_order: workers-first
groups:
# Router (CPU) — master node; wires prefill + decode by IP
- - name: router
- nodes: 1
+ - nodes: 1
commands:
- pip install smg
- |
@@ -259,8 +258,7 @@ Currently, only `resources`, `commands`, and `ports` can be configured per node
resources:
cpu: 4
- - name: prefill
- nodes: 1
+ - nodes: 1
commands:
- |
python -m sglang.launch_server \
@@ -272,8 +270,7 @@ Currently, only `resources`, `commands`, and `ports` can be configured per node
resources:
gpu: H200
- - name: decode
- nodes: 1
+ - nodes: 1
commands:
- |
python -m sglang.launch_server \
@@ -287,9 +284,8 @@ Currently, only `resources`, `commands`, and `ports` can be configured per node
-!!! info "Examples"
- See the [Ray+RAGEN](../examples/training/ray-ragen.md) example for running a Ray cluster,
- and the [NCCL/RCCL tests](../examples/clusters/nccl-rccl-tests.md) example for running `mpirun` with node groups.
+> See the [Ray+RAGEN](../examples/training/ray-ragen.md) example for running a Ray cluster,
+and the [NCCL/RCCL tests](../examples/clusters/nccl-rccl-tests.md) example for running `mpirun` with node groups.
### Resources
diff --git a/mkdocs/docs/examples/clusters/nccl-rccl-tests.md b/mkdocs/docs/examples/clusters/nccl-rccl-tests.md
index d2ad32dd3..e15ddcf04 100644
--- a/mkdocs/docs/examples/clusters/nccl-rccl-tests.md
+++ b/mkdocs/docs/examples/clusters/nccl-rccl-tests.md
@@ -29,8 +29,7 @@ Here's an example of a task that runs AllReduce test on 2 nodes, each with 4 GPU
- NCCL_DEBUG=INFO
groups:
- - name: master # The name property is optional
- nodes: 1
+ - nodes: 1
commands:
- |
mpirun \
@@ -44,8 +43,7 @@ Here's an example of a task that runs AllReduce test on 2 nodes, each with 4 GPU
gpu: nvidia:1..8
shm_size: 16GB
- - name: workers
- nodes: 1
+ - nodes: 1
commands:
- sleep infinity
resources:
@@ -83,8 +81,7 @@ Here's an example of a task that runs AllReduce test on 2 nodes, each with 4 GPU
- OPEN_MPI_HOME=/usr/lib/x86_64-linux-gnu/openmpi
groups:
- - name: master # The name property is optional
- nodes: 1
+ - nodes: 1
commands:
# Setup MPI and build RCCL tests
- apt-get install -y git libopenmpi-dev openmpi-bin
@@ -110,8 +107,7 @@ Here's an example of a task that runs AllReduce test on 2 nodes, each with 4 GPU
resources:
gpu: MI300X:8
- - name: workers
- nodes: 1
+ - nodes: 1
commands:
# Setup MPI and build RCCL tests
- apt-get install -y git libopenmpi-dev openmpi-bin
diff --git a/mkdocs/docs/examples/training/ray-ragen.md b/mkdocs/docs/examples/training/ray-ragen.md
index fd72ba563..d1119b36f 100644
--- a/mkdocs/docs/examples/training/ray-ragen.md
+++ b/mkdocs/docs/examples/training/ray-ragen.md
@@ -30,8 +30,7 @@ env:
- WANDB_API_KEY
groups:
- - name: head # The name property is optional
- nodes: 1
+ - nodes: 1
commands:
- wget -O miniconda.sh https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
- bash miniconda.sh -b -p /workflow/miniconda
@@ -52,8 +51,7 @@ groups:
gpu: 80GB:8
shm_size: 128GB
- - name: workers
- nodes: 1
+ - nodes: 1
commands:
- wget -O miniconda.sh https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
- bash miniconda.sh -b -p /workflow/miniconda