Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengehadkan Kiraan Benang dalam NumPy untuk Prestasi Optimum?

Bagaimana untuk Mengehadkan Kiraan Benang dalam NumPy untuk Prestasi Optimum?

Patricia Arquette
Patricia Arquetteasal
2024-10-19 12:28:29461semak imbas

How to Restrict Thread Count in NumPy for Optimal Performance?

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!

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