Личный кабинетuser
orange img orange img orange img orange img orange img
Дипломная работаИнформатика
Готовая работа №105085 от пользователя Куклачев Дмитрий
book

РЕАЛИЗАЦИЯ АЛГОРИТМА КЭННОНА С ИСПОЛЬЗОВАНИЕМ SIMD РЕГИСТРОВ

990 ₽
Файл с работой можно будет скачать в личном кабинете после покупки
like
Гарантия безопасной покупки
help

Сразу после покупки работы вы получите ссылку на скачивание файла.

Срок скачивания не ограничен по времени. Если работа не соответствует описанию у вас будет возможность отправить жалобу.

Гарантийный период 7 дней.

like
Уникальность текста выше 50%
help

Все загруженные работы имеют уникальность не менее 50% в общедоступной системе Антиплагиат.ру

file
Возможность снять с продажи
help

У покупателя есть возможность доплатить за снятие работы с продажи после покупки.

Например, если необходимо скрыть страницу с работой на сайте от третьих лиц на определенный срок.

Тариф можно выбрать на странице готовой работы после покупки.

Не подходит эта работа?
Укажите тему работы или свой e-mail, мы отправим подборку похожих работ
Нажимая на кнопку, вы соглашаетесь на обработку персональных данных

содержание

ВВЕДЕНИЕ 3
ТЕОРЕТИЧЕСКОЕ ОБОСНОВАНИЕ ЗАДАЧИ 5
МЕТОДЫ УМНОЖЕНИЯ МАТРИЦ 8
БЛОЧНЫЙ АЛГОРИТМ КЭННОНА 8
БЛОЧНЫЙ АЛГОРИТМ ФОКСА 9
ЛЕНТОЧНЫЙ АЛГОРИТМ 10
ПРИНЦИП РАБОТЫ SIMD РЕГИСТРОВ 12
ВОЗМОЖНОСТИ ИСПОЛЬЗОВАНИЯ SIMD РЕГИСТРОВ ДЛЯ ОПТИМИЗАЦИИ УМНОЖЕНИЯ МАТРИЦ 16
ВЫБОР И ОПИСАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 17
VISUAL STUDIO 17
.NET 17
ЭКСПЕРИМЕНТАЛЬНАЯ ЧАСТЬ 19
БАЗОВОЕ УМНОЖЕНИЕ МАТРИЦ 19
АЛГОРИТМ КЭННОНА 21
Базовая реализация 21
Реализация на SIMD-регистрах 21
Результаты вычислений 25
АЛГОРИТМ ФОКСА 27
Базовая реализация 27
Реализация на SIMD-регистрах 27
Результаты вычислений 32
ЛЕНТОЧНЫЙ АЛГОРИТМ 33
Базовая реализация 33
Реализация на SIMD-регистрах 34
Результаты вычислений 36
АНАЛИЗ И СРАВНЕНИЕ РЕЗУЛЬТАТОВ ВЫЧИСЛЕНИЙ 38
ЗАКЛЮЧЕНИЕ 41
ИНФОРМАЦИОННОЕ ОБЕСПЕЧЕНИЕ 42
ПРИЛОЖЕНИЕ А 45


Весь текст будет доступен после покупки

ВВЕДЕНИЕ

С постоянным развитием аппаратных технологий и параллельных вычислительных архитектур, оптимизация алгоритмов и методов обработки данных становится критически важной задачей для обеспечения высокой производительности во множестве прикладных областей. Позволяя выполнять несколько задач одновременно, параллельное программирование дает возможность увеличить скорость выполнения алгоритмов и обработки данных.
Начиная с 1960 года, когда части программ выполнялись в непредсказуемом порядке, появилась острая необходимость в так называемой синхронизации процессов. С этого момента и берет свое начало параллельное программирование.
С этого момента параллельное программирование актуально использовать для совершения простых вычислений в большом количестве итераций, как в произведении матриц, ведь это позволяет распределить вычислительную нагрузку между несколькими процессорами. Умножение матриц является одной из главных операций в линейной алгебре и находит широкое применение во многих областях, включая графический дизайн, робототехнику, экономику и инженерию.
На данный момент существует огромное количество методов умножения матриц, применяемых для параллельной обработки, такие как блочные алгоритмы Кэннона и Фокса, ленточный алгоритм и многие другие. Алгоритм Кэннона, широко известный в мире вычислительной линейной алгебры, представляет собой ключевой метод для умножения матриц и находит применение во многих областях, включая машинное обучение, обработку сигналов и компьютерное зрение.

Весь текст будет доступен после покупки

отрывок из работы

ТЕОРЕТИЧЕСКОЕ ОБОСНОВАНИЕ ЗАДАЧИ

