Организация параллельных потоков. Часть 2 | страница 23
5.5. Анализ эффективности
У нас практически всё готово для анализа эффективности распараллеливания.
Напомним две основных характеристики распараллеливания:
— speedup — ускорение;
— efficiency — эффективность.
Формулы для вычисления этих показателей приводятся на рис. 5.15.
Рис. 5.15. Характеристики распараллеливания
Обозначения в формулах:
Т1 — время выполнения последовательной программы (на одном процессоре);
р — количество виртуальных процессоров, работающих параллельно при выполнении программы;
Тр — время выполнения параллельной программы на р процессорах;
Sp — ускорение вычислений на р процессорах;
Ep — эффективность параллельных вычислений на р процессорах.
Показатель ускорения говорит о том, во сколько раз быстрее работает параллельная программа. Можно сказать, что ускорение измеряется «в разах».
Ускорение вычислений не надо путать с ускорением в физике. В разделе «Механика» ускорение измеряется в квадратных метрах в секунду и отражает скорость изменения скорости движения.
Показатель эффективности говорит о средней загрузке вычислительной мощности. Обычно измеряется в процентах. По сути, это эффективность использования (загрузки работой) доступных вычислительных элементов.
Задание. Изучите в английской версии Википедии статью «Speedup» и обратите внимание на определение терминов «ускорение» и «эффективность». Выясните, что такое «сверхлинейное ускорение» (Super-linear speedup) и за счёт чего оно достигается.
5.5.1. Пакетный файл
Создаём пакетный файл в каталоге Release текущего проекта (рис. 5.16).
В первой строчке пакетного файла мы отключаем вывод на экран выполняемых команд.
Во второй строчке мы формируем строку заголовков полей (столбцов), разделяя их символом табуляции.
Далее следуют несколько циклов. Запускаем нашу программу с разным количеством итераций по 10 раз.
Рис. 5.16. Пакетный запуск
Запускаем пакетный файл и перенаправляем вывод в текстовый файл:
18> 18.txt.
Следим за загрузкой ядер (рис. 5.17). При каждом запуске загрузка поднимается до 100%. Это радует.
Попутно обратим внимание на дополнительные сведения в Диспетчере задач:
— один процессор (Sockets — 1);
— четыре ядра (Cores — 4);
— восемь логических (виртуальных) процессоров (Logical processors — 8).
Рис. 5.17. Загрузка процессора
Задание. Запустите пакетный файл (рис. 5.16) и направьте вывод результатов в текстовый файл.
Получаем текстовый файл.
Открываем его в Блокноте:
Notepad.
Убеждаемся, что здесь записаны колонки цифр (рис. 5.18).