Skip to content

Add combined results and plot generation - #219

Open
avolkov-intel wants to merge 7 commits into
IntelPython:mainfrom
avolkov-intel:dev/anatolyv-combined-results
Open

Add combined results and plot generation#219
avolkov-intel wants to merge 7 commits into
IntelPython:mainfrom
avolkov-intel:dev/anatolyv-combined-results

Conversation

@avolkov-intel

@avolkov-intel avolkov-intel commented Aug 17, 2026

Copy link
Copy Markdown
Collaborator

Description

New CLI options

  • --combined-results — builds two extra sheets:
    • All cases — all algorithm results on one page (group name, sklearn time[ms], sklearnex time[ms], speedup, then parameters). KNN is split into
      brute/kd_tree; rows sorted by dtype then dataset; each group ends with per-dtype and total GEOMEAN formula rows with a per-group speedup color scale.
    • Summary (for plots) — one row per algorithm referencing the group GEOMEAN cells (total + fp32 + fp64), split into Training/Inference sections with
      section and total geomeans.
  • --draw-plots / --plot-output <path> — renders a Training/Inference speedup bar chart (geomean per algorithm, combining fp32 & fp64) with
    Intel-branded titles and disclaimer footnote.

Other changes

  • --performance-stability-metrics now additionally emits a median time[ms] column (alongside existing 1st run time[ms], time CV), included in the
    individual sheets and "All cases".

Use --compatibility-mode together with --combined-results so sklearn/sklearnex rows merge correctly.

Completeness and readability

  • I have commented my code, particularly in hard-to-understand areas.
  • I have updated the documentation to reflect the changes or created a separate PR with updates and provided its number in the description, if necessary.
  • Git commit message contains an appropriate signed-off-by string (see CONTRIBUTING.md for details).
  • I have resolved any merge conflicts that might occur with the base branch.

Testing

  • I have run it locally and tested the changes extensively.
  • All CI jobs are green or I have provided justification why they aren't.
  • I have extended testing suite if new functionality was introduced in this PR.

@david-cortes-intel

Copy link
Copy Markdown
Contributor

@avolkov-intel Please document these options in the .md files where the other options are described.

@avolkov-intel
avolkov-intel force-pushed the dev/anatolyv-combined-results branch from ceda047 to 1886459 Compare August 17, 2026 11:11
@avolkov-intel

Copy link
Copy Markdown
Collaborator Author

@avolkov-intel Please document these options in the .md files where the other options are described.

Done

@avolkov-intel

Copy link
Copy Markdown
Collaborator Author

CI failures are not related to this PR

if (
"n_jobs" in results.columns
and results["n_jobs"].isna().any()
and results["n_jobs"].notna().any()

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Would it make more sense to drop and results["n_jobs"].notna().any() and just drop n_jobs col if any are na? Or what is the reason for this change

Each block ends with per-dtype and total GEOMEAN formula rows plus a speedup color scale.
Returns list of (group_name, total_geomean_row, {dtype: geomean_row}) for the summary sheet.
"""
KNN = ("KNeighborsClassifier", "KNeighborsRegressor")

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Is there a way to make this knn-specific logic more flexible? ie right now we have 2 different knn methods but what it we wanted to use 2 different LogReg solvers - would we need to keep adding in algo-specific logic or can we set it up to be more general?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants