[英]Run a python program on multiple cores
我是多核編程的新手。 以下程序僅使用一個內核。 如何使它在多個內核上運行(我有4個內核)。
simDict={}
def sim(outer,inner, ...):
val= /*do some math*/
simDict[...]=val
def foo():
for outer in xrange(0, limit):
for inner in xrange(outer, limit):
sim(outer,inner, ...)
foo()
簡單:
from multiprocessing import Pool
p = Pool()
def do_inner(outer, limit):
for inner in xrange(outer, limit):
sim(outer, inner, ...)
def foo():
p.map(do_inner, xrange(limit))
foo()
它采用multiprocessing.Pool
來創建工作進程池。
對於您的問題,我將使用隊列,然后堅持使用消費者/生產者問題,然后從那里開始。 除非您的線程之間沒有數據依賴性,否則您將需要使用一些更高級的鎖定機制,並且必須防止更多的線程陷阱。
生產者/消費者概念: http : //en.wikipedia.org/wiki/Producer-consumer_problem僅供參考: http : //docs.python.org/library/multiprocessing.html
如果僅使用線程,則在某些特定情況下, multiprocessing
可能會有所幫助,並且全局解釋器鎖會降低速度。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.