大家。我有一个文件Python(例如名为:run.py)。这个程序需要一些参数(python run.py param1 param2 ...),每个元组参数都是一个设置。现在,我必须同时运行许多设置才能尽快完成所有设置。我写了一个文件run.sh如下:
python run.py setting1 &
python run.py setting2 &
#more setting
...
wait
此文件将同时执行所有进程,对吧?我在机器64核心CPU上运行。我在这里有一些问题:
答案 0 :(得分:0)
您是否尝试使用multiprocessing模块?
假设你想要多次并行执行某个函数work(arg1, arg2)
,你最终会得到类似的东西
import multiprocessing
p = multiprocessing.Pool(multiprocessing.cpu_count()
results = p.starmap(work, [(arg11, arg12), (arg21, arg22)....]
# do something with the list of results
如果你的函数看起来彼此非常不同,那么你可以通过编写函数包装器来逃避:
def wrapper(dict_args, inner_function):
return inner_function(dict_args)
# then launch the multiprocessing mapping
p.starmap(wrapper, [({'arg1': v1, 'arg2': v2}, job1), ({'foo': bar}, job2)..]