我必須使用修復時間步驟解決ODE系統。在每個時間步驟中,我必須計算許多類似方程的輸出(我正在編程一個神經網絡,我必須計算每個神經元的值,這些神經元由一個ODE系統表示)。因此,我想平行循環內的計算。我嘗試使用線程包,但我應該做一些錯誤的,因爲它不工作...(在下面的代碼,我跳過輸入爲清晰代)python:for循環中的多線程
class EBNMCPU(threading.Thread):
def __init__(self, threadID, Ts, OnDir):
self.threadID = threadID
self.Neuron=NM.EBN(Ts,Dir=OnDir)
threading.Thread.__init__(self)
def run(self,Glu=[np.array([1.0],dtype='float'),0.0],GlyOPN=np.array([1.0],dtype='float'),GlyIBN=np.array([0.0],dtype='float')):
threadLock.acquire()
self.Neuron.NextStep(Glu, GlyOPN, GlyIBN)
threadLock.release()
def getOutput(self):
return self.Neuron.getOutput()
if __name__ == '__main__':
Ts=np.array([0.005] , dtype=float)
threadLock = threading.Lock()
EBN=[]
for ii in np.arange(0,10):
EBN.append(EBNMCPU(ii,Ts,OnDir=0.0))
for tc in EBN:
tc.start()
for ii in np.arange(0,NSample):
for tc in EBN:
tc.run([np.array([AllY[ii,1]]),0.0],np.array([AllY[ii,2]]),np.array([AllY[ii,3]]))
for tc in EBN:
tc.join()
的問題是,我做的看不到任何並行活動在我的系統管理員...
謝謝您的意見/幫助,
皮埃爾