Communauté de développeurs et assistance | Forums | Réseaux sociaux | Documents |
---|---|---|---|
Modin peut être installé avec pip
sous Linux, Windows et MacOS :
pip install " modin[all] " # (Recommended) Install Modin with Ray and Dask engines.
Si vous souhaitez installer Modin avec un moteur spécifique, nous vous recommandons :
pip install " modin[ray] " # Install Modin dependencies and Ray.
pip install " modin[dask] " # Install Modin dependencies and Dask.
pip install " modin[mpi] " # Install Modin dependencies and MPI through unidist.
Pour que Modin sur MPI via unidist (à partir d'unidist 0.5.0) fonctionne pleinement, il est nécessaire d'avoir installé au préalable une implémentation MPI fonctionnelle. Sinon, l'installation de modin[mpi]
risque d'échouer. Reportez-vous à la section Installation avec pip de la documentation unidist pour plus de détails sur l'installation.
Remarque : Depuis Modin 0.30.0, nous utilisons un ensemble réduit de dépendances Ray : ray
au lieu de ray[default]
. Cela signifie que le tableau de bord et le lanceur de cluster ne sont plus installés par défaut. Si vous en avez besoin, envisagez d'installer ray[default]
avec modin[ray]
.
Modin détecte automatiquement le(s) moteur(s) que vous avez installé et l'utilise pour planifier le calcul.
L'installation à partir de conda forge à l'aide de modin-all
installera Modin et trois moteurs : Ray, Dask et MPI via unidist.
conda install -c conda-forge modin-all
Chaque moteur peut également être installé individuellement (et également en combinaison de plusieurs moteurs) :
conda install -c conda-forge modin-ray # Install Modin dependencies and Ray.
conda install -c conda-forge modin-dask # Install Modin dependencies and Dask.
conda install -c conda-forge modin-mpi # Install Modin dependencies and MPI through unidist.
Remarque : depuis Modin 0.30.0, nous utilisons un ensemble réduit de dépendances Ray : ray-core
au lieu de ray-default
. Cela signifie que le tableau de bord et le lanceur de cluster ne sont plus installés par défaut. Si vous en avez besoin, envisagez d'installer ray-default
avec modin-ray
.
Reportez-vous à la section Installation avec conda de la documentation unidist pour plus de détails sur la façon d'installer une implémentation MPI spécifique sur laquelle s'exécuter.
Pour accélérer l'installation de conda, nous vous recommandons d'utiliser le solveur libmamba. Pour ce faire, installez-le dans un environnement de base :
conda install -n base conda-libmamba-solver
puis utilisez-le pendant l'installation comme :
conda install -c conda-forge modin-ray --experimental-solver=libmamba
ou à partir des versions conda 22.11 et libmamba solver 22.12 :
conda install -c conda-forge modin-ray --solver=libmamba
Si vous souhaitez choisir un moteur de calcul spécifique sur lequel exécuter, vous pouvez définir la variable d'environnement MODIN_ENGINE
et Modin effectuera le calcul avec ce moteur :
export MODIN_ENGINE=ray # Modin will use Ray
export MODIN_ENGINE=dask # Modin will use Dask
export MODIN_ENGINE=unidist # Modin will use Unidist
Si vous souhaitez choisir le moteur Unidist, vous devez définir la variable d'environnement supplémentaire UNIDIST_BACKEND
. Actuellement, Modin ne prend en charge que MPI via unidist :
export UNIDIST_BACKEND=mpi # Unidist will use MPI backend
Cela peut également être fait dans un cahier/interprète avant d'importer Modin :
import modin . config as modin_cfg
import unidist . config as unidist_cfg
modin_cfg . Engine . put ( "ray" ) # Modin will use Ray
modin_cfg . Engine . put ( "dask" ) # Modin will use Dask
modin_cfg . Engine . put ( 'unidist' ) # Modin will use Unidist
unidist_cfg . Backend . put ( 'mpi' ) # Unidist will use MPI backend
Remarque : Vous ne devez pas changer de moteur après votre première opération avec Modin car cela entraînerait un comportement indéfini.
Sous Linux, MacOS et Windows, vous pouvez installer et utiliser Ray, Dask ou MPI via unidist. Aucune connaissance n'est requise pour utiliser l'un ou l'autre de ces moteurs, car Modin élimine toute la complexité, alors n'hésitez pas à choisir l'un ou l'autre !
Objet pandas | Couverture du moteur Ray de Modin | Couverture du moteur Dask de Modin | Couverture du moteur unidiste de Modin |
---|---|---|---|
pd.DataFrame | |||
pd.Series | |||
pd.read_csv | ✅ | ✅ | ✅ |
pd.read_table | ✅ | ✅ | ✅ |
pd.read_parquet | ✅ | ✅ | ✅ |
pd.read_sql | ✅ | ✅ | ✅ |
pd.read_feather | ✅ | ✅ | ✅ |
pd.read_excel | ✅ | ✅ | ✅ |
pd.read_json | ✳️ | ✳️ | ✳️ |
pd.read_<other> | ✴️ | ✴️ | ✴️ |
Pour la documentation complète sur Modin, visitez notre page ReadTheDocs.
Remarque : En mode local (sans cluster), Modin créera et gérera un cluster local (Dask ou Ray) pour l'exécution.
Pour utiliser Modin, vous n'avez pas besoin de spécifier comment distribuer les données, ni même de connaître le nombre de cœurs de votre système. En fait, vous pouvez continuer à utiliser vos anciens notebooks pandas tout en bénéficiant d'une accélération considérable de Modin, même sur une seule machine. Une fois que vous avez modifié votre instruction d'importation, vous êtes prêt à utiliser Modin comme vous le feriez avec des pandas !
Le modin.pandas
DataFrame est un DataFrame parallèle extrêmement léger. Modin distribue de manière transparente les données et les calculs afin que vous puissiez continuer à utiliser la même API pandas tout en travaillant plus rapidement avec plus de données. Grâce à sa légèreté, Modin offre des accélérations jusqu'à 4x sur un ordinateur portable doté de 4 cœurs physiques.
Dans les pandas, vous ne pouvez utiliser qu'un seul cœur à la fois lorsque vous effectuez des calculs de quelque nature que ce soit. Avec Modin, vous pouvez utiliser tous les cœurs CPU de votre machine. Même avec une tâche traditionnellement synchrone comme read_csv
, nous constatons d'importantes accélérations en répartissant efficacement le travail sur l'ensemble de votre machine.
import modin . pandas as pd
df = pd . read_csv ( "my_dataset.csv" )
Les data scientists doivent souvent basculer entre différents outils pour opérer sur des ensembles de données de différentes tailles. Le traitement de trames de données volumineuses avec pandas est lent et pandas ne prend pas en charge le travail avec des trames de données trop volumineuses pour tenir dans la mémoire disponible. Par conséquent, les workflows Pandas qui fonctionnent bien pour le prototypage sur quelques Mo de données ne s'adaptent pas à des dizaines ou des centaines de Go (selon la taille de votre machine). Modin prend en charge le fonctionnement sur des données qui ne tiennent pas en mémoire, afin que vous puissiez travailler confortablement avec des centaines de Go sans vous soucier d'un ralentissement important ou d'erreurs de mémoire. Avec la prise en charge du cluster et hors noyau, Modin est une bibliothèque DataFrame offrant à la fois d'excellentes performances sur un seul nœud et une grande évolutivité dans un cluster.
Nous avons conçu l'architecture de Modin pour qu'elle soit modulaire afin que nous puissions connecter différents composants au fur et à mesure de leur développement et de leur amélioration :
modin.pandas
est actuellement en développement actif. Les demandes et contributions sont les bienvenues !
Pour plus d'informations sur la façon de contribuer à Modin, consultez le Guide de contribution Modin.
Licence Apache 2.0