Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengehadkan Kiraan Benang dalam NumPy untuk Prestasi Optimum?
Menghadkan Kiraan Benang dalam NumPy
NumPy menggunakan perpustakaan berbilang CPU seperti BLAS untuk pengiraan berangka yang cekap. Walau bagaimanapun, anda mungkin menghadapi keadaan di mana kiraan benang lalai (4) terbukti berlebihan. Untuk menangani perkara ini, anda boleh memanfaatkan bendera persekitaran tertentu.
Sebelum melaksanakan skrip NumPy, pertimbangkan untuk menetapkan bendera berikut:
export MKL_NUM_THREADS=1 export NUMEXPR_NUM_THREADS=1 export OMP_NUM_THREADS=1
Bendera MKL_NUM_THREADS menetapkan kiraan urutan yang dibenarkan untuk Intel Math Perpustakaan Kernel (MKL). NUMEXPR_NUM_THREADS mengawal penjalinan NumExpr, yang digunakan untuk pengiraan berangka pantas. Akhir sekali, OMP_NUM_THREADS menguruskan kiraan utas yang digunakan oleh OpenMP, piawaian industri untuk pengaturcaraan selari dalam C/C /Fortran.
Menetapkan bendera ini memastikan semua pustaka dalam NumPy mematuhi had ketat utas 1. Ini boleh meningkatkan prestasi untuk pendaraban matriks dan operasi lain yang tidak mendapat manfaat daripada berbilang benang.
Perhatikan bahawa jika anda menghadapi masalah walaupun menetapkan bendera yang disebutkan, ini mungkin menunjukkan bahawa multithreading diperkenalkan di tempat lain dalam pangkalan kod. Dalam kes sedemikian, siasatan tambahan adalah wajar.
Atas ialah kandungan terperinci Bagaimana untuk Mengehadkan Kiraan Benang dalam NumPy untuk Prestasi Optimum?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!