Maison >développement back-end >Tutoriel Python >Comment limiter l'utilisation des threads de Numpy en cas d'échec de OMP_NUM_THREADS=1 ?
Malgré les tentatives de définition de OMP_NUM_THREADS=1, dans certaines situations, Numpy peut persister à utiliser plus d'un thread. Pour déterminer la racine de ce problème et obtenir un nombre de threads souhaité de 1 pour la multiplication matricielle, examinons les variables d'environnement qui régissent l'utilisation des threads.
La configuration de Numpy, récupérable via numpy.show_config(), révèle l'utilisation de la bibliothèque BLAS (Basic Linear Algebra Subroutines), qui sert de moteur de calcul. Cependant, identifier l'implémentation BLAS spécifique utilisée par Numpy peut être difficile.
Pour limiter le nombre de threads utilisés dans BLAS, nous pouvons définir des variables d'environnement avant d'exécuter le script. Les bibliothèques couramment utilisées incluent OpenBLAS, MKL (Intel Math Kernel Library) et NUMEXPR :
export MKL_NUM_THREADS=1 export NUMEXPR_NUM_THREADS=1 export OMP_NUM_THREADS=1
N'oubliez pas qu'il est crucial de définir ces variables avant d'exécuter le script. Si le multithreading persiste, cela peut indiquer que le multithreading est introduit à partir d'une source différente, telle qu'une bibliothèque supplémentaire ou du code dans votre script.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!