execution architecture / generated appraisal

"Python versus compiled" is the wrong comparison.

scikit-learn is layered. Its public API is Python, but estimator work may execute in Python orchestration, NumPy/SciPy, BLAS/LAPACK, sklearn-owned compiled code or mature external native libraries. Flow-scikit now maps those layers, profiles representative workloads and joins that evidence to the canonical benchmark.

estimator operations...

Generated from the pinned sklearn public estimator surface.

runtime profiles...

Representative fit/inference attribution rows.

native hotspots...

Compiled/mixed paths with explicit retain/replace dispositions.

whole-estimator experiments...

Experiments separating public API overhead from underlying kernels.

Evidence status: this is no longer a provisional static table. CI regenerates the estimator-operation inventory against the pinned sklearn version, checks estimator-surface drift, profiles representative workloads, ranks optimization opportunities and joins all 19 canonical benchmark rows to substrate and speedup evidence.

substrate signal

Where Flow wins follows the substrate.

The current grouped result is descriptive evidence. It does not establish cause. It is nevertheless useful enough to prioritize engineering: Flow now wins every canonical row in all three substrate classes, and the margin still follows the class: largest on rows classified Python-bound, smaller on boundary-heavy workloads, smallest where sklearn calls an external native library. The table below carries the current means. Earlier, while the Flow side was compiled unoptimized, every external-native-bound row lost, which read as a ceiling rather than as a build setting.

sklearn fit substraterowsmean Flow speedupFlow win fraction

all headline rows

Every benchmark result is attached to an execution hypothesis.

AlgorithmDatasetSubstrateParityWinnerFlow speedupPython self share

roadmap logic

Replace selectively. Reuse deliberately.

Python-bound and boundary-heavy operations can rank highly when profiling shows orchestration cost, allocation pressure or repeated crossings. sklearn-owned compiled hotspots become direct Flow replacement targets when parity and benchmark evidence justify it. BLAS/LAPACK, liblinear, libsvm and other mature native kernels receive a reuse bias unless measurements show a real reason to replace them.

The generated optimization roadmap, native hotspot audit and full estimator inventory are the detailed source artifacts.

defensible conclusion

Whole-estimator compilation is a measurable hypothesis now.

Flow-scikit no longer needs to infer opportunity from whether sklearn source files happen to be Python or Cython. The repository can connect a win or loss to the substrate underneath the public API, the Python-visible runtime share, native crossings, parity status and current Flow implementation. That makes future rewrite decisions falsifiable rather than rhetorical.

Inspect the canonical benchmark →