Maison >développement back-end >Tutoriel Python >Comment limiter l'utilisation des threads de Numpy en cas d'échec de OMP_NUM_THREADS=1 ?

Comment limiter l'utilisation des threads de Numpy en cas d'échec de OMP_NUM_THREADS=1 ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-19 12:28:02742parcourir

How to Limit Numpy's Thread Utilization When OMP_NUM_THREADS=1 Fails?

Nombre limité de threads dans Numpy

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!

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