Я хочу добавить два вектора параллельно и использовать для этого 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)
Спасибо