在多个核心上运行python程序

Mag*_*gie 2 python parallel-processing multithreading

我是多核编程的新手.以下程序仅使用一个核心.如何让它在多个核心上运行(我有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()
Run Code Online (Sandbox Code Playgroud)

nne*_*neo 5

简单:

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()
Run Code Online (Sandbox Code Playgroud)

multiprocessing.Pool用于创建工作进程池.