Skip to content

Commit

Permalink
nit: Remove busy waiting on scheduler (#2382)
Browse files Browse the repository at this point in the history
  • Loading branch information
rkooo567 authored Dec 8, 2024
1 parent 63dfab1 commit 1f09e84
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 6 deletions.
4 changes: 4 additions & 0 deletions docs/references/contributor_guide.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Contributor Guide

# Build SGLang

See [Install SGLang, Method 2: From Source section](../start/install.md).

## Format Your Code
Use these commands to format your code and pass CI linting tests.

Expand Down
2 changes: 1 addition & 1 deletion python/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ classifiers = [
"Programming Language :: Python :: 3",
"License :: OSI Approved :: Apache Software License",
]
dependencies = ["requests", "tqdm", "numpy", "IPython"]
dependencies = ["requests", "tqdm", "numpy", "IPython", "setproctitle"]

[project.optional-dependencies]
runtime_common = ["aiohttp", "decord", "fastapi",
Expand Down
2 changes: 2 additions & 0 deletions python/sglang/srt/managers/detokenizer_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
from typing import List, Union

import psutil
import setproctitle
import zmq

from sglang.srt.hf_transformers_utils import get_tokenizer
Expand Down Expand Up @@ -194,6 +195,7 @@ def run_detokenizer_process(
server_args: ServerArgs,
port_args: PortArgs,
):
setproctitle.setproctitle("sglang::detokenizer")
configure_logger(server_args)
parent_process = psutil.Process().parent()

Expand Down
17 changes: 12 additions & 5 deletions python/sglang/srt/managers/scheduler.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
from typing import List, Optional

import psutil
import setproctitle
import torch
import zmq

Expand Down Expand Up @@ -439,12 +440,16 @@ def recv_requests(self):
if self.tp_rank == 0 or self.server_args.enable_dp_attention:
recv_reqs = []

while True:
try:
recv_req = self.recv_from_tokenizer.recv_pyobj(zmq.NOBLOCK)
except zmq.ZMQError:
break
if self.last_batch is None:
recv_req = self.recv_from_tokenizer.recv_pyobj()
recv_reqs.append(recv_req)
else:
while True:
try:
recv_req = self.recv_from_tokenizer.recv_pyobj(zmq.NOBLOCK)
except zmq.ZMQError:
break
recv_reqs.append(recv_req)
else:
recv_reqs = None

Expand Down Expand Up @@ -1473,6 +1478,8 @@ def run_scheduler_process(
dp_rank: Optional[int],
pipe_writer,
):
setproctitle.setproctitle("sglang::scheduler")

# [For Router] if env var "SGLANG_DP_RANK" exist, set dp_rank to the value of the env var
if dp_rank is None and "SGLANG_DP_RANK" in os.environ:
dp_rank = int(os.environ["SGLANG_DP_RANK"])
Expand Down

0 comments on commit 1f09e84

Please sign in to comment.