Skip to content

perf(scheduler): use index-based lookup for victim job dedup in preemption solver#1029

Draft
gshaibi wants to merge 1 commit intomainfrom
perf/set-based-victim-dedup
Draft

perf(scheduler): use index-based lookup for victim job dedup in preemption solver#1029
gshaibi wants to merge 1 commit intomainfrom
perf/set-based-victim-dedup

Conversation

@gshaibi
Copy link
Copy Markdown
Collaborator

@gshaibi gshaibi commented Feb 18, 2026

Description

Replace O(VJP) triple-nested loop in extractJobsFromTasks and O(J*P) linear scan in GetVictimJobRepresentativeById with O(1) map-based lookups, improving preemption/reclaim scalability for large clusters.

Changes

  1. by_pod_solver.go - extractJobsFromTasks: Replaced triple-nested loop (iterate tasks → iterate existing job representatives → iterate pods in each representative) with a map[*PodGroupInfo]bool set tracking seen job representatives. Reduces dedup from O(VJP) to O(V).

  2. base_scenario.go - GetVictimJobRepresentativeById: Added taskToJobRepresentative index (map[PodID]*PodGroupInfo) to BaseScenario, populated during appendTasksAsVictimJob. Reduces per-call lookup from O(J*P) to O(1).

  3. benchmark_test.go: Added BenchmarkPreemptAction_LargeCluster and BenchmarkReclaimAction_LargeCluster (200 nodes, 1000 jobs) to exercise preemption/reclaim at scale.

  4. base_scenario_test.go: Updated GetVictimJobRepresentativeById unit tests to use explicit pod UIDs, matching production invariants.

Complexity improvement

Function Before After
extractJobsFromTasks O(V * J * P) O(V)
GetVictimJobRepresentativeById O(J * P) per call O(1) per call

Where V = victim tasks, J = job representative fragments per PodGroupID, P = pods per job.

Related Issues

Part of hyper-scale improvements roadmap.

Checklist

  • Self-reviewed
  • Added/updated tests (if needed)
  • Updated documentation (if needed)

Breaking Changes

None. Internal optimization only - no API or behavior changes.

Additional Notes

Benchmark results (Apple M3 Pro)

New large-cluster benchmarks:

BenchmarkPreemptAction_LargeCluster-12     5     231 ms/op     33.5 MB/op     192k allocs/op
BenchmarkReclaimAction_LargeCluster-12     9     127 ms/op     15.3 MB/op     129k allocs/op

…ption solver

Replace O(V*J*P) triple-nested loop in extractJobsFromTasks with O(1)
map-based dedup. Add taskToJobRepresentative index to BaseScenario for
O(1) GetVictimJobRepresentativeById lookups, replacing the previous
O(J*P) linear scan.

Add large-cluster (200 nodes, 1000 jobs) benchmarks for preempt and
reclaim actions.
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Feb 18, 2026

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch perf/set-based-victim-dedup

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

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown

📊 Performance Benchmark Results

Comparing PR (perf/set-based-victim-dedup) vs main branch:

main-bench.txt:153: parsing iteration count: invalid syntax
pr-bench.txt:165: parsing iteration count: invalid syntax
goos: linux
goarch: amd64
pkg: github.com/NVIDIA/KAI-scheduler/pkg/scheduler/actions
cpu: AMD EPYC 7763 64-Core Processor                
                                    │ main-bench.txt │            pr-bench.txt            │
                                    │     sec/op     │    sec/op     vs base              │
