next up previous contents
Next: MPI_APPNUM Up: Другая функциональность Previous: Размер пространства   Contents

Одиночная функция MPI_INIT

Высококачественная реализация позволяет любому процессу (включая те, которые не были запущены через механизм ``параллельного приложения'') стать процессом MPI посредством вызова MPI_INIT. Такой процесс может затем соединяться с другими процессами MPI, используя процедуры MPI_COMM_ACCEPT и MPI_COMM_CONNECT, или порождать другие процессы MPI. MPI не санкционирует такой возможности (программа может стать программой MPI с единственным процессом, не заботясь о том, как она была в действительности запущена), но очень поощряет это, если это технически осуществимо.

Совет разработчикам: Чтобы запустить приложение MPI-1 с более, чем один, процессами, требуется специальная координация. Процессы должны запускаться в ``то же самое'' время; они должны также иметь механизм установки соединения. Либо пользователь, либо операционная система должны предпринимать специальные шаги кроме простого запуска процессов.[]

Когда приложение входит в MPI_INIT, ясно, что оно должно смочь определить, были ли предприняты эти специальные шаги. MPI-1 не может сказать, что случится, если эти специальные шаги не были выполнены; вероятно, эта ситуация рассматривается как ошибка в запуске приложения MPI. MPI-2 рекомендует следующее поведение.

Если процесс входит в MPI_INIT и определяет, что специальные шаги не были выполнены (т.е., не была задана информация для формирования MPI_COMM_WORLD с другими процессами), он завершается и формирует единственную программу MPI (т.е., такую, в которой MPI_COMM_WORLD имеет размер 1).

В некоторых реализациях MPI не может работать без ``среды MPI''. Например, MPI может потребовать, чтобы были запущены демоны, или же MPI не сможет работать вообще в оболочках для многопроцессорных систем. В этом случае, реализация MPI может

Высококачественная реализация попытается создать процесс-одиночку в MPI и не вызывать ошибку.



Alex Otwagin 2002-12-10