我找不到适合下一个任务的方法:
我有一个巨大的输入[x1,x2,x3。。。XN]和函数,我想应用于从大量的F(XI,PARAM)的每个X,因此有八个可能的值,这个函数的结果不依赖于PARAM。所以我需要同时为param的所有可能值运行这个函数f。这对X函数来说并不重要,它对所有这八个函数f(Xi,P1),f(Xi,P2)都很重要。F(XI,P8)同时工作,所有的X将只被处理一次。

最佳答案

看起来很直截了当。我不知道你所说的“所有的x只会被处理一次”是什么意思,但这听起来是不可能的。对于每个参数,函数仍然必须单独调用(除非某个黑色魔术师能证明我错了,这似乎是有可能的)

from multiprocessing import Pool

def f(x, param):
    ...do stuff...

if __name__ == '__main__':
    params = [1,2,3,4,5,6,7,8]
    try:
        pool = Pool(8)
        pool.starmap(f, [(x,param) for param in params])
    except SomeError:
        ...do error stuff...
    finally:
        pool.close()
        pool.join()

关于python - 具有不同功能的python多重处理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51951592/

10-15 23:31