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

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

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

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

6.12. РАК ВЕАБ2(в, и, и, а, Ь, с, сова) Тип т, и, М; 11оац аП „ЬП П, сП; МР1 сова соппп; С 11оас вца[и3; Аис 1, ), Евйне; Тип гесчсоцицв П; /х Локальные полосы пассивов х/ 6.10.5. Редуцированная операция разброса данных МР1 включает вариант редуцированной операции, где результат разбросан по всем процессам в группе. 6.11. Разверпьма 125 /» Распределение ло всем процессам размеров полос массивов «/ МР1 Сопля згяе(сова, Ез1ее); гесчсоцпсе = Еейяе « ва11ос(е1еео1(1пс)); МР1 А11ЕаСЬег(К, 1, МР1 1пС, гесчсоцпСз, 1, МР1„1пС,совв); /» Локальная ецв «/ аког() = 1; ) < и; )++) ( вцвс)3 = О.

0; Хох(1 = 1; 1 < в; 1++) (- Й =- Ы ° .~а *Ь(1,)); /» Глобальная ецв и распределение вектора с «/ МР1 Вебцсе зсассег(зцв,с,гесчсоцпсз,МР1 Р1ОАТ,МР1 ЯОМ,совв); /» Возвравение результата в распрепеленнои векторе »/ гесцгп; ) Рис. 6.12. Умножение вектора на матрицу. Все векторы и матрица распределены, Произведение иллюстрируется для четырех процессов.

