Можно ли найти верхнюю норму вектора, применяя операцию Open MPI Reduce с помощью Op MPI.MAX / MAXLOC - PullRequest
0 голосов
/ 20 ноября 2018

Мне нужно найти норму супремума (максимальный элемент вектора) вектора.Я могу реализовать, используя функцию нормы библиотеки линейной алгебры mpi4py.

x = np.linspace(0, 100, n)
mxnorm_x = norm(x, np.inf)
print "mxnorm-x", mxnorm_x

Однако мне нужно найти эту верховную норму с помощью операции MPI Reduce.Действительно ли возможно найти эту норму, используя comm.Reduce и Op MAX или MAXLOC?

1 Ответ

0 голосов
/ 21 ноября 2018

Я нашел решение сам.Вот обновление -

#divide up/ scatter the vector to all the process as sub vectors 
comm.Scatterv([x, sendTuple, disTuple, MPI.DOUBLE], local_x)

#compute max of that sub-vector (local_x)
local_max = np.max(local_x)

#find overall MAX
comm.Reduce(local_max, max, op = MPI.MAX)

#data will be stored in max
print "Maximum Value:", max[0]
...