Электронная библиотека диссертаций и авторефератов России
dslib.net
Библиотека диссертаций
Навигация
Каталог диссертаций России
Англоязычные диссертации
Диссертации бесплатно
Предстоящие защиты
Рецензии на автореферат
Отчисления авторам
Мой кабинет
Заказы: забрать, оплатить
Мой личный счет
Мой профиль
Мой авторский профиль
Подписки на рассылки



расширенный поиск

Методы и средства разработки параллельного программного обеспечения обработки изображений и сигналов Герценбергер Константин Викторович

Методы и средства разработки параллельного программного обеспечения обработки изображений и сигналов
<
Методы и средства разработки параллельного программного обеспечения обработки изображений и сигналов Методы и средства разработки параллельного программного обеспечения обработки изображений и сигналов Методы и средства разработки параллельного программного обеспечения обработки изображений и сигналов Методы и средства разработки параллельного программного обеспечения обработки изображений и сигналов Методы и средства разработки параллельного программного обеспечения обработки изображений и сигналов Методы и средства разработки параллельного программного обеспечения обработки изображений и сигналов Методы и средства разработки параллельного программного обеспечения обработки изображений и сигналов Методы и средства разработки параллельного программного обеспечения обработки изображений и сигналов Методы и средства разработки параллельного программного обеспечения обработки изображений и сигналов Методы и средства разработки параллельного программного обеспечения обработки изображений и сигналов Методы и средства разработки параллельного программного обеспечения обработки изображений и сигналов Методы и средства разработки параллельного программного обеспечения обработки изображений и сигналов
>

Диссертация - 480 руб., доставка 10 минут, круглосуточно, без выходных и праздников

Автореферат - бесплатно, доставка 10 минут, круглосуточно, без выходных и праздников

Герценбергер Константин Викторович. Методы и средства разработки параллельного программного обеспечения обработки изображений и сигналов: диссертация ... кандидата технических наук: 05.13.11 / Герценбергер Константин Викторович;[Место защиты: Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский ядерный университет "МИФИ"].- Москва, 2014.- 162 с.

Содержание к диссертации

Введение

1. Обзор методов и средств распараллеливания обработки изображений и сигналов для многопроцессорных систем 14

1.1. Классификация функций обработки изображений и сигналов с точки зрения параллельного исполнения 14

1.1.1. Точечные операции 16

1.1.2. Локальные операции 17

1.1.3. Глобальные операции 18

1.2. Выбор парадигмы программирования в зависимости от типа параллельной вычислительной системы 18

1.3. Обзор традиционных методов распараллеливания обработки изображений и сигналов 23

1.3.1. Использование библиотек работы с потоками 25

1.3.2. Коммуникационные средства 26

1.3.3. Параллельные конструкции высокоуровневых языков программирования 27

1.3.4. Параллельные языки программирования 30

1.3.5. Распараллеливающие компиляторы 31

1.4. Обзор существующих решений обработки данных, использующих параллельные алгоритмические структуры 33

1.5. Выводы 38

2. Разработка метода автоматизированного создания параллельного программного обеспечения для обработки изображений и сигналов 40

2.1. Формализация нового метода разработки 40

2.2. Проектирование аппаратной и программной части целевой платформы 43

2.3. Разработка набора параллельных алгоритмических структур

2.4. Разработка моделей предсказания производительности параллельных программно-аппаратных платформ 51

2.4.1. Выбор характеристик для оценки параллельной обработки

изображений и сигналов 52

2.4.2. Разработка аналитической модели исполнения параллельных алгоритмов для разных типов параллельных систем 54

2.4.3. Разработка имитационной модели исполнения параллельных алгоритмов для распределённых систем 65

2.5. Разработка алгоритмов автоматизированного получения параллельного кода функций обработки данных 70

2.6. Требования к системе планирования при обработке изображений и сигналов на параллельной архитектуре 72

