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

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

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

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

Главный цикл приведем здесь, а в других примерах будем обозначать его, как "вычислительная часть". С целью удобства везде предполагается, что двумерные массивы данных располагаются в памяти компьютеров по столбцам, т.е. элементы столбца располагаются в памяти непрерывно. Поэтому вместо передачи или приема столбцов будут передаваться или приниматься строки. Хотя в гл. 2 на рис. 2,10 приведена схема обменов для столбцов, суть алгоритма это не меняет. /ь Главный цикл задачи Лирихле.

фрагмент программы. ь/ еьоцЫе А[в+23 [и+23, ВЫ [п1; нььд1е(ь сопчегбеб) д /ь Выполнение четырехточечного шаблона ь/ 1ог()' = 1; ) <= в, )++) аког(д = 1; д <= и; д++) В[3 1) [д-13 = 0.25а(А[)) [д 11 + А[)) [д+11 + А[)-13 [д| + А[)+13 [Д); /ь Копирование результата обратно в массив А */ аког() = 1, ) <= в; )++) Хог(д = 1, д <= и, д++) А[)3 [д3 = В[)3 [д-13; /* Каждая ветвь узнает количество ветвейь/ МР1 Соппп здхе(сопип, р); /ь и свой номер от 0 до (вдве-1) */ МР1 Соппп гапК(савв, вугапК); Этот фрагмент программы описывает главный цикл итерационного процесса решения, где на каждой итерации значение в окрестности точки заменяется средним значением сумм значений ее соседних точек на предыдущем шаге итерапии.

Граничные значения не изменяются. В массиве В вычисляются значения следующей итерации, а в массиве А находится значения предыдущей итерации. Здесь приведен внутренний цикл, где выполнено большинство вычислений. В первой и последней строке, а так же в первом и последнем столбце двумерного массива А записаны граничные значения. 9.Х Задана Пирихяе. Явная ревностная схема для уравнения Пуассона 193 9.3.1.

задача Дирихле. Реализация обменов функциями МР1 веинй, МРх веоч Для получения безопасной версии этой параллельной программы при использовании блокированных функций обмена данными нужно построить соответствующую модель связи между процессорами. Все процессоры разбиваются на два подмножества: с четными н нечетными номерами. Модель обмена состоит в следующем. Напомним, что топология связи между компьютерами — линейка. Обмен выполняется н два полушага. На первом полушаге нечетные процессоры передают данные четным процессорам с номером, на единицу меньшим (в сторону уменьшения номеров в линейке), а четные принимают от них, т.е.

от процессоров с большими номерами. На втором полушаге обмен выполняется наоборот. Напомним, что массив данных в этом случае располагается по столбцам. Далее будут приведены более простые способы обменов данными. /« Обмен ланными в задаче Пирихле. Первая версия параллельной программы. * Топология — "линейка". »/ /« Вычислительная часть »/ /» Обмен граничными столбцами мекду ветвями программы х/ 11(шугаиН/2 == 1) /« Работа нечетных ветвей «/ /х Передается 0-я строка массива В к ветви шугаиК-1 «/ МР1 Беиб(В, и, МР1 РВОАТ, шугаиК-1, сая, сошш); /» Принимается ш-1-я строка массива В от ветви шугаиК-1 и записывается » в 0-ю строку массива А, начиная с первого элемента. «/ МР1 Весч(ФА[0) [13, и, МР1 РВОАТ, шугаиК-1, сая, сопки, всаспв); 11(шугаиК < р-1) /х Здесь р = количеству ветвей «/ /х Передается ш-1-я строка массива В к ветви шугаиК+1.

х/ * У р-й ветви нет соседней ветви с рангом шугаиК+1 , поэтому она * исключена из этого обмена »/ МР1 Веиб(ЙВ[ш-13 [03, и, МР1 Г1.0АТ, шугаий+1, сап, сопки); /» Принимается 0-ая строка массива В от ветви шугаиК+1 и « записывается в ш+1-ю строку массива А, начиная с первого элемента«/ МР1 Весч(А[и+13 [13, и, МР1 Г1.0АТ, шугаий+1, Сап, сопки, вСаСив); ) /« Работа четных ветвей »/ е1ве пХ(шугаиК < р-1) ( /х Принимается 0-ая строка массива В от ветви шугалН+1 и * записывается в ш+1-ю строку массива А, начиная с первого элемента.

» У р-й ветви нет соседней ветви с рангом шугаиН+1 , поэтому она « исключена из этого обмена «/ МР1 Весч(А[и+13 [13, и, МР1 РКОАТ, шугаиК+1, Сая, соппп, зСаСпв); /» Передается ш-1-я строка массива В к ветви шугаиК+1 »/ ИР1 Беиб(В[ш-13[03, и, мр1 Р(.ОАт, шугаик+1, сая, сошш); ) е1ве 1й(шугаиК > 0) ( /« Принимается ш-1-я строка массива В от ветви шугаиК-1 и « записывается в 0-ю строку массива А. 194 9.

Примеры параллельных программ * У О-й ветви нет соседней ветви с рангом вугаиК-1 , поэтому она » исключена из этого обмена »/ ИР1 Весч(А[01 [13, п, ИР1 ГЬОАТ, вугаиК-1, сай, сова, виаиив), /» Передается 0-ой столбец массива В к ветви вугапК-1 »/ МР1 Яеиб(В, и, ИР1 РЬОАТ, вугаи1с-1, саВ, совв), 9.3.2. Задача Дирихле.

Реализации обменов фуннпней Ирх веве1хесч /* Обмен данными в задаче Пирихле Вторая версия параллельной » программы Топология — "линейка" »/ /» Вычислительная часть »/ /» Обмен граничными столбпами между ветвями программы »/ тХ(вугаиК > О) ( /» Передается 0-я строка массива В к ветви вугапК-1 » и принимается в-1-я строка массива В от ветви вугаиК-1 и » записывается в 0-ю строку массива А * У О-й ветви нет соседней ветви с рангом вугаиК-1, поэтому она » исключена из этого обмена »/ ИР1 Яеидгесч(В, п, МР1 ГЬОАТ, вугаиК-1, сай, АВТОЛ Е13, и, МР1 РЬОАТ, вугаиК-1, пай, сова„всасив), 11(вугаиК < р-1) /* Здесь р = количеству пропессоров »/ ( /» Передается в-1-я строка массива В к ветви вугаиК+1 » и принимается 0-я строка массива В от ветви вугаиК+1 и » записывается в в+1-ю строку массива А »/ » У р-й ветви нет соседней ветви с рангом вугаиК+1 , поэтому она » исключена из этого обмена МР1 Яепс1гесч(В(в-11(О), и, МР1 Р1.ОАТ, вугаиК+1, тая, А[в+11Г1Л, и, ИР1 ГЬОАТ, вугаиК+1, Сая, савв, виаииз), Можно заметить, что программа стала значительно короче по сравнению с первым вариантом.

9.3.3. Задача Дирихле. Реализация обменов с использованием МР1 РноС ноЫ, пропессов /» Обмен данными в задаче Пирихле Третья версия параллельной * программы с использованием МР1 РВОС ИПЬЬ продессов » Топология — "линейка" »/ /» Вычислительная часть »/ /» Каждая ветвь находит своих соседей »/ 11(вугэдК == 0) 195 Р.Ю. Задача Лнрихле. Явная раэностная схема для уравнения Луоссоно 1етс = МР1 РВОС МУ(.1.; е1ве 1еХс = иугапК-1; Н (юугапй == р-1) гХВЬс = МР1 РВОС МО(.1., е1не гХВЬС = ЮугапК+1; /« Обмен граничными столбцами между ветвями программы «/ /« Передается 0-я строка массива В к ветви иугапК-1 « и принимается и-1-я строка массива В от ветви юугапК-1 и « записывается в 0-ю строку массива А «/ МР1 Вепбгесч(В, и, МР1 Г(ОАТ, 1етс, сан, А(ОЛ (11, и, МР1 Р1ОАТ, 1еХс, сап, союи, нсасцн); /« Передается т-1-я строка массива В к ветви юугапК+1 * и принимается 0-я строка массива В от ветви юугапК+1 и « записывается в и+1-й строку массива А */ «/ МР1 Бепогесч(В(и-1) (03, п, МР1„Г(ОАТ, г1ВПС, Саб, А(в+1~ (13, и, МР1 Р1.ОАТ, гйбпс, тая, союю, зсасцв); Объем программы сильно не изменяется, но она становится проще для понимания.

9.3.4. Задача Дирихле. Реализация обменов неблокированными функциями МРХ Хяеаб и ИРХ Ххеач Здесь поясняется использование неблокированных операций. Чтобы достичь максимального перекрытия между вычислением и обменом данными, связь должна быть начата как можно скорее и закончена, когда возможно. То есть передача данных должна быть инициирована, как только данные, которые будут посланы, доступны.

Прием данных должен быть инициирован, как только буфер приема может повторно использоваться. Передача должна быть закончена непосредственно перед тем, как посылающийся буфер должен повторно использоваться. И прием должен быть закончен непосредственно перед тем, как данные в буфере приема должны использоваться. Иногда перекрытие может быть увеличено путем переупорядочивания вычислений. /« Обмен данными в запаче Пирихле. Четвертая версия параллельной « программы с использованием неблокированных функций « Топология — "линейка".

«/ /« Каждая ветвь находит своих сосепей «/ 11(юугапК "=- О) 1еХс = МР1 РВОС МП11„ е1не 1е1с = юугапК-1; Н(юугапК == р-1) гХВЬС = МР1 РВОС М01.10 е1ве г1ВЬС = юугапК+1; /* Вычисление граничных строк массива В */ Хог(1 = 1; 1 <= и; 1++) 196 9 Примеры парах»»льнах проерамм ( В[01 [ь-13 = О 25» (А[ОД Ы + А[21 Ы + А[11 [т+11 + А[13 [з-13), В[ш-1) Ет-11 = 0 25» (А[ш3 [т-11 + А[шЛ [з+13 + А[ш-13 Ы + А[ш+1|Ы), /» Старт неблокированных функций для обмена граничными стрекани нежду » параллельныни ветвями »/ /» Передается О-я строка массива В к ветви шугаиК-1 »/ МР1 1Беиб(В, и, МР1 Г(,ОАТ, 1етс, сая, сошш, тес([03), /» Передается ш-1-я строка массива В к ветви шугаиК+1 »/ МР1 1Беиб(В[ш-13 ЕОЗ, и, МР1 Р(.ОАТ, гзбЬС, Сая, сошш, гец[1] ), /» Принимается ш-1-я строка пассива В от ветви шугаиК-1 и » записывается в О-ш строку пассива А »/ МР1 1Весч(А[03 [13, п, МР1 РЮАТ, 1етс, тая, сошш, тес)[23), /» Принимается О-я строка массива В от процессора шугаиК+1 и » записывается в ш+1-ю строку массива А »/ МР1 1йесч(А[в+11[13, и, МР1 Р(.ОАТ, гтВЬс, саб, сопки, тес(ЕЗЗ), /» Выполнение четырехточечного шаблона пля внутренних строк » массива В »/ Хог(3 = 2, 3 <= и 1, 3++) 1ог(т = 1, т <= и, з++) ВЕ)-П [т-11 = О 25» (АЕ)3 [т-13 + А[)1[т+1з + АЫ Е)-13 + АЫ Е)+11), /» Копирование результата обратно в пассив А »/ Хог() = 1, ) <= ш, )++) аког(т = 1, з <= и, т++) АЕ)Л Ез) = ВЕ)-1) Ез-13, /» Завершение оперзлий обмена граничными строкани »/ тот(т = О,т <= З,т++) МР1 Матс(ге9Ы , есасие ЕОД Ы ), Эта программа стала несколько длиннее предыдугцих, но в ней передача соседям вычисленных границ перекрывается с вычислениями.

Вначале все процессы вычисляют крайний левый и крайний правый столбцы массива В и после этого сразу запускают процессы передачи их соседям. Пока выполняется передача процессы продолжают вычислять остальные, внутренние, столбцы массива В. Таким образом, передача и вычисления осушествляются с перекрытием. 9.3.5, Задача Дирихле. Реализация обменов неблокированными функциями ИРХ Хвеас1 и ИРХ Ххеоч и функцией завершения ИРХ Иаяса11 Эта задача аналогична предыдугцЕ, но здесь используется функция завергления обменов МР1 Матса11. /» Обнен данными в залаче Лирихле Пятая версия параллельной * програмны и использованиеи неблокированных функций и функции » завершения МР1 Натса11 Топология — "линейка" »/ /» Каждая ветвь каходит своих соседей »/ тт(шугаиК == О) 1етс = МР1 РВОС МО11, е1ве 1еус = шугаиК-1, 9.3. Задача Пирихяе.

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

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

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

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