Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Топ:
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного хозяйства...
Оценка эффективности инструментов коммуникационной политики: Внешние коммуникации - обмен информацией между организацией и её внешней средой...
Проблема типологии научных революций: Глобальные научные революции и типы научной рациональности...
Интересное:
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Принципы управления денежными потоками: одним из методов контроля за состоянием денежной наличности является...
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Дисциплины:
2024-02-15 | 18 |
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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!