2.7. Выводы 73

3. Реализация среды визуального программирования для разработки параллельного программного обеспечения 75

3.1. Реализация интерфейса системы, задание аппаратной и функциональной схемы 75

3.2. Реализация подсистемы моделирования параллельной обработки данных на заданной аппаратной платформе 82

3.3. Реализация подсистемы автоматизированной генерации параллельного программного обеспечения 86

3.4. Реализация подсистемы запуска обработки изображений и сигналов на многопроцессорной системе 90

3.5. Преимущества и ограничения разработанной проблемно ориентированной среды визуального программирования 92

3.6. Выводы 95

4. Использование нового метода и разработанной системы для параллельной обработки изображений и сигналов 97

4.1. Применение метода для верификации изображений печатных плат на многоядерных процессорах 97

4.2. Распараллеливание функций библиотеки обработки изображений ipplab msco 101

4.3. Использование нового метода для распараллеливания цифровых фильтров сигналов на кластерной системе для зао "аст" 108

4.4. Выводы 124

Заключение 126

Литература

Введение к работе

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

Отличительной особенностью обработки и анализа изображений и сигналов является то, что они базируются на общем наборе функций, называемых функциями предобработки. Помимо функций предобработки зачастую используют ряд широко применяемых фильтров и преобразований, например, быстрое преобразование Фурье. Ограниченный набор основных функций обработки и анализа сигналов и изображений позволяет свести задачу распараллеливания к использованию ограниченного набора параллельных алгоритмов.

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

многопроцессорных системах. При современной тенденции к
применению многопроцессорных систем и многоядерных

процессоров реализация параллельного программного обеспечения обработки изображений и сигналов дает существенный скачок как в производительности обработки и анализа в целом, так и позволяет, например, различным фото, видео и телекоммуникационным системам функционировать в режиме реального времени.

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

распараллеливания и специализированных библиотек. Во-первых, для исходного алгоритма требуется спроектировать параллельный

вариант, что отнимает много времени и усилий, которые затрачиваются не просто на разработку параллельного алгоритма, но и на прогнозирование ускорения на целевой аппаратной платформе. Во-вторых, реализация разработанного параллельного алгоритма на соответствующем аппаратном обеспечении является не менее сложной задачей. Необходимо выбрать проблемно-ориентированный программный инструментарий, разработать параллельную программу, отладить ее в реальных условиях. Не исключено, что при этом полностью реализованная система может оказаться недостаточно эффективной, что может привести к повторной разработке. Таким образом, задача распараллеливания обработки даже для опытных программистов является нетривиальной, трудоемкой и требует больших временных затрат на ее решение.

Кроме того, зачастую программы разрабатываются не

квалифицированными программистами, а специалистами своей
предметной области, которым удобнее быстро реализовать алгоритм и
поручить его оптимизацию компьютеру. Таким образом, разработка
методов и средств создания программно-аппаратных платформ
параллельной обработки изображений и сигналов является

актуальной задачей.

Объектом исследования диссертационной работы является процесс распараллеливания обработки изображений и сигналов для различных классов многопроцессорных систем, а предметом исследования – методы и средства разработки параллельного программного обеспечения для обработки изображений и сигналов, снижающие сложность процесса распараллеливания для различных

типов многопроцессорных систем, задаваемых пользователем.

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

Для достижения поставленной цели в ходе диссертационной работы были решены следующие задачи.

