Форум сайта python.su
Пытаюсь отправить заданное сообщение всем процессам, но почему-то вывод печатает только главный процесс.
Таинственности данному коду придает тот факт, что если убрать input и задать просто какое-то число, то все будет работать как часы.
Помогите пожалуйста разобраться с этой ерундой.
Запускаю данный код вот так:
mpiexec -n 4 python3 ./temp.py
from mpi4py import MPI comm = MPI.COMM_WORLD while True: if comm.rank == 0: data = input('Введите число: ') else: data = None data = comm.bcast(data, root=0) print('Process num {}, data {}'.format(comm.rank, data))
Отредактировано jon34 (Фев. 15, 2016 14:01:33)
Офлайн
import sys from mpi4py import MPI comm = MPI.COMM_WORLD data = 1 while data > 0: if comm.rank == 0: data = int(input('Введите число: ')) else: data = None data = comm.bcast(data, root=0) print('Process num {}, data {}'.format(comm.rank, data)) sys.stdout.flush() comm.Barrier()
Офлайн