Одна из целей MPI должна учесть многоуровневые библиотеки. Для
библиотеки, чтобы делать это чисто, требуется знать, является ли MPI
активным. В MPI-1 функция MPI_INITIALIZED
была предназначена,
чтобы сообщить, был ли MPI инициализирован. Проблема возникла в
знании, завершен ли MPI. Как только MPI завершен, это больше не
активно и не может быть перезапущено. Библиотека должна быть способной
определить это, чтобы действовать соответственно. Чтобы достигнуть этого,
необходима следующая функция:
MPI_FINALIZED(flag)
OUT | flag |
истина, если MPI был завершен (логический) |
int MPI_Finalized(int *flag)
MPI_FINALIZED(FLAG, IERROR)
LOGICAL FLAG
INTEGER IERROR
bool MPI::Is_finalized()
Эта подпрограмма возвращает true
, если MPI_FINALIZE
завершена.
Законно вызывать MPI_FINALIZED
перед MPI_INIT
и после
MPI_FINALIZE
.
Совет пользователям:
MPI ``активен'' и это - таким образом сохранение вызова функций MPI, если MPI_INIT
завершена и MPI_FINALIZE
не
завершена. Если библиотека не имеет никакой другой возможности узнать, является
ли MPI активным или нет, то она может использовать MPI_INITIALIZED
и MPI_FINALIZED
, чтобы определить это. Например, MPI ``активен''
в функциях повторного вызова, которые вызваны в течение
MPI_FINALIZE
. []