AllocateAction_SmallCluster-4           108.5m ±  0%   109.0m ±  7%  +0.46% (p=0.041 n=6)
AllocateAction_MediumCluster-4          138.3m ±  3%   140.2m ±  1%       ~ (p=0.310 n=6)
AllocateAction_LargeCluster-4           229.6m ± 11%   228.1m ± 23%       ~ (p=0.937 n=6)
ReclaimAction_SmallCluster-4            102.9m ±  0%   103.0m ±  0%       ~ (p=0.132 n=6)
ReclaimAction_MediumCluster-4           105.9m ±  0%   106.1m ±  0%       ~ (p=0.065 n=6)
PreemptAction_SmallCluster-4            103.6m ±  0%   103.7m ±  0%       ~ (p=0.132 n=6)
PreemptAction_MediumCluster-4           114.0m ±  0%   114.0m ±  0%       ~ (p=0.394 n=6)
ConsolidationAction_SmallCluster-4      114.8m ±  0%   114.8m ±  0%       ~ (p=0.589 n=6)
ConsolidationAction_MediumCluster-4     208.7m ±  2%   209.4m ±  2%       ~ (p=0.310 n=6)
FullSchedulingCycle_SmallCluster-4      105.7m ±  0%   105.6m ±  0%       ~ (p=0.132 n=6)
FullSchedulingCycle_MediumCluster-4     121.1m ±  0%   120.5m ±  1%       ~ (p=0.065 n=6)
FullSchedulingCycle_LargeCluster-4      163.9m ±  1%   162.1m ±  1%  -1.12% (p=0.004 n=6)
ManyQueues_MediumCluster-4              143.8m ±  1%   144.1m ±  2%       ~ (p=0.937 n=6)
GangScheduling_MediumCluster-4          161.8m ±  2%   164.2m ±  3%       ~ (p=0.180 n=6)
ReclaimAction_LargeCluster-4                           122.4m ±  1%
PreemptAction_LargeCluster-4                           326.1m ±  1%
geomean                                 132.6m         139.7m        +0.12%

                                    │ main-bench.txt │            pr-bench.txt            │
                                    │      B/op      │     B/op      vs base              │
AllocateAction_SmallCluster-4           2.296Mi ± 1%   2.296Mi ± 1%       ~ (p=0.589 n=6)
AllocateAction_MediumCluster-4          12.42Mi ± 0%   12.42Mi ± 0%       ~ (p=0.093 n=6)
AllocateAction_LargeCluster-4           42.96Mi ± 0%   42.96Mi ± 0%       ~ (p=0.937 n=6)
ReclaimAction_SmallCluster-4            973.4Ki ± 1%   973.6Ki ± 1%       ~ (p=0.818 n=6)
ReclaimAction_MediumCluster-4           3.158Mi ± 0%   3.160Mi ± 0%       ~ (p=0.970 n=6)
PreemptAction_SmallCluster-4            1.067Mi ± 1%   1.064Mi ± 0%       ~ (p=0.699 n=6)
PreemptAction_MediumCluster-4           4.259Mi ± 0%   4.268Mi ± 0%  +0.20% (p=0.041 n=6)
ConsolidationAction_SmallCluster-4      5.839Mi ± 0%   5.829Mi ± 0%  -0.16% (p=0.026 n=6)
ConsolidationAction_MediumCluster-4     48.15Mi ± 0%   48.14Mi ± 0%  -0.03% (p=0.015 n=6)
FullSchedulingCycle_SmallCluster-4      1.484Mi ± 1%   1.482Mi ± 0%       ~ (p=0.132 n=6)
FullSchedulingCycle_MediumCluster-4     7.286Mi ± 0%   7.286Mi ± 0%       ~ (p=0.240 n=6)
FullSchedulingCycle_LargeCluster-4      23.94Mi ± 0%   23.94Mi ± 0%       ~ (p=0.699 n=6)
ManyQueues_MediumCluster-4              16.88Mi ± 0%   16.88Mi ± 0%       ~ (p=0.589 n=6)
GangScheduling_MediumCluster-4          18.17Mi ± 0%   18.17Mi ± 0%       ~ (p=0.699 n=6)
ReclaimAction_LargeCluster-4                           14.65Mi ± 0%
PreemptAction_LargeCluster-4                           32.06Mi ± 0%
geomean                                 6.708Mi        7.765Mi       -0.02%

                                    │ main-bench.txt │           pr-bench.txt            │
                                    │   allocs/op    │  allocs/op   vs base              │
