In [1]:
from sklearn_benchmarks.reporting.hp_match import HpMatchReporting
from sklearn_benchmarks.utils import default_run_dir, default_report_config
from pathlib import Path
import pandas as pd
pd.set_option('display.max_colwidth', None)
pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)

scikit-learn-intelex (Intel® oneAPI) vs. scikit-learn

In [4]:
run_dir = Path(run_dir)
In [5]:
reporting = HpMatchReporting(**report_config, run_dir=run_dir)
reporting.make_report()

We assume here there is a perfect match between the hyperparameters of both librairies. For a given set of parameters and a given dataset, we compute the speed-up time scikit-learn / time sklearnex. For instance, a speed-up of 2 means that sklearnex is twice as fast as scikit-learn for a given set of parameters and a given dataset.

KNeighborsClassifier (brute force)

scikit-learn-intelex (2021.20220207.123530) vs. scikit-learn (1.0.2)

Speedup barplots

All estimators share the following parameters: algorithm=brute.

Raw results

fit

sklearn_profiling sklearnex_profiling function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency n_jobs n_neighbors mean_duration_sklearnex std_duration_sklearnex speedup std_speedup
0 Download Download fit 100000 100000 100 1.443 0.055 0.055 0.0 -1 1 0.055 0.001 26.323 26.325
3 Download Download fit 100000 100000 100 1.342 0.021 0.060 0.0 -1 5 0.050 0.000 26.853 26.853
6 Download Download fit 100000 100000 100 1.342 0.031 0.060 0.0 1 100 0.050 0.000 26.813 26.813
9 Download Download fit 100000 100000 100 1.336 0.018 0.060 0.0 -1 100 0.055 0.000 24.426 24.426
12 Download Download fit 100000 100000 100 1.329 0.016 0.060 0.0 1 5 0.055 0.000 24.221 24.222
15 Download Download fit 100000 100000 100 1.326 0.012 0.060 0.0 1 1 0.052 0.002 25.288 25.312
18 Download Download fit 100000 100000 2 0.054 0.001 0.029 0.0 -1 1 0.010 0.000 5.350 5.351
21 Download Download fit 100000 100000 2 0.052 0.001 0.031 0.0 -1 5 0.010 0.000 5.308 5.310
24 Download Download fit 100000 100000 2 0.051 0.001 0.031 0.0 1 100 0.010 0.000 5.187 5.190
27 Download Download fit 100000 100000 2 0.052 0.001 0.031 0.0 -1 100 0.010 0.000 5.086 5.088
30 Download Download fit 100000 100000 2 0.052 0.001 0.031 0.0 1 5 0.010 0.000 5.138 5.140
33 Download Download fit 100000 100000 2 0.055 0.002 0.029 0.0 1 1 0.010 0.000 5.487 5.489

predict

sklearn_profiling sklearnex_profiling function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency n_jobs n_neighbors mean_duration_sklearnex std_duration_sklearnex speedup std_speedup
1 Download Download predict 100000 1000 100 2.520 0.077 0.000 0.003 -1 1 0.204 0.002 12.374 12.375
2 Download Download predict 100000 1 100 0.024 0.002 0.000 0.024 -1 1 0.009 0.000 2.763 2.765
4 Download Download predict 100000 1000 100 3.078 0.050 0.000 0.003 -1 5 0.205 0.003 15.021 15.022
5 Download Download predict 100000 1 100 0.024 0.002 0.000 0.024 -1 5 0.008 0.000 2.837 2.839
7 Download Download predict 100000 1000 100 2.165 0.007 0.000 0.002 1 100 0.249 0.003 8.703 8.703
8 Download Download predict 100000 1 100 0.021 0.000 0.000 0.021 1 100 0.009 0.000 2.360 2.361
10 Download Download predict 100000 1000 100 2.989 0.048 0.000 0.003 -1 100 0.250 0.001 11.981 11.982
11 Download Download predict 100000 1 100 0.024 0.001 0.000 0.024 -1 100 0.009 0.000 2.649 2.649
13 Download Download predict 100000 1000 100 2.142 0.006 0.000 0.002 1 5 0.205 0.002 10.432 10.433
14 Download Download predict 100000 1 100 0.021 0.000 0.000 0.021 1 5 0.009 0.000 2.421 2.423
16 Download Download predict 100000 1000 100 1.329 0.005 0.001 0.001 1 1 0.212 0.006 6.283 6.285
17 Download Download predict 100000 1 100 0.020 0.001 0.000 0.020 1 1 0.009 0.000 2.305 2.306
19 Download Download predict 100000 1000 2 1.872 0.041 0.000 0.002 -1 1 0.032 0.000 59.353 59.359
20 Download Download predict 100000 1 2 0.006 0.004 0.000 0.006 -1 1 0.001 0.000 6.242 6.296
22 Download Download predict 100000 1000 2 2.758 0.043 0.000 0.003 -1 5 0.033 0.000 83.904 83.907
23 Download Download predict 100000 1 2 0.007 0.002 0.000 0.007 -1 5 0.001 0.000 6.699 6.827
25 Download Download predict 100000 1000 2 2.083 0.019 0.000 0.002 1 100 0.075 0.001 27.728 27.732
26 Download Download predict 100000 1 2 0.003 0.000 0.000 0.003 1 100 0.001 0.000 2.935 2.982
28 Download Download predict 100000 1000 2 2.840 0.035 0.000 0.003 -1 100 0.073 0.001 38.726 38.728
29 Download Download predict 100000 1 2 0.008 0.003 0.000 0.008 -1 100 0.001 0.000 7.774 7.882
31 Download Download predict 100000 1000 2 2.096 0.005 0.000 0.002 1 5 0.033 0.000 63.393 63.398
32 Download Download predict 100000 1 2 0.003 0.000 0.000 0.003 1 5 0.001 0.000 3.208 3.248
34 Download Download predict 100000 1000 2 1.204 0.012 0.000 0.001 1 1 0.032 0.001 38.092 38.100
35 Download Download predict 100000 1 2 0.002 0.000 0.000 0.002 1 1 0.001 0.000 2.124 2.155

Profiling traces can be visualized using Perfetto UI.

KNeighborsClassifier (KD tree)

scikit-learn-intelex (2021.20220207.123530) vs. scikit-learn (1.0.2)

Speedup barplots

All estimators share the following parameters: algorithm=kd_tree.

Raw results

fit

sklearn_profiling sklearnex_profiling function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency n_jobs n_neighbors mean_duration_sklearnex std_duration_sklearnex speedup std_speedup
0 Download Download fit 1000000 1000000 10 3.204 0.026 0.025 0.0 -1 1 0.782 0.015 4.094 4.095
3 Download Download fit 1000000 1000000 10 3.279 0.034 0.024 0.0 -1 5 0.781 0.004 4.199 4.199
6 Download Download fit 1000000 1000000 10 3.251 0.063 0.025 0.0 1 100 0.747 0.015 4.351 4.351
9 Download Download fit 1000000 1000000 10 3.255 0.040 0.025 0.0 -1 100 0.773 0.009 4.209 4.209
12 Download Download fit 1000000 1000000 10 3.300 0.056 0.024 0.0 1 5 0.746 0.016 4.422 4.423
15 Download Download fit 1000000 1000000 10 3.123 0.059 0.026 0.0 1 1 0.762 0.013 4.096 4.097
18 Download Download fit 1000 1000 2 0.001 0.000 0.025 0.0 -1 1 0.001 0.000 0.589 0.594
21 Download Download fit 1000 1000 2 0.001 0.000 0.021 0.0 -1 5 0.001 0.000 0.651 0.657
24 Download Download fit 1000 1000 2 0.001 0.000 0.026 0.0 1 100 0.001 0.000 0.585 0.592
27 Download Download fit 1000 1000 2 0.001 0.000 0.026 0.0 -1 100 0.001 0.000 0.569 0.573
30 Download Download fit 1000 1000 2 0.001 0.000 0.025 0.0 1 5 0.001 0.000 0.575 0.582
33 Download Download fit 1000 1000 2 0.001 0.000 0.025 0.0 1 1 0.001 0.000 0.553 0.556