Матричное умножение является одной из центральных операций, которые позволяет эффективно задействовать все вычислительные ресурсы современных процессоров и графических ускорителей. Часто возникает потребность перейти от различных численных алгоритмов к матричным, что крайне повышает итоговую эффективность вычислений. Стандартно умножение матриц записываем таким образом:
C[i,j] = a*C[i,j] + b*Sum(A[i,k]*B[k,j]),
где матрица A имеет размер M х K, матрица B — K х N, и матрица C — M х N
Учитываем, что a = 0 и b = 1.
Простое умножение матриц неэффективно и не достигает максимальной производительности однопоточного процессора.
Для увеличения скорости можно оптимизировать вычисление адресов элементов массивов, вынося постоянную часть из внутреннего цикла. В оригинальной версии доступ к элементам массива B происходит не последовательно, но его можно упорядочить для последовательного обхода строк внутренним циклом при умножении всех трех матриц.
Дальнейшее повышение скорости можно обеспечить за счет вычисления блоками (векторами). Практически все современные процессоры позволяют проводить вычисления над такими векторами. В частности, набор инструкций AVX оперирует с векторами размерностью 256 бит. Что позволяет выполнить 8 операций для вещественных чисел с одинарной точностью за такт. AVX2/FMA делает еще один шаг вперед — он позволяет выполнить слитную операцию умножения и сложения (d = a*b + c) над вектором.

Весь текст будет доступен после покупки

Список литературы

1. Алексеев, В.Б. Умножения матриц размеров 5?2 И 2?2 / В.Б. Алексеев // Ученые записки Казанского университета. Серия Физико-математические науки. – 2014. – № 3. – С. 19-29. – Текст: электронный // Лань : электронно-библиотечная система. – URL: https://e.lanbook.com/journal/issue/296338 (дата обращения: 13.05.2022).
2. Белоусов, И.В. Матрицы и Определители: учеб. Пособие. Кишинев, 2006. 101 с.
3. Биллиг, В. А. Параллельные вычисления и многопоточное программирование : учебное пособие / В. А. Биллиг. — 2-е изд. — Москва : ИНТУИТ, 2016. — 310 с. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/100361 (дата обращения: 07.05.2022).
4. Егоров, С. С. Методика изучения технологии параллельного программирования в дисциплинах "Операционные системы" и "объектно-ориентированное программирование" / С. С. Егоров, В. В. Широков, М. А. Щиголева // Современное программирование : Материалы I Международной научно-практической конференции, Нижневартовск, 15–18 ноября 2018 года / Нижневартовский государственный университет, 2018. – С. 42-46.
5. Немнюгин, С. А. Основы параллельного программирования : учебно-методическое пособие / С. А. Немнюгин ; С. А. Немнюгин ; Санкт-Петербургский гос. ун-т, Физический фак., Каф. вычислительной физики. – Санкт-Петербург : Соло, 2007. – 103 p. – ISBN 978-5-98340-090-0. – EDN QMTXXV.
6. Гончаров, Е. И. Сравнение реализаций блочного алгоритма умножения многомерных матриц / Е. И. Гончаров, П. Л. Ильин // Системы компьютерной математики и их приложения. – 2020. – № 21. – С. 102-109. – EDN CFOAVL.

Весь текст будет доступен после покупки

Почему студенты выбирают наш сервис?

Купить готовую работу сейчас
service icon
Работаем круглосуточно
24 часа в сутки
7 дней в неделю
service icon
Гарантия
Возврат средств в случае проблем с купленной готовой работой
service icon
Мы лидеры
LeWork является лидером по количеству опубликованных материалов для студентов
Купить готовую работу сейчас

не подошла эта работа?

В нашей базе 78761 курсовых работ – поможем найти подходящую

Ответы на часто задаваемые вопросы

Чтобы оплатить заказ на сайте, необходимо сначала пополнить баланс на этой странице - https://lework.net/addbalance

На странице пополнения баланса у вас будет возможность выбрать способ оплаты - банковская карта, электронный кошелек или другой способ.

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

Если у вас возникли проблемы при пополнении баланса на сайте или остались вопросы по оплате заказа, напишите нам на support@lework.net. Мы обязательно вам поможем! 

Да, покупка готовой работы на сайте происходит через "безопасную сделку". Покупатель и Продавец финансово защищены от недобросовестных пользователей. Гарантийный срок составляет 7 дней со дня покупки готовой работы. В течение этого времени покупатель имеет право подать жалобу на странице готовой работы, если купленная работа не соответствует описанию на сайте. Рассмотрение жалобы занимает от 3 до 5 рабочих дней. 

У покупателя есть возможность снять готовую работу с продажи на сайте. Например, если необходимо скрыть страницу с работой от третьих лиц на определенный срок. Тариф можно выбрать на странице готовой работы после покупки.

Гарантийный срок составляет 7 дней со дня покупки готовой работы. В течение этого времени покупатель имеет право подать жалобу на странице готовой работы, если купленная работа не соответствует описанию на сайте. Рассмотрение жалобы занимает от 3 до 5 рабочих дней. Если администрация сайта принимает решение о возврате денежных средств, то покупатель получает уведомление в личном кабинете и на электронную почту о возврате. Средства можно потратить на покупку другой готовой работы или вывести с сайта на банковскую карту. Вывод средств можно оформить в личном кабинете, заполнив соответствущую форму.

Мы с радостью ответим на ваши вопросы по электронной почте support@lework.net

surpize-icon

Работы с похожей тематикой

stars-icon
arrowarrow

Не удалось найти материал или возникли вопросы?

Свяжитесь с нами, мы постараемся вам помочь!
Неккоректно введен e-mail
Нажимая на кнопку, вы соглашаетесь на обработку персональных данных