Каждый процесс может иметь различное значение для м и К МР1ВЕОБСЕ ЯСАТТЕВ функционально эквивалентна следуюшим двум функциям: ИР1ВЕООСЕ и МР1.ЯСАТТЕВЧ с еепбсоцпсз, равным гесчсоцпсе. Однако объединенное выполнение может пройти быстрее. 6.11. Развертка 1пс мр1 ясап(чохб» зепбьц1, чойб» гесчьцт, хпс соцпс, МР1 Оасасуре басасуре, МР1 Ор ор, МР1„Сова совв) ИР1 ЯСАМ(ЯЕМРВОР, ВЕСЧВОР, СООМТ, РАТАТЧРЕ, ОР, СОИМ, 1ЕВВОВ) ссуре> ЯЕМОВОР(«), ВЕСЧВОР(») 1МТЕОЕВ СООМТ, РАТАТЧРЕ, ОР, СОИМ, 1ЕВВОВ ИР1 ЯСАМ(зепбЬцт', гесчЬц1 1М еепбЬц1 ОЧТ гесчЬцт 1М соцпс 1М басасуре 1М ор 1М сова соцпс, бэсасуре, ор, сопап) адрес передаваеиого буфера адрес буфера приема количество элементов в перепаваеиом буфере тип передаваемых элементов операция комиуникатор 126 б, Колвектаивиые взаимодействия МР1 ЯСАМ используется, чтобы делать префиксное сокращение на данных, распределенных по всей группе.

В результате операции в буфере приема процесса с рангом 1 сокращение значений в посылаюшихся буферах процессов с рангами О,...,1 [включительно). Тип поддержанных операций, их семантики и ограничений посылаемого буфера и буфера приема, как в операции МР1КЕОЧСЕ. 6.12. Определяемые пользователем операции для редукции и развертки МР1„ОР СКЕАТЕ(Хппссфоп,сошюпсе,ор) 1М 1ипссйоп определяемая пользователем функция 1М сопяпцсе стае, если функция коммутативна; та1ве иначе 00Т ор операция Апс мР1 Ор сгеасе(мР1 Овег хппсстоп в1ппсстоп, Апс сопаппсе, мР1 Ор вор) МР1 ОР СКЕАТЕ(РОМСТ1ОМ, СОММОТЕ, ОР, 1ЕККОК) ЕХТЕКМАЕ РОМСТ1ОМ 1001САЬ СОММОТЕ 1МТЕСЕК ОР, 1ЕККОК МР1 ОР СКЕАТЕ связывает определяемую пользователем глобальную операцию с именем ор, которая может впоследствии использоваться в МР1КЕООСЕ, МР1 А1.ЕКЕООСЕ, МР1 КЕООСЕ ЯСАТТЕК и МР1.ЯСАМ.

Определяемая пользователем операция должна быть ассоциативной. Если сошшпсе = сгпе, то операция и коммутативна и ассоциативна. Если сошшпсе = 1а1ве, то порядок действий установлен и определен по возрастанию порядков рангов процессов, начинающихся с нулевого процесса. Порядок вычисления может быть изменен, используя преимушество ассоциативности операции. Если сошшисе = сгибе, то порядок вычислений может быть изменен, используя преимущество коммутативности я ассоциативности.

тппсстоп — определяемая пользователем функция, которая должна иметь следующие четыре аргумента: 1пчес, 1попсчес, 1еп и йасасуре. Прототип АХЯ1-С для функция следующий. гуреевой чойб МР1 Онег тппст1оп(иота вйпяес, яотй в1поипчес, Тпт *1еп, МР1 Оасасуре вбасатуре); декларируемая Гогсгап'ом определяемая пользователем функция следуюшая. ~Ьебтп(чегЬастш1 ГОМСТ10М ОЯЕК РОМСТ1ОМ(1МЧЕС[в), 1МООТЧЕС(в), 1ЕМ, ТУРЕ) <сУре> 1МЧЕС(ЕЕМ), 1МООТЧЕС(1ЕМ) 1МТЕСЕК ЕЕМ, ТУРЕ Аргумент бапапуре — главный тип данных, который передается в запрос к МР1 КЕООСЕ. Используемал редуцируемая функция должна быть написана следуютцим образом.

Допустим, и[03,...,п[1еп-13 — 1еп элементов в буфере связи, описанном аргументами Апчес, 1еп и басасуре; ч[03, .,ч[1еп-13 — 1еп элементов в буфере связи, описанном аргументами Апопсчес, 1еп и басасуре; и[03,...,и[1еп-13 — 1еп элементов в буфере связи, описанном аргументами 1поцсчес, 1еп н йасасуре, Тогда и[Ц=пЫ и ч[Ы для 1=0,..., 1еп-1, где П вЂ” приведенная операция, которую вычисляет функция. Неформально, мы можем представлять Апчес и тпопсчес как массивы из 1еп элементов, которые функция объединяет.

Результат редукции записывается поверх значений в дпопсчес. Каждый вызов функции приводит к позлементному вычислению приведенной операции на 1еп элементах, т.е. функция возвращает в 1поитчес[1) значение б 1е Определяемые пользователем операции для редукции и развертки 127 ППЧЕСЫГ1тиииииЕС[т3, дЛя т=0, Сиилг-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 ОРМУЬЬ.

Следующие два примера поясняют использование определяемой пользователем редукдяи. Пример б.21. Вычисление произведения массивов комплексных чисел. ;уредон есгисс ( боиЬ[е геа1, ьваЕ, ~ Совр1ех, ~ь Определяемая пользователем функция в/ Исходит вычисление редукции последовательно из процесса 0 к процессу Егоиретне-1. Этот порядок выбран, так как оператор, определенный функцией Увег тезисе(), возможно некоммутативен. Более эффективное выполнение будет достигнуто, если использовать преимущество ассоциативности и логарифмическое сокращение дерева.

Коммутативность может использоваться преимущественно для тех случаев, в которых соввисе аргумент в 'йР1 ОР СВЕАТЕ является истинным. Также количество временно требуемого буфера может Выть уменьшено и связь может совмещаться с вычислением, передавал и редуцируя элементы в отрезке размера 1еп ( соиле. Предопределенные редуцированные операции могут быть выполнены, как библиотечные определяемые пользователем операции. Однако лучшее выполнение могло бы быть постигнуто, если ИР1 ЕЕОУСЕ обрабатывается этими функциями в частном случае.

6. Коллективные еэанмоденспавия чохй вургоц(Совр1ех е(п, Совр1ех э(попс, 1пс «1еп, ИР1 Оасасуре ебрсг); ( 1пс 1; Совр1ех с; Хог(1=0; 1 < е1еп; ++1) ( с.геа1 = 1поис->геа1ейп->геа1 - элоиз->1вайе1п->1ваб; с.йва8 = 1поис->геа1е1п->1ва8 + (поит->(вабейп->геа1; э(пони = с; 1п++; 1поис++; ) /е и ее вызов .. е/ /е Каидый процесс имеет массив из 100 комплексных чисел е/ Совр1ех а(1003, апзнег(100); МР1 Ор вуОр; МР1 0асасуре ссуре; /е Определение комплексного типа е/ МР1 Туре сопс18иоив(2, МР1 000ВЕЕ, йспуре); МР1 Туре совв1С(йспуре); /е Создание пользовательской операции произведения комплексных величин */ ИР1 Ор сгеасе(мурго, Тгие, йвуОР); МР1 Метисе(а, апенег, 100, стуре, вуОР, геок, совв); /* В этом месте, ответ, с содерианнем 100 комплексных, е/ /э в процессе гоос */ Пример 6.22.

Этот пример использует определяемую пользователем операцию, чтобы произвести сегментнрованную развертку. Сегментированиях развертка берется как входная для набора значений н набора логических и логического очерчивания различных сегментов развертки. Например, Значения о1 о2 чЗ ч4 об об и7 о8 Логические О О 1 1 1 О О 1 Результат о1 и1+ и2 оЗ чЗ+ ч4 иЗ+ е4+ иб об об+ и7 и8 Операция, которая производит этот результат, Заметьте, что это не коммутативный оператор. Программа, которая выполняет ее, приведена ниже. суреиег есгисс ( цоиЫе ча1; 1пс 1он; 1 ЯеяЯсапра1г; /е Определяемая пользователем функция */ чогй вебясап(яе8ясапРа1г »1п, Бейясапрайг е1поис, 1пс е1еп, ИР1 Оасасуре эцрсг) ( 1пс 1; БеЯБсапРа(г с; Хог(1=0; 1 < е1еп; ++1) ( 11(1п->1оя == (попс->1ой) с.ча1 = 1п->ча1+1поии->ча1; 6.1Ю.

Семантпиза коллективное связи 129 е1зе с.ча1 = Алоис->ча1; с.1ой = Апоип->1ой; е1попс = с; Тп++; Тпопс++ Тпс А,Ьазе; Яес)Ясапрайг а, апяиег; МР1 Ор иуОР; МР1 Оасасуре суре(2] = (МР1 000ВВЕ, МР1 1МТ); МР1 Айпс дйярИ ; Апс ЫосК1еп[2] = (1,1); МР1 Оасасуре яярайг; /я Определение нового МР1 типа ЯеВЯсапрайг е/ МР1 Аоогеяя(а,дйяр); МР1 А<Ыгеяя(а.1оЯ, ойяр+1); Ьазе = цйзр(0]; Хог(1=0; 1 < 2; ++1) отер(1] -= Ьаяе; МР1 Туре„ясгпсс(2, ЫосК1еп, ойвр, суре, йззра1г); МРТ„Туре соиш1с(еязрайг); /* Создание пользовательской операции сканирования сегментов (зейиепсеб-ясап) е/ МР1 Ор сгеапе(яеЯЯсап, Га1зе, йиуОР); МР1 Ясап(а, алзиег, 1, ззрайг, иуОР, гоос, сота); 6.13.

Семантика коллективной связи Правильная переносимая программа должна использовать коллективную связь так, чтобы не встречалось блокировок. Следующие примеры поясняют опасное использование коллективных операторов. Пример 6.23. Пример ошибочен. янйссЬ(галК) ( саве 0: МР1 Вс*зс(Ьцт1, соппс, суре, О, сопела); МР1 Всазс(ЬпХ2, соцпс, суре, 1, сопи); ЬгеаК; саве 1: МР1 Всазс(Ьи12, соппс, суре, 1, сони); МР1 Всазс(Ьц11, сеанс, суре, О, сова); Ьгеай; Мы полагаем, что группа сопи — (О, 1). Два процесса выполняют две операции ИР1 Всазс() в обратном порядке.

МР1 прн согласовывании первой операции каждого процесса приведет к ошибке, так как запросы не определяют тот же самый корень. Коллективные действия должны быть выполнены в том же самом порядке во всех элементах группы связи. 1ВО б. Коллективнме взаимодействия Пример 6.24. Пример ошибочен. зн1ссЬ(гапк) ( саве О: МР1 Всазс(Ьи11, МР1 Всазс(Ьи12, Ьгеак; саве 1: МР1 Всазс(Ьи11, МР1 Всазс(Ьи12, Ьгеай; сазе 2: МР1 Всазс(Ьи11, МР1 Всазс(Ьи12, Ьгеак; ) соипс, суре, О, сопппО); соипс, суре, 2, соппп2); соим, суре, 1, совв1); соипс, суре, О, сопппО); соипс, суре, 2, совв2); соипС, Суре, 1, соппп1); Пример 6.25. Пример ошибочен.

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

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

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

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