AllocateAction_SmallCluster-4            37.05k ± 0%   37.05k ± 0%       ~ (p=0.749 n=6)
AllocateAction_MediumCluster-4           328.6k ± 0%   328.6k ± 0%       ~ (p=0.509 n=6)
AllocateAction_LargeCluster-4            1.403M ± 0%   1.403M ± 0%       ~ (p=0.621 n=6)
ReclaimAction_SmallCluster-4             8.889k ± 0%   8.890k ± 0%       ~ (p=0.621 n=6)
ReclaimAction_MediumCluster-4            28.54k ± 0%   28.54k ± 0%       ~ (p=1.000 n=6)
PreemptAction_SmallCluster-4             11.57k ± 0%   11.60k ± 0%  +0.21% (p=0.002 n=6)
PreemptAction_MediumCluster-4            40.35k ± 0%   40.45k ± 0%  +0.25% (p=0.002 n=6)
ConsolidationAction_SmallCluster-4       74.94k ± 0%   74.90k ± 0%       ~ (p=0.093 n=6)
ConsolidationAction_MediumCluster-4      693.0k ± 0%   692.9k ± 0%       ~ (p=0.093 n=6)
FullSchedulingCycle_SmallCluster-4       22.03k ± 0%   22.03k ± 0%       ~ (p=0.104 n=6)
FullSchedulingCycle_MediumCluster-4      177.3k ± 0%   177.3k ± 0%       ~ (p=0.825 n=6)
FullSchedulingCycle_LargeCluster-4       733.9k ± 0%   733.9k ± 0%       ~ (p=0.894 n=6)
ManyQueues_MediumCluster-4               366.7k ± 0%   366.7k ± 0%       ~ (p=0.121 n=6)
GangScheduling_MediumCluster-4           603.0k ± 0%   603.0k ± 0%       ~ (p=0.669 n=6)
ReclaimAction_LargeCluster-4                           130.0k ± 0%
PreemptAction_LargeCluster-4                           194.3k ± 0%
geomean                                  114.5k        119.3k       +0.03%

pkg: github.com/NVIDIA/KAI-scheduler/pkg/scheduler/actions/integration_tests/reclaim
                            │ main-bench.txt │            pr-bench.txt             │
                            │     sec/op     │    sec/op      vs base              │
ReclaimLargeJobs_10Node-4      104.9m ± 1%     104.9m ± 1%         ~ (p=0.818 n=6)
ReclaimLargeJobs_50Node-4      142.5m ± 1%     142.4m ± 1%         ~ (p=0.485 n=6)
ReclaimLargeJobs_100Node-4     289.3m ± 1%     286.6m ± 4%         ~ (p=0.180 n=6)
ReclaimLargeJobs_200Node-4      1.139 ± 6%      1.149 ± 3%         ~ (p=0.132 n=6)
ReclaimLargeJobs_500Node-4      13.22 ± 0%      13.16 ± 2%         ~ (p=0.589 n=6)
ReclaimLargeJobs_1000Node-4     110.3 ±  ∞ ¹    108.8 ±  ∞ ¹       ~ (p=0.056 n=5)
geomean                         1.389           1.384         -0.33%
¹ need >= 6 samples for confidence interval at level 0.95

                            │ main-bench.txt │             pr-bench.txt             │
                            │      B/op      │      B/op       vs base              │
ReclaimLargeJobs_10Node-4     1.882Mi ± 3%     1.886Mi ± 2%         ~ (p=0.310 n=6)
ReclaimLargeJobs_50Node-4     17.51Mi ± 0%     17.66Mi ± 0%    +0.85% (p=0.002 n=6)
ReclaimLargeJobs_100Node-4    59.59Mi ± 0%     60.14Mi ± 0%    +0.92% (p=0.002 n=6)
ReclaimLargeJobs_200Node-4    235.5Mi ± 0%     237.7Mi ± 0%    +0.94% (p=0.002 n=6)
ReclaimLargeJobs_500Node-4    1.705Gi ± 0%     1.719Gi ± 0%    +0.86% (p=0.002 n=6)
ReclaimLargeJobs_1000Node-4   8.959Gi ±  ∞ ¹   9.015Gi ±  ∞ ¹  +0.62% (p=0.008 n=5)
geomean                       139.6Mi          140.6Mi         +0.73%
¹ need >= 6 samples for confidence interval at level 0.95

                            │ main-bench.txt │            pr-bench.txt             │
                            │   allocs/op    │   allocs/op    vs base              │
