我找不到适合下一个任务的方法:
我有一个巨大的输入[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/