Anda di halaman 1dari 1

#hello.

py
from mpi4py import MPI
import numpy as np
comm = MPI.COMM_WORLD
rank = comm.Get_rank()

if (rank==0):
arr1=np.array([[1,2,3],[4,5,6],[7,8,9]])
data=np.array([[1,2,3],[4,5,6],[7,8,9]])
#data=np.array([1,2,3])
print("scattering")
else:
arr1=None
data = np.empty([3,3], dtype=int)
bufrcv=np.empty([3],dtype=int)
bufrcv1=np.empty([3],dtype=int)
comm.Scatter(arr1,bufrcv,root=0)
comm.Bcast(data,root=0)
print "scattered ", rank,bufrcv,data

bufsend=np.empty([3],dtype=int)
datadim=data.shape

for i in range(0,datadim[1]):
sum=0
for j in range (0,len(bufrcv)):
sum=sum+bufrcv[j]*data[j,i]
#print("buffer",rank,bufrcv[j],data[i,j],bufrcv[j]*data[i,j])

bufsend[i]=sum
#print(sum,rank)
#print(bufsend)

recvbuf=None
if rank == 0:
recvbuf = np.empty([3,3], dtype=int)

comm.Gather(bufsend, recvbuf, root=0)

if rank==0:
print(recvbuf)

Anda mungkin juga menyukai