ReclaimLargeJobs_10Node-4      20.21k ± 3%     20.22k ± 3%    +0.04% (p=0.037 n=6)
ReclaimLargeJobs_50Node-4      232.9k ± 0%     233.0k ± 0%    +0.04% (p=0.002 n=6)
ReclaimLargeJobs_100Node-4     866.6k ± 0%     866.9k ± 0%    +0.03% (p=0.002 n=6)
ReclaimLargeJobs_200Node-4     3.659M ± 0%     3.660M ± 0%    +0.02% (p=0.002 n=6)
ReclaimLargeJobs_500Node-4     29.28M ± 0%     29.28M ± 0%    +0.01% (p=0.002 n=6)
ReclaimLargeJobs_1000Node-4    163.0M ±  ∞ ¹   163.0M ±  ∞ ¹  +0.00% (p=0.008 n=5)
geomean                        2.036M          2.036M         +0.03%
¹ need >= 6 samples for confidence interval at level 0.95

Legend

  • 📉 Negative delta = Performance improvement (faster)
  • 📈 Positive delta = Performance regression (slower)
  • p-value < 0.05 indicates statistically significant change
Raw benchmark data

PR branch:

goos: linux
goarch: amd64
pkg: github.com/NVIDIA/KAI-scheduler/pkg/scheduler/actions
cpu: AMD EPYC 7763 64-Core Processor                
BenchmarkAllocateAction_SmallCluster-4         	       9	 116280976 ns/op	 2442212 B/op	   37061 allocs/op
BenchmarkAllocateAction_SmallCluster-4         	      10	 109416972 ns/op	 2407984 B/op	   37050 allocs/op
BenchmarkAllocateAction_SmallCluster-4         	      10	 108936245 ns/op	 2407172 B/op	   37049 allocs/op
BenchmarkAllocateAction_SmallCluster-4         	      10	 108721068 ns/op	 2415122 B/op	   37040 allocs/op
BenchmarkAllocateAction_SmallCluster-4         	      10	 109072965 ns/op	 2406880 B/op	   37046 allocs/op
BenchmarkAllocateAction_SmallCluster-4         	      10	 108589492 ns/op	 2406649 B/op	   37048 allocs/op
BenchmarkAllocateAction_MediumCluster-4        	       8	 140276696 ns/op	13020932 B/op	  328573 allocs/op
BenchmarkAllocateAction_MediumCluster-4        	       8	 138807027 ns/op	13026971 B/op	  328567 allocs/op
BenchmarkAllocateAction_MediumCluster-4        	       8	 140830631 ns/op	13024755 B/op	  328568 allocs/op
BenchmarkAllocateAction_MediumCluster-4        	       8	 141542574 ns/op	13028969 B/op	  328567 allocs/op
BenchmarkAllocateAction_MediumCluster-4        	       8	 140039957 ns/op	13037893 B/op	  328569 allocs/op
BenchmarkAllocateAction_MediumCluster-4        	       8	 139165564 ns/op	13019481 B/op	  328564 allocs/op
BenchmarkAllocateAction_LargeCluster-4         	       5	 233348504 ns/op	45049532 B/op	 1402661 allocs/op
BenchmarkAllocateAction_LargeCluster-4         	       5	 235014093 ns/op	45049240 B/op	 1402662 allocs/op
BenchmarkAllocateAction_LargeCluster-4         	       5	 219852044 ns/op	45047806 B/op	 1402648 allocs/op
BenchmarkAllocateAction_LargeCluster-4         	       5	 279735031 ns/op	45049246 B/op	 1402654 allocs/op
BenchmarkAllocateAction_LargeCluster-4         	       5	 219032425 ns/op	45054464 B/op	 1402643 allocs/op
BenchmarkAllocateAction_LargeCluster-4         	       5	 222853429 ns/op	45048556 B/op	 1402660 allocs/op
BenchmarkReclaimAction_SmallCluster-4          	      10	 103168373 ns/op	  986418 B/op	    8862 allocs/op
BenchmarkReclaimAction_SmallCluster-4          	      10	 102918145 ns/op	  991506 B/op	    8876 allocs/op
BenchmarkReclaimAction_SmallCluster-4          	      10	 103084820 ns/op	  998906 B/op	    8890 allocs/op
BenchmarkReclaimAction_SmallCluster-4          	      10	 102961965 ns/op	  999005 B/op	    8891 allocs/op
BenchmarkReclaimAction_SmallCluster-4          	      10	 103018909 ns/op	  995071 B/op	    8890 allocs/op
BenchmarkReclaimAction_SmallCluster-4          	      10	 102952132 ns/op	 1003839 B/op	    8890 allocs/op
BenchmarkReclaimAction_MediumCluster-4         	      10	 106102295 ns/op	 3311508 B/op	   28541 allocs/op
BenchmarkReclaimAction_MediumCluster-4         	      10	 106083988 ns/op	 3311525 B/op	   28541 allocs/op
BenchmarkReclaimAction_MediumCluster-4         	      10	 106051629 ns/op	 3311479 B/op	   28541 allocs/op
BenchmarkReclaimAction_MediumCluster-4         	      10	 105920897 ns/op	 3315508 B/op	   28542 allocs/op
BenchmarkReclaimAction_MediumCluster-4         	      10	 106129229 ns/op	 3315514 B/op	   28544 allocs/op
BenchmarkReclaimAction_MediumCluster-4         	      10	 106091568 ns/op	 3315453 B/op	   28543 allocs/op
BenchmarkReclaimAction_LargeCluster-4          	       9	 122602770 ns/op	15363861 B/op	  129972 allocs/op
BenchmarkReclaimAction_LargeCluster-4          	       9	 120910399 ns/op	15363803 B/op	  129972 allocs/op
BenchmarkReclaimAction_LargeCluster-4          	       9	 122007502 ns/op	15363679 B/op	  129971 allocs/op
BenchmarkReclaimAction_LargeCluster-4          	       9	 122965197 ns/op	15359291 B/op	  129969 allocs/op
BenchmarkReclaimAction_LargeCluster-4          	       9	 122216017 ns/op	15370774 B/op	  129971 allocs/op
BenchmarkReclaimAction_LargeCluster-4          	       9	 122851411 ns/op	15359280 B/op	  129969 allocs/op
BenchmarkPreemptAction_SmallCluster-4          	      10	 103660894 ns/op	 1116429 B/op	   11600 allocs/op
BenchmarkPreemptAction_SmallCluster-4          	      10	 103826460 ns/op	 1120079 B/op	   11600 allocs/op
BenchmarkPreemptAction_SmallCluster-4          	      10	 103749802 ns/op	 1112450 B/op	   11598 allocs/op
BenchmarkPreemptAction_SmallCluster-4          	      10	 103662336 ns/op	 1112525 B/op	   11598 allocs/op
BenchmarkPreemptAction_SmallCluster-4          	      10	 103667240 ns/op	 1116279 B/op	   11600 allocs/op
BenchmarkPreemptAction_SmallCluster-4          	      10	 103740240 ns/op	 1115816 B/op	   11597 allocs/op
BenchmarkPreemptAction_MediumCluster-4         	       9	 114126444 ns/op	 4474880 B/op	   40447 allocs/op
BenchmarkPreemptAction_MediumCluster-4         	       9	 113743863 ns/op	 4470404 B/op	   40446 allocs/op
BenchmarkPreemptAction_MediumCluster-4         	       9	 113787994 ns/op	 4479298 B/op	   40450 allocs/op
BenchmarkPreemptAction_MediumCluster-4         	       9	 114042369 ns/op	 4465840 B/op	   40443 allocs/op

