Numpy 中的線程限制
確定底層線程管理
提供的numpy.show_config() 輸出表明NumPy 正在利用ATLAS 來實現其線性代數運算。為了限制專門用於矩陣乘法的執行緒數量,我們需要針對 ATLAS 的執行緒配置。
執行緒限製配置
在執行腳本之前,設定以下環境標誌:
- export MKL_NUM_THREADS=1:此標誌限制Intel Math Kernel library (MKL) 使用的執行緒數,該函式庫用於NumPy 中的某些操作。
- export NUMEXPR_NUM_THREADS=1:此標誌限制NumExpr 中的平行級別,NumPy 用於快速數值計算的函式庫。
- export OMP_NUM_THREADS=1:此標誌設定 OpenMP(NumPy 在某些情況下使用的平行運算平台)的執行緒計數。
多執行緒故障排除
如果上述標誌無法解決問題,則值得調查其他函式庫是否引入了多執行緒。探索為這些函式庫設定環境標誌,例如:
- export BLAS_NUM_THREADS=1:指定 BLAS(NumPy 常用的線性代數函式庫)的執行緒計數。
- export LAPACK_NUM_THREADS=1:設定 LAPACK(與 BLAS 整合的線性代數函式庫)的執行緒數。
以上是如何限制 Numpy 中的線程使用以獲得更好的性能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!