From 4c71680d23624344d803680aa1b6cae0604e86f1 Mon Sep 17 00:00:00 2001 From: Richard Liaw Date: Fri, 21 Nov 2025 17:05:08 -0800 Subject: [PATCH] fix Signed-off-by: Richard Liaw --- _posts/2025-11-25-ray-symmetric-run.md | 101 ++++++++++++++++++ .../symmetric-run.png | Bin 0 -> 53440 bytes 2 files changed, 101 insertions(+) create mode 100644 _posts/2025-11-25-ray-symmetric-run.md create mode 100644 assets/figures/2025-11-25-ray-symmetric-run/symmetric-run.png diff --git a/_posts/2025-11-25-ray-symmetric-run.md b/_posts/2025-11-25-ray-symmetric-run.md new file mode 100644 index 0000000..1f1437e --- /dev/null +++ b/_posts/2025-11-25-ray-symmetric-run.md @@ -0,0 +1,101 @@ +--- +layout: post +title: "Streamlined multi-node serving with Ray symmetric-run" +author: "Richard Liaw (Anyscale/Ray), Kaichao You (vLLM)" +image: /assets/logos/vllm-logo-text-light.png +--- + +Ray now has a new command: `ray symmetric-run.` This command makes it possible to launch the **same entrypoint command** on every node in a Ray cluster, simplifying the workflow to spawn vLLM servers with multi-node models on HPC setups or in using parallel ssh tools like `mpssh`. + +In this blog, we’ll talk about the issues with the current way of spawning vLLM servers with Ray; we’ll walk through a motivating example; and finally we’ll discuss how the new `symmetric-run` API from Ray will improve the launching experience. + +Ray recently joined the Pytorch foundation. As part of this donation, both vLLM and Ray teams are working together to build deep alignment to advance the next generation of AI infrastructure. + +

+ + +
+Figure 1. Overview of `symmetric-run` command from Ray. +

+ +### Context + +vLLM users approaching Ray often bring expectations from their existing tools and workflows. Developers doing interactive work on barebones clusters expect to quickly launch commands across multiple hosts with tools like `mpssh` or `pssh`, using a single command parameterized by “rank”. HPC users familiar with SLURM and PBS expect *symmetric execution* — a single program entrypoint that runs simultaneously across all nodes, similar to MPI applications. + +However, Ray's recommended job execution pattern follows a different philosophy with specific roles for head and worker nodes. + +The program entrypoint executes on the head node, which then orchestrates and delegates work to worker nodes. The runtime lifecycle is separate from job execution, requiring explicit cluster management. This means users need two distinct command sets—one to establish the cluster with proper head/worker roles, and another to actually run their work. + +### Motivating Example + +Let’s walk through an example of launching a distributed job on 2 separate machines. We assume the machines are bare in that we can’t use other solutions like Ray’s cluster launcher or KubeRay. + +To run a Ray job on multiple machines in this situation, users will need to first start Ray on the head node: + +```shell +ray start --block +``` + +And then on worker nodes, they’ll need to connect back to the head node: + +```shell +# worker node, terminal 1: +ray start --block --address='ip:6379' +``` + +After the nodes are setup, then they’ll need to start a separate terminal on the head node to run the job: + +```shell +vllm serve Qwen/Qwen3-32B --tensor-parallel-size 8 --pipeline-parallel-size 2 +``` + +And then in termination, they’ll need to run `ray stop` on each of the nodes: + +```shell +ray stop +``` + +Running vLLM in this configuration typically requires a fair amount of trial and error. A common failure mode occurs when certain environment variables, like `VLLM_HOST_IP`, are missing. When this happens, users will need to shut down the Ray cluster, set the environment variable on \`ray start\`, and go through the rest of the above steps yet again. + +For users expecting symmetric, single-command execution, this creates significant friction in their development and deployment workflows. + +Ray now offers a simple solution: **`ray symmetric-run`**, a new way to run Ray jobs across all nodes in a cluster. + +### What does `symmetric-run` do? + +`ray symmetric-run` makes it possible to launch the **same entrypoint command** on every node in a Ray cluster. The script automatically handles Ray setup, job execution, and teardown, allowing users can have a similar experience to other tools like `mpirun` or `torchrun`. + +Taking the same example as above, with `symmetric-run`, you can simply do: + +```shell +# in SLURM sbatch script or via mpssh + +ray symmetric-run \ + --address :6379 \ + --min-nodes 2 \ + --num-gpus 8 \ + -- vllm serve Qwen/Qwen3-32B --tensor-parallel-size 8 --pipeline-parallel-size 2 +``` + +Each node will execute the same command, but the behavior underneath the hood will be different per node. In particular, the worker node will only execute the Ray cluster initialization, whereas the head node will: + +1. Starts Ray in `--head` mode. +2. Waits for four nodes to register. +3. Run your user command (`vllm serve Qwen/Qwen3-32B …`). +4. Shuts down Ray when done. + +The workers simply run `ray start --address head-node:6379` and wait until the job ends, after which it will self-destruct. No extra SSH orchestration or startup scripts needed. + +If you need to provide an environment variable, you can simply append it to the start of the command, and `symmetric-run` will automatically propagate the variable to the Ray runtime: + +```shell +ENV=VAR ray symmetric-run --address 127.0.0.1:6379 -- python test.py +``` + +### Conclusion + +Ray’s new symmetric run utility simplifies running Ray and vLLM programs on HPC or parallel SSH setups. Try out Ray Symmetric Run today: [https://docs.ray.io/en/latest/cluster/vms/user-guides/community/slurm.html](https://docs.ray.io/en/latest/cluster/vms/user-guides/community/slurm.html) + +If you run into any issues, please open a ticket on Github: [https://github.com/ray-project/ray/](https://github.com/ray-project/ray/) + +To chat with other members of the community, join the [vLLM slack](https://communityinviter.com/apps/vllm-dev/join-vllm-developers-slack) and [Ray slack](https://www.ray.io/join-slack)\! diff --git a/assets/figures/2025-11-25-ray-symmetric-run/symmetric-run.png b/assets/figures/2025-11-25-ray-symmetric-run/symmetric-run.png new file mode 100644 index 0000000000000000000000000000000000000000..73e6f9b96f6a61d5c3dc25084b664b51993291fe GIT binary patch literal 53440 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 R2Q%i{Y7ZYPl_^-f`9IPhr(pm9 literal 0 HcmV?d00001