HistGradientBoostingClassifier/Regressor 15x slowdown on small data problems compared to disabled OpenMP threading

This problem was first described as part of #14306, but I think it might make sense to open a dedicated issue for the particular problem of small data shapes.

The fundamental problem seems to be that the OpenMP threadpool overhead is frequently detrimental to performance on. Note that OpenMP threading is enabled by default in general in scikit-learn.

Here are the relative durations of running cross-validation on this model on data with various size with and without enabling threads:

![Image](https://github.com/user-attachments/assets/8f0c6da7-2c68-4f8c-9cdc-75058626c46b)

![Image](https://github.com/user-attachments/assets/804aab12-dc15-4c43-986a-ad05f07b7663)

![Image](https://github.com/user-attachments/assets/8768faa3-9fd4-4217-9006-ad1b6708ca4b)

Speed-up are measured in relative improvement in fit speed compared to a sequential fit (multi-threading disabled). 

This was collected on an Apple M1 CPU with 4 performance cores and 4 efficiency cores with llvm-opemp `libomp` installed from conda-forge.

<details>

```
System:
    python: 3.12.8 | packaged by conda-forge | (main, Dec  5 2024, 14:19:53) [Clang 18.1.8 ]
executable: /Users/ogrisel/miniforge3/envs/dev/bin/python
   machine: macOS-15.2-arm64-arm-64bit

Python dependencies:
      sklearn: 1.7.dev0
          pip: 24.3.1
   setuptools: 75.6.0
        numpy: 2.0.2
        scipy: 1.14.1
       Cython: 3.0.11
       pandas: 2.2.3
   matplotlib: 3.10.0
       joblib: 1.4.2
threadpoolctl: 3.5.0

Built with OpenMP: True

threadpoolctl info:
       user_api: openmp
   internal_api: openmp
    num_threads: 8
         prefix: libomp
       filepath: /Users/ogrisel/miniforge3/envs/dev/lib/libomp.dylib
        version: None
```

</details>

Here are my conclusions:

- Using threads can cause a huge slowdown on the smallest problems (15x slower than when running with the threads disabled);
- OpenMP threading becomes benefitial only with large datasets (more than 100k data points with hundreds of dimensions);
- Using the 4 efficiency cores is almost always detrimental. For Intel/AMD x86 CPUs we already disable SMT/HyperThreading for a similar reason (see #26082). But I don't know how to do something similar for efficiency cores in platform-agnostic way;
- We should probably disable multi-threading, or at least reduce the number of threads with a heuristic that depends on the data shape such as:
  ```python
  n_threads = min(
      min(
          max(n_samples * n_features // int(1e5), 1),
          n_features // 2,  # to avoid stragglers
      ),
      joblib.cpu_count(only_physical_cores=True)
  )
  ```
- Implementing [sample-wise parallelism](https://github.com/scikit-learn/scikit-learn/issues/14306#issuecomment-688377677) could probably help a bit on some case (`n_features << max(n_cores, n_samples)`, but I still think OpenMP threading should be disabled on the smallest problems.
- Results will probably also be impacted if we merge #27168.

## Benchmark result data

[bench_num_threads.parquet](https://drive.google.com/file/d/1sRCKpqrOFUMi4xs2g6SDfErJoN9CqrzG/view?usp=sharing)

## Benchmark code

<details>

```python
# %%
from time import perf_counter

from sklearn.ensemble import HistGradientBoostingRegressor
from sklearn.datasets import make_regression
from sklearn.model_selection import cross_val_score, ShuffleSplit
from threadpoolctl import threadpool_limits
import pandas as pd
import pyarrow
import fastparquet

# %%

records = []
data_shapes = [
    # n_features == 10
    (100, 10),
    (1_000, 10),
    (10_000, 10),
    (100_000, 10),
    (1_000_000, 10),
    # n_features == 100
    (100, 100),
    (1_000, 100),
    (10_000, 100),
    (100_000, 100),
    (1_000_000, 100),
    # n_features == 1000
    (100, 1_000),
    (1_000, 1_000),
]
# all_max_num_threads = [1, 2, 4, 8, None]  # None means using all available threads
all_max_num_threads = [1, 2, 4, 8]


for max_num_threads in all_max_num_threads:
    for n_samples, n_features in data_shapes:
        X, y = make_regression(
            n_samples=n_samples, n_features=n_features, random_state=0
        )
        with threadpool_limits(limits=max_num_threads):
            # Make sure we do enough CV splits to have non-trivial runtimes on
            # smaller problems.
            n_splits = max(int(1e5) // (n_samples * n_features), 5)
            start = perf_counter()
            scores = cross_val_score(
                HistGradientBoostingRegressor(),
                X,
                y,
                cv=ShuffleSplit(n_splits=n_splits, test_size=0.2, random_state=0),
            )
            end = perf_counter()
        record = {
            "n_samples": n_samples,
            "n_features": n_features,
            "n_splits": n_splits,
            "max_num_threads": max_num_threads,
            "duration": end - start,
        }
        print(record)
        records.append(record)

records = pd.DataFrame(records)
records.to_parquet("bench_num_threads.parquet")
```

</details>

## Plotting code

<details>

```python
# %%
import matplotlib.pyplot as plt
import pandas as pd

records = pd.read_parquet("bench_num_threads.parquet")
# %%
# For each (n_samples, n_features, n_splits) group, we compute the relative speed up
# with respect to running on a single thread. We append the result as a new "speedup" column
# to the records DataFrame.
# %%
speedups = []
for (n_samples, n_features, n_splits), group in records.groupby(
    ["n_samples", "n_features", "n_splits"]
):
    ref_duration = group[group["max_num_threads"] == 1]["duration"].values[0]
    group["speedup"] = (ref_duration / group["duration"]).round(2)
    speedups.append(group)

speedups = pd.concat(speedups)
speedups["slowdown"] = (1 / speedups["speedup"]).round(2)

# %%
speedups.sort_values("speedup", ascending=False).head(10)

# %%
speedups.sort_values("slowdown", ascending=False).head(10)


# %%
# We can now plot the speedup as a function of the number of threads used.
# %%
def plot_speed_curves(speedups, n_features=100):
    fig, ax = plt.subplots()
    for (n_samples, n_features, n_splits), group in speedups.query(
        "n_features == @n_features"
    ).groupby(["n_samples", "n_features", "n_splits"]):
        group.plot(
            x="max_num_threads",
            y="speedup",
            ax=ax,
            label=f"X.shape=({n_samples}, {n_features}))",
        )
    ax.hlines(1, 0.95, 8.5, linestyles="--", color="gray")
    ax.set(
        xscale="log",
        xlabel="Number of threads",
        xticks=[1, 4, 8],
        xticklabels=["1", "4", "8"],
        yscale="log",
        ylabel="Speedup",
        yticks=[0.1, 0.2, 0.5, 1, 2, 5, 10],
        yticklabels=["0.1x", "0.2x", "0.5x", "1x", "2x", "5x", "10x"],
        title=f"Impact of threading on fit time (n_features={n_features})",
    )


plot_speed_curves(speedups, n_features=10)
plot_speed_curves(speedups, n_features=100)
plot_speed_curves(speedups, n_features=1000)
```

</details>

COMMENT:
Joining the game a bit late (for completeness, I used the "performance" settings of my power manager whatever that means):

OS:Linux
CPU info: I have a mixed of efficient and performance cores (2 efficient cores with 2 hyper-threads each and 8 efficient cores)

![Image](https://github.com/user-attachments/assets/b129d7ba-c4a4-4eee-ae11-9324dd122690)

![Image](https://github.com/user-attachments/assets/12d14f82-d55b-4687-a8bb-37c8b6805d8d)

![Image](https://github.com/user-attachments/assets/5dbc0fd1-127f-4101-8119-ea7a04fb6439)

<details>
<summary>Bench output</summary>

```
{'n_samples': 100, 'n_features': 10, 'n_splits': 100, 'max_num_threads': 1, 'duration': 0.96655087597901}
{'n_samples': 1000, 'n_features': 10, 'n_splits': 10, 'max_num_threads': 1, 'duration': 0.7503898740105797}
{'n_samples': 10000, 'n_features': 10, 'n_splits': 5, 'max_num_threads': 1, 'duration': 0.6945735479821451}
{'n_samples': 100000, 'n_features': 10, 'n_splits': 5, 'max_num_threads': 1, 'duration': 2.657946171995718}
{'n_samples': 1000000, 'n_features': 10, 'n_splits': 5, 'max_num_threads': 1, 'duration': 23.439254698023433}
{'n_samples': 100, 'n_features': 100, 'n_splits': 10, 'max_num_threads': 1, 'duration': 0.19116737198783085}
{'n_samples': 1000, 'n_features': 100, 'n_splits': 5, 'max_num_threads': 1, 'duration': 1.6745720760081895}
{'n_samples': 10000, 'n_features': 100, 'n_splits': 5, 'max_num_threads': 1, 'duration': 3.863882048986852}
{'n_samples': 100000, 'n_features': 100, 'n_splits': 5, 'max_num_threads': 1, 'duration': 13.712919746991247}
{'n_samples': 1000000, 'n_features': 100, 'n_splits': 5, 'max_num_threads': 1, 'duration': 128.9209115440026}
{'n_samples': 100, 'n_features': 1000, 'n_splits': 5, 'max_num_threads': 1, 'duration': 0.7434682980237994}
{'n_samples': 1000, 'n_features': 1000, 'n_splits': 5, 'max_num_threads': 1, 'duration': 20.036949890985852}
{'n_samples': 100, 'n_features': 10, 'n_splits': 100, 'max_num_threads': 2, 'duration': 3.107117154984735}
{'n_samples': 1000, 'n_features': 10, 'n_splits': 10, 'max_num_threads': 2, 'duration': 1.8682394640054554}
{'n_samples': 10000, 'n_features': 10, 'n_splits': 5, 'max_num_threads': 2, 'duration': 1.3138344030012377}
{'n_samples': 100000, 'n_features': 10, 'n_splits': 5, 'max_num_threads': 2, 'duration': 2.552591929998016}
{'n_samples': 1000000, 'n_features': 10, 'n_splits': 5, 'max_num_threads': 2, 'duration': 15.32210685001337}
{'n_samples': 100, 'n_features': 100, 'n_splits': 10, 'max_num_threads': 2, 'duration': 0.35787250800058246}
{'n_samples': 1000, 'n_features': 100, 'n_splits': 5, 'max_num_threads': 2, 'duration': 1.7576838899985887}
{'n_samples': 10000, 'n_features': 100, 'n_splits': 5, 'max_num_threads': 2, 'duration': 3.1455059399886522}
{'n_samples': 100000, 'n_features': 100, 'n_splits': 5, 'max_num_threads': 2, 'duration': 8.891928616008954}
{'n_samples': 1000000, 'n_features': 100, 'n_splits': 5, 'max_num_threads': 2, 'duration': 87.41993500600802}
{'n_samples': 100, 'n_features': 1000, 'n_splits': 5, 'max_num_threads': 2, 'duration': 0.7563776950119063}
{'n_samples': 1000, 'n_features': 1000, 'n_splits': 5, 'max_num_threads': 2, 'duration': 13.448106697993353}
{'n_samples': 100, 'n_features': 10, 'n_splits': 100, 'max_num_threads': 4, 'duration': 4.212304785993183}
{'n_samples': 1000, 'n_features': 10, 'n_splits': 10, 'max_num_threads': 4, 'duration': 2.6688664440007415}
{'n_samples': 10000, 'n_features': 10, 'n_splits': 5, 'max_num_threads': 4, 'duration': 1.6493678799888585}
{'n_samples': 100000, 'n_features': 10, 'n_splits': 5, 'max_num_threads': 4, 'duration': 3.935100433998741}
{'n_samples': 1000000, 'n_features': 10, 'n_splits': 5, 'max_num_threads': 4, 'duration': 21.42685067799175}
{'n_samples': 100, 'n_features': 100, 'n_splits': 10, 'max_num_threads': 4, 'duration': 0.7844436890154611}
{'n_samples': 1000, 'n_features': 100, 'n_splits': 5, 'max_num_threads': 4, 'duration': 3.675606662000064}
{'n_samples': 10000, 'n_features': 100, 'n_splits': 5, 'max_num_threads': 4, 'duration': 4.109612600004766}
{'n_samples': 100000, 'n_features': 100, 'n_splits': 5, 'max_num_threads': 4, 'duration': 7.959763607010245}
{'n_samples': 1000000, 'n_features': 100, 'n_splits': 5, 'max_num_threads': 4, 'duration': 83.01440567499958}
{'n_samples': 100, 'n_features': 1000, 'n_splits': 5, 'max_num_threads': 4, 'duration': 0.8596959889982827}
{'n_samples': 1000, 'n_features': 1000, 'n_splits': 5, 'max_num_threads': 4, 'duration': 11.070652122987667}
{'n_samples': 100, 'n_features': 10, 'n_splits': 100, 'max_num_threads': 8, 'duration': 4.787843186000828}
{'n_samples': 1000, 'n_features': 10, 'n_splits': 10, 'max_num_threads': 8, 'duration': 3.506035583006451}
{'n_samples': 10000, 'n_features': 10, 'n_splits': 5, 'max_num_threads': 8, 'duration': 2.375389004999306}
{'n_samples': 100000, 'n_features': 10, 'n_splits': 5, 'max_num_threads': 8, 'duration': 3.2836844330013264}
{'n_samples': 1000000, 'n_features': 10, 'n_splits': 5, 'max_num_threads': 8, 'duration': 10.699445036996622}
{'n_samples': 100, 'n_features': 100, 'n_splits': 10, 'max_num_threads': 8, 'duration': 0.7118314870167524}
{'n_samples': 1000, 'n_features': 100, 'n_splits': 5, 'max_num_threads': 8, 'duration': 3.7764102750224993}
^[[A{'n_samples': 10000, 'n_features': 100, 'n_splits': 5, 'max_num_threads': 8, 'duration': 5.734873603010783}
{'n_samples': 100000, 'n_features': 100, 'n_splits': 5, 'max_num_threads': 8, 'duration': 12.798907230026089}
{'n_samples': 1000000, 'n_features': 100, 'n_splits': 5, 'max_num_threads': 8, 'duration': 76.67278615900432}
{'n_samples': 100, 'n_features': 1000, 'n_splits': 5, 'max_num_threads': 8, 'duration': 1.5148480930074584}
{'n_samples': 1000, 'n_features': 1000, 'n_splits': 5, 'max_num_threads': 8, 'duration': 9.537870539992582}
```

</details>

<details>

<summary>/proc/cpuinfo</summary>

```
❯ cat /proc/cpuinfo                       
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 186
model name	: 13th Gen Intel(R) Core(TM) i7-1355U
stepping	: 3
microcode	: 0x4123
cpu MHz		: 4384.436
cache size	: 12288 KB
physical id	: 0
siblings	: 12
core id		: 0
cpu cores	: 10
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 32
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb intel_pt sha_ni xsaveopt xsavec xgetbv1 xsaves split_lock_detect user_shstk avx_vnni dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp hwp_pkg_req hfi vnmi umip pku ospke waitpkg gfni vaes vpclmulqdq rdpid movdiri movdir64b fsrm md_clear serialize arch_lbr ibt flush_l1d arch_capabilities
vmx flags	: vnmi preemption_timer posted_intr invvpid ept_x_only ept_ad ept_1gb flexpriority apicv tsc_offset vtpr mtf vapic ept vpid unrestricted_guest vapic_reg vid ple shadow_vmcs ept_violation_ve ept_mode_based_exec tsc_scaling usr_wait_pause
bugs		: spectre_v1 spectre_v2 spec_store_bypass swapgs eibrs_pbrsb rfds bhi
bogomips	: 5224.00
clflush size	: 64
cache_alignment	: 64
address sizes	: 39 bits physical, 48 bits virtual
power management:

processor	: 1
vendor_id	: GenuineIntel
cpu family	: 6
model		: 186
model name	: 13th Gen Intel(R) Core(TM) i7-1355U
stepping	: 3
microcode	: 0x4123
cpu MHz		: 2572.393
cache size	: 12288 KB
physical id	: 0
siblings	: 12
core id		: 0
cpu cores	: 10
apicid		: 1
initial apicid	: 1
fpu		: yes
fpu_exception	: yes
cpuid level	: 32
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb intel_pt sha_ni xsaveopt xsavec xgetbv1 xsaves split_lock_detect user_shstk avx_vnni dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp hwp_pkg_req hfi vnmi umip pku ospke waitpkg gfni vaes vpclmulqdq rdpid movdiri movdir64b fsrm md_clear serialize arch_lbr ibt flush_l1d arch_capabilities
vmx flags	: vnmi preemption_timer posted_intr invvpid ept_x_only ept_ad ept_1gb flexpriority apicv tsc_offset vtpr mtf vapic ept vpid unrestricted_guest vapic_reg vid ple shadow_vmcs ept_violation_ve ept_mode_based_exec tsc_scaling usr_wait_pause
bugs		: spectre_v1 spectre_v2 spec_store_bypass swapgs eibrs_pbrsb rfds bhi
bogomips	: 5224.00
clflush size	: 64
cache_alignment	: 64
address sizes	: 39 bits physical, 48 bits virtual
power management:

processor	: 2
vendor_id	: GenuineIntel
cpu family	: 6
model		: 186
model name	: 13th Gen Intel(R) Core(TM) i7-1355U
stepping	: 3
microcode	: 0x4123
cpu MHz		: 4781.983
cache size	: 12288 KB
physical id	: 0
siblings	: 12
core id		: 4
cpu cores	: 10
apicid		: 8
initial apicid	: 8
fpu		: yes
fpu_exception	: yes
cpuid level	: 32
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb intel_pt sha_ni xsaveopt xsavec xgetbv1 xsaves split_lock_detect user_shstk avx_vnni dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp hwp_pkg_req hfi vnmi umip pku ospke waitpkg gfni vaes vpclmulqdq rdpid movdiri movdir64b fsrm md_clear serialize arch_lbr ibt flush_l1d arch_capabilities
vmx flags	: vnmi preemption_timer posted_intr invvpid ept_x_only ept_ad ept_1gb flexpriority apicv tsc_offset vtpr mtf vapic ept vpid unrestricted_guest vapic_reg vid ple shadow_vmcs ept_violation_ve ept_mode_based_exec tsc_scaling usr_wait_pause
bugs		: spectre_v1 spectre_v2 spec_store_bypass swapgs eibrs_pbrsb rfds bhi
bogomips	: 5224.00
clflush size	: 64
cache_alignment	: 64
address sizes	: 39 bits physical, 48 bits virtual
power management:

processor	: 3
vendor_id	: GenuineIntel
cpu family	: 6
model		: 186
model name	: 13th Gen Intel(R) Core(TM) i7-1355U
stepping	: 3
microcode	: 0x4123
cpu MHz		: 3641.827
cache size	: 12288 KB
physical id	: 0
siblings	: 12
core id		: 4
cpu cores	: 10
apicid		: 9
initial apicid	: 9
fpu		: yes
fpu_exception	: yes
cpuid level	: 32
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb intel_pt sha_ni xsaveopt xsavec xgetbv1 xsaves split_lock_detect user_shstk avx_vnni dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp hwp_pkg_req hfi vnmi umip pku ospke waitpkg gfni vaes vpclmulqdq rdpid movdiri movdir64b fsrm md_clear serialize arch_lbr ibt flush_l1d arch_capabilities
vmx flags	: vnmi preemption_timer posted_intr invvpid ept_x_only ept_ad ept_1gb flexpriority apicv tsc_offset vtpr mtf vapic ept vpid unrestricted_guest vapic_reg vid ple shadow_vmcs ept_violation_ve ept_mode_based_exec tsc_scaling usr_wait_pause
bugs		: spectre_v1 spectre_v2 spec_store_bypass swapgs eibrs_pbrsb rfds bhi
bogomips	: 5224.00
clflush size	: 64
cache_alignment	: 64
address sizes	: 39 bits physical, 48 bits virtual
power management:

processor	: 4
vendor_id	: GenuineIntel
cpu family	: 6
model		: 186
model name	: 13th Gen Intel(R) Core(TM) i7-1355U
stepping	: 3
microcode	: 0x4123
cpu MHz		: 3439.214
cache size	: 12288 KB
physical id	: 0
siblings	: 12
core id		: 8
cpu cores	: 10
apicid		: 16
initial apicid	: 16
fpu		: yes
fpu_exception	: yes
cpuid level	: 32
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb intel_pt sha_ni xsaveopt xsavec xgetbv1 xsaves split_lock_detect user_shstk avx_vnni dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp hwp_pkg_req hfi vnmi umip pku ospke waitpkg gfni vaes vpclmulqdq rdpid movdiri movdir64b fsrm md_clear serialize arch_lbr ibt flush_l1d arch_capabilities
vmx flags	: vnmi preemption_timer posted_intr invvpid ept_x_only ept_ad ept_1gb flexpriority apicv tsc_offset vtpr mtf vapic ept vpid unrestricted_guest vapic_reg vid ple shadow_vmcs ept_violation_ve ept_mode_based_exec tsc_scaling usr_wait_pause
bugs		: spectre_v1 spectre_v2 spec_store_bypass swapgs eibrs_pbrsb rfds bhi
bogomips	: 5224.00
clflush size	: 64
cache_alignment	: 64
address sizes	: 39 bits physical, 48 bits virtual
power management:

processor	: 5
vendor_id	: GenuineIntel
cpu family	: 6
model		: 186
model name	: 13th Gen Intel(R) Core(TM) i7-1355U
stepping	: 3
microcode	: 0x4123
cpu MHz		: 3405.999
cache size	: 12288 KB
physical id	: 0
siblings	: 12
core id		: 9
cpu cores	: 10
apicid		: 18
initial apicid	: 18
fpu		: yes
fpu_exception	: yes
cpuid level	: 32
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb intel_pt sha_ni xsaveopt xsavec xgetbv1 xsaves split_lock_detect user_shstk avx_vnni dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp hwp_pkg_req hfi vnmi umip pku ospke waitpkg gfni vaes vpclmulqdq rdpid movdiri movdir64b fsrm md_clear serialize arch_lbr ibt flush_l1d arch_capabilities
vmx flags	: vnmi preemption_timer posted_intr invvpid ept_x_only ept_ad ept_1gb flexpriority apicv tsc_offset vtpr mtf vapic ept vpid unrestricted_guest vapic_reg vid ple shadow_vmcs ept_violation_ve ept_mode_based_exec tsc_scaling usr_wait_pause
bugs		: spectre_v1 spectre_v2 spec_store_bypass swapgs eibrs_pbrsb rfds bhi
bogomips	: 5224.00
clflush size	: 64
cache_alignment	: 64
address sizes	: 39 bits physical, 48 bits virtual
power management:

processor	: 6
vendor_id	: GenuineIntel
cpu family	: 6
model		: 186
model name	: 13th Gen Intel(R) Core(TM) i7-1355U
stepping	: 3
microcode	: 0x4123
cpu MHz		: 3386.803
cache size	: 12288 KB
physical id	: 0
siblings	: 12
core id		: 10
cpu cores	: 10
apicid		: 20
initial apicid	: 20
fpu		: yes
fpu_exception	: yes
cpuid level	: 32
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb intel_pt sha_ni xsaveopt xsavec xgetbv1 xsaves split_lock_detect user_shstk avx_vnni dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp hwp_pkg_req hfi vnmi umip pku ospke waitpkg gfni vaes vpclmulqdq rdpid movdiri movdir64b fsrm md_clear serialize arch_lbr ibt flush_l1d arch_capabilities
vmx flags	: vnmi preemption_timer posted_intr invvpid ept_x_only ept_ad ept_1gb flexpriority apicv tsc_offset vtpr mtf vapic ept vpid unrestricted_guest vapic_reg vid ple shadow_vmcs ept_violation_ve ept_mode_based_exec tsc_scaling usr_wait_pause
bugs		: spectre_v1 spectre_v2 spec_store_bypass swapgs eibrs_pbrsb rfds bhi
bogomips	: 5224.00
clflush size	: 64
cache_alignment	: 64
address sizes	: 39 bits physical, 48 bits virtual
power management:

processor	: 7
vendor_id	: GenuineIntel
cpu family	: 6
model		: 186
model name	: 13th Gen Intel(R) Core(TM) i7-1355U
stepping	: 3
microcode	: 0x4123
cpu MHz		: 2357.078
cache size	: 12288 KB
physical id	: 0
siblings	: 12
core id		: 11
cpu cores	: 10
apicid		: 22
initial apicid	: 22
fpu		: yes
fpu_exception	: yes
cpuid level	: 32
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb intel_pt sha_ni xsaveopt xsavec xgetbv1 xsaves split_lock_detect user_shstk avx_vnni dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp hwp_pkg_req hfi vnmi umip pku ospke waitpkg gfni vaes vpclmulqdq rdpid movdiri movdir64b fsrm md_clear serialize arch_lbr ibt flush_l1d arch_capabilities
vmx flags	: vnmi preemption_timer posted_intr invvpid ept_x_only ept_ad ept_1gb flexpriority apicv tsc_offset vtpr mtf vapic ept vpid unrestricted_guest vapic_reg vid ple shadow_vmcs ept_violation_ve ept_mode_based_exec tsc_scaling usr_wait_pause
bugs		: spectre_v1 spectre_v2 spec_store_bypass swapgs eibrs_pbrsb rfds bhi
bogomips	: 5224.00
clflush size	: 64
cache_alignment	: 64
address sizes	: 39 bits physical, 48 bits virtual
power management:

processor	: 8
vendor_id	: GenuineIntel
cpu family	: 6
model		: 186
model name	: 13th Gen Intel(R) Core(TM) i7-1355U
stepping	: 3
microcode	: 0x4123
cpu MHz		: 3495.197
cache size	: 12288 KB
physical id	: 0
siblings	: 12
core id		: 12
cpu cores	: 10
apicid		: 24
initial apicid	: 24
fpu		: yes
fpu_exception	: yes
cpuid level	: 32
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb intel_pt sha_ni xsaveopt xsavec xgetbv1 xsaves split_lock_detect user_shstk avx_vnni dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp hwp_pkg_req hfi vnmi umip pku ospke waitpkg gfni vaes vpclmulqdq rdpid movdiri movdir64b fsrm md_clear serialize arch_lbr ibt flush_l1d arch_capabilities
vmx flags	: vnmi preemption_timer posted_intr invvpid ept_x_only ept_ad ept_1gb flexpriority apicv tsc_offset vtpr mtf vapic ept vpid unrestricted_guest vapic_reg vid ple shadow_vmcs ept_violation_ve ept_mode_based_exec tsc_scaling usr_wait_pause
bugs		: spectre_v1 spectre_v2 spec_store_bypass swapgs eibrs_pbrsb rfds bhi
bogomips	: 5224.00
clflush size	: 64
cache_alignment	: 64
address sizes	: 39 bits physical, 48 bits virtual
power management:

processor	: 9
vendor_id	: GenuineIntel
cpu family	: 6
model		: 186
model name	: 13th Gen Intel(R) Core(TM) i7-1355U
stepping	: 3
microcode	: 0x4123
cpu MHz		: 3166.595
cache size	: 12288 KB
physical id	: 0
siblings	: 12
core id		: 13
cpu cores	: 10
apicid		: 26
initial apicid	: 26
fpu		: yes
fpu_exception	: yes
cpuid level	: 32
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb intel_pt sha_ni xsaveopt xsavec xgetbv1 xsaves split_lock_detect user_shstk avx_vnni dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp hwp_pkg_req hfi vnmi umip pku ospke waitpkg gfni vaes vpclmulqdq rdpid movdiri movdir64b fsrm md_clear serialize arch_lbr ibt flush_l1d arch_capabilities
vmx flags	: vnmi preemption_timer posted_intr invvpid ept_x_only ept_ad ept_1gb flexpriority apicv tsc_offset vtpr mtf vapic ept vpid unrestricted_guest vapic_reg vid ple shadow_vmcs ept_violation_ve ept_mode_based_exec tsc_scaling usr_wait_pause
bugs		: spectre_v1 spectre_v2 spec_store_bypass swapgs eibrs_pbrsb rfds bhi
bogomips	: 5224.00
clflush size	: 64
cache_alignment	: 64
address sizes	: 39 bits physical, 48 bits virtual
power management:

processor	: 10
vendor_id	: GenuineIntel
cpu family	: 6
model		: 186
model name	: 13th Gen Intel(R) Core(TM) i7-1355U
stepping	: 3
microcode	: 0x4123
cpu MHz		: 3499.931
cache size	: 12288 KB
physical id	: 0
siblings	: 12
core id		: 14
cpu cores	: 10
apicid		: 28
initial apicid	: 28
fpu		: yes
fpu_exception	: yes
cpuid level	: 32
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb intel_pt sha_ni xsaveopt xsavec xgetbv1 xsaves split_lock_detect user_shstk avx_vnni dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp hwp_pkg_req hfi vnmi umip pku ospke waitpkg gfni vaes vpclmulqdq rdpid movdiri movdir64b fsrm md_clear serialize arch_lbr ibt flush_l1d arch_capabilities
vmx flags	: vnmi preemption_timer posted_intr invvpid ept_x_only ept_ad ept_1gb flexpriority apicv tsc_offset vtpr mtf vapic ept vpid unrestricted_guest vapic_reg vid ple shadow_vmcs ept_violation_ve ept_mode_based_exec tsc_scaling usr_wait_pause
bugs		: spectre_v1 spectre_v2 spec_store_bypass swapgs eibrs_pbrsb rfds bhi
bogomips	: 5224.00
clflush size	: 64
cache_alignment	: 64
address sizes	: 39 bits physical, 48 bits virtual
power management:

processor	: 11
vendor_id	: GenuineIntel
cpu family	: 6
model		: 186
model name	: 13th Gen Intel(R) Core(TM) i7-1355U
stepping	: 3
microcode	: 0x4123
cpu MHz		: 3495.617
cache size	: 12288 KB
physical id	: 0
siblings	: 12
core id		: 15
cpu cores	: 10
apicid		: 30
initial apicid	: 30
fpu		: yes
fpu_exception	: yes
cpuid level	: 32
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb intel_pt sha_ni xsaveopt xsavec xgetbv1 xsaves split_lock_detect user_shstk avx_vnni dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp hwp_pkg_req hfi vnmi umip pku ospke waitpkg gfni vaes vpclmulqdq rdpid movdiri movdir64b fsrm md_clear serialize arch_lbr ibt flush_l1d arch_capabilities
vmx flags	: vnmi preemption_timer posted_intr invvpid ept_x_only ept_ad ept_1gb flexpriority apicv tsc_offset vtpr mtf vapic ept vpid unrestricted_guest vapic_reg vid ple shadow_vmcs ept_violation_ve ept_mode_based_exec tsc_scaling usr_wait_pause
bugs		: spectre_v1 spectre_v2 spec_store_bypass swapgs eibrs_pbrsb rfds bhi
bogomips	: 5224.00
clflush size	: 64
cache_alignment	: 64
address sizes	: 39 bits physical, 48 bits virtual
power management:
```

</details>

<details>
<summary>sklearn.show_versions()</summary>

```
System:
    python: 3.13.1 | packaged by conda-forge | (main, Jan 13 2025, 09:53:10) [GCC 13.3.0]
executable: /home/lesteve/micromamba/envs/hgbt-bench/bin/python
   machine: Linux-6.12.9-arch1-1-x86_64-with-glibc2.40

Python dependencies:
      sklearn: 1.6.1
          pip: 24.3.1
   setuptools: 75.8.0
        numpy: 2.2.2
        scipy: 1.15.1
       Cython: None
       pandas: 2.2.3
   matplotlib: 3.10.0
       joblib: 1.4.2
threadpoolctl: 3.5.0

Built with OpenMP: True

threadpoolctl info:
       user_api: blas
   internal_api: openblas
    num_threads: 12
         prefix: libopenblas
       filepath: /home/lesteve/micromamba/envs/hgbt-bench/lib/libopenblasp-r0.3.28.so
        version: 0.3.28
threading_layer: pthreads
   architecture: Haswell

       user_api: openmp
   internal_api: openmp
    num_threads: 12
         prefix: libgomp
       filepath: /home/lesteve/micromamba/envs/hgbt-bench/lib/libgomp.so.1.0.0
        version: None

```

</details>
<details>
<summary>env info</summary>

```
List of packages in environment: "/home/lesteve/micromamba/envs/hgbt-bench"

  Name                              Version       Build                Channel    
────────────────────────────────────────────────────────────────────────────────────
  _libgcc_mutex                     0.1           conda_forge          conda-forge
  _openmp_mutex                     4.5           2_gnu                conda-forge
  alsa-lib                          1.2.13        hb9d3cd8_0           conda-forge
  asttokens                         3.0.0         pyhd8ed1ab_1         conda-forge
  aws-c-auth                        0.8.0         h205f482_16          conda-forge
  aws-c-cal                         0.8.1         h1a47875_3           conda-forge
  aws-c-common                      0.10.6        hb9d3cd8_0           conda-forge
  aws-c-compression                 0.3.0         h4e1184b_5           conda-forge
  aws-c-event-stream                0.5.0         h7959bf6_11          conda-forge
  aws-c-http                        0.9.2         hefd7a92_4           conda-forge
  aws-c-io                          0.15.3        h173a860_6           conda-forge
  aws-c-mqtt                        0.11.0        h11f4f37_12          conda-forge
  aws-c-s3                          0.7.9         hf454442_0           conda-forge
  aws-c-sdkutils                    0.2.2         h4e1184b_0           conda-forge
  aws-checksums                     0.2.2         h4e1184b_4           conda-forge
  aws-crt-cpp                       0.29.9        hbbd73d0_1           conda-forge
  aws-sdk-cpp                       1.11.458      h4d475cb_6           conda-forge
  azure-core-cpp                    1.14.0        h5cfcd09_0           conda-forge
  azure-identity-cpp                1.10.0        h113e628_0           conda-forge
  azure-storage-blobs-cpp           12.13.0       h3cf044e_1           conda-forge
  azure-storage-common-cpp          12.8.0        h736e048_1           conda-forge
  azure-storage-files-datalake-cpp  12.12.0       ha633028_1           conda-forge
  brotli                            1.1.0         hb9d3cd8_2           conda-forge
  brotli-bin                        1.1.0         hb9d3cd8_2           conda-forge
  bzip2                             1.0.8         h4bc722e_7           conda-forge
  c-ares                            1.34.4        hb9d3cd8_0           conda-forge
  ca-certificates                   2024.12.14    hbcca054_0           conda-forge
  cairo                             1.18.2        h3394656_1           conda-forge
  contourpy                         1.3.1         py313h33d0bda_0      conda-forge
  cramjam                           2.8.4rc3      py313h330e790_2      conda-forge
  cycler                            0.12.1        pyhd8ed1ab_1         conda-forge
  cyrus-sasl                        2.1.27        h54b06d7_7           conda-forge
  dbus                              1.13.6        h5008d03_3           conda-forge
  decorator                         5.1.1         pyhd8ed1ab_1         conda-forge
  double-conversion                 3.3.0         h59595ed_0           conda-forge
  exceptiongroup                    1.2.2         pyhd8ed1ab_1         conda-forge
  executing                         2.1.0         pyhd8ed1ab_1         conda-forge
  expat                             2.6.4         h5888daf_0           conda-forge
  fastparquet                       2024.11.0     py313ha014f3b_0      conda-forge
  font-ttf-dejavu-sans-mono         2.37          hab24e00_0           conda-forge
  font-ttf-inconsolata              3.000         h77eed37_0           conda-forge
  font-ttf-source-code-pro          2.038         h77eed37_0           conda-forge
  font-ttf-ubuntu                   0.83          h77eed37_3           conda-forge
  fontconfig                        2.15.0        h7e30c49_1           conda-forge
  fonts-conda-ecosystem             1             0                    conda-forge
  fonts-conda-forge                 1             0                    conda-forge
  fonttools                         4.55.3        py313h8060acc_1      conda-forge
  freetype                          2.12.1        h267a509_2           conda-forge
  fsspec                            2024.12.0     pyhd8ed1ab_0         conda-forge
  gflags                            2.2.2         h5888daf_1005        conda-forge
  glog                              0.7.1         hbabe93e_0           conda-forge
  graphite2                         1.3.13        h59595ed_1003        conda-forge
  harfbuzz                          10.2.0        h4bba637_0           conda-forge
  icu                               75.1          he02047a_0           conda-forge
  ipython                           8.31.0        pyh707e725_0         conda-forge
  jedi                              0.19.2        pyhd8ed1ab_1         conda-forge
  joblib                            1.4.2         pyhd8ed1ab_1         conda-forge
  keyutils                          1.6.1         h166bdaf_0           conda-forge
  kiwisolver                        1.4.7         py313h33d0bda_0      conda-forge
  krb5                              1.21.3        h659f571_0           conda-forge
  lcms2                             2.16          hb7c19ff_0           conda-forge
  ld_impl_linux-64                  2.43          h712a8e2_2           conda-forge
  lerc                              4.0.0         h27087fc_0           conda-forge
  libabseil                         20240722.0    cxx17_hbbce691_4     conda-forge
  libarrow                          19.0.0        hce2e470_3_cpu       conda-forge
  libblas                           3.9.0         26_linux64_openblas  conda-forge
  libbrotlicommon                   1.1.0         hb9d3cd8_2           conda-forge
  libbrotlidec                      1.1.0         hb9d3cd8_2           conda-forge
  libbrotlienc                      1.1.0         hb9d3cd8_2           conda-forge
  libcblas                          3.9.0         26_linux64_openblas  conda-forge
  libclang-cpp19.1                  19.1.7        default_hb5137d0_0   conda-forge
  libclang13                        19.1.7        default_h9c6a7e4_0   conda-forge
  libcrc32c                         1.1.2         h9c3ff4c_0           conda-forge
  libcups                           2.3.3         h4637d8d_4           conda-forge
  libcurl                           8.11.1        h332b0f4_0           conda-forge
  libdeflate                        1.23          h4ddbbb0_0           conda-forge
  libdrm                            2.4.124       hb9d3cd8_0           conda-forge
  libedit                           3.1.20240808  pl5321h7949ede_0     conda-forge
  libegl                            1.7.0         ha4b6fd6_2           conda-forge
  libev                             4.33          hd590300_2           conda-forge
  libexpat                          2.6.4         h5888daf_0           conda-forge
  libffi                            3.4.2         h7f98852_5           conda-forge
  libgcc                            14.2.0        h77fa898_1           conda-forge
  libgcc-ng                         14.2.0        h69a702a_1           conda-forge
  libgfortran                       14.2.0        h69a702a_1           conda-forge
  libgfortran5                      14.2.0        hd5240d6_1           conda-forge
  libgl                             1.7.0         ha4b6fd6_2           conda-forge
  libglib                           2.82.2        h2ff4ddf_1           conda-forge
  libglvnd                          1.7.0         ha4b6fd6_2           conda-forge
  libglx                            1.7.0         ha4b6fd6_2           conda-forge
  libgomp                           14.2.0        h77fa898_1           conda-forge
  libgoogle-cloud                   2.33.0        h2b5623c_1           conda-forge
  libgoogle-cloud-storage           2.33.0        h0121fbd_1           conda-forge
  libgrpc                           1.67.1        h25350d4_1           conda-forge
  libiconv                          1.17          hd590300_2           conda-forge
  libjpeg-turbo                     3.0.0         hd590300_1           conda-forge
  liblapack                         3.9.0         26_linux64_openblas  conda-forge
  libllvm19                         19.1.7        ha7bfdaf_0           conda-forge
  liblzma                           5.6.3         hb9d3cd8_1           conda-forge
  libmpdec                          4.0.0         h4bc722e_0           conda-forge
  libnghttp2                        1.64.0        h161d5f1_0           conda-forge
  libntlm                           1.8           hb9d3cd8_0           conda-forge
  libopenblas                       0.3.28        pthreads_h94d23a6_1  conda-forge
  libopengl                         1.7.0         ha4b6fd6_2           conda-forge
  libpciaccess                      0.18          hd590300_0           conda-forge
  libpng                            1.6.45        h943b412_0           conda-forge
  libpq                             17.2          h3b95a9b_1           conda-forge
  libprotobuf                       5.28.3        h6128344_1           conda-forge
  libre2-11                         2024.07.02    hbbce691_2           conda-forge
  libsqlite                         3.48.0        hee588c1_0           conda-forge
  libssh2                           1.11.1        hf672d98_0           conda-forge
  libstdcxx                         14.2.0        hc0a3c3a_1           conda-forge
  libstdcxx-ng                      14.2.0        h4852527_1           conda-forge
  libtiff                           4.7.0         hd9ff511_3           conda-forge
  libutf8proc                       2.10.0        h4c51ac1_0           conda-forge
  libuuid                           2.38.1        h0b41bf4_0           conda-forge
  libwebp-base                      1.5.0         h851e524_0           conda-forge
  libxcb                            1.17.0        h8a09558_0           conda-forge
  libxkbcommon                      1.7.0         h2c5496b_1           conda-forge
  libxml2                           2.13.5        h8d12d68_1           conda-forge
  libxslt                           1.1.39        h76b75d6_0           conda-forge
  libzlib                           1.3.1         hb9d3cd8_2           conda-forge
  lz4-c                             1.10.0        h5888daf_1           conda-forge
  matplotlib                        3.10.0        py313h78bf25f_0      conda-forge
  matplotlib-base                   3.10.0        py313h129903b_0      conda-forge
  matplotlib-inline                 0.1.7         pyhd8ed1ab_1         conda-forge
  munkres                           1.1.4         pyh9f0ad1d_0         conda-forge
  mysql-common                      9.0.1         h266115a_4           conda-forge
  mysql-libs                        9.0.1         he0572af_4           conda-forge
  ncurses                           6.5           h2d0b736_2           conda-forge
  numpy                             2.2.2         py313h17eae1a_0      conda-forge
  openjpeg                          2.5.3         h5fbd93e_0           conda-forge
  openldap                          2.6.9         he970967_0           conda-forge
  openssl                           3.4.0         h7b32b05_1           conda-forge
  orc                               2.0.3         h12ee42a_2           conda-forge
  packaging                         24.2          pyhd8ed1ab_2         conda-forge
  pandas                            2.2.3         py313ha87cce1_1      conda-forge
  parso                             0.8.4         pyhd8ed1ab_1         conda-forge
  pcre2                             10.44         hba22ea6_2           conda-forge
  pexpect                           4.9.0         pyhd8ed1ab_1         conda-forge
  pickleshare                       0.7.5         pyhd8ed1ab_1004      conda-forge
  pillow                            11.1.0        py313h8db990d_0      conda-forge
  pip                               24.3.1        pyh145f28c_2         conda-forge
  pixman                            0.44.2        h29eaf8c_0           conda-forge
  prompt-toolkit                    3.0.50        pyha770c72_0         conda-forge
  pthread-stubs                     0.4           hb9d3cd8_1002        conda-forge
  ptyprocess                        0.7.0         pyhd8ed1ab_1         conda-forge
  pure_eval                         0.2.3         pyhd8ed1ab_1         conda-forge
  pyarrow-core                      19.0.0        py313he5f92c8_0_cpu  conda-forge
  pygments                          2.19.1        pyhd8ed1ab_0         conda-forge
  pyparsing                         3.2.1         pyhd8ed1ab_0         conda-forge
  pyside6                           6.8.1         py313h5f61773_0      conda-forge
  python                            3.13.1        ha99a958_105_cp313   conda-forge
  python-dateutil                   2.9.0.post0   pyhff2d567_1         conda-forge
  python-tzdata                     2024.2        pyhd8ed1ab_1         conda-forge
  python_abi                        3.13          5_cp313              conda-forge
  pytz                              2024.1        pyhd8ed1ab_0         conda-forge
  qhull                             2020.2        h434a139_5           conda-forge
  qt6-main                          6.8.1         h588cce1_2           conda-forge
  re2                               2024.07.02    h9925aae_2           conda-forge
  readline                          8.2           h8228510_1           conda-forge
  s2n                               1.5.11        h072c03f_0           conda-forge
  scikit-learn                      1.6.1         py313h8ef605b_0      conda-forge
  scipy                             1.15.1        py313h750cbce_0      conda-forge
  setuptools                        75.8.0        pyhff2d567_0         conda-forge
  six                               1.17.0        pyhd8ed1ab_0         conda-forge
  snappy                            1.2.1         h8bd8927_1           conda-forge
  stack_data                        0.6.3         pyhd8ed1ab_1         conda-forge
  threadpoolctl                     3.5.0         pyhc1e730c_0         conda-forge
  tk                                8.6.13        noxft_h4845f30_101   conda-forge
  tornado                           6.4.2         py313h536fd9c_0      conda-forge
  traitlets                         5.14.3        pyhd8ed1ab_1         conda-forge
  typing_extensions                 4.12.2        pyha770c72_1         conda-forge
  tzdata                            2025a         h78e105d_0           conda-forge
  wayland                           1.23.1        h3e06ad9_0           conda-forge
  wcwidth                           0.2.13        pyhd8ed1ab_1         conda-forge
  xcb-util                          0.4.1         hb711507_2           conda-forge
  xcb-util-cursor                   0.1.5         hb9d3cd8_0           conda-forge
  xcb-util-image                    0.4.0         hb711507_2           conda-forge
  xcb-util-keysyms                  0.4.1         hb711507_0           conda-forge
  xcb-util-renderutil               0.3.10        hb711507_0           conda-forge
  xcb-util-wm                       0.4.2         hb711507_0           conda-forge
  xkeyboard-config                  2.43          hb9d3cd8_0           conda-forge
  xorg-libice                       1.1.2         hb9d3cd8_0           conda-forge
  xorg-libsm                        1.2.5         he73a12e_0           conda-forge
  xorg-libx11                       1.8.10        h4f16b4b_1           conda-forge
  xorg-libxau                       1.0.12        hb9d3cd8_0           conda-forge
  xorg-libxcomposite                0.4.6         hb9d3cd8_2           conda-forge
  xorg-libxcursor                   1.2.3         hb9d3cd8_0           conda-forge
  xorg-libxdamage                   1.1.6         hb9d3cd8_0           conda-forge
  xorg-libxdmcp                     1.1.5         hb9d3cd8_0           conda-forge
  xorg-libxext                      1.3.6         hb9d3cd8_0           conda-forge
  xorg-libxfixes                    6.0.1         hb9d3cd8_0           conda-forge
  xorg-libxi                        1.8.2         hb9d3cd8_0           conda-forge
  xorg-libxrandr                    1.5.4         hb9d3cd8_0           conda-forge
  xorg-libxrender                   0.9.12        hb9d3cd8_0           conda-forge
  xorg-libxtst                      1.2.5         hb9d3cd8_3           conda-forge
  xorg-libxxf86vm                   1.1.6         hb9d3cd8_0           conda-forge
  zstd                              1.5.6         ha6fb4c9_0           conda-forge
```
</summary>

Labels: Performance, High Priority, module:ensemble