Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Дж. Деммель - Вычислительная линейная алгебра

Дж. Деммель - Вычислительная линейная алгебра, страница 17

PDF-файл Дж. Деммель - Вычислительная линейная алгебра, страница 17 Квантовые вычисления (53191): Книга - 7 семестрДж. Деммель - Вычислительная линейная алгебра: Квантовые вычисления - PDF, страница 17 (53191) - СтудИзба2019-09-18СтудИзба

Описание файла

PDF-файл из архива "Дж. Деммель - Вычислительная линейная алгебра", который расположен в категории "". Всё это находится в предмете "квантовые вычисления" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 17 страницы из PDF

Блочные алгоритмы как средство повышения производительности 73 матрицы Р [244]. На практике можно взять и две диагональные матрицы Рсе н Р„1 с тем, чтобы решать систему [Р„мАР„1)В = Рсемб, л = Р,ыай Методы итерационного уточнения и уравновешивания реализованы соответственно ЬАРАСК-подпрограммами вйегг в и вйеейп. В свою очередь, к ним обращаются программы-драйверы типа вйевчх. 2.6.

Блочные алгоритмы как средство повышения производительности В конце раздела 2.3 было указано, что, в зависимости от используемого компьютера и решаемой задачи, изменение порядка трех вложенных циклов в алгоритме 2.2, реализующем гауссово исключение, может изменить скорость работы алгоритма на несколько порядков.

В этом разделе мы исследуем, почему это возможно, и опишем некоторые линейно-алгебраические программы, учитывающие такую возможность и написанные с особой тщательностью. Речь идет о так называемых блочных алгоритмах, самые внутренние циклы которых оперируют с квадратными или прямоугольными блоками матрицы, а не ее строками или столбцами. Соответствующие программы имеются в общедоступных библиотеках, таких, как ЬАРАСК [фортранная версия по адресу ХЕТЫВ/1арас)с)' и ЯсаЬАРАСК (см. ХЕТЫВ/эса)арас)с). ЬАРАСК и его версии на других языках предназначены для персональных компьютеров, рабочих станций, векторных компьютеров и параллельных машин с разделяемой памятью.

В их число входят Япп ЯРАНС-сепсег 2000 [238], ЯО1 Рожег С)за11епйе [223], ПЕС А1р)за Яегчег 8400 [103] и Сгау С90/390 [253, 254]. Для параллельных машин с распределенной памятью, таких, как 1ВМ ЯР-2 [256], 1п1е1 Рагайоп [257], серия Сгау ТЗ [255] и сети рабочих станций [9], разработана библиотека ЯсаЬАРАСК. Упомянутые библиотеки и подробные руководства для пользования ими доступны в )ХЕТЫВ'е [10, 34].

Более подробное обсуждение алгоритмов для высокопроизводительных [в особенности, параллельных) компьютеров можно найти в Интернете по адресу РАНАЬЬЕЬ НОМЕРАСЕ. Первоначальным стимулом разработки библиотеки ЬАРАСК была крайне неудовлетворительная производительность ее предшественниц, библиотек ЫХРАСК и Е1ЯРАСК (также доступных в ХЕТЫВ'е) на некоторых мощных компьютерах. Рассмотрим, например, приводимую ниже таблицу, показывающую скорость в мегафлопах Ы)ХРАСК-программы врота (реализующей метод Холесского) на машине Сгау УМР, суперкомпьютере конца 80-х годов. Метод Холесского — это вариант гауссова исключения, предназначенный для симметричных положительно определенных матриц.

Он подробно обсуждается в разд. 2.7; пока же нам достаточно знать, что он весьма схож с алгоритмом 2.2. В таблице указана также скорость нескольких других стандартных линейно- алгебраических операций. Сгау УМР— это параллельный компьютер, в котором одновременно могут работать до 8 процессоров. Поэтому мы приводим два столбца данных: для однопроцессорного и восьмипроцессорного режимов. 1 Имеется также С-версия 1.АРАСК'а, называемая СЬАРАСК 1см.

ХЕТЫВ/с1араск). ЬАРАСК++ (см. ХЕТЫВ/с++/1араск++) и ЬАРАСК90 1см. ХЕТЫВ/1араск90) являются соответственно С-ЬЧ вЂ” и Ротегаа90-интерфейсами для ЬАРАСК'а. Глава 2. Решение линейных уравнений 1 Проц. 8 Проц. Мвксимвльнвя скорость Умножение двух матриц (н = 500) Умножение матрицы на вектор Сп = 500) Решение уравнений ТХ = В (и = 500) Решение системы Тх = 5 (н = 500) Ь11с1РАСК (СЬо!евйу, и = 500) 1,АРАСК (СЬо!евку, и = 500) 1 АРАСК (СЬо1ея1су, н = 1000) 2640 2425 2285 2398 584 72 1414 2115 ЗЗО 312 311 309 272 72 290 301 Максимальная скорость компьютера, приведенная в верхней строке, является верхней границей для последующих чисел.

Данные по основным линейно- алгебраическим операциям в следующих четырех строках получены с помощью программ, специально разработанных для достижения высокой производительности на машине Сгау УМР. Эти данные достаточно близки к максимальной скорости компьютера; исключение составляет программа для задачи Тх = Ь (регпение единственной треугольной системы линейных уравнений), использующая наличие 8 процессоров незффективно. Задача ТХ = В— это решение треугольной системы со многими правыми частями ( — квадратная матрица).

Данные в таблице относятся к большим векторам и матрицам (и = 500). Программа метода Холесского из Ь1)лгРАСК'а (см. шестую строку таблицы) работает намного медленнее предыдущих программ при том, что применяется к столь же большой матрице и выполняет математически сходные операции. Подобная плохая производительность побудила нас модифицировать зту и другие линейно-алгебраические программы с тем, чтобы заставить их работать столь же быстро, как более простые программы типа матричного умножения. Скорости этих модифицированных программ из ЬАРАСК'а приведены в двух последних строках таблицы.

Очевидно, что ЬАРАСК-программы гораздо ближе к максимальной производительности компьютера. Подчеркнем, что программы метода Холесского из обеих библиотек, ЬГгт'РАСК и ЬАРАСК, выполняют одни и те же операции с плавающей точкой; различен лишь порядок операций. Чтобы понять, как было достигнуто зто ускорение, мы должны разобраться, на что тратится машинное время при выполнении программы.

Это, в свою очередь, требует понимания того, как функционирует память компьютера. Оказывается, что память любого компьютера, от самой дешевой персональной машины до самого мощного суперкомпьютера, устроена иерархически и состоит из ряда различных видов памяти с очень быстрой, дорогостоящей и потому малой памятью на вершине иерархии и медленной, дешевой и очень большой памятью в ее подножии. Быстрая, мелея, дорогая Регистры Кэш-пвмять Оперативная память Диски Ленты Медленная, большая, дешевая 2.6. Блочные алгоритмы как средство повышения производительности 75 К примеру, регистры являются наискорейшим видом памяти; затем следуют кэш-память, основна; память, диски и, наконец, ленты как самый медленный, больпюй и дешевый тип памяти.

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

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

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

Напротив, для матричного умножения и трех других основных алгоритмов линейной алгебры, указанных в таблице, такая минимизация была проделана. 2.6.1. Основные подпрограммы линейной алгебры Разрабатывать для всякого нового типа компьютеров специальную версию каждой программы, вроде программы метода Холесского — это явно не эффективное решение. Требуется более систематический подход к этой проблеме. Учитывая, что операции типа матричного умножения столь распространены 1 Хотя в ней была предусмотрена минимизация другого параметра обмена между основной памятью и диском, а именно страничных отказов (раде увила) 76 Глава 2. Решение линейных уравнений в вычислениях, производители компьютеров каталогизировали их как «Основные подпрограммы линейной алгебрыь (Вал«с Ьепеаг А1деога Яибгоийпег), или ВЬАЯ ]169, 89, 87], и оптимизировали их для своих машин. Другими словами, для высокопроизводительных компьютеров (как и ряда других машин) существуют библиотеки подпрограмм, включающие в себя умножение матриц, матрично-векторное умножение и другие подобные операции, со стандартным интерфейсом на фортране или С, однако тела этих подпрограмм оптимизированы для каждого типа компьютеров.

Наша цель — использовать этот оптимизированный пакет ВЬАЯ, модифицируя алгоритмы типа алгоритма Холесского так, чтобы они ббльшую часть работы выполняли с помощью ВЬАЯ- подпрограмм. В этом разделе мы дадим общее описание пакета ВЬАЯ. В разд. 2.6.2 будет рассмотрена задача оптимизации матричного умножения. Наконец, в разд. 2.6.3 мы покажем, как модифицировать гауссово исключение с тем, чтобы ббльшая часть его работы производилась посредством матричного умножения. Рассмотрим пакет ВЬАБ более подробно.

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