Главная » Просмотр файлов » Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013)

Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013) (1162189), страница 185

Файл №1162189 Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013) (Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013)) 185 страницаТ. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013) (1162189) страница 1852019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Приведенный ниже псевдокод реализует эту стратегию "разделяй и властвуй" с использованием вложенного параллелизма. В отличие от процедуры ВОиАКЕМАтк1Х-М1зет1Р1Ч-Кесикз1че, на которой она основана, процедура Р-МАтк1хМШ.Т1Р1х-йЕСипяЧЕ получает выходную матрицу в качестве параметра, чтобы избежать излишнего вьгделения памяти для матриц. б34 Часть >тэ' Иэбранные тена небольшой вопрос о том, как использовать вычисления индексов для представления подматричных частей исходной матрицы.) Рекурсивный вызов в строке 6 присваивает подматрице См произведение подматрнц АыВ», так что Сы становится равным первому из двух членов, образующих сумму в (27.6).

Аналогично в строках 7-9 выполняется присваивание подматрицам Спь Сз> и Сзз первого из двух членов соответствующих сумм в (27.6). В строке 10 подматрице Ты присваивается произведение подматриц А>аВзм так что Т» становится равным второму члену в сумме для Сы. В строках 11-13 выполняется аналогичное присванвание вторых членов сумм для Спн Сз> и Сзз подматрицам Тпн Тз> и Таз соответственно. Первые семь рекурсивных вызовов запускаются, а последний выполняется в основном фрагменте.

Инструкция аупс в строке 14 гарантирует, что все произведения подматриц в строках 6-13 будут полностью вычислены, после чего мы добавляем произведения из Т в С с использованием дважды вложенных циклов рагайе! Гог в строках 15-17. Сначала проанализируем работу М>(и) процедуры Р-МАтк>х-Мя.тпчхКес>>кз>че, проводя анапиз времени работы ее последовательного предшественника $<;н»>ке-МАтк>х-М>л.т>Е1у-Вес>>ке>>>е.

В рекурсивном случае разбиение выполняется за время В(1), затем выполняется восемь рекурсивных умножений матриц размером п/2 х п/2, и наконец выполняется работа б>(пз) по сложению двух матриц размером и х п. Таким образом, рекуррентное соотношение для работы М>(п) имеет вид М>(п) = 8М>(п/2) + б>(п~) ~(„з) согласно случаю 1 основной теоремы.

Другими словами, работа нашего многопоточного алгоритма асимптотически та же, что и время выполнения процедуры 3>2>>яке-Млтк>х-М>>ьт>ееу с трижды вложенными циклами из раздела 4.2. Для определения интервала М (и) процедуры Р-Мнтк>х-М>>етпчхКЕс>>кз>ЧЕ сначала заметим, что интервал для разбиения равен б>(1) и над ним доминирует интервал 9(1би) дважды вложенных циклов рагайе1 !ог в строках 15-17. Поскольку восемь параллельных рекурсивных вызовов работают с матрицами одинакового размера, максимальным интервалом кюкдого рекурсивного вызова является интервал любого нз них.

Следовательно, рекуррентное соотношение для интервала М (п) процедуры Р-Млтк>х-Мнет>ги-Кес>>кз>че имеет вид М, (п) = М, (и/2) + В(1яп) . (27.7) Это рекуррентное соотношение не подпадает ни под один из случаев основной теоремы, но соответствует условию упр. 4.6.2. Согласно упр. 4.6.2 решением рекуррентного соотношения (27.7) является М,(п) = 9(!й~ п). Теперь, когда мы знаем работу и интервал процедуры Р-Млтк>х-М>>ьтпчхКес>>кз>че, можно вычислить уровень ее параллелизма как М>(и)/Мьа(п) = 9(п /1к п) и увидеть, что он весьма высок.

В35 Глава ел Многоноточные алгоритмы Многопоточный метод Штрассеиа В случае многопоточного алгоритма Штрассена мы следуем той же общей схеме, что и иа с. 104, только с применением вложенного параллелизма. 1. Разбиваем входные матрицы А и В и выходную матрицу С иа подматрицы размером п/2 х п/2, как в (27.6). Работа и интервал этого шага составляют 9(1) при использовании пересчета индексов. 2. Создаем 10 матриц 51, Яз,..., Яш, каждая из которых имеет размер и/2 х и/2 и представляет собой сумму или разность двух матриц, созданных в и.

1. Все 10 матриц создаются ценой работы еэ(пз) и интервала 9(!йп) с помощью дважды вложенных циклов рагайе1 !ог. 3. Используя созданные в и. 1 подматрицы и 10 матриц, созданных в п. 2, рекурсивио запускаем вычисление семи произведений матриц Р1, Рз,..., Р1 размером п/2 х и/2. 4. Вычисляем искомые подматрицы Сы, Спи Сз1,Сзз результирующей матрицы С путем сложения и вычитания различных комбинаций матриц Р1, вновь используя дважды вложенные циклы рагайе! !ог.

