next up previous contents
Next: Обработчики ошибок для коммуникаторов Up: Разное Previous: Межъязыковая связь   Contents

Обработчики ошибок

Стандарт MPI-1 предоставлял обработчики ошибок только для коммуникаторов. MPI-2 предоставляет их для трех типов объектов - коммуникаторы, окна и файлы. Расширение было создано с поддержкой только одного типа явного объекта обработчика ошибок. С другой стороны, для Си и С++ объявлены разные определения типов для аргументов типов коммуникатор, файл и окно. В ФОРТРАН же для этого есть три пользовательских функции.

Объект обработчика ошибок создается вызовом функции MPI_XXX_CREATE_ERRHANDLER (function, errhandler), где XXX , соответственно, COMM, WIN, или FILE.

Обработчик ошибок присоединяется к коммуникатору, окну или файлу вызовом
функции MPI_XXX_SET_ERRHANDLER. Он должен быть или обработчиком по умолчанию, или созданным вызовом MPI_XXX_CREATE_ERRHANDLER, с соответствующим XXX. Стандартные обработчики ошибок MPI_ERRORS_RETURN и MPI_ERRORS_ARE_FATAL могут быть присоединены к коммуникаторам, окнам и файлам. В С++ к ним может также присоединён стандартный обработчик MPI::ERRORS_THROW_EXCEPTIONS.

Обработчик, ассоциированный с конкретным коммуникатором, окном или файлом может быть получен вызовом MPI_XXX_GET_ERRHANDLER.

Для освобождения обработчика, созданного вызовом MPI_XXX_CREATE_ERRHANDLER может быть использована функция MPI-1 MPI_ERRHANDLER_FREE.

Совет разработчикам: Высококачественная реализация должна индицировать ошибку в случае, если созданный вызовом MPI_XXX_CREATE_ERRHANDLER обработчик присоединяется к объекту неверного типа вызовом MPI_YYY_SET_ERRHANDLER. Для этого следует хранить вместе с обработчиком информацию о типе ассоциированной функции пользователя.[]

Синтаксис таких вызовов приведен ниже.



Subsections

Alex Otwagin 2002-12-10