1. Выполнена классификация функций обработки изображений и сигналов, многопроцессорных систем, а также применяемых подходов

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

  1. Сформулированы требования к разрабатываемым в диссертационной работе методам и средствам автоматизации распараллеливания обработки изображений и сигналов, ориентированных на использование прикладными специалистами.

  2. Выделены основные этапы автоматизированной разработки и проведена их формализация, определены инструментальные средства.

  3. Разработан подход к совместному проектированию аппаратной и программной составляющих целевой платформы для обработки изображений и сигналов по спецификациям прикладного специалиста и оценке эффективности получаемых при проектировании вариантов.

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

  5. Сформулирован набор характеристик и разработаны аналитическая и имитационная модели для оценки производительности вариантов предлагаемой разработчиком программно-аппаратной платформы обработки изображений и сигналов до ее непосредственной реализации.

  6. Разработан метод автоматизированного получения параллельного программного кода для последовательных функций обработки изображений или сигналов.

  7. Реализовано автоматическое выполнение созданного по новому подходу параллельного программного кода в виде множества взаимодействующих заданий под управлением системы планирования на многопроцессорной платформе.

  8. Разработанная последовательность методов реализована в интегрированной среде разработки, проведено их внедрение в ряде практически значимых проектов и оценена эффективность полученных решений и адекватность разработанных моделей.

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

Научная новизна.

  1. Разработан новый метод автоматизированного создания параллельного программного обеспечения обработки изображений и сигналов для различных классов архитектур вычислительных средств.

  2. Разработаны аналитическая и имитационная модели предсказания производительности обработки изображений и сигналов по спецификациям параллельных алгоритмов и аппаратных платформ.

  3. Предложен новый подход совместного проектирования программной и аппаратной части программно-аппаратной платформы для обработки изображений и сигналов.

  4. Предложен набор основных параллельных алгоритмических структур, характерных для обработки изображений и сигналов.

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

Практическая значимость работы заключается в следующем:

разработан метод, позволяющий снизить требуемый уровень знаний разработчиков в области параллельного программного обеспечения и архитектуры вычислительных средств и исключающий большинство нетривиальных и рутинных этапов при создании параллельного программного обеспечения обработки изображений и сигналов, а также упрощающий проектирование и повышающий наглядность представления программ;

реализованы аналитическая и имитационная модели для предсказания производительности предлагаемых разработчиком вариантов программно-аппаратной платформы параллельной обработки изображений и сигналов;

разработаны и реализованы алгоритмы расширения последовательных функций по типу ПАС и архитектуре вычислительной системы, использование которых позволяет автоматически получить параллельный код функций;

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

Внедрение результатов работы. Теоретические и практические
результаты работы использовались при выполнении НИР по
направлению “Разработка архитектуры, системы управления и
программного обеспечения кластерной вычислительной системы” для
компании ЗАО “АСТ” и в работах по теме Объединенного института
ядерных исследований №02-0-1065-2007/2014 "Развитие

экспериментальной базы ОИЯИ для получения интенсивных пучков тяжелых ионов и поляризованных ядер”. Получены соответствующие акты о внедрении результатов диссертационной работы в ЗАО “АСТ” и ОИЯИ. Отдельные результаты и методы использовались при разработке комплекса обработки изображений печатных плат в ФГУП “Концерн “Системпром” и гранте РФФИ №09-07-00459-а.

Апробация. Основные результаты диссертационной работы
докладывались на следующих конференциях: научных сессиях МИФИ
в 2004-2008 годах (г. Москва), на 9-ой и 10-ой международной
конференции по компьютерным наукам и информационным
технологиям CSIT (Башкортостан в 2007 г., г. Анталия в 2008 г.), на 7-
ой международной научно-практической конференции

"Исследование, разработка и применение высоких технологий в промышленности” (г. Санкт-Петербург, 2009 г.), на 53-ей научной конференции МФТИ “Современные проблемы фундаментальных и прикладных наук” (г. Москва, 2010 г.), на международной научной конференции “Математическое моделирование и вычислительная физика” ММСР (г. Дубна, 2013 г.).

Публикация результатов. По основным положениям диссертационной работы опубликовано 17 печатных работ, из них 3 -в изданиях, рекомендованных ВАК, и 1 работа в журнале, входящем в базу цитирования Scopus.

