Мне нужно реализовать многопроцессорность для этого кода. По сути, он создает сетку из nxn-данных с использованием numpy linspace и через некоторое время вводит l oop, проверяя условие для параметра t. При каждом запуске внутри while l oop он вычисляет z для каждой точки сетки и обновляет значение t. Он работает, пока не будет выполнено определенное условие для t. Затем он просто отображает данные.
Я читал о многопроцессорном пакете, но на самом деле не знаю, как его реализовать. Я нашел источники немного неясными для новичков и не смог найти ни одного примера, на котором можно было бы основываться.
Любые комментарии приветствуются, заранее спасибо!
import numpy as np
import matplotlib.pyplot as plt
import time
##################
def function(x,y,z):
t=1
while t<20:
for i in range(n):
for j in range(n):
z[i,j]=z[i,j]+(i+j)/n**2
t=t+1 ### this is just a dummy operation used to
time.sleep(1.0) #### simulate the actual computations
return z
def plot(x,y,z):
plt.contourf(x,y,z,20,cmap="viridis")
plt.colorbar()
plt.show()
#################
start_time = time.time()
n=30
t=1
x=np.linspace(0,10,n)
y=np.linspace(0,10,n)
z=np.zeros((n,n))
function(x,y,z)
plot(x,y,z)
print("--- %s seconds ---" % (time.time() - start_time))