Главная » Просмотр файлов » Вычислительные методы алгебры и оценивания. И.В. Семушкин (2011)

Вычислительные методы алгебры и оценивания. И.В. Семушкин (2011) (1185350), страница 10

Файл №1185350 Вычислительные методы алгебры и оценивания. И.В. Семушкин (2011) (Вычислительные методы алгебры и оценивания. И.В. Семушкин (2011).pdf) 10 страницаВычислительные методы алгебры и оценивания. И.В. Семушкин (2011) (1185350) страница 102020-08-25СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Всякий сегмент может работать только с одной паройоперандов, а в целом на конвейере в текущий момент времени могут находиться шесть пар операндов. Преимущество подобной сегментации в том,что результаты выдаются в 6 раз быстрее (а в общем случае в K, где K —число сегментов сумматора), чем в скалярном процессоре, который, получивпару операндов, не принимает новой пары, пока не вычислит результат дляпервой пары. Для реализации этой возможности ускорения нужно подаватьданные из памяти в процессор достаточно быстро, чтобы конвейер был всевремя загружен данными и работой.Параллельные компьютеры. В основе такого компьютера лежитидея использовать несколько процессоров, работающих сообща для решения одной задачи. Параллельный компьютер может иметь в своем составелибо очень простые процессоры, пригодные только для малых или ограниченных задач, либо набор полноценных процессоров, либо весьма мощныевекторые процессоры.

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

Степенью параллелизма численной задачи называется число ее операций, которые можно выполнять параллельно.563.2 Распараллеливание вычисленийПример 3.1. Пусть требуется сложить два n-мерных вектора a и b.Сложения их элементовai + bi ,i = 1, . . . , n(3.3)независимы и потому могут выполняться параллельно. Степень параллелизма этого алгоритма равна n.Пример 3.2. Пусть требуется сложить n чисел a1 , . . . , an . Обычныйпоследовательный алгоритмs := a1 ,s := s + ai ,i = 1, .

. . , nне пригоден для параллельных вычислений. Однако в самой задаче заключен немалый параллелизм. Можно разбить операнды на «двойки», т. е. складывать их по двое на каждом этапе операции. Полностью эффект этой идеипроявляется, когда число операндов равно степени двойки, т.е. n = 2q . Если,например, q = 3, то все сложение займет q = 3 этапа, на каждом этапе действия выполняются параллельно, как показано на рис. 3.3.a1a2a1 + a2a3a4a3 + a4a1 + a2 + a3 + a4a5a6a5 + a6a7a8a7 + a8a5 + a6 + a7 + a8a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8Рис.

3.3. Сложение n чисел методом сдваивания для n = 8 [8]Очевидно, на первом этапе степень параллелизма равна n/2, на второмn/4 и т. д. В связи с этим приходим к обновленному определению.Определение 3.3. Средней степенью параллелизма численной задачиназывается отношение общего числа операций ее вычислительного алгоритма к числу последовательных этапов алгоритма.573 Векторно-ориентированные алгоритмы LU-разложенияДля приведенного примера 3.2 алгоритма сдваивания в задаче сложенияn чисел средняя степень параллелизма равна 2q − 1 n − 11 n n+ + ··· + 1 ==,q 2 4qlog nтогда как в предыдущем примере 3.1 средняя степень параллелизма максимальна. Этот алгоритм (3.3) обладает «идеальным» параллелизмом, в товремя как для алгоритма на рис. 3.3 средняя степень параллелизма в log nраз меньше идеальной.3.3Параллельное умножение матрицы на векторПусть A — матрица размера (m × n), а x — вектор длины n.

Тогда(a1, x)Ax =  · · ·  ,(3.4)(am , x)где ai — i-я строка матрицы A, а (ai , x) — обычное скалярное произведениевекторов ai и x. Каждое из m имеющихся здесь скалярных произведений,как известно, требует суммирования n поэлементных произведений aij xj .Как показано в предыдущем подразделе, такое суммирование можно распараллеливать сдваиванием, но такой параллелизм вычисления каждого отдельного скалярного произведения так или иначе неидеален. Однако m скалярных произведений в (3.4) можно вычислять параллельно. Другой способумножения матрицы на вектор дается формулойAx =nXx j aj ,(3.5)j=1где aj теперь обозначает j-й столбец матрицы A.Различие представлений (3.4) и (3.5) можно рассматривать как различиедвух способов доступа к данным в памяти, что показывают две программына рис.

3.4. Программа слева на рис. 3.4 реализует метод (3.4), тогда какпрограмма справа реализует метод (3.5), и различие здесь только в порядкеиндексов для циклов. Алгоритм, основанный на представлении (3.5), записывается так:y = 0,58для j от 1 до n выполнить y = y + xj aj .3.4 Параллельное LU-разложениеyi = 0Для i = 1 до mДля j = 1 до nyi = yi + aij xjyi = 0Для j = 1 до nДля i = 1 до myi = yi + aij xjРис.

3.4. ij (слева) и ji (справа) формы матрично-векторного умножения [8]Как выше (в подразд. 3.1) говорилось, такая операция типа «вектор плюспроизведение вектора на число», называется триадой (или операцией saxpy);некоторые векторные компьютеры выполняют ее особенно эффективно.Сравнение приведенных способов умножения матрицы на вектор показывает, что на одних векторных компьютерах предпочтителен один способ,на других — другой; многое определяется также и способом хранения данных в памяти.