Основные положения работы, выносимые на защиту:

  1. метод автоматизированной разработки параллельного программного обеспечения для обработки изображений и сигналов на основе параллельных алгоритмических структур;

  2. метод совместного проектирования аппаратной и программной составляющих целевой платформы для параллельной обработки

изображений и сигналов по спецификациям прикладного специалиста и оценке эффективности получаемых при проектировании вариантов;

  1. расширяемый набор основных параллельных алгоритмических структур, характерных для обработки изображений и сигналов;

  2. аналитическая и имитационная модели предсказания производительности предлагаемых вариантов программно-аппаратной платформы параллельной обработки изображений и сигналов;

  3. метод автоматизированного получения параллельного кода для последовательных функций обработки изображений и сигналов по типу ПАС и архитектуре вычислительной системы;

  4. структура среды разработки для создания параллельного программного обеспечения обработки изображений и сигналов;

  5. результаты внедрения методов и среды разработки диссертационной работы, сравнение модельных и практических значений характеристик параллельной обработки.

Личный вклад автора. Основные научные результаты получены автором лично.

Структура и объем работы. Диссертационная работа включает введение, четыре главы, заключение, список литературы и пять приложений. Общий объем работы 138 страниц машинописного текста (без учета приложений). Работа содержит 60 рисунков, 3 таблицы и 84 наименования библиографии.

Локальные операции

При обработке и анализе изображений и сигналов параллелизм имеет особое значение, так как появляется возможность решать нетривиальные задачи за приемлемое время. Многие операции обладают высокой локальностью данных, что позволяет успешно использовать параллелизм по данным при обработке на многопроцессорных системах. Сегодня параллельные вычислительные машины используются повсеместно и становятся всё доступнее. При современной тенденции к применению многопроцессорных систем и многоядерных процессоров реализация параллельного программного обеспечения обработки изображений и сигналов даёт существенный скачок как в производительности обработки и анализа в целом, так и позволяет, например, различным фото, видео и телекоммуникационным системам функционировать в режиме реального времени. В связи с этим целесообразно создание простых и наглядных методов разработки параллельного программного обеспечения.

Вместе с тем в области параллельных вычислений крайне важным является снижение требований к знаниям разработчиков, которым необходимо помимо владения низкоуровневым параллельным программированием, знание большого числа алгоритмов распараллеливания и специализированных библиотек. Реализация системы параллельной обработки данных – нетривиальная задача, которая содержит в себе две основные проблемы. Во-первых, для исходного алгоритма требуется спроектировать параллельный вариант, что отнимает много времени и усилий, которые затрачиваются не просто на разработку параллельного алгоритма, но и на прогнозирование ускорения на целевой аппаратной платформе. Во-вторых, реализация разработанного параллельного алгоритма на соответствую 7 щем аппаратном обеспечении является не менее сложной задачей. Необходимо выбрать проблемно-ориентированный программный инструментарий, разработать параллельную программу, отладить её в реальных условиях. Не исключено, что при этом полностью реализованная система может оказаться недостаточно эффективной и, следовательно, требовать ряда изменений. В некоторых случаях такая корректировка ведёт к повторной разработке параллельной системы. Более того, для распараллеливания функции схожей с той, что уже была распараллелена, приходится заново проходить этапы разработки программного обеспечения. Если учесть, что в данной области функции предобработки исчисляются сотнями, то решение задачи распараллеливания всех функций для различных программных и аппаратных платформ представляется невозможным.

Таким образом, задача распараллеливания обработки изображений или сигналов является нетривиальной, трудоёмкой и требует больших временных затрат на её решение. На первый план выходит предмет исследования диссертационной работы – методы и средства разработки параллельного программного обеспечения для обработки изображений и сигналов, снижающие сложность процесса распараллеливания для различных типов многопроцессорных систем, задаваемых пользователем. Задача становится особенно актуальной из-за повсеместного использования многоядерных процессоров, руководители ведущих IT-компаний заявляют о необходимости прорыва в этой области [78]. Для того чтобы эффективно использовать многоядерность современных систем необходима разработка новых вычислительных методов и программного обеспечения. Таким образом, разработка методов и средств создания программно-аппаратных платформ параллельной обработки изображений и сигналов является актуальной задачей.

