Использование mpi4py Sendrecv

58
5

Я пытаюсь узнать mpi4py. Следующий тестовый код выглядит довольно просто для меня

#shift.py

from mpi4py import MPI

comm=MPI.COMM_WORLD
rank = comm.Get_rank()
size = comm.Get_size()

nxt = (rank+1)%size
prev = (rank-1)%size

num = rank
num2 = 0

print rank, num

num2 = comm.Sendrecv(num,dest=nxt,source=prev)

print rank, num2

Но бегите...

mpirun -np 4 python shift.py

... вызывает эту ошибку из всех процессов:

TypeError: message: expecting buffer or list/tuple

Мне не удалось найти достаточно полную документацию по Sendrecv. Любая идея, что я делаю неправильно?

спросил(а) 2015-08-28T22:27:00+03:00 5 лет, 2 месяца назад
1
Решение
70

Если кому-то интересно, получается, что Sendrecv (который я использую) и sendrecv (примечание в нижнем регистре) - это две разные процедуры. Sendrecv работает с буферами. sendrecv гораздо более общий и отлично работает с тем, что я пытаюсь сделать. Единственное место, где я мог найти это, здесь.

ответил(а) 2015-08-28T23:27:00+03:00 5 лет, 2 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема