簡介:
Multiprocessing,一個用於並行化任務的Python 函式庫,旨在跨多個核心分配工作。然而,使用者遇到了 Numpy 的導入乾擾這種分佈的問題,導致所有工作進程都被指派到單一核心。
說明:
導入 Numpy 時,Numpy 中的某些 CPU 密集型模組(例如 OpenBLAS)可以修改核心關聯性。這種幹擾將所有工作流程分配給同一核心,從而消除了多處理的平行化優勢。
解決方法:
要解決此問題,請使用程式碼重設任務關聯性程式碼片段: os.system("taskset -p 0xff %d" % os.getpid())。此命令強製作業系統在所有可用核心之間均勻分配工作進程。
其他注意事項:
替代解決方案:
透過應用這些解決方案,多處理可以有效地將工作進程分佈在多個核心上,解決了核心集群的初始問題,增強了並行化效能。
以上是為什麼導入 Numpy 會將多處理限制為單核心?的詳細內容。更多資訊請關注PHP中文網其他相關文章!