PyKeOps/fr
La bibliothèque KeOps permet de calculer des réductions de tableaux de grande taille dont les entrées sont des formules mathématiques ou des réseaux de neurones. Elle combine des routines C++ efficaces avec un moteur de différentiation automatique et peut être utilisée avec Python (NumPy), PyTorch, MATLAB et R.
Versions disponibles¶
Les versions disponibles sur nos grappes sont des wheels Python. Voyez la liste en lançant avail_wheels.
Le résultat est le suivant :
Installation dans un environnement virtuel Python¶
-
Chargez les dépendances.
-
Créez et activez un environnement virtuel Python.
-
Installez une version de PyKeOps avec ses dépendances Python.
# (pykeops_env) [nom@serveur ~]$ pip install --no-index --upgrade pip pip install --no-index pykeops==X.Y.Zoù
X.Y.Zest le numéro de la version, par exemple2.2.3. Pour installer la plus récente version, n'entrez pas de numéro. -
Validez.
-
Gelez l'environnement et l'ensemble des exigences.
-
Supprimez l'environnement virtuel local.
Exécution¶
Vous pouvez exécuter PyKeOps sur un CPU ou un GPU.
-
Préparez votre script d'exécution.
=== "CPU" ```bash title="submit-pykeops-cpu.sh" #!/bin/bash #SBATCH --account=def-someprof # ajustez ce paramètre pour qu'il corresponde au groupe comptable que vous utilisez pour soumettre des tâches #SBATCH --time=08:00:00 # ajustez ce paramètre pour qu'il corresponde au temps d'exécution de votre tâche #SBATCH --cpus-per-task=4 # ajustez ce paramètre pour qu'il corresponde au nombre de cœurs à utiliser #SBATCH --mem-per-cpu=4G # ajustez ce paramètre en fonction de la mémoire dont vous avez besoin par cœur # Chargement des dépendances des modules. module load StdEnv/2023 python/3.11 # Créez l'environnement virtuel sur le nœud de calcul : virtualenv --no-download $SLURM_TMPDIR/env source $SLURM_TMPDIR/env/bin/activate pip install --no-index --upgrade pip pip install --no-index -r pykeops-2.2.3-requirements.txt # Vérifiez que tout est en ordre python -c 'import pykeops; pykeops.test_numpy_bindings()'submit-pykeops-gpu.sh```#!/bin/bash #SBATCH --account=def-someprof # ajustez ce paramètre pour qu'il corresponde au groupe comptable que vous utilisez pour soumettre des tâches #SBATCH --time=08:00:00 # ajustez ce paramètre pour qu'il corresponde au temps d'exécution de votre tâche #SBATCH --cpus-per-task=4 # ajustez ce paramètre pour qu'il corresponde au nombre de cœurs à utiliser #SBATCH --mem-per-cpu=4G # ajustez ce paramètre en fonction de la mémoire dont vous avez besoin par cœur #SBATCH --gpus=1 # Chargement des dépendances des modules. Le module custom-ctypes est essentiel ici. module load StdEnv/2023 python/3.11 cuda/12 custom-ctypes # Créez l'environnement virtuel sur le nœud de calcul : virtualenv --no-download $SLURM_TMPDIR/env source $SLURM_TMPDIR/env/bin/activate pip install --no-index --upgrade pip pip install --no-index -r pykeops-2.2.3-requirements.txt # Vérifiez que les liaisons nvrtc sont également trouvées python -c 'import pykeops; pykeops.test_numpy_bindings()' -
Pour savoir si votre script contient des erreurs, testez-le avec une tâche interactive.
-
Soumettez la tâche à l'ordonnanceur.
```bash sbatch submit-keops.sh