sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_tp16_quick_map

DeepSeek-V4-Pro / Pro6000D / Two-Node / SGLang TP16 Quick Map

This directory contains the short, repeatable performance-map suite for DeepSeek-V4-Pro on two RTX PRO 6000 Blackwell nodes. It does not modify or call the existing dsv4_pro6000_sglang_tp16/run_batch.sh.

Scope

The fixed suite covers nine points:

Group ISL OSL Concurrency
Prefill latency 1K / 32K / 128K 1 1
Prefill throughput 32K 1 16
Decode latency 1K 1K 1
Decode throughput 1K 1K 16 / 32 / 64
Balanced pressure 32K 1K 8

The same main entry also runs a mixed-interference A/B:

  1. Run a finite 64-request 1K -> 1K, C=32 decode control.
  2. Run the same decode workload again.
  3. Wait for the background benchmark to enter its measured run, then inject one 128K -> 1, C=1 prefill request.
  4. Report the change in output TPS and P95 TPOT/TTFT.

This aggregate mixed test is sufficient for the first performance-map pass. Per-request time-series attribution belongs to the later scheduler/interference phase.

Files

File Purpose
run_quick_map.sh The only Shell entry: service lifecycle, fixed map, mixed A/B, cleanup
config.env Machine, model, SGLang and benchmark configuration
quick_map_scenarios.tsv Nine fixed workload points
quick_map_results.py Validate output and generate CSV/JSONL/Markdown summaries
tests/test_quick_map_results.py Result parser regression tests

Before using GPUs

The scripts default to ports 20002 and 30002, and use unique container names. They never stop containers belonging to another experiment.

cd /data/hzy/sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_tp16_quick_map

bash -n run_quick_map.sh
python3 -m unittest discover -s tests -v

DRY_RUN=1 bash run_quick_map.sh all

The launcher refuses to start while either node has an active GPU compute process. ALLOW_BUSY_GPU=1 exists only for deliberate operator override.

GPU run

Run the complete quick map in tmux after both nodes are free:

tmux new-session -d -s dsv4pro-pro6000d-2node-sglang-quick-map \
  -c /data/hzy/sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_tp16_quick_map
tmux send-keys -t dsv4pro-pro6000d-2node-sglang-quick-map \
  'bash run_quick_map.sh all' Enter

The default all action starts the two-node service, runs the fixed and mixed suites, writes summaries, and then removes both service containers. The same entry supports targeted operations when debugging:

bash run_quick_map.sh start
bash run_quick_map.sh fixed
bash run_quick_map.sh mixed
bash run_quick_map.sh stop

Outputs

results/<RUN_ID>/
  run_manifest.json
  run.log
  summary.csv
  summary.jsonl
  aggregate.csv
  report.md
  cases/<case_id>/rep<N>/
    bench_cmd.txt
    bench.jsonl
    bench.log
    meta.json
  server/

summary.csv is one row per repetition. aggregate.csv groups repetitions and reports mean throughput plus coefficient of variation. Raw request arrays stay inside ignored result directories and are not committed.

Runtime policy

  • Quick default: one repetition and one measured request wave (num_prompts=C, including one request when C=1).
  • Milestone: three repetitions.
  • Short Prefill and Decode cases use one warm-up request. Expensive 32K/128K Prefill cases do not add a same-shape warm-up.
  • Every isolated point calls SGLang benchmark with --flush-cache; the benchmark performs its warm-up first and then clears the server Prefix Cache before measured requests.
  • No SLO-based early stop in the fixed map.
  • A case failure is recorded; an unhealthy service aborts the run to avoid producing a cascade of meaningless failures.
  • Benchmark and profiler results must not be mixed. This directory does not enable a profiler.

Hardware validation is recorded in the implementation report linked from the repository's optimization plan.