2014-02-20 1 views
1

Я столкнулся с очень странной ошибкой, когда пытался выполнить простой скрипт оболочки из сценария python. Сценарий должен выполняться только первым узлом (rank = 0). Простой пример:MPI4PY - маршрутизированный: биномиальный: соединение с линией жизни потеряно

import os 
from mpi4py import MPI 

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

if rank==0: 
     os.system('./simple_script.sh') 
else: 
     print rank 

Результат:

[ws:29907] [[57451,1],0] routed:binomial: Connection to lifeline [[57451,0],0] lost 

Что проблема? Есть идеи?

Thx заранее

ответ

0

Я точно не знаю, как работает MPI4PY, но если это ничего, как обычный MPI, вы должны вызвать MPI_Init, прежде чем начать делать что-либо (например, get_size или get_rank). Сначала попробуйте сделать это.

+0

thx для вашего ответа. В Python MPI_Init() не нужно ... Я нашел небольшое обходное решение, хотя ... –

+0

У меня такая же проблема. Каков обходной путь? – solvingPuzzles