Я пытаюсь решить несколько линейных систем, используя python и scipy, используя потоки. Я абсолютный новичок, когда дело доходит до потоков Python. Я приложил код, который выделяет то, что я пытаюсь выполнить. Этот код работает, но время выполнения на самом деле увеличивается по мере увеличения totalThreads. Я предполагаю, что spsolve рассматривается как критический раздел и на самом деле не запускается одновременно.
У меня следующие вопросы:
Я искал ответы в Интернете, но безуспешно. Возможно, я просто использую неправильные ключевые слова. Спасибо всем за помощь.
def Worker(threadnum, totalThreads):
for i in range(threadnum,N,totalThreads):
x[:,i] = sparse.linalg.spsolve( A, b[:,i] )
threads = []
for threadnum in range(totalThreads):
t = threading.Thread(target=Worker, args=(threadnum, totalThreads))
threads.append(t)
t.start()
for threadnum in range(totalThreads): threads[threadnum].join()