并行Python:只运行函数n次

0 投票
1 回答
2037 浏览
提问于 2025-04-27 21:33

我有一个Python函数,它的输出是一个多维的numpy数组。这个函数是一个蒙特卡洛模拟,里面用到了随机数。我想用相同的输入运行这个函数n次,收集这些数据,然后计算平均值。有没有简单的方法可以用multiprocessing来实现这个呢?

暂无标签

1 个回答

2

比如说,使用简单的平方函数来计算平均值,这里用到了4个进程:

from multiprocessing import Pool

def f(x):
    return x*x

if __name__ == '__main__':
    pool = Pool(processes=4)
    n = 10000000
    inputs = xrange(n)
    # calc f output using 4 processes
    out_list = pool.map(f, inputs)
    # average  
    print sum(out_list) / float(n)

撰写回答