
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...
Топ:
Генеалогическое древо Султанов Османской империи: Османские правители, вначале, будучи еще бейлербеями Анатолии, женились на дочерях византийских императоров...
Особенности труда и отдыха в условиях низких температур: К работам при низких температурах на открытом воздухе и в не отапливаемых помещениях допускаются лица не моложе 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. При выполнения такого усложненного задания следует сравнить сложность разработки разных вариантов программы и получаемую в результате эффективность параллельных вычислений.
|
|
Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
© cyberpedia.su 2017-2025 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!