3
เหตุใดการประมวลผลหลายขั้นตอนจึงใช้เพียงคอร์เดียวหลังจากที่ฉันนำเข้าจำนวน
ฉันไม่แน่ใจว่าสิ่งนี้นับเป็นปัญหาระบบปฏิบัติการมากกว่าหรือไม่ แต่ฉันคิดว่าฉันจะถามที่นี่ในกรณีที่ใครก็ตามมีความเข้าใจบางอย่างจากจุดสิ้นสุดของ Python ฉันพยายามขนานforลูปที่ใช้CPU หนักjoblibแต่ฉันพบว่าแทนที่จะกำหนดให้แต่ละกระบวนการของผู้ปฏิบัติงานถูกกำหนดให้กับคอร์ที่แตกต่างกันฉันพบว่ากระบวนการทั้งหมดถูกกำหนดให้อยู่ในคอร์เดียวกันและไม่มีการเพิ่มประสิทธิภาพ นี่เป็นตัวอย่างที่ไม่สำคัญมาก ... from joblib import Parallel,delayed import numpy as np def testfunc(data): # some very boneheaded CPU work for nn in xrange(1000): for ii in data[0,:]: for jj in data[1,:]: ii*jj def run(niter=10): data = (np.random.randn(2,100) for ii in xrange(niter)) pool = Parallel(n_jobs=-1,verbose=1,pre_dispatch='all') results = …