Проведение вычислительных экспериментов — КиберПедия 

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

Проведение вычислительных экспериментов

2024-02-15 17
Проведение вычислительных экспериментов 0.00 из 5.00 0 оценок
Заказать работу

Основная задача при реализации параллельных алгоритмов решения сложных вычислительных задач – обеспечить ускорение вычислений (по сравнению с последовательным алгоритмом) за счет использования нескольких процессоров (ядер). Время выполнения параллельного алгоритма должно быть меньше, чем при выполнении последовательного алгоритма.

Определим время выполнения параллельного алгоритма. Для этого добавим в программный код замеры времени. Снова воспользуемся функцией 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. При выполнения такого усложненного задания следует сравнить сложность разработки разных вариантов программы и получаемую в результате эффективность параллельных вычислений.

 


Поделиться с друзьями:

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.008 с.