4
我目前使用python多進程來做一些簡單的並行編程。 我使用一個異步裝飾python多進程固定
def async(decorated):
module = getmodule(decorated)
decorated.__name__ += '_original'
setattr(module, decorated.__name__, decorated)
def send(*args, **opts):
return async.pool.apply_async(decorated, args, opts)
return send
然後
@async
def evalfunc(uid, start, end):
veckernel(Posx, Posy, Posz, Quant, Delta)
return (uid, GridVal)
def runit(outdir):
async.pool = Pool(8)
results = []
for uid in range(8):
result = evalfunc(uid,Chunks[uid], Chunks[uid+1])
results.append(result)
如果我它基本上僅使用兩個核的8個處理器或8個內核機器上運行此。這是爲什麼?有沒有辦法像pthreads一樣進行適當的核心固定?
非常感謝, 馬克