Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Топ:
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного хозяйства...
Теоретическая значимость работы: Описание теоретической значимости (ценности) результатов исследования должно присутствовать во введении...
Установка замедленного коксования: Чем выше температура и ниже давление, тем место разрыва углеродной цепи всё больше смещается к её концу и значительно возрастает...
Интересное:
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Дисциплины:
2024-02-15 | 25 |
5.00
из
|
Заказать работу |
|
|
Основная задача при реализации параллельных алгоритмов решения сложных вычислительных задач – обеспечить ускорение вычислений (по сравнению с последовательным алгоритмом) за счет использования нескольких процессоров (ядер). Время выполнения параллельного алгоритма должно быть меньше, чем при выполнении последовательного алгоритма.
Определим время выполнения параллельного алгоритма. Для этого добавим в программный код замеры времени. Снова воспользуемся функцией GetTime() (эта функция подробно описана в. Добавьте выделенный программный код в функцию main:
ProcessInitialization(pMatrix, pVector, pResult, pProcRows, pProcResult,
Size, RowNum);
double Start, Finish, Duration;
Start = GetTime();
ParallelResultCalculation(pMatrix, pVector, pResult, Size);
Finish = GetTime();
Duration = Finish-Start;
TestResult(pMatrix, pVector, pResult, Size);
printf(“Time of parallel execution = %f\n”, Duration);
Очевидно, что таким образом будет распечатано время, которое было затрачено на выполнение параллельного алгоритма.
Скомпилируйте и запустите приложение. Заполните следующую таблицу:
В графу "Последовательный алгоритм" внесите время выполнения последовательного алгоритма, замеренное при проведении тестирования последовательного приложения в упражнении 2. Для того, чтобы вычислить ускорение, разделите время выполнения последовательного алгоритма на время выполнения параллельного алгоритма. Результат поместите в соответствующую графу таблицы.
Время Tp выполнения параллельного алгоритма на компьютерной системе, имеющей p вычислительных элементов, может быть оценено при помощи следующего соотношения:
Контрольные вопросы
• Какие схемы разделения данных могут быть использованы при параллельном выполнении
умножения матрицы на вектор?
|
• Какие возможности технологии OpenMP были использованы при разработке параллельной
программы матрично-векторного умножения?
• Как обеспечивается правильность использования общих данных в разработанной параллельной
программе?
• Получилось ли ускорение при матрице размером 10 на 10? Почему?
• Насколько хорошо совпадают время, полученное теоретически, и реальное время выполнения
алгоритма? В чем может состоять причина несовпадений?
Задания для самостоятельной работы
1. Рассмотрите ленточную схему разделения матрицы по столбцам. Примените эту схему для разработки параллельного алгоритма умножения матрицы на вектор и выполните его программную реализацию. Проведите вычислительные эксперименты и оцените получаемое ускорение. Сравните полученные данные с результатами лабораторной работы.
2. Рассмотрите блочную схему разделения матрицы. Примените эту схему для разработки
параллельного алгоритма умножения матрицы на вектор и выполните его программную реализацию. Проведите вычислительные эксперименты и оцените получаемое ускорение. Сравните полученные данные с результатами лабораторной работы.
3. Задание 2 может быть выполнено в усложненной постановке, при которой необходимо
разработать два варианта параллельной программы с использованием и без применения механизма вложенных параллельных секций технологии OpenMP. При выполнения такого усложненного задания следует сравнить сложность разработки разных вариантов программы и получаемую в результате эффективность параллельных вычислений.
|
|
Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!