Skip to content

KhalifaSeck/fast-feature-engine-cpp-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Moteur de calcul rapide (C++ + Python avec pybind11)

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.


🎯 Objectif

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.


⚙️ Fonctionnalités

  • ⚡ Calcul rapide en C++
  • 🔗 Intégration transparente avec Python (pybind11)
  • 📦 Package Python installable
  • 🧠 Adapté aux pipelines de Data Engineering et Machine Learning

📁 Structure du projet

fast_engine/
├── src/
│   ├── fastpkg/
│   │   ├── __init__.py
│   │   ├── compute.cpp
│   │   ├── compute.h
│   │   └── interface.cpp
│   ├── setup.py
│   └── pyproject.toml
├── tests/
│   └── test_compute.py
├── benchmark.py
└── README.md

🛠️ Installation

1. Cloner le dépôt

git clone https://github.com/TON_USERNAME/fast-feature-engine-cpp-python.git
cd fast-feature-engine-cpp-python/src

2. Installer le package

pip install -v .

🧪 Utilisation

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)

✅ Résultat attendu

array([5.        , 11.41421356, 21.73205081])

🧠 Fonctionnement

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

⚡ Benchmark

python benchmark.py

Exemple de résultat :

C++:   0.0035s
NumPy: 0.0145s

👉 L'implémentation C++ est environ 4x plus rapide que NumPy.


✅ Tests

pytest

🧰 Prérequis

  • Python ≥ 3.8
  • pybind11
  • numpy
  • setuptools
  • Compilateur C++ (MSVC sous Windows)

🪟 Remarques pour Windows

Assurez-vous d'utiliser :

  • Visual Studio Build Tools
  • Developer Command Prompt

🚀 Cas d'utilisation

  • Feature engineering pour le Machine Learning
  • Transformation de données à grande échelle
  • Systèmes de scoring
  • Pipelines de Data Engineering

📌 Améliorations futures

  • Parallélisation (OpenMP)
  • Accélération GPU
  • Intégration avec Spark / Airflow
  • Distribution via PyPI (wheel)

📦 Interface Python (__init__.py)

from fast_module import compute_score

__all__ = ["compute_score"]

Ce fichier expose une API propre :

import fastpkg
fastpkg.compute_score(...)  # ✅ propre

Au lieu de :

import fast_module  # ❌ moins propre

👨‍💻 Auteur

Khalifa SECK — (IA / Data Engineering)


⭐ Si ce projet vous plaît

N'hésitez pas à mettre une étoile ⭐ sur GitHub !

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors