Уведомления

Группа в Telegram: @pythonsu

#1 Май 29, 2015 13:22:42

_alexs_
Зарегистрирован: 2012-04-02
Сообщения: 42
Репутация: +  0  -
Профиль   Отправить e-mail  

mpi4py обаботка словарей (dict)

Пытаюсь разобраться с использованием MPI в Python, а именно с mpi4py.

Есть большой словарь, который необходимо обработать в параллельном режиме. Разобрался как передать на все узлы словарь целиком, как обрабатывать тоже более-менее понятно. А вот как потом поочередно получить модифицированные данные на главном узле понять не могу.

Код отправки выглядит так (словарь намеренно упрощенный)

from mpi4py import MPI
comm = MPI.COMM_WORLD
rank = comm.Get_rank()
size = comm.Get_size()
if rank == 0:
  data = {'1': [0], '2': [0]}
else:
  data = None
data = comm.bcast(data , root=0)
# проверяем наличие на узлах
print "[%02d]%s" % (rank, data)

Пробовал использовать gather() но ничего не выходит. С recv() вроде бы получается, но в этом случае необходимо блокировать выполнение на время отправки/приема данных. Кто-нибудь может подсказать как организовать получение данных?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version