predict

sklearn_profiling sklearnex_profiling function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency n_jobs n_neighbors mean_duration_sklearnex std_duration_sklearnex speedup std_speedup
1 Download Download predict 1000000 1000 10 0.430 0.006 0.000 0.000 -1 1 0.105 0.002 4.108 4.109
2 Download Download predict 1000000 1 10 0.003 0.000 0.000 0.003 -1 1 0.000 0.000 9.144 9.792
4 Download Download predict 1000000 1000 10 0.835 0.011 0.000 0.001 -1 5 0.186 0.003 4.480 4.480
5 Download Download predict 1000000 1 10 0.004 0.001 0.000 0.004 -1 5 0.000 0.000 9.881 10.562
7 Download Download predict 1000000 1000 10 4.828 0.022 0.000 0.005 1 100 0.550 0.007 8.780 8.781
8 Download Download predict 1000000 1 10 0.003 0.001 0.000 0.003 1 100 0.001 0.000 4.297 4.537
10 Download Download predict 1000000 1000 10 2.702 0.038 0.000 0.003 -1 100 0.551 0.007 4.905 4.906
11 Download Download predict 1000000 1 10 0.005 0.001 0.000 0.005 -1 100 0.001 0.000 7.976 8.343
13 Download Download predict 1000000 1000 10 1.441 0.025 0.000 0.001 1 5 0.184 0.002 7.843 7.843
14 Download Download predict 1000000 1 10 0.001 0.000 0.000 0.001 1 5 0.000 0.000 3.909 4.116
16 Download Download predict 1000000 1000 10 0.762 0.007 0.000 0.001 1 1 0.106 0.003 7.172 7.174
17 Download Download predict 1000000 1 10 0.001 0.000 0.000 0.001 1 1 0.000 0.000 3.545 3.736
19 Download Download predict 1000 1000 2 0.025 0.001 0.001 0.000 -1 1 0.001 0.000 38.140 39.430
20 Download Download predict 1000 1 2 0.003 0.000 0.000 0.003 -1 1 0.000 0.000 15.106 17.331
22 Download Download predict 1000 1000 2 0.027 0.001 0.001 0.000 -1 5 0.001 0.000 26.468 26.854
23 Download Download predict 1000 1 2 0.003 0.000 0.000 0.003 -1 5 0.000 0.000 14.971 17.144
25 Download Download predict 1000 1000 2 0.038 0.001 0.000 0.000 1 100 0.006 0.000 6.813 6.837
26 Download Download predict 1000 1 2 0.001 0.000 0.000 0.001 1 100 0.000 0.000 3.881 4.447
28 Download Download predict 1000 1000 2 0.040 0.001 0.000 0.000 -1 100 0.006 0.000 7.144 7.165
29 Download Download predict 1000 1 2 0.003 0.000 0.000 0.003 -1 100 0.000 0.000 13.643 15.486
31 Download Download predict 1000 1000 2 0.024 0.000 0.001 0.000 1 5 0.001 0.000 23.940 24.373
32 Download Download predict 1000 1 2 0.001 0.000 0.000 0.001 1 5 0.000 0.000 3.807 4.510
34 Download Download predict 1000 1000 2 0.021 0.001 0.001 0.000 1 1 0.001 0.000 33.275 34.652
35 Download Download predict 1000 1 2 0.001 0.000 0.000 0.001 1 1 0.000 0.000 3.751 4.354

Profiling traces can be visualized using Perfetto UI.

KMeans (tall)

scikit-learn-intelex (2021.20220207.123530) vs. scikit-learn (1.0.2)

Speedup barplots

All estimators share the following parameters: algorithm=full, n_clusters=3, max_iter=30, n_init=1, tol=1e-16.

Raw results

fit

sklearn_profiling sklearnex_profiling function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency n_iter init mean_duration_sklearnex std_duration_sklearnex speedup std_speedup
0 Download Download fit 1000000 1000000 2 0.575 0.012 0.028 0.0 30 random 0.447 0.035 1.286 1.290
3 Download Download fit 1000000 1000000 2 0.627 0.009 0.026 0.0 30 k-means++ 0.506 0.035 1.240 1.242
6 Download Download fit 1000000 1000000 100 5.281 0.210 0.151 0.0 30 random 2.910 0.047 1.815 1.815
9 Download Download fit 1000000 1000000 100 5.264 0.030 0.152 0.0 30 k-means++ 3.026 0.020 1.739 1.739

predict

sklearn_profiling sklearnex_profiling function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency n_iter init mean_duration_sklearnex std_duration_sklearnex speedup std_speedup
1 Download Download predict 1000000 1000 2 0.000 0.0 0.059 0.0 30 random 0.0 0.0 1.023 1.114
2 Download Download predict 1000000 1 2 0.000 0.0 0.000 0.0 30 random 0.0 0.0 1.206 1.361
4 Download Download predict 1000000 1000 2 0.000 0.0 0.059 0.0 30 k-means++ 0.0 0.0 1.094 1.195
5 Download Download predict 1000000 1 2 0.000 0.0 0.000 0.0 30 k-means++ 0.0 0.0 0.989 1.097
7 Download Download predict 1000000 1000 100 0.001 0.0 1.536 0.0 30 random 0.0 0.0 1.379 1.482
8 Download Download predict 1000000 1 100 0.000 0.0 0.003 0.0 30 random 0.0 0.0 1.049 1.161
10 Download Download predict 1000000 1000 100 0.001 0.0 1.538 0.0 30 k-means++ 0.0 0.0 1.349 1.466
11 Download Download predict 1000000 1 100 0.000 0.0 0.003 0.0 30 k-means++ 0.0 0.0 1.255 1.449

Profiling traces can be visualized using Perfetto UI.

KMeans (short)

scikit-learn-intelex (2021.20220207.123530) vs. scikit-learn (1.0.2)

Speedup barplots

All estimators share the following parameters: algorithm=full, n_clusters=300, max_iter=20, n_init=1, tol=1e-16.

Mismatches between validation scores

WARNING! Mismatch between validation scores for 2 predictions (25.0%).
The observed differences can be found in the diff_adjusted_rand_scores column.
The chosen difference threshold is 0.01 for adjusted_rand_score.
The biggest difference is 0.077 for adjusted_rand_score.
See details in the dataframe below.
estimator library diff_adjusted_rand_scores function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency n_iter algorithm init max_iter n_clusters n_init tol adjusted_rand_score_sklearn mean_duration_sklearnex std_duration_sklearnex adjusted_rand_score_sklearnex speedup std_speedup
7 sklearn_KMeans_short sklearn 0.074768 predict 10000 1000 100 0.001641 0.000254 0.487498 0.000002 20 full random 20 300 1 1.000000e-16 0.222701 0.001371 0.000145 0.297469 1.196983 1.203640
10 sklearn_KMeans_short sklearn 0.076616 predict 10000 1000 100 0.001637 0.000165 0.488827 0.000002 20 full k-means++ 20 300 1 1.000000e-16 0.408030 0.001349 0.000154 0.331414 1.213622 1.221513

Raw results

fit

sklearn_profiling sklearnex_profiling function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency n_iter init mean_duration_sklearnex std_duration_sklearnex speedup std_speedup
0 Download Download fit 10000 10000 2 0.094 0.001 0.002 0.0 20 random 0.038 0.001 2.505 2.505
3 Download Download fit 10000 10000 2 0.235 0.002 0.001 0.0 20 k-means++ 0.102 0.001 2.303 2.303
6 Download Download fit 10000 10000 100 0.231 0.002 0.035 0.0 20 random 0.151 0.003 1.531 1.531
9 Download Download fit 10000 10000 100 0.647 0.007 0.012 0.0 20 k-means++ 0.386 0.003 1.678 1.678

