Как паррализовать векторные операции - PullRequest
1 голос
/ 08 мая 2020

Я хочу добавить два вектора параллельно и использовать для этого mpi4py. Но я не очень хорошо знаком с mip4py, поэтому мой вопрос в том, параллизирован ли этот код ниже? Когда я использую выражение mpirun -n 3 python3 Übung2.py, обозначает ли 3 количество рабочих?

вот мой код:

na=10**6
va = np.random.rand(na,1)
vaa = np.random.rand(na,1)

from mpi4py import MPI
import time

comm = MPI.COMM_WORLD
rank = comm.Get_rank()
size = comm.Get_size()
# master process
sume=0
VA=[]
if rank == 0:
    start_time = time.time()


    # master process sends data to worker processes by
    # going through the ranks of all worker processes
    for i in range(1, size):
        VA.append(va+vaa)
        comm.send(VA, dest=i, tag=i)
        print(VA)
        #print('Process {} sent data:'.format(rank), data)
        sume = sume + (time.time() - start_time)


# worker processes
else:
    # each worker process receives data from master process
    data = comm.recv(source=0, tag=rank)
    #print('Process {} received data:'.format(rank), data)

print(sume)

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...