В процессе развития программирования уровень абстракции неуклонно повышается, появляются концепции, оптимизирующие работу программиста и упрощающие разработку, такие как: модульность, объектно-ориентированное программирование, паттерны проектирования. В отличие от последовательного, традиционными средствами параллельного программирования всё ещё остаются низкоуровневые инструменты. Обычно за преимущества высокоуровневого программирования приходится платить некоторым снижением производительности программы. Действительно, опытный программист, владеющий инструментом, может написать высокоэффективную реализацию алгоритма. Однако зачастую программы разрабатываются не опытными программистами, а прикладными специалистами своей предметной области, которым удобнее быстро реализовать алгоритм и поручить его оптимизацию компьютеру. Кроме того, суммарное время до получения результата можно сократить, создавая быстро, возможно, не самую эффективную реализацию, а потери могут компенсироваться глобальной оптимизацией алгоритма и переносимостью, в случае, многократного использования [37].

Таким образом, автоматизировать деятельность разработчика для многопроцессорных систем возможно за счёт использования высокоуровневых алгоритмических абстракций, таких как представление алгоритма в виде графа [68] или использование готовых параллельных блоков и типовых алгоритмических структур. Именно это направление (а также направление автоматизированного распараллеливания за счёт анализа исходных кодов) является на сегодняшний день одним из наиболее перспективных в сфере автоматизации программирования для параллельных архитектур.

Разработка набора параллельных алгоритмических структур

Существующие решения не позволяют одновременно проектировать программную часть и аппаратную архитектуру, на которой она будет исполняться, что может привести к низкой эффективности полученного программного обеспечения на конечной платформе. Очевидно, что различные аппаратные устройства и их характеристики по-разному влияют на функционирование программ в многопроцессорной среде. Параллельная алгоритмическая структура может успешно применяться на одной аппаратной платформе и показывать крайне малое ускорение на другой. В связи с этим, взаимосвязь на всех этапах разработки аппаратной архитектуры и функциональной цепочки функций обработки изображений или сигналов является новым подходом, который позволяет на всех шагах контролировать и автоматизировать деятельность разработчика.

Аппаратная платформа должна представляться как множество соединённых друг с другом компонент, а именно: вычислительной сети, состоящей из вычислительных узлов; хранилищ данных; сетевой инфраструктуры. Для полного анализа конфигурации системы необходимо описывать её и на уровне сети, и на уровне иерархии компонент. Таким образом, разработчику нужно задать схему аппаратной части со всеми значимыми в данной области компонентами и характеристиками в удобном виде для разработки и использования. Инструмент построения схемы должен быть пригоден для различных типов параллельных компьютеров и позволять легко менять количество, состав и характеристики аппаратных средств в соответствии с изменяющейся архитектурой.

Существуют множество способов описания конфигурации аппаратной платформы, начиная от самого простого, но сложного для программного разбора, – текстового представления, и заканчивая довольно специализированными и сложными, например, представлением в виде графа. Преимущества бинарного файла заключается в компактности хранения, но сложность чтения и редактирования пользователем не позволяет сделать его выбор в данном случае. Жёсткая структура INI-файла ограничивает его использование, несмотря на удобство его чтения и редактирования. Преимущества базы данных – быстрота доступа и неограниченность объёма, наличие средств построения сложных запросов и программного доступа. Однако необходимость установки дополнительного программного обеспечения и избыточность функциональности не позволили выбрать её как инструмент описания программно-аппаратной платформы.

