Главная » Просмотр файлов » В.Д. Корнеев - Параллельное программирование в MPI

В.Д. Корнеев - Параллельное программирование в MPI (1162616), страница 45

Файл №1162616 В.Д. Корнеев - Параллельное программирование в MPI (В.Д. Корнеев - Параллельное программирование в MPI) 45 страницаВ.Д. Корнеев - Параллельное программирование в MPI (1162616) страница 452019-09-20СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 45)

«/ ргйпсй("гапК = '/б В='/б~п", гапК, В); /« Все ветви завершают системные пропессы, связанные с топологией « сошш сагФ и завершаю выполнение программы «/ МР1 Сошш тгее(йсошш сагс); МР1 Е1па11хе(); геспгп О; /« Пример 2 « Сдвиг данных на кольпе конпьютеров. Конвейер. « Нулевая ветвь передает данные (значенне своего ранга) ветви 1, « ветвь 1 перелает принятое значение ветви 2, и т.л., ветвь зйзе-1 « перелает, принятое от ветви вйхе-2 значение, ветви О. «/ $1пс1пбе <шр1.Ь> й1пс1пбе <всб1о. Ь> Фбе11пе ИОМ 01МЯ 1 1пс шайи(1пс агяс, салаг«« агкч) ( йпс гапК, зйхе, 1, А, В, б1шв[ИОМ 01МЯ); 1пп регйодз[ИОМ 01МЯ), вопгсе, безп; 1пп геогбег = О; МР1 Соппп соппп сагс; МР1 Яъаппз зъаъпз; МР1 1пйп(йагйс, йагкч); /« Каждая ветвь узнает количество ветвей «/ МР1 Сошш гапК(МР1 СОИМ НОВ00, йгапК); /« и свой номер: от О ло (зйхе-1) «/ МР1 Соппп зпхе(МР1 СОИМ НОВЫ, йв1хе); А = гап1с; В = -1; 176 й.

Примеры параллельных пропрем.и /« Обнупяем массив бпшз и заполняем массив ретпобз ппя топологии "копьпо" «/ тот(т = О, т < БОМ 01МЯ, т++) ( бтшз[т] = О, регтобз[п] = 1, /« Заполняем массив бпшз, гпе указываются размеры (одномерной) решетки «/ МР1 01шз стеасе(зтхе, МОМ 01МЯ, бтшз), /« Создаем топологию икопьпои с сошшпптсасот(ом) соппп сагс «/ МР1 СагС„стеаСе(МР1 СОИМ НОВЕГО, МОМ 01МЯ, бтшз, ретпобз, геогбег, йсошш сатс), /« Кажная ветвь находит своих соседей впопь копьца, в направлении больших значений рангов «/ МР1 Сагс зЬ|1с(соуп сатс, О, 1, йзоптсе, йбезс), /« О-ветвь инициирует передачу данных (значение своего ранга) вдоль « копьпа, и принимает это же значение от ветви зтзе-1 */ т1(тапи =-" О) ( МР1 Яепб(ФА, 1, МР1 1МТ, безс, 12, сошш сатс), МР1 Веси(ФВ, 1, МР1 1ИТ, зопгсе, 12, сошш сагС, ззСаСпз), рттпст("тап)с=%б А=%б Вк%б ~п", тапи, А, В), /« Работа всех остальных ветвей «/ е1зе ( мр1 Веси(ФВ, 1, мР1 1ит, зоптсе, 12, сопи сагс, йзсаспз), МР1 Яепб(ФВ, 1, МР1 1МТ„ безс, 12, сошш сагс), /« Все ветви завершают системные процессы, связанные с топологией « соппп сагс и завершаю выполнение программы «/ МР1 Соппп ттее(йсошш сатС), МР1 Ртпа1тзе(), геспгп О, 9.1.4.

Обмен данными на системе компьютеров с топологией связи "линейка" /« Сдвиг данных на линейке процессов с использованием МР1 РВОС М01Ь процессов «/ йтпс1пбе <шрп Ь> йтпс1пбе <зсбто Ь> йбетппе МОМ 01МБ 1 ппс шакп(тпс атис, сЬаг ««агяч) ппс тпс тпс ппс МР1 Сошш гапй, зпзе, и, А, В, бипз[МОМ 01МЯ], регпобз[МОМ 01МЯ], пен соогбз[ИОМ 01МБ], зопгсеЬ, безсЬ, зоптсеш, безсш, геогбет = О, сошш сатс; Ниже приведен пример, демонстрируюший операцию сдвига данных на линейке компьютеров, которая очень часто встречается при решении задач на мультикомпьютерах.

Хотя приведенный здесь пример очень простой, но он может, как и примеры и 9.1.3, послужить неким шаблоном, который испояьзуется для решения сложных задач. Все ветви линейки одновременно сдвигают свои данные соседним ветвям вдоль линейки на один шаг в сторону увеличения и затем в сторону уменьшения ранга ветвей. У граничных ветвей соседи имеются только с одной стороны. Поэтому здесь удобно использовать понятие МР1 РВОС МОЮ процессов. 9.1 Простые примеры 177 МР1 ясатпз зсаспз, МР1 1п1с(йагяс, йагйч), /» Каждая ветвь узнает количество ветвей »/ МР1 Сов1п гапй(ИР1 СОММ НОВЫ, йгапй), /» и свой номер от 0 ло (згне-1) »/ МР1 Соппп зтхе(МР1 СОИМ НОВЫ, йз1не), /» Обнуляем массив б1вз и заполняен массив рег1обз лля топологии "линейка" »/ 1ог(1 = О, 1 < МУМ 01МЯ, т++) ( б1вз[1] = О, рег1обз[1] = О, /» Заполняем массив б1аз, гле указываются размеры (одномерной) решетки »/ МР1 Отан сгеасе(згне, МОМ 01МЯ, б1вз), /» Созлаем топологию "линейка" с совапп1сасог(ом) сова сагс »/ МР1 Сага сгеате(МР1 СОИМ НОВЫ, КОМ 01МЯ, б1вз, регпобз, геогбег, йсовв сагс), /» Отображаем ранги в коорлинаты и выволнм их »/ МР1 Сагс соогбз(соппп сагт, гапк, МУМ 01МЯ, пеы соогбз), А = пен соогбз[0], В = -1, /» Каждая ветвь нахолит своих соседей вдоль линейки, в направлении больших * значений номеров компьютеров и в направлении меньших значений номеров » Ветви с номером пен соогбз[0] == О не имеют соседей с меньшим номером, * поэтому с этого направления эти ветви принимают данные от несушествуюших » ветвей, т е от ветвей зопгсев = МР1 РВОС ЙУЫ, и, соответственно, » передают ланные в этом направлении ветвям безсв = МР1 РЮС ИУЫ.

» Аналогично опрелеляется соселство для ветвей с номером » пеы соогбз[0] == бтаз[О]-1 »/ 11(пеы соогбз[0] == 0) ( зопгсев = безсв = МР1 РВОС МЖ1., е1зе ( зопгсев = безсв = пеы соогбз[0]-1, 11(пен соогбз[0] == б1аз[0]-1) с безсЬ = зоцгсеЬ =МР1 РЮС НО~1., е1зе ( безсЬ = зопгсеЬ = пеы соогбз[0]+1, ) /» Каждая ветвь передает свои данные (значение переменной А) своей * соседней ветви с большим номером и принимает данные в В от » соселней ветви с меньшим номером Свой номер и номер, * принятый в В выволятся на печать »/ МР1 Яепбгесч(йА, 1, МР1 1МТ, безтЬ, 12, йВ, 1, МР1 1МТ, вопгсеа, 12, сопел сагс, йзсатпз), ргтпс1("пен соогбз[0] = /б В = /б1п", пеы соогбз[0], В).

/» Слвиг ланных в противоположную сторону и вывод соответствуюших данных »/ МР1 Яепбгесч(йА, 1, МР1 1МТ, безсв, 12, йВ, 1, МР1 1МТ, зопгсеЬ, 12, совш сагс, йзсатпз), рг1псХ("пен соогбз[0] = Уб В = /Фп", пен соогбз[0], В), /» Все ветви завершают системные процессы, связанные с топологией 9. Примеры параллельных программ « сошш сагс и завершаю выполнение программы «/ МР1 Сошш атее(ксошш сагФ); МР1 Г1па11ге(); гесигп 0; Применение МР1 РВСС МВьь процессов значительно упрошает программирование подобных операций, т. к. не нужно отдельно программировать граничные и внутренние ветви решетки. 9.2. Произведение двух матриц В этом пункте приведено три примера произведения двух матриц, выполняемых на системе с разными топологиями.

В первом примере матрицы перемножаются на системе с топологией связи "кольцо", зо втором — на системе с топологией связи "двумерная решетка" я, наконец, в третьем — на топологии "трехмерная решетка". Схемы распределения данных по компьютерам приведены в гл. 2 для всех трех примеров. 9.2,1. Произведение двух матриц в топологии "кольцо" В первом примере предполагается, что обе матрицы разрезаны на части заранее и каждая ветвь считывает свои части обеих матриц с дисковой памяти. Здесь каждая ветвь генерирует свои части матриц. Схемы распределения данных по компьютерам приведены и п. 2.2.1.

/« Произведение двух матриц в топологии "кольцо" компьютеров «/ /* В примере предполагается, что количество строк матрицы А и количество « столбцов матрицы В делятся без остатка на количество компьютеров в системе, * В данном случае задачу запускаем на восьми компьютерах. «/ й1пс1пйе<зсб1о. Ь> з1пс1ибе<шр1.Ь> $1пс1пбе<С1ше Ь> й1пс1пбе<зуз/с1ше.Ь> /« Залаем в каждой ветви размеры полос матриц А, В и С. (Здесь предполагается, « что размеры ветвей олинаковы во всех ветвях. «/ Зе)ет1пе М 320 йоет1пе М 40 /« МОМ 01МЯ вЂ” размер декартовой топологии.

"кольцо" - одномерный тор. */ Фцег1пе МУМ 01МЯ 1 Зоеттпе Е(.(х) (здгеот(х) / зпгео1(х[03 [03)) /« Залаем полосы исходных матриц. В каждой ветви, в данном случае, « они одинаковы «/ зсасйс бопЫе АЕМЗ ЕМ3, В[ИЗ ЕМл, СЕМл ЕМЛ; 1пс шайи(1пс атас, сЬаг ««агцп) ( тпс гапк, зтге, 1, ), к, 11, ~1, б, зонг, дезе; 1пс 01шз[МВМ 01МЯ3, рег1ос)в[МОИ 01МЯ3, пеы соогбз[МУМ 01МЯ3; 1пс геогоег = 0; МР1 Соппп сошш сагс; МР1 Ясаспз зс; зсгпсс с1шепа1 сч1, сч2; /« Лля засечения времени «/ 1пс йс1; /« Инициализапия библиотеки МР1«/ 179 9 В.

Произведение двух митрич МР1 1пдс(йагйс, йагйч), /х Каждая ветвь узнает количество задач в стартовавшем приложении х/ МР1 Сошш здке(МР1 СОИМ НОВ1.0, Фндке), /х и свой собственный номер от О до (вдхе-1) х/ МР1 Сошш гапК(МР1 СОММ ИОВЫ, йгапК), /х Обнуляем массив бдше и заполняем массив регдобз для топологии нкольпон х/ Хог(д=О, д<МОМ 01МЯ, д++) ( «)дшз[д3 = О, регдобп[д~ = 1, /х Заполняен массив бдшз, где указываются размеры (одномерной) решетки х/ МР1 Одшз сгеапе(здке„ МОМ 01МВ, адин), /х Создаем топологию "кольцо" с сошшппдсасог(ом) сошш сагп х/ МР1 Сагс сгеасе(МР1 СОИМ ЧОВз.0, КОМ 01МБ, бдшз, регдобь, геогбег, йсошш сагс), /х Отображаем ранги на координаты компьютеров, с целью оптимизации * отображения заданной виртуальной топологии на физическую топологию х систены х/ МР1 Сагс соогбз(сошш сагс, галК, МОМ 01МЯ, лен соогбв), /» Кажная ветвь находит своих соседей вдоль кольца, в направлении * неньших значений рангов х/ МР1 Сагс в)дд1с(сошш„сьгс, О, -1, йзопг, йпезп), /х Каждая ветвь генерирует полосы исходных матриц А и В, полосы С обнуляет х/ Хог(д = О, з.

Характеристики

Тип файла
DJVU-файл
Размер
5,85 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6532
Авторов
на СтудИзбе
301
Средний доход
с одного платного файла
Обучение Подробнее