Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Топ:
Выпускная квалификационная работа: Основная часть ВКР, как правило, состоит из двух-трех глав, каждая из которых, в свою очередь...
Устройство и оснащение процедурного кабинета: Решающая роль в обеспечении правильного лечения пациентов отводится процедурной медсестре...
Генеалогическое древо Султанов Османской империи: Османские правители, вначале, будучи еще бейлербеями Анатолии, женились на дочерях византийских императоров...
Интересное:
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Лечение прогрессирующих форм рака: Одним из наиболее важных достижений экспериментальной химиотерапии опухолей, начатой в 60-х и реализованной в 70-х годах, является...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Дисциплины:
2024-02-15 | 23 |
5.00
из
|
Заказать работу |
Лабораторная работа
Матрицы и матричные операции широко используются при математическом моделировании самых разнообразных процессов, явлений и систем. Матричные вычисления составляют основу многих научных и инженерных расчетов – среди областей приложений могут быть указаны вычислительная математика, физика, экономика и др. Являясь вычислительно-трудоемкими, матричные вычисления представляют собой классическую область применения параллельных вычислений. С одной стороны, использование высокопроизводительных многопроцессорных систем позволяет существенно повысить сложность решаемых задач. С другой стороны, в силу своей достаточно простой формулировки матричные операции предоставляют прекрасную возможность для демонстрации многих приемов и методов параллельного программирования.
Цель лабораторной работы
Целью данной лабораторной работы является разработка параллельной программы матрично-векторного умножения с использованием в качестве аппаратной платформы многопроцессорной вычислительной системы с общей памятью.
Задачи
– Постановка задачи матрично-векторного умножения.
– Реализация последовательного алгоритма умножения матрицы на вектор.
– Разработка параллельного алгоритма умножения матрицы на вектор.
– Реализация параллельного алгоритма матрично-векторного умножения.
При выполнении лабораторной работы предполагается, что имеющиеся в составе вычислительной системы процессоры обладают равной производительностью, являются равноправными при доступе к общей памяти и время доступа к памяти является одинаковым (при одновременном доступе нескольких процессоров к одному и тому же элементу памяти очередность и синхронизация доступа обеспечивается на аппаратном уровне). Многопроцессорные системы подобного типа обычно именуются симметричными мультипроцессорами (symmetric multiprocessors, SMP). Перечисленному выше набору предположений удовлетворяют также активно развиваемые в последнее время многоядерные процессоры, в которых каждое ядро представляет практически независимо функционирующее вычислительное устройство. Именно многоядерные процессоры (учитывая их новизну и массовый характер распространения) будут использоваться далее для проведения вычислительных экспериментов.
Для общности излагаемого учебного материала, для упоминания одновременно и мультипроцессоров и многоядерных процессоров, при обозначении одного вычислительного устройства будет использоваться понятие вычислительный элемент (ВЭ).
Постановка задачи умножения матрицы на вектор
В результате умножения матрицы А размерности m× n и вектора b, состоящего из n элементов, получается вектор c размера m, каждый i-ый элемент которого есть результат скалярного умножения i-й строки матрицы А (обозначим эту строчку ai) и вектора b (см. рис. 1.1):
Рис. 1.1. Элемент результирующего вектора – это результат скалярного умножения строки матрицы на вектор
Так, например, при умножении матрицы, состоящей из 3 строк и 4 столбцов на вектор из 4 элементов, получается вектор размера 3:
Тем самым, получение результирующего вектора c предполагает повторение m однотипных операций по умножению строк матрицы A и вектора b. Каждая такая операция включает умножение элементов строки матрицы и вектора b и последующее суммирование полученных произведений.
Псевдокод для представленного алгоритма умножения матрицы на вектор может выглядеть следующим образом:
// Serial algorithm of matrix-vector multiplication
for (i = 0; i < m; i++)
{
c[i] = 0;
for (j = 0; j < n; j++)
{
c[i] += A[i][j]*b[j]
}
}
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!