В результате анализа существующих вариантов выбран подход, при котором разработчик задаёт схемы систем в виде блоков графических обозначений компонент, описываемых на языке XML. Причинами выбора XML стали возможность программной верификации и разбора, удобство чтения и редактирования, а также наличие средств построения сложных запросов.

При задании схемы должен предлагаться набор аппаратных устройств многопроцессорной системы, таких как: вычислительный узел, хранилище данных, коммутаторы и связи различных типов сетей: Ethernet, Fibre Channel, Infiniband и другие. В случае многоуровневого набора добавляются устройства различных уровней, такие как: SMP или MPP машина, центральный и графический процессор, ядро, шина памяти, – а схема задаётся иерархически. На более низком уровне определяются подкомпоненты и коммуникационная среда. Например, для вычислительного узла задаются процессоры и организация памяти, для процессора – ядра и кэш с соответствующими характеристиками.

Очевидно, что задание аппаратной схемы больших вычислительных систем (например, сотни ядер) в виде графических обозначений является сложным. Данная проблема решается двумя способами: проводится описание таких систем напрямую в XML-файле, либо производится укрупнение в SMP и MPP машины.

Для описания схемы планируемой аппаратной платформы сформирован список основных аппаратных компонент с атрибутами: 1) Вычислительный узел: наименование, количество логических процессоров, объём оперативной памяти, объём внешней памяти, скорость чтения/записи внешней памяти, реальная пропускная способность сетевого интерфейса. 2) Хранилище данных: наименование, объём системы хранения, скорость чтения/записи данных, реальная пропускная способность сетевого интерфейса. 3) Коммутатор, концентратор, маршрутизатор: наименование, тип сети, реальная пропускная способность, количество портов вход/выход. 4) Соединительная связь: тип сети, реальная пропускная способность.

Список аппаратных компонент и атрибутов не статичен, они могут быть дополнены новыми элементами для уточнения описания целевой платформы. Цепочка функций обработки изображений или сигналов составляется из связанных блоков, содержащих характерные свойства. Связи между операциями односторонние, выход функции обработки является входом следующему блоку операции (кроме последнего). Предложены следующие характеристики функционального блока обработки: название функции, время последовательного выполнения, тип параллельной алгоритмической структуры, свойства выбранной ПАС (размер данных, число ступеней конвейера и другие).

Реализация подсистемы моделирования параллельной обработки данных на заданной аппаратной платформе

Для установления связи между элементами, представляющей коммуникационную среду в случае аппаратной схемы и передачу результатов по цепочке в случае функциональной схемы, созданы классы Connector и Connection. Для обрамления используются классы RubberbanAdorner, ConnectorAdorner, Connection-Adorner. Коммуникационная связь определяется следующими свойствами: типом соединительной среды и реальной пропускной способностью.

После задания схемы аппаратной платформы, списка функций обработки данных и выбора соответствующих параллельных алгоритмических структур, следующие этапы должны быть автоматизированы и требовать минимального участия разработчика. Прежде всего, необходимо определить, будет ли выигрыш от распараллеливания операций при помощи выбранных ПАС на заданной аппаратной системе, поэтому на следующем этапе были реализованы модели программно-аппаратных платформ для обработки изображений и сигналов.

