godofecht / godofecht/flow-scikit
[Interop #478] Benchmark Python→Flow package overhead, zero-copy paths and break-even batch sizes
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 2
- Forks
- 0
- Avg merge
- 4h 33m
- Merged PRs (30d)
- 9
Description
Parent: #478
flow-scikit also exposes Python interop, so Python callers can erase native wins through conversion, module loading or per-call FFI overhead. Treat that boundary as a separate performance surface.
Measure import/startup, estimator construction, ndarray/buffer handoff, copies/conversions, fit/predict call overhead and return conversion. Add zero-copy contiguous paths where ABI-safe, explicit behavior for non-contiguous/dtype-mismatched arrays, and batch-size crossover curves.
Acceptance: same-process Python wrapper vs direct sklearn and direct Flow measurements; copy bytes/counts reported; no hidden full-array copies on supported contiguous inputs; documented break-even sizes; representative wrapper workloads remain faster end-to-end where direct Flow has enough headroom.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with parent issue #478 and the Python interop boundary in flow-scikit. Run same-process comparisons for wrapper versus direct sklearn and Flow, measuring import, construction, array handoff, copies, calls, and returns. Done means copy counts and bytes are reported, supported contiguous inputs avoid hidden full-array copies, crossover sizes are documented, and representative workloads meet the stated performance target.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, scikit-learn
- Domain
- machine-learning, performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100