Main branch:

goos: linux
goarch: amd64
pkg: github.com/NVIDIA/KAI-scheduler/pkg/scheduler/actions
cpu: AMD EPYC 7763 64-Core Processor                
BenchmarkAllocateAction_SmallCluster-4         	      10	 109000115 ns/op	 2419856 B/op	   37056 allocs/op
BenchmarkAllocateAction_SmallCluster-4         	      10	 108863924 ns/op	 2406899 B/op	   37050 allocs/op
BenchmarkAllocateAction_SmallCluster-4         	      10	 108300234 ns/op	 2407692 B/op	   37047 allocs/op
BenchmarkAllocateAction_SmallCluster-4         	      10	 108569624 ns/op	 2406396 B/op	   37047 allocs/op
BenchmarkAllocateAction_SmallCluster-4         	      10	 108437393 ns/op	 2413199 B/op	   37042 allocs/op
BenchmarkAllocateAction_SmallCluster-4         	      10	 108109864 ns/op	 2404665 B/op	   37042 allocs/op
BenchmarkAllocateAction_MediumCluster-4        	       8	 137621077 ns/op	13022014 B/op	  328581 allocs/op
BenchmarkAllocateAction_MediumCluster-4        	       8	 142888246 ns/op	13020999 B/op	  328562 allocs/op
BenchmarkAllocateAction_MediumCluster-4        	       8	 140371044 ns/op	13020685 B/op	  328571 allocs/op
BenchmarkAllocateAction_MediumCluster-4        	       8	 138949956 ns/op	13020587 B/op	  328571 allocs/op
BenchmarkAllocateAction_MediumCluster-4        	       8	 137517779 ns/op	13018843 B/op	  328564 allocs/op
BenchmarkAllocateAction_MediumCluster-4        	       8	 137491721 ns/op	13020427 B/op	  328574 allocs/op
BenchmarkAllocateAction_LargeCluster-4         	       5	 213468849 ns/op	45050902 B/op	 1402670 allocs/op
BenchmarkAllocateAction_LargeCluster-4         	       5	 225144027 ns/op	45049112 B/op	 1402664 allocs/op
BenchmarkAllocateAction_LargeCluster-4         	       5	 226785481 ns/op	45046468 B/op	 1402638 allocs/op
BenchmarkAllocateAction_LargeCluster-4         	       5	 232436772 ns/op	45047961 B/op	 1402656 allocs/op
BenchmarkAllocateAction_LargeCluster-4         	       5	 240538445 ns/op	45061692 B/op	 1402643 allocs/op
BenchmarkAllocateAction_LargeCluster-4         	       4	 253853699 ns/op	45050566 B/op	 1402683 allocs/op
BenchmarkReclaimAction_SmallCluster-4          	      10	 102973374 ns/op	  989674 B/op	    8857 allocs/op
BenchmarkReclaimAction_SmallCluster-4          	      10	 102905755 ns/op	  991239 B/op	    8877 allocs/op
BenchmarkReclaimAction_SmallCluster-4          	      10	 103034288 ns/op	  998941 B/op	    8890 allocs/op
BenchmarkReclaimAction_SmallCluster-4          	      10	 102942180 ns/op	  994708 B/op	    8889 allocs/op
BenchmarkReclaimAction_SmallCluster-4          	      10	 102805602 ns/op	  998754 B/op	    8890 allocs/op
BenchmarkReclaimAction_SmallCluster-4          	      10	 102916646 ns/op	 1003831 B/op	    8890 allocs/op
BenchmarkReclaimAction_MediumCluster-4         	      10	 106332160 ns/op	 3311830 B/op	   28542 allocs/op
BenchmarkReclaimAction_MediumCluster-4         	      10	 105731851 ns/op	 3315437 B/op	   28543 allocs/op
BenchmarkReclaimAction_MediumCluster-4         	      10	 105887919 ns/op	 3315536 B/op	   28543 allocs/op
BenchmarkReclaimAction_MediumCluster-4         	      10	 105915523 ns/op	 3311525 B/op	   28541 allocs/op
BenchmarkReclaimAction_MediumCluster-4         	      10	 105908454 ns/op	 3307576 B/op	   28540 allocs/op
BenchmarkReclaimAction_MediumCluster-4         	      10	 105595912 ns/op	 3311612 B/op	   28542 allocs/op
BenchmarkPreemptAction_SmallCluster-4          	      10	 103499304 ns/op	 1110832 B/op	   11573 allocs/op
BenchmarkPreemptAction_SmallCluster-4          	      10	 103693651 ns/op	 1118850 B/op	   11577 allocs/op
BenchmarkPreemptAction_SmallCluster-4          	      10	 103808630 ns/op	 1110879 B/op	   11573 allocs/op
BenchmarkPreemptAction_SmallCluster-4          	      10	 103567565 ns/op	 1118693 B/op	   11576 allocs/op
BenchmarkPreemptAction_SmallCluster-4          	      10	 103622796 ns/op	 1121381 B/op	   11574 allocs/op
BenchmarkPreemptAction_SmallCluster-4          	      10	 103618136 ns/op	 1118844 B/op	   11577 allocs/op
BenchmarkPreemptAction_MediumCluster-4         	       9	 114038793 ns/op	 4468159 B/op	   40346 allocs/op
BenchmarkPreemptAction_MediumCluster-4         	       9	 113934460 ns/op	 4463979 B/op	   40346 allocs/op
BenchmarkPreemptAction_MediumCluster-4         	       9	 114136392 ns/op	 4464008 B/op	   40346 allocs/op
BenchmarkPreemptAction_MediumCluster-4         	       9	 114004016 ns/op	 4472889 B/op	   40350 allocs/op
BenchmarkPreemptAction_MediumCluster-4         	       9	 114050036 ns/op	 4472640 B/op	   40348 allocs/op
BenchmarkPreemptAction_MediumCluster-4         	       9	 114156023 ns/op	 4464057 B/op	   40346 allocs/op
BenchmarkConsolidationAction_SmallCluster-4    	       9	 114492261 ns/op	 6124384 B/op	   74982 allocs/op
BenchmarkConsolidationAction_SmallCluster-4    	       9	 114798244 ns/op	 6119899 B/op	   74957 allocs/op
BenchmarkConsolidationAction_SmallCluster-4    	       9	 114986639 ns/op	 6114825 B/op	   74913 allocs/op
BenchmarkConsolidationAction_SmallCluster-4    	       9	 114567512 ns/op	 6125124 B/op	   74901 allocs/op

