Skip to content

Conversation

@tedzhouhk
Copy link
Contributor

@tedzhouhk tedzhouhk commented Aug 23, 2025

  • correct planner test example after tokenizer fix
  • rename argparse.py to distinguish from argparse package

Summary by CodeRabbit

  • Documentation

    • Updated planner testing guide with revised performance metrics, workload range (12–36 req/s), dataset naming, and dry-run examples; clarified context-length formatting and guidance.
  • Refactor

    • Standardized internal import paths for the SLA planner; no functional changes.
  • Tests

    • Aligned tests with the updated import paths; behavior unchanged.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Aug 23, 2025

Walkthrough

Updated import path for create_sla_planner_parser in planner code and its test. Adjusted tests/planner/README.md to new interpolator outputs, workload expectations, dataset naming, and example commands.

Changes

Cohort / File(s) Summary
Planner CLI import path update
components/planner/src/dynamo/planner/planner_sla.py, components/planner/test/planner_sla_dryrun.py
Switched import from dynamo.planner.utils.argparse to dynamo.planner.utils.planner_argparse; no logic or API changes.
Documentation updates for datasets and metrics
tests/planner/README.md
Updated interpolator results (TTFT/ITL, throughput, saturation), adjusted request-rate guidance (12–36 rps), noted TP1 H200 scaling, and changed example dataset to rr-12-36_i3000o300.jsonl.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Possibly related PRs

Poem

A whisk of code, a hop in place,
The parser’s path now finds its space.
Docs now hum a calmer tune,
Twelve to thirty-six by noon.
Little paws approve this run—
Dry checks passed; the work is done. 🐇✨

Tip

🔌 Remote MCP (Model Context Protocol) integration is now available!

Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (3)
components/planner/test/planner_sla_dryrun.py (1)

24-47: Fail fast if the dataset path is invalid.

Small UX improvement: validate --dataset before running so users get an immediate, actionable error.

Apply this diff:

@@
-import logging
+import logging
+from pathlib import Path
@@
     parser = create_sla_planner_parser()
     parser.add_argument(
 
         "--dataset", type=str, required=True, help="Path to the jsonl dataset file"
     )
@@
     )
     args = parser.parse_args()
 
+    dataset_path = Path(args.dataset)
+    if not dataset_path.is_file():
+        parser.error(f"Dataset file not found: {dataset_path}")
+
     planner = Planner(None, args, dryrun=True)
     planner.dryrun_run()
tests/planner/README.md (2)

70-72: Tighten wording and unit pluralization.

Minor grammar/clarity nits.

Apply this diff:

-From previous interpolator testing, ISL 3000 and OSL 300 can handle ~15 request/s/gpu for both prefill and decode.
-To test planner's performance for different request rates, we can generate a load dataset with request rate varying between 12 to 36 request/s.
-For TP1 H200 engine, planner should scale between 1P1D and 3P3D.
+Based on previous interpolator testing, ISL 3000 and OSL 300 can handle ~15 requests/s/GPU for both prefill and decode.
+To test the planner's performance across different request rates, generate a load dataset with a request rate varying from 12 to 36 requests/s.
+For a TP1 H200 engine, the planner should scale between 1P1D and 3P3D.

107-107: Hyphenate “dry-run” and add article.

Apply this diff:

-For example, to dry run SLA planner for the previous FP8 8B on H200 using the generated `rr-12-36_i3000o300.jsonl` dataset,
+For example, to dry-run the SLA planner for the previous FP8 8B on H200 using the generated `rr-12-36_i3000o300.jsonl` dataset,
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 05913af and 1e55e88.