predict

sklearn_profiling sklearnex_profiling function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency n_iter init mean_duration_sklearnex std_duration_sklearnex speedup std_speedup
1 Download Download predict 10000 1000 2 0.001 0.0 0.021 0.0 20 random 0.001 0.0 0.984 0.991
2 Download Download predict 10000 1 2 0.000 0.0 0.000 0.0 20 random 0.000 0.0 1.279 1.422
4 Download Download predict 10000 1000 2 0.001 0.0 0.020 0.0 20 k-means++ 0.001 0.0 0.975 0.984
5 Download Download predict 10000 1 2 0.000 0.0 0.000 0.0 20 k-means++ 0.000 0.0 1.344 1.502
7 Download Download predict 10000 1000 100 0.002 0.0 0.487 0.0 20 random 0.001 0.0 1.197 1.204
8 Download Download predict 10000 1 100 0.000 0.0 0.003 0.0 20 random 0.000 0.0 1.114 1.210
10 Download Download predict 10000 1000 100 0.002 0.0 0.489 0.0 20 k-means++ 0.001 0.0 1.214 1.222
11 Download Download predict 10000 1 100 0.000 0.0 0.003 0.0 20 k-means++ 0.000 0.0 1.166 1.282

Profiling traces can be visualized using Perfetto UI.

Logistic Regression

scikit-learn-intelex (2021.20220207.123530) vs. scikit-learn (1.0.2)

Speedup barplots

All estimators share the following parameters: penalty=l2, dual=False, tol=0.0001, C=1.0, fit_intercept=True, intercept_scaling=1.0, class_weight=nan, random_state=nan, solver=lbfgs, max_iter=100, multi_class=auto, verbose=0, warm_start=False, n_jobs=nan, l1_ratio=nan.

Raw results

fit

sklearn_profiling sklearnex_profiling function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency n_iter mean_duration_sklearnex std_duration_sklearnex speedup std_speedup
0 Download Download fit 1000000 1000000 100 11.674 0.118 0.069 0.000 [20] 1.957 0.016 5.966 5.967
3 Download Download fit 1000 1000 10000 0.808 0.052 0.099 0.001 [27] 0.753 0.061 1.074 1.077

predict

sklearn_profiling sklearnex_profiling function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency n_iter mean_duration_sklearnex std_duration_sklearnex speedup std_speedup
1 Download Download predict 1000000 1000 100 0.000 0.0 2.525 0.0 [20] 0.000 0.0 0.694 0.739
2 Download Download predict 1000000 1 100 0.000 0.0 0.011 0.0 [20] 0.000 0.0 0.290 0.321
4 Download Download predict 1000 100 10000 0.002 0.0 4.408 0.0 [27] 0.003 0.0 0.529 0.532
5 Download Download predict 1000 1 10000 0.000 0.0 0.820 0.0 [27] 0.001 0.0 0.114 0.116

Profiling traces can be visualized using Perfetto UI.

LinearRegression

scikit-learn-intelex (2021.20220207.123530) vs. scikit-learn (1.0.2)

Speedup barplots

All estimators share the following parameters:

Raw results

fit

sklearn_profiling sklearnex_profiling function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency copy_X fit_intercept normalize positive mean_duration_sklearnex std_duration_sklearnex speedup std_speedup
0 Download Download fit 1000 1000 10000 1.545 0.027 0.052 0.002 True True deprecated False 1.627 0.011 0.949 0.949
3 Download Download fit 1000000 1000000 100 8.330 0.079 0.096 0.000 True True deprecated False 0.218 0.015 38.151 38.245

predict

sklearn_profiling sklearnex_profiling function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency copy_X fit_intercept normalize positive mean_duration_sklearnex std_duration_sklearnex speedup std_speedup
1 Download Download predict 1000 1000 10000 0.011 0.001 7.563 0.0 True True deprecated False 0.017 0.0 0.612 0.612
2 Download Download predict 1000 10 10000 0.000 0.000 4.524 0.0 True True deprecated False 0.000 0.0 0.503 0.529
4 Download Download predict 1000000 1000 100 0.000 0.000 4.712 0.0 True True deprecated False 0.001 0.0 0.321 0.333
5 Download Download predict 1000000 10 100 0.000 0.000 0.109 0.0 True True deprecated False 0.000 0.0 0.372 0.408

Profiling traces can be visualized using Perfetto UI.

Ridge

scikit-learn-intelex (2021.20220207.123530) vs. scikit-learn (1.0.2)

Speedup barplots

All estimators share the following parameters: alpha=1e-06.

Raw results

fit

sklearn_profiling sklearnex_profiling function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency mean_duration_sklearnex std_duration_sklearnex speedup std_speedup
0 Download Download fit 1000 1000 10000 0.186 0.002 0.430 0.0 0.201 0.002 0.924 0.924
3 Download Download fit 1000000 1000000 100 1.302 0.011 0.615 0.0 0.245 0.001 5.308 5.308

predict

sklearn_profiling sklearnex_profiling function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency mean_duration_sklearnex std_duration_sklearnex speedup std_speedup
1 Download Download predict 1000 1000 10000 0.01 0.0 7.779 0.0 0.017 0.0 0.598 0.598
2 Download Download predict 1000 10 10000 0.00 0.0 5.162 0.0 0.000 0.0 0.428 0.451
4 Download Download predict 1000000 1000 100 0.00 0.0 5.070 0.0 0.000 0.0 0.436 0.471
5 Download Download predict 1000000 10 100 0.00 0.0 0.098 0.0 0.000 0.0 0.410 0.450

Profiling traces can be visualized using Perfetto UI.

TSNE

scikit-learn-intelex (2021.20220207.123530) vs. scikit-learn (1.0.2)

Speedup barplots

All estimators share the following parameters:

Raw results

fit

sklearn_profiling sklearnex_profiling function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency n_iter angle early_exaggeration init learning_rate method metric min_grad_norm n_components n_iter_without_progress perplexity square_distances verbose mean_duration_sklearnex std_duration_sklearnex speedup std_speedup
0 Download Download fit 1000 1000 3 4.374 0.41 0.0 0.004 1000 0.5 12.0 warn warn barnes_hut euclidean 0.0 2 300 30.0 legacy 0 4.353 0.403 1.005 1.009

Profiling traces can be visualized using Perfetto UI.

PCA

scikit-learn-intelex (2021.20220207.123530) vs. scikit-learn (1.0.2)

Speedup barplots

All estimators share the following parameters: n_components=10.

Raw results

fit

sklearn_profiling sklearnex_profiling function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency mean_duration_sklearnex std_duration_sklearnex speedup std_speedup
0 Download Download fit 100000 100000 100 0.484 0.006 0.165 0.0 0.029 0.001 16.573 16.576
1 Download Download fit 10000 10000 1000 0.409 0.004 0.196 0.0 0.218 0.005 1.879 1.879

Profiling traces can be visualized using Perfetto UI.

Benchmark environment information

System

python 3.8.12 | packaged by conda-forge | (default, Jan 30 2022, 23:42:07) [GCC 9.4.0]
executable /usr/share/miniconda/envs/sklbench/bin/python
machine Linux-5.11.0-1028-azure-x86_64-with-glibc2.10

Dependencies

pip 22.0.4
setuptools 60.10.0
sklearn 1.0.2
numpy 1.22.3
scipy 1.8.0
Cython None
pandas 1.4.1
matplotlib 3.5.1
joblib 1.1.0
threadpoolctl 3.1.0

Threadpool

user_api internal_api prefix filepath version threading_layer architecture num_threads
0 blas openblas libopenblas /usr/share/miniconda/envs/sklbench/lib/libopenblasp-r0.3.18.so 0.3.18 pthreads SkylakeX 2
1 openmp openmp libgomp /usr/share/miniconda/envs/sklbench/lib/libgomp.so.1.0.0 None NaN NaN 2

Cpu_count

cpu_count 2
physical_cpu_count 2