ВУЗ:
Рубрика:
55
В приведенном тексте программы вначале каждый процесс про-
изводит инициализацию MPI вызовом процедуры MPI_INIT, затем
определяет общее число процессоров и свой номер, вызывая
MPI_COMM_SIZE и MPI_COMM_RANK, которые возвращают зна-
чения общего числа и номера в переменные Size и Rank соответст-
венно. Параметр MPI_COMM_WORLD является предопределенным
коммуникатором, объединяющим в единую область связи все про-
цессы приложения. После инициализации MPI процессы в группе
упорядочиваются и нумеруются от 0 до Size-1, где Size – общее
число процессов.
После выполнения основной части программы (в данном случае
одного оператора вывода Write) необходимо закрыть все (каждый в
отдельности) MPI-процессы, что и производится вызовом
MPI_FINALIZE.
В результате работы этой программы каждый процесс выведет
строку о своей готовности к работе. После запуска программы, на-
пример на 10 процессорах, пользователь, возможно, увидит сле-
дующее:
Process 0 of 10 is ready to work.
Process 9 of 10 is ready to work.
Process 4 of 10 is ready to work.
Process 1 of 10 is ready to work.
Process 8 of 10 is ready to work.
Process 3 of 10 is ready to work.
Process 6 of 10 is ready to work.
Process 5 of 10 is ready to work.
Process 7 of 10 is ready to work.
Process 2 of 10 is ready to work.
Можно обратить внимание на то, в какой последовательности на
экране выводятся строки. Такой порядок может показаться хаотич-
ным, но это не совсем так. Первым свою информацию всегда выве-
дет процессор с номером «0». И только после этого он предоставит
возможность вывода остальным процессам, порядок которых может
варьироваться. Это связано с особенностью эмуляции экранного
вывода многопроцессорных систем (процессы не имеют в своем
распоряжении экрана), и при проектировании сложных программ
следует учитывать то, что ваша MPI-система сконфигурирована
таким образом, что процессы, отличные от «0»-процесса, смогут
Страницы
- « первая
- ‹ предыдущая
- …
- 53
- 54
- 55
- 56
- 57
- …
- следующая ›
- последняя »