⛔ Files ignored due to path filters (1)
  • tests/planner/figures/dryrun_plot.png is excluded by !**/*.png
📒 Files selected for processing (3)
  • components/planner/src/dynamo/planner/planner_sla.py (1 hunks)
  • components/planner/test/planner_sla_dryrun.py (1 hunks)
  • tests/planner/README.md (2 hunks)
🧰 Additional context used
🧬 Code graph analysis (2)
components/planner/src/dynamo/planner/planner_sla.py (1)
components/planner/src/dynamo/planner/utils/planner_argparse.py (1)
  • create_sla_planner_parser (21-122)
components/planner/test/planner_sla_dryrun.py (1)
components/planner/src/dynamo/planner/utils/planner_argparse.py (1)
  • create_sla_planner_parser (21-122)
🪛 LanguageTool
tests/planner/README.md

[grammar] ~70-~70: There might be a mistake here.
Context: ...quest/s/gpu for both prefill and decode. To test planner's performance for differ...

(QB_NEW_EN)


[grammar] ~71-~71: There might be a mistake here.
Context: ...t/s/gpu for both prefill and decode. To test planner's performance for different req...

(QB_NEW_EN)


[grammar] ~71-~71: There might be a mistake here.
Context: ...rate varying between 12 to 36 request/s. For TP1 H200 engine, planner should scal...

(QB_NEW_EN)


[grammar] ~72-~72: There might be a mistake here.
Context: ... 12 to 36 request/s. For TP1 H200 engine, planner should scale between 1P1D and 3...

(QB_NEW_EN)


[grammar] ~107-~107: There might be a mistake here.
Context: ...o_output_plot> ``` For example, to dry run SLA planner for the previous FP8 8B on ...

(QB_NEW_EN)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: Mirror Repository to GitLab
  • GitHub Check: pre-merge-rust (.)
  • GitHub Check: pre-merge-rust (lib/bindings/python)
  • GitHub Check: pre-merge-rust (lib/runtime/examples)
  • GitHub Check: Build and Test - dynamo
🔇 Additional comments (5)
components/planner/src/dynamo/planner/planner_sla.py (3)

22-22: Import path rename looks good and avoids stdlib shadowing.

Switching to planner_argparse eliminates accidental conflicts with Python’s argparse. No functional impact beyond the import path.


54-57: Sanity check: main invocation vs decorator-injected runtime.

init_planner is declared as async def init_planner(runtime: DistributedRuntime, args) but __main__ calls asyncio.run(init_planner(args)). If @dynamo_worker rewrites the callable signature for CLI use, this is fine; otherwise this will raise a missing-argument error at runtime.

If direct CLI execution is intended and the decorator does not alter the signature, consider providing a thin async def _main(args) that constructs a DistributedRuntime (or obtains one from your runtime layer) and then calls await init_planner(runtime, args). Let me know and I can draft the exact glue once I see how DistributedRuntime is instantiated in this codebase.


22-22: No lingering dynamo.planner.utils.argparse imports detected.

  • Verified that all explicit imports of the old module path have been removed.
  • Confirmed there are no string literals or dynamic import calls referencing dynamo.planner.utils.argparse.
  • The components/planner/src/dynamo/planner/planner_sla.py import on line 22 has been correctly updated to use dynamo.planner.utils.planner_argparse.

No further action is required.

components/planner/test/planner_sla_dryrun.py (2)

18-18: Import path update is correct.

Aligned with the module rename to planner_argparse. No other changes required here.


18-18: No remaining imports of the old module path
I’ve run a repository-wide search for dynamo.planner.utils.argparse and found zero occurrences—there are no lingering references.

@tedzhouhk tedzhouhk merged commit 35055c6 into main Aug 25, 2025
15 of 16 checks passed
@tedzhouhk tedzhouhk deleted the hzhou/update-planner-test branch August 25, 2025 16:08
hhzhang16 pushed a commit that referenced this pull request Aug 27, 2025
Signed-off-by: Hannah Zhang <hannahz@nvidia.com>
jasonqinzhou pushed a commit that referenced this pull request Aug 30, 2025
Signed-off-by: Jason Zhou <jasonzho@jasonzho-mlt.client.nvidia.com>
KrishnanPrash pushed a commit that referenced this pull request Sep 2, 2025
Signed-off-by: Krishnan Prashanth <kprashanth@nvidia.com>
nnshah1 pushed a commit that referenced this pull request Sep 8, 2025
Signed-off-by: nnshah1 <neelays@nvidia.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants