Опубликован: 22.04.2008 | Доступ: свободный | Студентов: 527 / 50 | Оценка: 4.50 / 4.75 | Длительность: 06:55:00
Специальности: Программист
Теги:
Дополнительный материал 8:
Управление процессами в MPI
< Дополнительный материал 7 || Дополнительный материал 8 || Дополнительный материал 9 >
Цель - изучить понятия "группа" и "коммуникатор" и средства их создания и управления ими в MPI-программах.
Типичный сценарий формирования новых групп MPI-процессов на основе исходной глобальной группы MPI_COMM_WORLD и организации взаимодействия внутри новых групп состоит из следующих шагов:
- Получить обработчик глобальной группы, связанной с коммуникатором MPI_COMM_WORLD, используя функцию MPI_Comm_group.
- Создать новую группу как подмножество глобальной группы, используя функцию MPI_Group_incl.
- Создать новый коммуникатор для вновь созданной группы, используя функцию MPI_Comm_create.
- Получить новый ранг процесса во вновь созданном коммуникаторе, используя функцию MPI_Comm_rank.
- Выполнить обмен сообщениями между процессами в рамках вновь созданной группы.
- По окончании работы, освободить (уничтожить) группу и коммуникатор, используя функции MPI_Group_free и MPPI_Comm_free.
Схематически, такой сценарий можно представить следующим рисунком:
Задача 1. Реализовать следующую программу, в которой организуется две группы процессов для выполнения коллективной операции внутри каждой из групп.
Запустить на выполнение данную программу с ключом -np 8. Объяснить результаты работы программы, выводимые на консоль.
Задача 2. Модифицировать текст предыдущей программы таким образом, чтобы
- в рамках первой группы выполнялась коллективная операция MPI_MIN, и результат помещался в процесс с наименьшим рангом в глобальной (исходной) группе и распечатывался им, и
- в рамках второй группы выполнялась коллективная операция MPI_MAX, и результат помещался в процесс с наибольшим рангом в глобальной (исходной) группе и распечатывался им.
< Дополнительный материал 7 || Дополнительный материал 8 || Дополнительный материал 9 >