Limite de thread dans Numpy
Détermination de la gestion des threads sous-jacents
La sortie fournie de numpy.show_config() révèle que NumPy utilise ATLAS pour son opérations d'algèbre linéaire. Pour limiter le nombre de threads spécifiquement pour la multiplication matricielle, nous devons cibler la configuration des threads d'ATLAS.
Configuration de la limite de threads
Avant d'exécuter votre script, définissez les indicateurs d'environnement suivants :
- export MKL_NUM_THREADS=1 : cet indicateur limite le nombre de threads utilisés par la bibliothèque Intel Math Kernel (MKL), qui est utilisée pour certaines opérations dans NumPy.
- export NUMEXPR_NUM_THREADS=1 : cet indicateur contraint le niveau de parallélisme dans NumExpr, une bibliothèque utilisée par NumPy pour des calculs numériques rapides.
- export OMP_NUM_THREADS=1 : cet indicateur définit le nombre de threads pour OpenMP, une plate-forme de calcul parallèle utilisée par NumPy dans certains cas.
Dépannage du multithreading
Si les indicateurs ci-dessus ne résolvent pas le problème, il vaut la peine de rechercher si d'autres bibliothèques introduisent le multithreading. Explorez également la définition d'indicateurs d'environnement pour ces bibliothèques, tels que :
- export BLAS_NUM_THREADS=1 : Spécifie le nombre de threads pour BLAS, une bibliothèque d'algèbre linéaire couramment utilisée par NumPy.
- export LAPACK_NUM_THREADS=1 : définit le nombre de threads pour LAPACK, une bibliothèque d'algèbre linéaire intégrée à BLAS.
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!
Déclaration:Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn