Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengehadkan Penggunaan Benang dalam Numpy untuk Prestasi Lebih Baik?

Bagaimana untuk Mengehadkan Penggunaan Benang dalam Numpy untuk Prestasi Lebih Baik?

DDD
DDDasal
2024-10-19 12:39:02593semak imbas

How to Limit Thread Usage in Numpy for Better Performance?

Had Benang dalam Numpy

Menentukan Pengurusan Benang Pendasar

Keluaran numpy.show_config() yang disediakan mendedahkan bahawa NumPy menggunakan ATLAS untuk operasi algebra linear. Untuk mengehadkan bilangan utas khusus untuk pendaraban matriks, kami perlu menyasarkan konfigurasi penjalinan ATLAS.

Konfigurasi Had Thread

Sebelum melaksanakan skrip anda, tetapkan bendera persekitaran berikut:

  • eksport MKL_NUM_THREADS=1: Bendera ini mengehadkan bilangan utas yang digunakan oleh Intel Math Kernel Library (MKL), yang digunakan untuk operasi tertentu dalam NumPy.
  • eksport NUMEXPR_NUM_THREADS=1: Bendera ini mengekang tahap selari dalam NumExpr, perpustakaan yang digunakan oleh NumPy untuk pengiraan angka yang pantas.
  • eksport OMP_NUM_THREADS=1: Bendera ini menetapkan kiraan urutan untuk OpenMP, platform pengkomputeran selari yang digunakan oleh NumPy dalam beberapa kes.

Menyelesaikan masalah Multithreading

Sekiranya bendera di atas tidak menyelesaikan isu tersebut, adalah wajar disiasat jika perpustakaan lain memperkenalkan multithreading. Terokai menetapkan bendera persekitaran untuk perpustakaan tersebut juga, seperti:

  • eksport BLAS_NUM_THREADS=1: Menentukan kiraan benang untuk BLAS, perpustakaan algebra linear yang biasa digunakan oleh NumPy.
  • eksport LAPACK_NUM_THREADS=1: Menetapkan kiraan benang untuk LAPACK, perpustakaan algebra linear yang disepadukan dengan BLAS.

Atas ialah kandungan terperinci Bagaimana untuk Mengehadkan Penggunaan Benang dalam Numpy untuk Prestasi Lebih Baik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn