Ce projet démontre comment construire un moteur de calcul numérique haute performance en utilisant C++ et pybind11, tout en exposant une interface simple et efficace en Python.
L'objectif de ce projet est d'accélérer des calculs numériques (feature engineering, scoring, transformations) en exploitant la performance du C++, tout en conservant la simplicité et la flexibilité de Python.
- ⚡ Calcul rapide en C++
- 🔗 Intégration transparente avec Python (pybind11)
- 📦 Package Python installable
- 🧠 Adapté aux pipelines de Data Engineering et Machine Learning
fast_engine/
├── src/
│ ├── fastpkg/
│ │ ├── __init__.py
│ │ ├── compute.cpp
│ │ ├── compute.h
│ │ └── interface.cpp
│ ├── setup.py
│ └── pyproject.toml
├── tests/
│ └── test_compute.py
├── benchmark.py
└── README.md
git clone https://github.com/TON_USERNAME/fast-feature-engine-cpp-python.git
cd fast-feature-engine-cpp-python/srcpip install -v .import fastpkg
import numpy as np
x = np.array([1, 2, 3])
y = np.array([4, 5, 6])
result = fastpkg.compute_score(x, y)
print(result)array([5. , 11.41421356, 21.73205081])
Ce projet repose sur une séparation claire des responsabilités :
compute.cpp→ logique métier en C++ (rapide et réutilisable)interface.cpp→ liaison entre Python et C++ via pybind11__init__.py→ interface Python propre pour l'utilisateur
python benchmark.pyExemple de résultat :
C++: 0.0035s
NumPy: 0.0145s
👉 L'implémentation C++ est environ 4x plus rapide que NumPy.
pytest- Python ≥ 3.8
- pybind11
- numpy
- setuptools
- Compilateur C++ (MSVC sous Windows)
Assurez-vous d'utiliser :
- Visual Studio Build Tools
- Developer Command Prompt
- Feature engineering pour le Machine Learning
- Transformation de données à grande échelle
- Systèmes de scoring
- Pipelines de Data Engineering
- Parallélisation (OpenMP)
- Accélération GPU
- Intégration avec Spark / Airflow
- Distribution via PyPI (wheel)
from fast_module import compute_score
__all__ = ["compute_score"]Ce fichier expose une API propre :
import fastpkg
fastpkg.compute_score(...) # ✅ propreAu lieu de :
import fast_module # ❌ moins propreKhalifa SECK — (IA / Data Engineering)
N'hésitez pas à mettre une étoile ⭐ sur GitHub !