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!