perf: parallel downsample #4004
Draft
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 |
Loading