簡體   English   中英

從 Ubuntu 10.10 升級到 12.04 后,multiprocessing.map 和 joblib 僅使用 1 個 cpu

[英]Both multiprocessing.map and joblib use only 1 cpu after upgrade from Ubuntu 10.10 to 12.04

我有一些完美運行的 python 代碼,它使用多處理模塊並以 100% 的速度在我的機器上加載所有 8 個 CPU。

在我從 Ubuntu 10.10 升級到 12.04 之后(最明顯的事情,也許我做了其他破壞一切的事情),它停止工作了。 經過大量調試,我發現即使在最簡單的用例中,兩個模塊也只使用 1 個 CPU:

from pylab import *
import multiprocessing as mp
from joblib import Parallel, delayed

def f(i):
    # Slow calculation
    x = 1
    for j in range(100000): x = cos(x)
    print i, x

if __name__ == '__main__':
    # Try to multiprocess with multiprocessing
    mp.Pool(processes=8).map(f, range(100))
    # Try to multiprocess with joblib
    Parallel(n_jobs=8)(delayed(f)(i) for i in range(100))

我需要在我的系統中使用所有 8 個 CPU。 關於我應該如何解決問題的任何想法?

解決方案移@user1084871的問題帖。

正如@ali_m在此處的評論和對為什么多處理在我導入 numpy 后僅使用單個內核的回答中指出的那樣? 該問題與numpy搞亂 cpu 親和力有關。 呼喚

os.system('taskset -p 0xffffffff %d' % os.getpid())

在我做任何多處理之前為我解決了這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM