Является ли MPI_Request глобальным среди процессов MPI? - PullRequest
0 голосов
/ 28 мая 2010

Если я объявлю таблицу MPI_Request (один запрос для каждого процессора), она будет доступна глобально при использовании для MPI_Isend / MPI_Irecv ?? (По сравнению с MPI_comm, который доступен везде после инициализации среды MPI)

Спасибо.

1 Ответ

3 голосов
/ 28 мая 2010

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

Данные типа MPI_REQUEST обычно используются как дескрипторы для немедленной отправки и получения (ISend, Irecv), чтобы позволить процессам отправки и получения проверить, что сообщение было получено, используя MPI_Test или MPI_Wait / MPI_Waitall / MPI_Waitany.

MPI_Comm также является типом, но, возможно, вы имеете в виду сам коммуникатор по умолчанию, который относится к этому типу? Это известно всем процессам, потому что MPI_Init, который (эффективно) создает коммуникатор по умолчанию, является коллективной операцией.

...