Организация параллельных потоков. Часть 2 | страница 30
Нас будет интересовать поведение погрешности вычислений и подбор наилучших параметров интегрирования.
А ещё неплохо было бы сравнить результаты с предыдущим разделом. Повлияет ли разная точность представления переменных на качество оценок?
Рис. 6.8. Анализ результатов
Задание. Проведите анализ эффективности, постройте графики и сделайте выводы.
6.4. Параллельные потоки
Составим параллельную программу (рис. 6.9).
Объявляем переменные одинарной точности (строка 10).
Вводим в командной строке число потоков р и число прямоугольников N (строки 11 и 12).
Выводим число потоков р, число прямоугольников N, оценку интеграла S и время вычислений T (строка 22).
Компилируем программу, не забывая про поддержку OpenMP. Проверяем работоспособность в командной строке.
Рис. 6.9. Параллельная программа
Задание. Составьте параллельную программу (рис. 6.9) и проверьте её работоспособность.
Подбираем максимальное число прямоугольников так, чтобы выполнение программы занимало приемлемое время.
Составляем пакетный файл (рис. 6.10).
Здесь мы организуем три вложенных цикла:
— пять повторений для последующего усреднения;
— восемь значений числа потоков;
— число прямоугольников увеличиваем меняем логарифмически.
Рис. 6.10. Пакетный файл
Задание. Составьте пакетный файл (рис. 6.10).
Запускаем пакетный файл и направляем вывод в файл.
Загружаем полученный текстовый файл в Excel.
Вставляем сводную таблицу (рис. 6.11):
— по строкам — число прямоугольников;
— по столбцам — число потоков.
Рис. 6.11. Сводная таблица
Задание. Запустите пакетный файл, загрузите результаты в Excel и постройте сводную таблицу (рис. 6.11).
Мы можем располагать данные в сводной таблице так. Как нам удобно. При этом все значения быстро пересчитываются автоматически.
Построим график, на котором можно будет увидеть, как меняется время вычислений Т с увеличением числа прямоугольников N. Здесь же мы хотим отразить «расслоение» наших характеристик в зависимости от числа параллельных потоков (рис. 6.12). Включим легенду, чтобы видеть, какая ветка чему соответствует.
Можно видеть, что время работы программы для четырёх и восьми потоков практически не отличаются.
Рис. 6.12. Время вычислений
Задание. Постройте диаграмму времени вычислений (рис. 6.12).
Пришло время для анализа эффективности распараллеливания. Вставляем новую сводную таблицу. Проводим дополнительные вычисления.
Задание. Сформируйте новую сводную таблицу. Рассчитайте ускорение и эффективность. Постройте графики