В ходе диссертационной работы реализованы два метода предсказания производительности: аналитический подход и имитационное моделирование. Аналитическое моделирование проводится по формулам, полученным в разделе 2.4.2, в соответствии со схемой аппаратной платформы и типом параллельных алгоритмических структур, выбранных для функций обработки изображений или сигналов. На рисунке 3.8 и 3.9 приведён пример аппаратной платформы и распараллеливаемой функции для предсказания производительности параллельной системы. Модельный эксперимент содержит три вычислительных узла, соединённых по сети Ethernet между собой и с хранилищем данных посредством маршрутизатора. Рис. 3.8. Пример аппаратной платформы для расчёта модели обработки данных В примере используются следующие параметры компонент: 1. Вычислительные узлы: один процессор; объём оперативной памяти – 2 ГБ; объём жесткого диска – 320 ГБ; средняя скорость чтения/записи данных – 50 МБ/с; реальная пропускная способность сетевого контроллера – 80 Мб/с. 2. Маршрутизатор: тип сети – Ethernet; реальная пропускная способность – 80 Мб/с; число портов – 8. 3. Хранилище данных: объём доступного дискового пространства – 640 ГБ; средняя скорость чтения/записи – 5 мс; реальная пропускная способность сетевого интерфейса – 80 Мб/с. 4. Сетевое соединение: тип – Ethernet; реальная пропускная способность – 80 Мб/с. 5. Функция FFT: время обработки – 100 с; объём обрабатываемых данных – 200 МБ; тип параллельной структуры – точечный алгоритм. Рис. 3.9. Пример распараллеливаемой функции для расчёта модели Для ввода вспомогательных параметров модели разработан диалог класса RunModel, в котором выбирается имя источника данных. Для хранения и вывода результата моделирования на экран создана структура ResultModel, содержащая величины ускорения, эффективности и оценку масштабируемости. Для рассматриваемого примера получены следующие значения характеристик: ускорение равно 1.94 и монотонно возрастает с увеличением числа вычислительных узлов, эффективность равна 0.65.

Имитационное моделирование программно-аппаратной платформы параллельной обработки реализовано в соответствии с моделью, разработанной в разделе 2.4.3, при помощи системы сетевого моделирования OMNET++.

Модель заданной программно-аппаратной системы формируется из набора моделей отдельных компонент. Компонентам аппаратной схемы сопоставляются разработанные модели соответствующих устройств: вычислительному узлу и хранилищу данных – модуль ComputeNode (модуль StandardHost, дополненный моделью ресурсов вычислительного узла), концентратору и коммутатору – EtherSwitch, маршрутизатору – Router. Сетевые соединения реализованы классом Channel. Для имитации обработки и передачи данных в соответствии с выбранной алгоритмической структурой используются модели сетевого приложения TCPBasicClientApp и TCPGenericSrvApp. Размеры данных и времена задаются ве 85 роятностной характеристикой с нормальным распределением и среднеквадратичным отклонением 3% от заданной величины. Для усреднения полученных характеристик работа системы моделируется для трёх проходов цепочки функций.

Модель, состоящая из компонент, сопоставленных аппаратной и функциональной схеме, автоматически генерируется и сохраняется в файл с расширением NED. На рисунке 3.10 представлен пример автоматически полученной модели системы в графической среде OMNET++ IDE.

Пример сгенерированной модели программно-аппаратной платформы После генерации файлов среды OMNET++ запускается моделирование с получением статистических данных, в результате которого определяются следующие характеристики для оценки производительности программно-аппаратной платформы: время параллельной обработки данных, использующееся для расчёта ускорения и эффективности использования процессоров, и загрузка вычислительных узлов многопроцессорной системы.

В рассматриваемом примере приложение каждого вычислительного узла считывает данные размером МБ с хранилища данных, обрабатывает и записы вает обратно результат такого же размера. Время обработки данных подсчитыва-ется для коэффициента K = T1 / n (0.5 с/МБ). В результате имитационного модели 86 рования примера были получены следующие характеристики: время параллельной обработки – 54 секунды (ускорение – 1.85, эффективность – 0.62), загрузка вычислительных узлов – около 80%, загрузка хранилища данных – 9%.

Для автоматизированной генерации параллельного исходного и исполняемого кода для цепочки функций обработки изображений и сигналов была реализована соответствующая подсистема в среде визуальной разработки. Данный этап проводится после того, как разработчик в результате моделирования определил, что система отвечает поставленным требованиям производительности.

