2016-06-12 138 views
1

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

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

有没有办法做到这一点?

+0

@ Merlin IO。它具有多个从/到数据库中的选择和插入语句,这些语句在大约1 500 000个循环的每个循环中执行 – Dennis

+0

@Merlin从表A中发生所有选择,并且所有插入都在表B中。 – Dennis

+0

。@ Dennis可以用SQL编写代码。不要走出进程到数据库。 – Merlin

回答

2

附上你的脚本在main方法,就像这样:

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


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

然后你就可以一起使用第二个脚本multiprocessing.Pool,运行使用不同的参数的主要方法。

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)) 
+0

谢谢Max,看起来干净和简单。将在一分钟内尝试一下 – Dennis

+1

我做了一些调整,之前没有工作。 – MaxNoe

+0

你怎么指定5对参数,但只有4个并行作业要运行?我错了吗? – Dennis

相关问题