并行执行具有不同参数的相同Python程序

时间:2016-06-12 12:52:48

标签: python python-3.x

我如何并行执行相同的python程序(我在考虑x10),唯一的区别是两个输入参数代表一个时间范围?我需要它进行一些数据处理,否则将花费很长时间才能完成

我知道我可以通过逐个启动10个脚本在shell中手动完成它,但它似乎不是最“优雅”的解决方案+我也很乐意在“动态”中为每个程序定义参数主要的“python程序。

有办法吗?

2 个答案:

答案 0 :(得分:2)

将您的脚本包含在main方法中,如下所示:

def main(args):
    a, b = args
    # do something


if __name__ == '__main__':
    args = parse_arguments()
    main(args)

然后您可以将第二个脚本与multiprocessing.Pool一起使用,以使用不同的参数运行main方法。

from myscript import main
from multiprocessing import Pool



a = [1, 2, 3, 4, 5]
b = [6, 7, 8, 9, 10]

if __name__ == '__main__':
    pool = Pool(4) # four parallel jobs
    results = pool.map(main, zip(a, b))

答案 1 :(得分:0)

您可以在shell中尝试以下操作:

python main.py [1, 2, 3, 4, 5] &
python main.py [6, 7, 8, 9, 10]