Предположим, что матрица A хранится по столбцам; такоесоглашение в отношении двумерных массивов принято в Фортране. (В других языках, например в Паскале, двумерные массивы хранятся по строкам.)Тогда векторы, требуемые для алгоритма (3.5), располагаются в последовательно адресуемых ячейках памяти, в то время как для алгоритма (3.5)строки будут представлять векторы с шагом m. Однако в векторных компьютерах часто существует ограничение на доступ к векторам: в качествеоперандов для векторных команд допускаются только векторы с шагом 1(т. е.

такие, которые располагаются в последовательно адресуемых ячейкахпамяти). Поэтому, если матрица A хранится по столбцам, то эти соображения, связанные с памятью, усиливают аргументацию в пользу алгоритма(3.5). Если же матрица A хранится по строкам, то предпочтительней можетоказаться алгоритм (3.4). Только детальный анализ может показать, какойвыбор следует сделать для конкретной машины.3.4Параллельное LU -разложениеДля распараллеленных вычислений нужны соответствующие параллельные или векторые компьютеры. С середины 70-х годов 20-го столетия фирмаCRAY Research, Inc.

производит векторные компьютеры, которые могут служить примером процессоров типа «регистр–регистр». Под этим подразумевается, что существуют векторные команды, для которых операндами являются векторы. Эти команды получают свои операнды из очень быстрой памяти, именуемой векторными регистрами, и запоминают результаты опять593 Векторно-ориентированные алгоритмы LU-разложениятаки в векторных регистрах.

Для операции сложения векторов это показанона рис. 3.5.Памятьc=a+bba+КонвейерВекторные регистрыРис. 3.5. Операция сложения в компьютере типа «регистр–регистр» [8]Предполагается, что каждый векторный регистр состоит из некоторогочисла слов. Например, в машинах CRAY имеется восемь векторных регистров, каждый емкостью в 64 числа с плавающей точкой. До начала сложения операнды загружаются из оперативной памяти в регистры. Послезавершения сложения векторный результат переписывается из регистровойпамяти в оперативную память. Для таких машин желателен иной подход корганизации LU -разложения.Исследуем вначале характер обменов во внутреннем цикле столбцовогоалгоритма LU -разложения на рис.

3.2. Для простоты предположим, чтостолбец матрицы A полностью вкладывается в векторный регистр, и начнем с рассмотрения случая, когда на фоне вычислений может выполнятьсятолько загрузка или только запись в память. Несколько первых операцийуказаны в следующем списке:Сформировать первый столбец матрицы L.Загрузить второй столбец матрицы A.(Модифицировать второй столбец матрицы A;загрузить третий столбец матрицы A.Записать в память модифицированный второй столбец.(Модифицировать третий столбец матрицы A;загрузить четвертый столбец матрицы A.(3.6)(3.7)(3.8)..................Согласно (3.6), загрузка следующего столбца матрицы A совмещаетсяс модификацией текущего столбца.

Но затем возникает задержка при записи модифицированного второго столбца из регистра в память. Можно так603.4 Параллельное LU-разложениемодифицировать алгоритм, чтобы устранить задержку, вызванную записьюв память (3.7). Идея состоит в том, чтобы выполнять необходимую обработку для j-го столбца полностью, прежде чем переходить к (j + 1)-мустолбцу. При этом обработка каждого из остальных столбцов матрицы Aоткладывается до тех пор, пока не наступит время придать этому столбцуокончательный вид. Псевдокод данного алгоритма приведен на рис. 3.6.Для j = 2 до nДля s = j до nls,j−1 = as,j−1 /aj−1,j−1Для k = 1 до j − 1Для i = k + 1 до naij = aij − lik akjРис. 3.6. Столбцово ориентированная схема L̄U-разложения с отложенными модификациями (jki-алгоритм, см.

с. 64) [8]Опишем несколько первых операций j-го шага вычислений, показываятаким образом характер обменов с памятью:Загрузить первый столбец матрицы L.Загрузить j-й столбец матрицы A.(Модифицировать j-й столбец матрицы A; загрузить второй столбец матрицы L.(3.9)(Модифицировать j-й столбец матрицы A; загрузить третий столбец матрицы L...................Заметим, что в алгоритме (3.9) не производится записей в память, покався работа с j-м столбцом матрицы A не завершена. Столбцы матрицы Lвсе время должны загружаться в регистры, но эти загрузки идут на фоневычислений. Только в начале и в конце каждого шага происходят задержкидля загрузок и(или) записей.

Вполне вероятно, что транслятор не сумеетраспознать возможности оставить текущий j-й столбец в регистре; в этомслучае результат, требуемый от алгоритма на рис. 3.6, либо достигается спереходом к программированию на языке ассемблера, либо аппроксимируется путем развертывания циклов. Еще одна потенциальная проблема приреализации данного алгоритма заключается в том, что длины векторов при613 Векторно-ориентированные алгоритмы LU-разложениямодификациях непостоянны: на j-м шаге мы модифицируем j-й столбец,используя n − 1 последних элементов столбца 1, далее n − 2 последних элементов столбца 2 и т.

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

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

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