Многопроцессорный вычислительный эксперимент
На рис.4б прослеживается рост возможностей для ускорения с ростом числа потоков. Также видно, что график времени при переменном числе потоков не является монотонно убывающим. Это объясняется тем, что операционная система сама перераспределяет нагрузку между ядрами и в определенных случаях 2 потока обрабатываются на 1 ядре, что является неоптимальным, так как затрачивается дополнительное время… Читать ещё >
Многопроцессорный вычислительный эксперимент (реферат, курсовая, диплом, контрольная)
При проведении вычислений с данной программной реализацией СКЗ варьировались: разрешение изображения, число потоков (соответствует числу процессоров p), количество объектов на изображении. Число сегментов на изображении при подаче изображения на вход заранее не известно и зависит от числа объектов, состояния каждого объекта и разрешения изображения.
Одним из крупных этапов вычислений является бинаризация «фон-объект». Время работы подсистемы бинаризации при обработке изображений разного разрешения при разной степени параллельности для фиксированного числа объектов на изображении представлено на рис.3а.
Рисунок 3. а — Время работы подсистемы бинаризации для числа объектов на изображении, равном 14; б — теоретический % снижения времени счёта подсистемы бинаризации Поверхность теоретического предела снижения времени счета, представленная на рис.3б, рассчитывается по формуле:
(1).
где at — теоретический % снижения времени счёта, TRреальное время работы, TA — теоретическое время работы в соответствии с законом Амдала. В данном случае TR и TA определялись для подсистемы бинаризации. Из рис.3б видно, что имеется значительный резерв для ускорения, который растёт с числом потоков.
Время работы всей системы и возможности её ускорения представлены на рис. 4.
Рисунок 4. а Время работы СКЗ для числа объектов на изображении, равном 14; б — теоретический % снижения времени счёта системы.
Рисунок 5 Время работы системы (а, б) и возможности ускорения (в, г) в зависимости от числа потоков (с фиксированным количеством пикселей 1 799 467) (а, в) и от числа пикселей (при 6 потоках) (б, г): 1 — для изображения с 14 объектами, 2 — 12, 3 — 6, 4 — 4 объектами.
В соответствии с законом Амдала при увеличении степени параллельности при заданных остальных характеристиках системы, время работы должно строго убывать, однако из поверхности, представленной на рис.4а, видно, что присутствуют участки роста времени. Это объясняется тем, что на процессоре i7−3930K, на котором проводились эксперименты, присутствуют 6 физических и 12 логических ядер (потоков), и операционная система нагружает каждое физическое ядро в соответствии со своими приоритетами, которые не задаются с использованием языка высокого уровня C#.
На рис.4б прослеживается рост возможностей для ускорения с ростом числа потоков. Также видно, что график времени при переменном числе потоков не является монотонно убывающим. Это объясняется тем, что операционная система сама перераспределяет нагрузку между ядрами и в определенных случаях 2 потока обрабатываются на 1 ядре, что является неоптимальным, так как затрачивается дополнительное время на управление параллельностью.
Из рис. 5 видно, что время работы системы в среднем примерно пропорционально числу объектов; в то время как число объектов слабо влияет на возможный % снижения времени работы СКЗ.
Как видно из рис.4б, код является неоптимальным и его выполнение возможно значительно ускорить. Загрузка ядер процессора на изображении с 14 объектами, разрешения 1 799 467 пикселей, при использовании 12 потоков, представлена на рис. 6.
Рисунок 6 Общая загрузка центрального процессора и загрузка отдельных ядер процессора Как видно из рис. 6, все ядра никогда не нагружаются полностью, на 100%. Это объясняется тем, что значительную часть времени программа тратит на выполнение операций с памятью (её выделение, очистку, операции чтения и записи). И оптимизация программы, основанная на снижении расходов памяти, позволит с большей интенсивностью выполнить загрузку процессора. Однако в связи с тем, что EmguCV для работы предоставляет методы, не учитывающие специфику решаемой задачи, не оптимизированные под её нужды, первым этапом оптимизации является собственная реализация использованных методов в рамках работы СКЗ.