Многопроцессорный простой код для численных расчетов - PullRequest
0 голосов
/ 25 апреля 2020

Мне нужно реализовать многопроцессорность для этого кода. По сути, он создает сетку из 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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...