Для связывания последовательного исходного кода распараллеливаемой функции с блоками выбранной алгоритмической структуры, представленными в поле свойств, используется текстовый редактор, который подключается к среде в виде динамически подключаемой библиотеки. Реализована поддержка ряда вспомогательных функций для набора языков программирования, например, C++, C#, HTML, Java. На рисунке 3.11 представлен разработанный класс текстового редактора Editor.

Распараллеливание функций библиотеки обработки изображений ipplab msco

Диссертационная работа посвящена созданию метода автоматизированной разработки параллельного программного обеспечения обработки изображений и сигналов, обеспечивающего быстрое и понятное для прикладного специалиста получение программных решений для заданной им многопроцессорной системы и снижающего требования к знаниям разработчика в области параллельного программирования и аппаратных архитектур. Также рассматривается реализация метода в проблемно-ориентированной среде визуального программирования для проведения этапов разработки параллельного программного обеспечения в одном интегрированном комплексе. Основные результаты диссертационной работы:

1) Предложена классификация операций обработки изображений и сигналов, позволяющая для каждого класса функций определить свои параллельные алгоритмические структуры. Приведена классификация параллельных архитектур и соответствующих им моделей программирования, используемых в новом подходе.

2) Разработан новый метод автоматизированного создания параллельного программного обеспечения, подробно представлены его этапы, предложены и обоснованы варианты их реализации, описаны компоненты и их расширения. Разработан подход к совместному проектированию аппаратной и программной составляющих целевой платформы по спецификациям прикладного специалиста и оценке эффективности получаемых при проектировании вариантов.

3) Разработан основной, но расширяемый набор параллельных алгоритмических структур, в соответствии с которыми происходит моделирование и автоматизированное распараллеливание функций обработки изображений и сигналов.

4) Сформулирован набор оценочных характеристик и разработаны аналитическая и имитационная модели для предсказания производительности вариантов предлагаемой разработчиком программно-аппаратной платформы. Использование разработанных методов и средств для решения задач параллельной обработки изображений и сигналов подтверждает адекватность разработанных моделей.

Максимальное отклонение результатов моделирования от практических значений составило 14 и 12 процентов для аналитической и имитационной модели соответственно.

5) Разработан метод автоматизированного получения параллельного программного кода для последовательных функций обработки изображений или сигналов в соответствии с выбранными параллельными алгоритмическими структурами и типом аппаратной архитектуры.

6) Разработан подход автоматизированного выполнения полученного параллельного программного кода в виде множества взаимодействующих заданий под управлением системы планирования на многопроцессорной платформе.

7) Новый метод разработки реализован в проблемно-ориентированной среде визуального программирования, позволяющей провести все этапы создания параллельного программного обеспечения в одной интегрированной системе. Среда использует модульный подход, позволяющий добавлять новые модули для поддержки других языков программирования, новые аппаратные компоненты и параллельные алгоритмические структуры.

8) Разработанный метод и среда визуального программирования могут применяться не только для автоматизированного распараллеливания обработки изображений и сигналов, но в данной области они имеют особое значение, так как около 70-80 процентов функций соответствуют точечному и локальному параллельному алгоритму.

9) В ходе практического использования новый метод позволил выбрать для закупки оптимальную аппаратную платформу, избежав при этом нецелесообразных расходов, определить узкие места многопроцессорной системы, в короткие сроки разработать параллельное программное обеспечение, ускоряющее обработку цифровых изображений и сигналов. 10) Результаты диссертационной работы внедрены в компании ЗАО “АСТ” по направлению “Разработка архитектуры, системы управления и программного ядерных исследований по теме "Развитие экспериментальной базы ОИЯИ для получения интенсивных пучков тяжёлых ионов и поляризованных ядер” [20,25], в которых получены акты о внедрении. Разработанные методы и средства также использовались в работе по гранту РФФИ №09-07-00459-а [24]. Таким образом, цель диссертационной работы достигнута.

Похожие диссертации на Методы и средства разработки параллельного программного обеспечения обработки изображений и сигналов