Параллельное программирование. Лекция 13b. Динамическое создание процессов (MPI-2)
Институт математики, механики и компьютерных наук им.И.И.Воровича ЮФУ http://mmcs.sfedu.ru.
Лекции по параллельному программированию читает доцент кафедры алгебры и дискретной математики М.Э.Абрамян. В лекциях используется электронный задачник по программированию Programming Taskbook http://ptaskbook.com
Дополнительные материалы доступны по ссылке http://edu.mmcs.sfedu.ru/course/view....
Содержание: 00:00 Динамическое создание процессов (MPI-2); причины добавления этой возможности в стандарт MPI. Функции для создания новых процессов: MPI_Comm_spawn и MPI_Comm_spawn_multiple. 05:23 Параметры функции MPI_Comm_spawn. Интеркоммуникатор как результат создания новой группы процессов. 10:47 Условия выхода из функции MPI_Comm_spawn. Особенности функции MPI_Comm_spawn_multiple. 16:47 Получение из дочерних процессов связанного с ними интеркоммуникатора: функция MPI_Comm_get_parent. Особенности ее применения. Варианты создания нескольких новых наборов процессов. 23:49 Задания, посвященные динамическому созданию процессов. Пример: MPI8Inter15. Особенности отладочного вывода для дочерних процессов. 33:13 Первый этап решения: создание нового процесса. Проверка правильности создания с помощью отладочного вывода информации о всех процессах приложения. 37:39 Второй этап решения: ввод исходных данных в родительских процессах, их пересылка и вывод в дочернем процессе. Использование коллективной операции для интеркоммуникатора. 42:35 Завершающий этап решения: пересылка данных из дочернего процесса родительским процессам и их вывод. 46:17 Функция MPI_Intercomm_merge: объединение двух групп процессов интеркоммуникатора в новый интракоммуникатор. Параметр high. 52:54 Механизм клиент-серверного взаимодействия между не связанными между собой группами процессов. Создание порта для связи и его публичного имени, прослушивание порта на стороне группы-сервера; подключение к порту группы-клиента. Функции MPI, обеспечивающие реализацию этих действий. 1:02:46 Описание последовательности действий на стороне сервера и на стороне клиента. Необходимость синхронизации действий сервера и клиента, средства ее обеспечения.