MPI-функции для прослушивания, если узел готов - PullRequest
1 голос
/ 01 февраля 2012

Я хотел бы иметь один «родительский» узел, который генерирует данные и передает их рабочим узлам, которые будут выполнять вычисления, необходимые для данных.

Я бы хотел, чтобы родительский узел сидел без дела и «слушал»'когда рабочий узел говорит ему, что он готов получить данные.

Каков наилучший способ сделать это?Какие функции я должен использовать для этого?если я использую MPI_Send (...), то мне нужно заранее знать, на какой узел я отправляю свои данные.Если я использую MPI_Recv (...) для получения сообщения от ранга 'i' о том, что он готов, то родительский узел не будет ждать с заданным рангом, чтобы сказать, что он готов, когда другие узлы могут пытатьсятакже отправить готовое сообщение?

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

1 Ответ

2 голосов
/ 01 февраля 2012

Вы можете использовать специальное значение MPI_ANY_SOURCE для параметра источника в MPI_Recv, а затем проверить объект MPI_Status на предмет ранга процесса, от которого вы фактически получили.

...