我發現了有關python中的多處理和多線程的信息,但我不明白基本概念和我發現的所有示例都比我想要做的更困難。使用python進行基本多處理
我有X個需要運行的獨立程序。我想啓動第一個Y程序(其中Y是我的計算機的核心數量,X >> Y)。只要其中一個獨立程序完成,我希望下一個程序在下一個可用內核中運行。我認爲這很簡單,但我一直在困擾它。任何幫助解決這個問題將不勝感激。
編輯:非常感謝您的回答。我還發現了另一個使用我想分享的joblib模塊的解決方案。假設你有一個名爲'program.py'的腳本,你想用不同的輸入參數組合(a0,b0,c0)運行,並且你想使用所有的核心。這是一個解決方案。
import os
from joblib import Parallel, delayed
a0 = arange(0.1,1.1,0.1)
b0 = arange(-1.5,-0.4,0.1)
c0 = arange(1.,5.,0.1)
params = []
for i in range(len(a0)):
for j in range(len(b0)):
for k in range(len(c0)):
params.append((a0[i],b0[j],c0[k]))
def func(parameters):
s = 'python program.py %g %g %g' % parameters[0],parameters[1],parameters[2])
command = os.system(s)
return command
output = Parallel(n_jobs=-1,verbose=1000)(delayed(func)(i) for i in params)
程序是什麼意思?單獨的Python腳本?對於Python庫來說,如果進程在腳本中作爲函數可用,則很方便。 – 2012-07-12 19:04:56
如果它們是真正獨立的程序,您可以使用[gridengine](http://gridengine.org/blog/)來處理所有的任務管理。 – 2012-07-12 19:13:57