Вычисление всех четырех подматриц имеет работу се(пз) и интервал б1(1к п). Для анализа этого алгоритма сначала заметим, что, поскольку сериализация совпадает с исходным последовательным алгоритмом, работа нашего алгоритма равна времени работы сериализации, а именно — 9(п1Я т). Как и в случае процедуры Р-Млтк1х-М~л.т1рет-Кесцкз1че для интервала можно записать рекурреитиое соотношение. В данном случае параллельно выполняются семь рекурсивных вызовов, но поскольку все они работают с матрицами одного и того же размера, мы получаем такое же рекурреитиое соотношение (27.7), как и в случае процедуры Р-Млтк1х-М15ст1иу-Кес11кз1че, решением которого является В((йз и). Таким образом, уровень параллелизма многопоточного алгоритма Штрассена равен еэ(п1кт/!йз п).

Это высокий параллелизм, хотя и меньший, чем в случае процедуры Р-МАтк1Х-Ми.т!Рех-Кес11кз11ге. Упражнения 27.2.1 Изобразите ориентированный ациклический граф для вычислений для процедуры Р-300лке-МАтк1х-М15стпчх для матриц размером 2 х 2, помечая соответствие вершин иа своей дишрамме фрагментам выполнения алгоритма. Используйте соглашение, согласно которому ребра, соответствующие запускам и вызовам, направлены вниз, ребра продолжения направлены вправо, а ребра возвратов — вверх. Считая, что каждый фрагмент выполняется за единичное время, проанализируйте работу, интервал и параллелизм этого вычисления. 27.2.2 Повторите упр. 27.2.1 для процедуры Р-Млтк1х-М1л.т1ри"-Кес11кз1т е. бзб Часть !71.

Избнанние аемн 27.2.3 Запишите псевдокод многопоточного алгоритма, перемножающего две матрицы размером п х и с работой й(пз), но с интервалом всего лишь 9(1й и). Проанализируйте свой алгоритм. 27.2.4 Запишите псевдокод эффективного многопоточного алгоритма, умножающего матрицу размером р х о иа матрицу размером д х т.

Ваш алгоритм должен быть высокопараллельным, даже когда любые из значений р, о и т равны 1. Проанализируйте свой алгоритм. 27.2.5 Запишите псевдокод эффективного многопоточного алгоритма транспонирования матрицы размером и х и "на месте", без привлечения дополнительной памяти, с использованием для рекурсивного деления матрицы на четыре подматрицы размером п/2 х и/2 метода "разделяй и властвуй" без цикла рагайе! !ог. Проанализируйте свой алгоритм. 27.2сб Запишите псевдокод эффективной многопоточной реализации алгоритма (см. раздел 25.2), который вычисляет кратчайшие пути между всеми парами вершин в графе со взвешенными ребрами.

Проанализируйте свой алгоритм. 27.3. Многопоточная сортировка гпиянием Мы познакомились с сортировкой слиянием в разделе 2.3.1, а в разделе 2.3.2 проанализировали время ее работы и показали, что оно составляет В(п1кп). Поскольку сортировка слиянием сама по себе использует парадигму "разделяй и властвуй", складывается впечатление, что она является прекрасным кандидатом для многопоточности с применением вложенного параллелизма.

Можно легко модифицировать псевдокод так, чтобы первый рекурсивный вызов был запускаемым. Мексе-Бокт'(А, р, т) ! !$р<т 2 о = '((р+т)/2) 3 враэтп Мекое-Бокт'(А,р, о) 4 Мекбе-ЯОкт (А, о + 1, т) 5 вупс 6 Мекке(А, р, о, т) Подобно своему последовательному аналогу, Мекпе-Бокт' сортирует подмассив А(р..

т1 После того как две рекурсивные подпрограммы в строках 3 и 4 ВЗ7 Тлаеа 22 Мнаеолоточные алгоритмы Рэ Ю гэ Рэ дэ гэ зг Рэ дэ гэ рнс. 27.Гь Идея, лежащая в основе многопоточного слияния отсортированных подмассивов Т[рэ .. гэ] и Т[рг .. гз] в подмжсив А[рз .. гз). Пусть х = Т[дэ) предсппшяет собой медиану Т[рэ .. гэ), а дг — место в Т[рэ .. гз], такое, что х попадаег между Т[дз — Ц и Т[дг). Каждый элемент подмассивов Т[рэ .. дэ — Ц и Т[рз ..

дз — Ц (светлая штриховка) не превышает х, а каждый элемент полмассивов Т[дэ + 1 .. гэ) и Т[дз+ 1 .. гз) (темная штризовка) как минимум равен х. Для слияния мы вычисляем индекс дз, где х располагается в А[рз .. гз), копируем х в А[дз], а затем рекурсивно выполняем слияния Т[рэ ..д, — Ц с Т[р, дз — Ц в А[рз,дз — Ц и Т[д, + 1..гэ] с Т [де ..

гз] в А[да + 1 .. э'3). будут завершены, что обеспечивается инструкцией яупс в строке 5, процедура Мекае-Боктэ вызывает такую же процедуру Мекпе, как и приведенная на с. 54. Давайте проанализируем процедуру Мекпе-Бойт'. Для этого сначала проанализируем процедуру МЕКПЕ. Вспомним, что в последовательном случае время ее работы по слиянию п элементов составляет б)(п). Поскольку процедура Мейпе последовательная, и ее работа, и ее интервал равны 9(п). Таким образом, работа МЯ1 (п) процедуры МЕХПЕ-БОКтэ с п элементами характеризуется рекуррентным соотношением МБ1(п) = 2 МЯ1(п/2) + В(п) = й(п1йп) и совпадает со временем работы последовательной сортировки слиянием.

Поскольку два рекурсивных вызова Мекпе-Бойт' могут работать параллельно, интервал МЯ' определяется рекуррентным соотношением МЯ' (п) = МЯ' (п/2) +Н(п) = 9(п) . Таким образом, уровень параллелизма процедуры Мекпе-Бокт' стремится к МБ1 (п)] МБ' (п) = тэ(1Б п), весьма невыразительной величине. Например, чтобы отсортировать 1О миллионов элементов, линейного ускорения можно достичь на нескольких процессорах, но эффективно использовать сотни процессоров не удастся. Вероятно, вы уже догадались, в чем слабое место этой многопоточной реализации сортировки слиянием: в последовательной процедуре Мекай. Хотя слияние изначально может казаться по своей сути последовательным, в действительности можно создать его многопоточную версию с использованием вложенного параллелизма.

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

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

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