@github-actions
Copy link
Copy Markdown

Merging this branch changes the coverage (1 decrease, 1 increase)

Impacted Packages Coverage Δ 🤖
github.com/NVIDIA/KAI-scheduler/pkg/scheduler/actions 100.00% (ø)
github.com/NVIDIA/KAI-scheduler/pkg/scheduler/actions/common/solvers 21.67% (+0.53%) 👍
github.com/NVIDIA/KAI-scheduler/pkg/scheduler/actions/common/solvers/scenario 64.44% (-1.15%) 👎

Coverage by file

Changed files (no unit tests)

Changed File Coverage Δ Total Covered Missed 🤖
github.com/NVIDIA/KAI-scheduler/pkg/scheduler/actions/common/solvers/by_pod_solver.go 0.00% (ø) 116 (-6) 0 116 (-6)
github.com/NVIDIA/KAI-scheduler/pkg/scheduler/actions/common/solvers/scenario/base_scenario.go 53.62% (-1.93%) 69 (-3) 37 (-3) 32 👎

Please note that the "Total", "Covered", and "Missed" counts above refer to code statements instead of lines of code. The value in brackets refers to the test coverage of that file in the old version of the code.

Changed unit test files

  • github.com/NVIDIA/KAI-scheduler/pkg/scheduler/actions/benchmark_test.go
  • github.com/NVIDIA/KAI-scheduler/pkg/scheduler/actions/common/solvers/scenario/base_scenario_test.go

@gshaibi gshaibi marked this pull request as draft February 22, 2026 11:07
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.

1 participant