В.Д. Корнеев - Параллельное программирование в MPI (1162616), страница 11
Текст из файла (страница 11)
° Связи, использующие Тпсегсошшцптсасог, гарантируют неконфликтность с любой связью, которая использует различные коммуникаторы. ° 1псегсошшппйсатог не может использоваться в операциях коллективной связи. ° Коммуникатор не обеспечивает Тпсга- или Тпсег-связь одновременно, Функция МР1 СОКИ ТЕЯТ 1МТЕК может использоваться, чтобы определить, является ли коммуникатор Апсег- или Тпсгасошшппусасог'ом. 1псегсошшцпзсасог'ы могут использоваться как аргументы для некоторых других операторов.
1псегсошшппйсасог'ы не могут использоваться как входные аргументы для некоторых функций строителей для Апсгасокипппйсасог'ов (например, в МР1 СОММ СВЕАТЕ). Лва подмножества процессов Тпсегсошшппзсасог'а должны быть непересекающимися, по причинам, объясненным позже. Часто удобно генерировать область Мег-игои р связи, соединяя две области Тп сга-Его ир связи, т.
е. строя пару связанных подмножеств процессов из индивидуальных подмножеств, Я.Ю. Мепегрупповвя связь Это требует существования одного процесса в каждом подмножестве, которые могут связываться друг с другом через область связи, служащий мостом между двумя подмножествами. Например, предположим, что сошш1 имеет три процесса и сошш2 — четыре процесса (рис. 3.3). В терминах МР1 СОИМ ЫОВЬО процессы в сошш1 имеют ранги О, 1, 2 и в сошш2— ранги 3, $, 5, б.
1пеагсоппппяеаеог япегасвпиюпяеагог сопп1 ИР1 СОИН ИОИЬВ свпп2 ОШ Рис. 3.3. Пример двух гпггасоппппгсагпг'ов, объединенных гпъегсошшппгсагог'ом Допустим, локальные процессы О в каждом гпсгасошшипгсагаг'е формируют мост. Они могут связываться через МР1 СОИМ НОВ(.Р, где процесс О в сошш1 имеет ранг О, а процесс О в сошш2 имеет ранг 3. Как только создан гпсегсошшппдсасог, первоначальные подмножества для каждого 1псгасошшппзсагог'а становятся локальными подмножествами в 1псегсошшипзсасог'е и подмножество из другого 1птгасошшипгсасог'а станет отдаленным подмножеством.
Для связи в этом гпсегсошшвпгсагог'е используются ранги в отдаленном подмножестве. Например, если процесс в сопвп1 хочет посылать процессу 2 из сошш2 (в МР1 СОИМ ЫОВ1О имеет ранг б), то он использует 2 как ранг в посылающей функции. Замечание. Два подмножества, объединенных п1ег-Егоир областью связи не должны пересекаться. Если бы подмножества пересекались, то при создании п1ег-кгопр области связи (запрос к функции МР1 1МТЕВСОММ СВЕАТЕ) процесс в пересечении из двух подмножеств должен был бы делать два запроса к МР1 1МТЕВСОММ СВЕАТЕ, один от имени каждого подмножества. Но это невозможно с блокированными функциями.
3.5.2. Вспомогательные функции Япсегсошиппйсасог' а МР1 СОММ ТЕЯТ 1МТЕВ(сошш, 11ая) 1М сошш коммуникатор ОУТ 11ап сгпе(истина), если сошш гпгегсошшипгсатог 1пс МР1 Сошш сенс 1псег(МР1 Сова сова, гпс *11аЕ) МР1 СОИМ ТЕЯТ 1МТЕВ(СОММ, РЕАО, 1ЕВВОВ) 1МТЕОЕВ СОММ, 1ЕВВОВ ЬОО1САЕ РЕАО МР1 СОММ ТЕБТ 1МТЕ — локальнал функция, которая определяет, является ли переключатель каналов гпсегсошшццгсасог или гпггасошшппзсасог. Она возвращает сгпе, если это 1псегсошшплгсасог, иначе ложь.
Когда гпсегсошшппдсасог используется как входной аргумент вспомогательными функциями, описанными в п. 3.4.1, следующая таблица описывает их поведение. 40 3. Переключатели каналов Кроме тога, функция МР1 СОММ СОМРАЦЕ имеет силу для тпСегсоввиптсаСог'а. Переключатель каналов должны быть или тпсга- нли тпсегсошшиптсасог, иначе возврашается МР1ЛИЕЦУА1.. Следуюшие вспомогательные функции обеспечивают доступ к отдаленной группе тпСегсовшиптсасог'а; они все функции локальные. МР1 СОММ НЕМОТЕ Я12Е(савв, вбле) 1М савв тпсегсошшип1сасог СОТ втке количество процессов в удаленной группе сошв 1пс МР1 Сова гевоСе в1хе(МР1 Савв сова, тпс ~в1ке) МР1 СОММ ЕЕМОТЕ Я1ЕЕ(СОММ, Я1ЕЕ, 1ЕВВОЕ) 1ИТЕОЕЕ СОММ, Я12Е, 1ЕЕВОВ МР1 СОИМ йЕМОТЕ Я1ЕЕ вазврашает размер отдаленной группы в 1псегсоввиптсасог'е. Заметьте, что размер локальной группы дается функцией МР1 СОММ Б12Е.
МР1 СОММ ЕЕМОТЕ СВОУР~сошш, игоир) 1И савв тпиегсошшип1сасог СОТ игоир упаленная группа представленная савв тпс МРХ„Савв гешосе Егоир(МР1 Савв сопли, МР1 Сгоир ебгоир) МР1 СОММ ЕЕМОТЕ СЕОУР(СОММ, ОЕООР, 1ЕЕВХЖ) 1МТЕСЕЕ СОИМ, СЕСАР, 1ЕЕЕОЕ МР1 СОММ ЕЕМОТЕ ОЕООР возврашает отдаленную группу в 1псегсовшиптсасог'е. Заметьте, что местная группа выдается функцией МР1 СОММ СВООР.
3.5.3. Строители апСегаоввипэ.ааСог' а МР1 1ИТЕЕСОММ СЕЕАТЕЦоса1 савв,1оса1 1еабег,Ьгтббе сопки,гевоСе 1еабег,СаЕ, пеы1псегсошш) локальный 1псгасоввиптсасог ранг пипера в локальной группе 1оса1 савв "Ьгтббе"~мост) коммуникатор, связывает только два локальных лидера ранг лидера в удаленной группе в Ьгзббе савв, тег новый тпсегсоввип1сасог 1И 1оса1 соппп 1М 1оса1 1еабег 1М ЬгтбЕе сова 1М гевосе 1еабег 1М саи СОТ пеитпсегсовв 1пс МР1 1псегсоппп сгеасе(МР1 Совш 1оса1 савв„ тпс 1оса1 1еабег, МР1 Савв Ьгтбке савв, 1пс гешосе 1еабег, тпс саЕ, МР1 Савв ппеытпсегсовв) 1псгасоввиптсасог может быть создан запросом к МРХ СОММ ВйР, см. и. 3.4.2.
Что касается тпсегсовшиптсасог'а, этот запрос генерирует новую область межгрупповой связи с теми же самыми группами, что и старые группы, и также повторяет определяемые пользователем атрибуты. 1псегсошвипзсасог освобождается запросом к МР1 СОММ ГЕЕЕ. Лругие функции строителя тпсгасоввип1сасог'а и. 3.4.2 не используют зпсегсошшип1сасог. Лве новых функции ниже определяют 1псегсоввип1сасог.
3.5. Мелегруппоеая связь ИР1 1ИТЕВСОММ СВЕАТЕ(ЬОСА1 СОИМ, ЬОСА1 1ЕАОЕВ, РЕЕВ СОММ,НЕМОТЕ„ЬЕАОЕВ, ТАО, МЕЫХМТЕВСОММ, 1ЕВВОВ) 1ИТЕОЕВ ЬОСАЬ СОИМ, ЬОСАЬ 1ЕАОЕВ, РЕЕВ СОММ, НЕМОТЕ ЬЕАОЕВ, ТАО 1ИТЕОЕВ МЕМ1МТЕВСОММ, 1ЕВВОВ МР1 1МТЕВСОММ СВЕАТЕ создает дпсегсопапцпдсасог. Запрос коллективен. Процессы должны обеспечить соответствие 1оса1 сова н идентичность 1оса1 1еаоет аргументов внутри каждой из двух групп. )Тва лидера определяют соответствуюший аргумент Ьгдббе сова, и каждый обеспечивает в тевосе 1еабег ранг другого лидера внутри области Ьтдцбе сова.
Оба обеспечивают идентичные значения тета. Групповые символы не разрешаются для гевосе 1еаоег, 1оса1 1еае1ег и саЕ Этот запрос использует ро1пС-Со-ро1пС связь для связи в Ьгдббе сова н с тегом между лидерами. Таким образом, нужно быть осторожным, чтобы никакая отложенная связь в Ьтдббе сопка ве сталкивалась с этой связью. ИР1 1ИТЕВСОММ МЕВОЕ(дпСегсовв, ЬдЕЬ, пендпСтасоввв) 1И дпсетсова дпсегсоввипдсасог 1И Ьдйй вее Ье1он ОУТ пендпсгасоав новый дпстасоааппдсасот двс ИР1 1псегсовв шегбе(МР1 Соша дпсегсовв, дпс ЬдцЬ, МР1 Сова епендпстасошв) ИР1 1МТЕВСОММ МЕВОЕ(1МТЕВСОММ, Н1ОН, ИЕМТИТВАСОММ, 1ЕВВОВ) 1ИТЕОЕВ 1ИТЕВСОММ, МЕЫ1ИТВАСОММ, 1ЕВВОВ ЬОС1СА1 Н1ОН Пример 3.8.
В этом примере процессы разделены на три группы. Группы О и 1 связаны. Группы 1 и 2 связаны. Следовательно, группам О и 2 требуется по одному дпсегсоввцпд- сасог'у, а группе 1 требует два дпсегсопшапдсасог'а (рнс. 3.4). Группа 2 Группа д Группа О Рис. 3.4. Линейка из трех групп. Па рисунке показан локальный ранг и глобальный ранг (внутри скобок) каждого процесса Фдпс1цбесшрд Ь> иадп(дпс атис, сЬаг ееагбч) ( МР1 Сопке вуСова, МР1 Сопвв аурдгвсСовв, МР1 Сова ауЯесопдСоаа, /е второй дпсегсоввцпдсасог (только ппя группы 1) е/ /е дпсгасовшцпдсасог локальной подгруппы е/ /е дпсегсошвцпдсасог е/ ИР1 1МТЕВСОММ МЕВОЕ создает дпстасоввипдсасот нз объединения двух групп, которые связаны дпсегсоввцпдсасог'ом дпсегсошв.
Все процессы должны обеспечить то же самое значение ЬдЕЬ внутри каждой из двух групп. Если процессы и одной группе обеспечили значение ЬднЬ = 1а1ее (ложный), и процессы в другой группе обеспечнлн значение ЬдцЬ = стае (истинный), то объединение упорядочивает Я!озя" группу перед "Ь1ЕЬ" группой. Если все процессы обеспечили тот же самый аргумент ЬдЕЬ, то порядок объединения произволен. Этот запрос блокирован и коллективен внутри объединения нз двух групп. Х Переключатели каиалов йпт вевЬегзЬКРКеу, гапК; /е Инипиапизапия библиотеки МР1 э/ МР1 1п1с(йагяс, йагйп); /» Каждая ветвь опредепяет свой ранг э/ МР1 Сопа гапК(МР1.СОИМ.МОИ.О, йгапК); /е Генерапия в вевЬегзЬ1РКеу рангов [О, 1, 2~ е/ вевЬегзййрКеу = гапК '/, 3; /и Создание 1пкгасошшпп1сасот'а для локапьной подгруппы э/ МР1 Сопа зр11С(МР1 СОММ кОЫ.О, вешЬегзЬКРКеу, гапК, йвуСопа); /к Создание 1псегсошвппйсасог(ов) к/ гй(вевЬегзЬйрКеу == 0) /* Группа 0 связывается с группой 1.
е/ ИР1 1псегсовв сгеасе(вусопа,О,мР1 сОмм КОВЕР,1,01,йшуР1гзссовв); е1зе1т(вевЬетзЬ1рКеу == 1) /е Группа 1 связывается с группами 0 и 2. е/ МР1 1псегсовш сгеаъе(шуСовв,О,МР1 СОММ НОВЫ,0,01,йвур1гзФСовв); МР1 1псегсовв сгеасе(вуСопа,О,МР1 СОММ пОВЫ,2,12,йвуБесопбСошш); е1зе1т(вевЬегзЬ1РКеу == 2) /е Группа 2 связывается с группой 1. е/ МР1 1псегсовв сгеасе(вуСоап,О,МР1 СОММ ЫОВХ.0,1,12,йшур1гзсСошв); /э Вычислительная часть е/ /к Освобоипение трех коммуникаторов и/ МР1 Совв тгее(йвуСовв); МР1 Сопап ттее(йшуР1тзССошш); Н(шешЬегзЬ1РКеу == 1) МР1 Соппп тгее(йшуЯесопбСошш); МР1 Рйпа11ке(); ) 4. Виртуальные топологии 4.1. Введение В этой главе описывается механизм виртуальных топологий МР1, Под виртуальной тояологией здесь понимается программно реализуемая топология в виде конкретного графа, например: кольцо, решетка, тор, звезда, дерево и вообще произвольно задаваемый граф на существующей физической топологии. Виртуальная топология обеспечивает очень удобный механизм наименования процессов, связанных коммуникатором, н является мощным средством отображения процессов на оборудование системы.