0

我正在使用numexpr在遠程集羣上添加簡單的陣列。我的電腦有8個內核,遠程集羣有28個內核。 Numexpr文檔說:「在初始化期間,Numexpr將此數字設置爲系統中檢測到的內核數量」但羣集提供此輸出。 detect_number_of_cores()= 28個
detect_number_of_threads()= 8Numexpr檢測的線程數量少於核心數量

雖然當我嘗試手動設置的線程數爲其他內容(set_num_threads = 20),數組運算似乎運行得更快。但是detect_number_of_threads()仍然會給出8個輸出。

這是一個錯誤?

回答

0

我不確定,當detect_number_of_threads被調用時,numexpr實際上是如何在內部工作的,但它可能讀出可用於openmp的線程數,而不是本地設置的線程數。