2016-02-27 1 views
1

Я сам изучаю MPI в python. Я только начал с базовой документации MPI4py. Я начал с этим кодом:MPI_Send (100): Недопустимый ранг имеет значение 1, но должен быть неотрицательным и меньше 1

from mpi4py import MPI 

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

if rank == 0: 
    data = {'a': 7, 'b': 3.14} 
    comm.send(data, dest=1, tag=11) 
elif rank == 1: 
    data = comm.recv(source=0, tag=11) 

Когда я запустил эту программу, я получил следующую ошибку:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "MPI/Comm.pyx", line 1175, in mpi4py.MPI.Comm.send (src/mpi4py.MPI.c:106424) 
    File "MPI/msgpickle.pxi", line 211, in mpi4py.MPI.PyMPI_send (src/mpi4py.MPI.c:42120) 
mpi4py.MPI.Exception: Invalid rank, error stack: 
MPI_Send(174): MPI_Send(buf=0x10e137554, count=25, MPI_BYTE, dest=1, tag=11, MPI_COMM_WORLD) failed 
MPI_Send(100): Invalid rank has value 1 but must be nonnegative and less than 1 

я не нашел каких-либо работающее решение этой проблемы. Я использую Mac OS X El Capitan.

Спасибо заранее!

ответ

0

Программа жалуется, что 1 недействителен для MPI_Send(): это значит, что ваша программа работает на одном процессе.

Вы используете его с помощью python main.py? Попробуйте использовать mpirun -np 2 python main.py, где 2 - количество процессов. Последний является обычным способом запуска программ mpi.

 Смежные вопросы

  • Нет связанных вопросов^_^