Skip to content

Merge branch 'pa/rng' into parallel-downsample

d748f0b
Select commit
Loading
Failed to load commit list.
Draft

perf: parallel downsample #4004

Merge branch 'pa/rng' into parallel-downsample
d748f0b
Select commit
Loading
Failed to load commit list.
scverse-benchmark / benchmark succeeded Mar 20, 2026 in 37m 35s

Benchmark

Benchmark run successful

Details

All benchmarks:

Change Before [9de11b1] After [d748f0b] Ratio Benchmark (Parameter)
311M 310M 1.00 preprocessing_counts.FastSuite.peakmem_calculate_qc_metrics('bmmc', 'counts')
311M 311M 1.00 preprocessing_counts.FastSuite.peakmem_calculate_qc_metrics('bmmc', 'counts-off-axis')
4.11G 4.11G 1.00 preprocessing_counts.FastSuite.peakmem_calculate_qc_metrics('lung93k', 'counts')
4.11G 4.11G 1.00 preprocessing_counts.FastSuite.peakmem_calculate_qc_metrics('lung93k', 'counts-off-axis')
378M 378M 1.00 preprocessing_counts.FastSuite.peakmem_calculate_qc_metrics('pbmc3k', 'counts')
377M 377M 1.00 preprocessing_counts.FastSuite.peakmem_calculate_qc_metrics('pbmc3k', 'counts-off-axis')
288M 289M 1.00 preprocessing_counts.FastSuite.peakmem_calculate_qc_metrics('pbmc68k_reduced', 'counts')
289M 289M 1.00 preprocessing_counts.FastSuite.peakmem_calculate_qc_metrics('pbmc68k_reduced', 'counts-off-axis')
314M 313M 1.00 preprocessing_counts.FastSuite.peakmem_log1p('bmmc', 'counts')
313M 313M 1.00 preprocessing_counts.FastSuite.peakmem_log1p('bmmc', 'counts-off-axis')
4.45G 4.45G 1.00 preprocessing_counts.FastSuite.peakmem_log1p('lung93k', 'counts')
4.45G 4.45G 1.00 preprocessing_counts.FastSuite.peakmem_log1p('lung93k', 'counts-off-axis')
384M 385M 1.00 preprocessing_counts.FastSuite.peakmem_log1p('pbmc3k', 'counts')
384M 385M 1.00 preprocessing_counts.FastSuite.peakmem_log1p('pbmc3k', 'counts-off-axis')
288M 289M 1.00 preprocessing_counts.FastSuite.peakmem_log1p('pbmc68k_reduced', 'counts')
288M 288M 1.00 preprocessing_counts.FastSuite.peakmem_log1p('pbmc68k_reduced', 'counts-off-axis')
402M 402M 1.00 preprocessing_counts.FastSuite.peakmem_normalize_total('bmmc', 'counts')
401M 401M 1.00 preprocessing_counts.FastSuite.peakmem_normalize_total('bmmc', 'counts-off-axis')
4.96G 4.96G 1.00 preprocessing_counts.FastSuite.peakmem_normalize_total('lung93k', 'counts')
4.97G 4.96G 1.00 preprocessing_counts.FastSuite.peakmem_normalize_total('lung93k', 'counts-off-axis')
474M 474M 1.00 preprocessing_counts.FastSuite.peakmem_normalize_total('pbmc3k', 'counts')
473M 474M 1.00 preprocessing_counts.FastSuite.peakmem_normalize_total('pbmc3k', 'counts-off-axis')
288M 287M 1.00 preprocessing_counts.FastSuite.peakmem_normalize_total('pbmc68k_reduced', 'counts')
288M 288M 1.00 preprocessing_counts.FastSuite.peakmem_normalize_total('pbmc68k_reduced', 'counts-off-axis')
12.6±0.1ms 12.6±0.3ms 1.00 preprocessing_counts.FastSuite.time_calculate_qc_metrics('bmmc', 'counts')
12.5±0.1ms 12.5±0.3ms 0.99 preprocessing_counts.FastSuite.time_calculate_qc_metrics('bmmc', 'counts-off-axis')
2.06±0.01s 2.06±0.01s 1.00 preprocessing_counts.FastSuite.time_calculate_qc_metrics('lung93k', 'counts')
1.64±0s 1.63±0.01s 1.00 preprocessing_counts.FastSuite.time_calculate_qc_metrics('lung93k', 'counts-off-axis')
38.1±0.7ms 37.9±0.3ms 0.99 preprocessing_counts.FastSuite.time_calculate_qc_metrics('pbmc3k', 'counts')
28.8±3ms 27.8±0.4ms 0.96 preprocessing_counts.FastSuite.time_calculate_qc_metrics('pbmc3k', 'counts-off-axis')
4.70±0.05ms 4.78±0.03ms 1.02 preprocessing_counts.FastSuite.time_calculate_qc_metrics('pbmc68k_reduced', 'counts')
4.72±0.04ms 4.71±0.03ms 1.00 preprocessing_counts.FastSuite.time_calculate_qc_metrics('pbmc68k_reduced', 'counts-off-axis')
1.53±0.02ms 1.54±0.06ms 1.01 preprocessing_counts.FastSuite.time_log1p('bmmc', 'counts')
1.58±0.04ms 1.59±0.01ms 1.01 preprocessing_counts.FastSuite.time_log1p('bmmc', 'counts-off-axis')
638±2ms 639±4ms 1.00 preprocessing_counts.FastSuite.time_log1p('lung93k', 'counts')
637±3ms 630±2ms 0.99 preprocessing_counts.FastSuite.time_log1p('lung93k', 'counts-off-axis')
7.15±0.03ms 7.11±0.2ms 0.99 preprocessing_counts.FastSuite.time_log1p('pbmc3k', 'counts')
7.30±0.06ms 7.59±0.4ms 1.04 preprocessing_counts.FastSuite.time_log1p('pbmc3k', 'counts-off-axis')
387±4μs 386±0.6μs 1.00 preprocessing_counts.FastSuite.time_log1p('pbmc68k_reduced', 'counts')
420±30μs 398±7μs 0.95 preprocessing_counts.FastSuite.time_log1p('pbmc68k_reduced', 'counts-off-axis')
2.69±0.2ms 2.64±0.04ms 0.98 preprocessing_counts.FastSuite.time_normalize_total('bmmc', 'counts')
6.65±0.4ms 6.76±0.3ms 1.02 preprocessing_counts.FastSuite.time_normalize_total('bmmc', 'counts-off-axis')
548±7ms 551±10ms 1.01 preprocessing_counts.FastSuite.time_normalize_total('lung93k', 'counts')
2.71±0.03s 2.75±0.04s 1.01 preprocessing_counts.FastSuite.time_normalize_total('lung93k', 'counts-off-axis')
8.72±0.5ms 8.69±0.2ms 1.00 preprocessing_counts.FastSuite.time_normalize_total('pbmc3k', 'counts')
33.9±1ms 33.7±1ms 0.99 preprocessing_counts.FastSuite.time_normalize_total('pbmc3k', 'counts-off-axis')
546±0.9μs 549±4μs 1.01 preprocessing_counts.FastSuite.time_normalize_total('pbmc68k_reduced', 'counts')
547±0.5μs 548±2μs 1.00 preprocessing_counts.FastSuite.time_normalize_total('pbmc68k_reduced', 'counts-off-axis')
399M 420M 1.05 preprocessing_counts.PreprocessingCountsRngSuite.peakmem_downsample_per_cell('pbmc3k', 'random_state')
399M 420M 1.05 preprocessing_counts.PreprocessingCountsRngSuite.peakmem_downsample_per_cell('pbmc3k', 'rng')
336M 337M 1.00 preprocessing_counts.PreprocessingCountsRngSuite.peakmem_downsample_per_cell('pbmc68k_reduced', 'random_state')
335M 349M 1.04 preprocessing_counts.PreprocessingCountsRngSuite.peakmem_downsample_per_cell('pbmc68k_reduced', 'rng')
468M 474M 1.01 preprocessing_counts.PreprocessingCountsRngSuite.peakmem_downsample_total('pbmc3k', 'random_state')
+ 431M 477M 1.11 preprocessing_counts.PreprocessingCountsRngSuite.peakmem_downsample_total('pbmc3k', 'rng')
340M 342M 1.01 preprocessing_counts.PreprocessingCountsRngSuite.peakmem_downsample_total('pbmc68k_reduced', 'random_state')
338M 346M 1.02 preprocessing_counts.PreprocessingCountsRngSuite.peakmem_downsample_total('pbmc68k_reduced', 'rng')
- 205±0.5ms 28.0±6ms 0.14 preprocessing_counts.PreprocessingCountsRngSuite.time_downsample_per_cell('pbmc3k', 'random_state')
- 71.8±0.7ms 20.8±6ms 0.29 preprocessing_counts.PreprocessingCountsRngSuite.time_downsample_per_cell('pbmc3k', 'rng')
- 25.1±0.2ms 1.48±0.2ms 0.06 preprocessing_counts.PreprocessingCountsRngSuite.time_downsample_per_cell('pbmc68k_reduced', 'random_state')
16.1±0.08ms 3.67±0.06ms ~0.23 preprocessing_counts.PreprocessingCountsRngSuite.time_downsample_per_cell('pbmc68k_reduced', 'rng')
+ 192±8ms 306±4ms 1.59 preprocessing_counts.PreprocessingCountsRngSuite.time_downsample_total('pbmc3k', 'random_state')
+ 63.3±0.3ms 182±20ms 2.88 preprocessing_counts.PreprocessingCountsRngSuite.time_downsample_total('pbmc3k', 'rng')
+ 13.1±0.4ms 16.7±2ms 1.27 preprocessing_counts.PreprocessingCountsRngSuite.time_downsample_total('pbmc68k_reduced', 'random_state')
+ 7.14±0.3ms 11.1±0.6ms 1.55 preprocessing_counts.PreprocessingCountsRngSuite.time_downsample_total('pbmc68k_reduced', 'rng')
431M 430M 1.00 preprocessing_counts.PreprocessingCountsSuite.peakmem_filter_cells('pbmc3k', 'counts')
431M 431M 1.00 preprocessing_counts.PreprocessingCountsSuite.peakmem_filter_cells('pbmc3k', 'counts-off-axis')
299M 300M 1.00 preprocessing_counts.PreprocessingCountsSuite.peakmem_filter_cells('pbmc68k_reduced', 'counts')
299M 299M 1.00 preprocessing_counts.PreprocessingCountsSuite.peakmem_filter_cells('pbmc68k_reduced', 'counts-off-axis')
431M 431M 1.00 preprocessing_counts.PreprocessingCountsSuite.peakmem_filter_genes('pbmc3k', 'counts')
430M 431M 1.00 preprocessing_counts.PreprocessingCountsSuite.peakmem_filter_genes('pbmc3k', 'counts-off-axis')
299M 299M 1.00 preprocessing_counts.PreprocessingCountsSuite.peakmem_filter_genes('pbmc68k_reduced', 'counts')
299M 299M 1.00 preprocessing_counts.PreprocessingCountsSuite.peakmem_filter_genes('pbmc68k_reduced', 'counts-off-axis')
1.1G 1.11G 1.00 preprocessing_counts.PreprocessingCountsSuite.peakmem_scrublet('pbmc3k', 'counts')
1.1G 1.1G 1.00 preprocessing_counts.PreprocessingCountsSuite.peakmem_scrublet('pbmc3k', 'counts-off-axis')
498M 524M 1.05 preprocessing_counts.PreprocessingCountsSuite.peakmem_scrublet('pbmc68k_reduced', 'counts')
522M 523M 1.00 preprocessing_counts.PreprocessingCountsSuite.peakmem_scrublet('pbmc68k_reduced', 'counts-off-axis')
57.2±8ms 56.2±0.9ms 0.98 preprocessing_counts.PreprocessingCountsSuite.time_filter_cells('pbmc3k', 'counts')
58.3±1ms 58.8±3ms 1.01 preprocessing_counts.PreprocessingCountsSuite.time_filter_cells('pbmc3k', 'counts-off-axis')
10.2±0.8ms 10.4±0.9ms 1.02 preprocessing_counts.PreprocessingCountsSuite.time_filter_cells('pbmc68k_reduced', 'counts')
12.4±0.9ms 9.71±0.9ms ~0.78 preprocessing_counts.PreprocessingCountsSuite.time_filter_cells('pbmc68k_reduced', 'counts-off-axis')
52.6±1ms 52.2±0.5ms 0.99 preprocessing_counts.PreprocessingCountsSuite.time_filter_genes('pbmc3k', 'counts')
52.0±3ms 50.8±3ms 0.98 preprocessing_counts.PreprocessingCountsSuite.time_filter_genes('pbmc3k', 'counts-off-axis')
10.5±0.9ms 10.8±0.9ms 1.03 preprocessing_counts.PreprocessingCountsSuite.time_filter_genes('pbmc68k_reduced', 'counts')
10.5±0.9ms 10.8±0.9ms 1.03 preprocessing_counts.PreprocessingCountsSuite.time_filter_genes('pbmc68k_reduced', 'counts-off-axis')
2.27±0.2s 2.60±0.1s ~1.15 preprocessing_counts.PreprocessingCountsSuite.time_scrublet('pbmc3k', 'counts')
2.32±0.2s 2.59±0.05s ~1.12 preprocessing_counts.PreprocessingCountsSuite.time_scrublet('pbmc3k', 'counts-off-axis')
559±8ms 546±9ms 0.98 preprocessing_counts.PreprocessingCountsSuite.time_scrublet('pbmc68k_reduced', 'counts')
554±9ms 549±8ms 0.99 preprocessing_counts.PreprocessingCountsSuite.time_scrublet('pbmc68k_reduced', 'counts-off-axis')
432M 432M 1.00 preprocessing_log.PreprocessingSuite.peakmem_highly_variable_genes('pbmc3k', 'off-axis')
480M 480M 1.00 preprocessing_log.PreprocessingSuite.peakmem_highly_variable_genes('pbmc3k', None)
296M 296M 1.00 preprocessing_log.PreprocessingSuite.peakmem_highly_variable_genes('pbmc68k_reduced', 'off-axis')
297M 297M 1.00 preprocessing_log.PreprocessingSuite.peakmem_highly_variable_genes('pbmc68k_reduced', None)
569M 568M 1.00 preprocessing_log.PreprocessingSuite.peakmem_pca('pbmc3k', 'off-axis')
588M 588M 1.00 preprocessing_log.PreprocessingSuite.peakmem_pca('pbmc3k', None)
492M 496M 1.01 preprocessing_log.PreprocessingSuite.peakmem_pca('pbmc68k_reduced', 'off-axis')
498M 498M 1.00 preprocessing_log.PreprocessingSuite.peakmem_pca('pbmc68k_reduced', None)
n/a n/a n/a preprocessing_log.PreprocessingSuite.peakmem_regress_out('pbmc3k', 'off-axis')
n/a n/a n/a preprocessing_log.PreprocessingSuite.peakmem_regress_out('pbmc3k', None)
351M 349M 0.99 preprocessing_log.PreprocessingSuite.peakmem_regress_out('pbmc68k_reduced', 'off-axis')
350M 351M 1.00 preprocessing_log.PreprocessingSuite.peakmem_regress_out('pbmc68k_reduced', None)
1.29G 1.29G 1.00 preprocessing_log.PreprocessingSuite.peakmem_scale('pbmc3k', 'off-axis')
1.49G 1.49G 1.00 preprocessing_log.PreprocessingSuite.peakmem_scale('pbmc3k', None)
336M 341M 1.01 preprocessing_log.PreprocessingSuite.peakmem_scale('pbmc68k_reduced', 'off-axis')
338M 343M 1.01 preprocessing_log.PreprocessingSuite.peakmem_scale('pbmc68k_reduced', None)
39.2±2ms 39.5±2ms 1.01 preprocessing_log.PreprocessingSuite.time_highly_variable_genes('pbmc3k', 'off-axis')
55.8±0.5ms 55.3±0.6ms 0.99 preprocessing_log.PreprocessingSuite.time_highly_variable_genes('pbmc3k', None)
16.8±0.2ms 16.6±0.03ms 0.99 preprocessing_log.PreprocessingSuite.time_highly_variable_genes('pbmc68k_reduced', 'off-axis')
16.8±0.2ms 16.6±0.2ms 0.99 preprocessing_log.PreprocessingSuite.time_highly_variable_genes('pbmc68k_reduced', None)
1.96±0.01s 1.94±0.02s 0.99 preprocessing_log.PreprocessingSuite.time_pca('pbmc3k', 'off-axis')
2.15±0.01s 2.16±0.01s 1.00 preprocessing_log.PreprocessingSuite.time_pca('pbmc3k', None)
170±10ms 166±20ms 0.98 preprocessing_log.PreprocessingSuite.time_pca('pbmc68k_reduced', 'off-axis')
104±50ms 166±3ms ~1.60 preprocessing_log.PreprocessingSuite.time_pca('pbmc68k_reduced', None)
n/a n/a n/a preprocessing_log.PreprocessingSuite.time_regress_out('pbmc3k', 'off-axis')
n/a n/a n/a preprocessing_log.PreprocessingSuite.time_regress_out('pbmc3k', None)
16.9±0.8ms 17.0±0.7ms 1.01 preprocessing_log.PreprocessingSuite.time_regress_out('pbmc68k_reduced', 'off-axis')
16.7±0.4ms 16.9±0.6ms 1.02 preprocessing_log.PreprocessingSuite.time_regress_out('pbmc68k_reduced', None)
499±1ms 497±2ms 1.00 preprocessing_log.PreprocessingSuite.time_scale('pbmc3k', 'off-axis')
554±1ms 551±1ms 0.99 preprocessing_log.PreprocessingSuite.time_scale('pbmc3k', None)
4.72±0.2ms 4.76±0.1ms 1.01 preprocessing_log.PreprocessingSuite.time_scale('pbmc68k_reduced', 'off-axis')
4.61±0.1ms 4.74±0.1ms 1.03 preprocessing_log.PreprocessingSuite.time_scale('pbmc68k_reduced', None)
287M 287M 1.00 tools.ToolsSuite.peakmem_diffmap
293M 294M 1.00 tools.ToolsSuite.peakmem_leiden
362M 362M 1.00 tools.ToolsSuite.peakmem_rank_genes_groups
451M 449M 1.00 tools.ToolsSuite.peakmem_umap
16.7±0.4ms 16.5±0.3ms 0.99 tools.ToolsSuite.time_diffmap
20.1±0.2ms 19.5±0.07ms 0.97 tools.ToolsSuite.time_leiden
64.4±5ms 60.3±5ms 0.94 tools.ToolsSuite.time_rank_genes_groups
1.02±0s 1.02±0s 1.00 tools.ToolsSuite.time_umap