2016-06-12 98 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

相關問題