Maison  >  Article  >  développement back-end  >  Comment limiter l'utilisation des threads dans Numpy pour de meilleures performances ?

Comment limiter l'utilisation des threads dans Numpy pour de meilleures performances ?

DDD
DDDoriginal
2024-10-19 12:39:02446parcourir

How to Limit Thread Usage in Numpy for Better Performance?

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