Методы и средства разработки параллельного программного обеспечения обработки изображений и сигналов тема диссертации и автореферата по ВАК РФ 05.13.11, кандидат наук Герценбергер, Константин Викторович
- Специальность ВАК РФ05.13.11
- Количество страниц 162
Оглавление диссертации кандидат наук Герценбергер, Константин Викторович
Оглавление
Введение
1. Обзор методов и средств распараллеливания обработки изображений и сигналов для многопроцессорных систем
1.1. Классификация функций обработки изображений и сигналов с точки
зрения параллельного исполнения
1.1.1. Точечные операции
1.1.2. Локальные операции
1.1.3. Глобальные операции
1.2. Выбор парадигмы программирования в зависимости от типа
параллельной вычислительной системы
1.3. Обзор традиционных методов распараллеливания обработки изображений и сигналов
1.3.1. Использование библиотек работы с потоками
1.3.2. Коммуникационные средства
1.3.3. Параллельные конструкции высокоуровневых языков программирования
1.3.4. Параллельные языки программирования
1.3.5. Распараллеливающие компиляторы
1.4. Обзор существующих решений обработки данных, использующих параллельные алгоритмические структуры
1.5. Выводы
2. Разработка метода автоматизированного создания параллельного программного обеспечения для обработки изображений и сигналов
2.1. Формализация нового метода разработки
2.2. Проектирование аппаратной и программной части целевой платформы
2.3. Разработка набора параллельных алгоритмических структур
2.4. Разработка моделей предсказания производительности
параллельных программно-аппаратных платформ
2.4.1. Выбор характеристик для оценки параллельной обработки изображений и сигналов
2.4.2. Разработка аналитической модели исполнения параллельных алгоритмов для разных типов параллельных систем
2.4.3. Разработка имитационной модели исполнения параллельных алгоритмов для распределённых систем
2.5. Разработка алгоритмов автоматизированного получения
параллельного кода функций обработки данных
2.6. Требования к системе планирования при обработке изображений и сигналов на параллельной архитектуре
2.7. Выводы
3. Реализация среды визуального программирования для разработки параллельного программного обеспечения
3.1. Реализация интерфейса системы, задание аппаратной и функциональной схемы
3.2. Реализация подсистемы моделирования параллельной обработки данных на заданной аппаратной платформе
3.3. Реализация подсистемы автоматизированной генерации параллельного программного обеспечения
3.4. Реализация подсистемы запуска обработки изображений и сигналов на многопроцессорной системе
3.5. Преимущества и ограничения разработанной проблемно-ориентированной среды визуального программирования
3.6. Выводы
4. Использование нового метода и разработанной системы для параллельной обработки изображений и сигналов
4.1. Применение метода для верификации изображений печатных плат
на многоядерных процессорах
4.2. Распараллеливание функций библиотеки обработки изображений IPPLab MSCo
4.3. Использование нового метода для распараллеливания цифровых фильтров сигналов на кластерной системе для ЗАО "ACT"
4.4. Выводы
Заключение
Литература
Приложения
Приложение 1. Акты о внедрении
Приложение 2. Графики зависимости ускорения от числа
вычислительных элементов для аналитической модели
Приложение 3. Алгоритмы инкрементного распараллеливания при
генерации параллельного кода для набора ПАС
Приложение 4. Грамматика ANTLR для разбора языка С++
Приложение 5. Сгенерированный параллельный исходный код функции FFT
Рекомендованный список диссертаций по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК
Математическое и программное обеспечение распределения данных в проблемно-ориентированных параллельных программах2014 год, кандидат наук Палагин, Владимир Владимирович
Математическое и программное обеспечение систем автоматизации проектирования цифровых систем обработки сигналов2013 год, кандидат наук Андреев, Валерий Сергеевич
Разработка и анализ программно-алгоритмических средств высокоскоростной обработки графической информации и управления в бортовых приборах визуализации изображений2009 год, кандидат технических наук Милов, Алексей Николаевич
Вычислительные устройства с параллельной и изменяемой архитектурой для задач обработки изображения2002 год, кандидат технических наук Аряшев, Сергей Иванович
Разработка технологии высокопроизводительной обработки аэрокосмических изображений методом параллельных вычислений2004 год, кандидат технических наук Кочнова, Ирина Владимировна
Введение диссертации (часть автореферата) на тему «Методы и средства разработки параллельного программного обеспечения обработки изображений и сигналов»
Введение
Обработка и анализ изображений и сигналов с помощью компьютера представляется задачей первостепенной важности во многих областях. К задачам обработки изображений относятся и визуализация, и оценка параметров объектов изображения, и автономное управление объектами, и особо сложный раздел распознавания образов, пересекающийся с областью искусственного интеллекта. Процесс анализа такой информации компьютером зачастую сложен, требует больших вычислительных мощностей и с трудом поддаётся формализации.
Цифровая обработка сигналов зародилась в 1950-х годах и к настоящему времени стала неотъемлемой частью жизни. Бурное развитие цифровых технологий привело к тому, что эти задачи являются крайне актуальными на сегодняшний день. Сюда относят развитие обработки данных на процессорных системах, обработку звука, решения в телекоммуникационной сфере, и даже методы шифрования. Изображения, по сути, являются сигналами со специфичными характеристиками. В этих областях большой набор задач требует решения в режиме реального времени, другие - обработки больших объёмов данных за короткий срок.
Отличительной особенностью обработки и анализа изображений и сигналов является то, что они базируются на общем наборе функций, называемых функциями предобработки. Помимо функций предобработки зачастую используют ряд широко применяемых фильтров и преобразований, например, быстрое преобразование Фурье. Ограниченный набор основных функций обработки и анализа сигналов и изображений позволяет свести задачу распараллеливания к использованию ограниченного набора параллельных алгоритмов.
Параллельные вычислительные комплексы, при правильном использовании, позволяют добиться существенного прироста производительности, делают возможными более детализированные расчёты, построение более сложных моделей, осуществление расчёта в режиме реального времени. Но параллелизм вносит ряд трудностей - выявление возможности декомпозиции задачи на независимые подзадачи является делом трудным и зачастую творческим [37]. Параллельное про-
граммирование, наследуя все сложности последовательного, добавляет немало новых: организация параллельной структуры программы и обмена данными между параллельными процессами, синхронизация вычислений и доступа к ресурсам, сложности отладки параллельных программ [63]. Объектом исследования диссертационной работы является процесс распараллеливания обработки и анализа изображений и сигналов для различных типов многопроцессорных систем.
При обработке и анализе изображений и сигналов параллелизм имеет особое значение, так как появляется возможность решать нетривиальные задачи за приемлемое время. Многие операции обладают высокой локальностью данных, что позволяет успешно использовать параллелизм по данным при обработке на многопроцессорных системах. Сегодня параллельные вычислительные машины используются повсеместно и становятся всё доступнее. При современной тенденции к применению многопроцессорных систем и многоядерных процессоров реализация параллельного программного обеспечения обработки изображений и сигналов даёт существенный скачок как в производительности обработки и анализа в целом, так и позволяет, например, различным фото, видео и телекоммуникационным системам функционировать в режиме реального времени. В связи с этим целесообразно создание простых и наглядных методов разработки параллельного программного обеспечения.
Вместе с тем в области параллельных вычислений крайне важным является снижение требований к знаниям разработчиков, которым необходимо помимо владения низкоуровневым параллельным программированием, знание большого числа алгоритмов распараллеливания и специализированных библиотек. Реализация системы параллельной обработки данных - нетривиальная задача, которая содержит в себе две основные проблемы. Во-первых, для исходного алгоритма требуется спроектировать параллельный вариант, что отнимает много времени и усилий, которые затрачиваются не просто на разработку параллельного алгоритма, но и на прогнозирование ускорения на целевой аппаратной платформе. Во-вторых, реализация разработанного параллельного алгоритма на соответствую-
щем аппаратном обеспечении является не менее сложной задачей. Необходимо выбрать проблемно-ориентированный программный инструментарий, разработать параллельную программу, отладить её в реальных условиях. Не исключено, что при этом полностью реализованная система может оказаться недостаточно эффективной и, следовательно, требовать ряда изменений. В некоторых случаях такая корректировка ведёт к повторной разработке параллельной системы. Более того, для распараллеливания функции схожей с той, что уже была распараллелена, приходится заново проходить этапы разработки программного обеспечения. Если учесть, что в данной области функции предобработки исчисляются сотнями, то решение задачи распараллеливания всех функций для различных программных и аппаратных платформ представляется невозможным.
Таким образом, задача распараллеливания обработки изображений или сигналов является нетривиальной, трудоёмкой и требует больших временных затрат на её решение. На первый план выходит предмет исследования диссертационной работы - методы и средства разработки параллельного программного обеспечения для обработки изображений и сигналов, снижающие сложность процесса распараллеливания для различных типов многопроцессорных систем, задаваемых пользователем. Задача становится особенно актуальной из-за повсеместного использования многоядерных процессоров, руководители ведущих 1Т-компаний заявляют о необходимости прорыва в этой области [78]. Для того чтобы эффективно использовать многоядерность современных систем необходима разработка новых вычислительных методов и программного обеспечения. Таким образом, разработка методов и средств создания программно-аппаратных платформ параллельной обработки изображений и сигналов является актуальной задачей.
В процессе развития программирования уровень абстракции неуклонно повышается, появляются концепции, оптимизирующие работу программиста и упрощающие разработку, такие как: модульность, объектно-ориентированное программирование, паттерны проектирования. В отличие от последовательного, традиционными средствами параллельного программирования всё ещё остаются
низкоуровневые инструменты. Обычно за преимущества высокоуровневого программирования приходится платить некоторым снижением производительности программы. Действительно, опытный программист, владеющий инструментом, может написать высокоэффективную реализацию алгоритма. Однако зачастую программы разрабатываются не опытными программистами, а прикладными специалистами своей предметной области, которым удобнее быстро реализовать алгоритм и поручить его оптимизацию компьютеру. Кроме того, суммарное время до получения результата можно сократить, создавая быстро, возможно, не самую эффективную реализацию, а потери могут компенсироваться глобальной оптимизацией алгоритма и переносимостью, в случае, многократного использования [37].
Таким образом, автоматизировать деятельность разработчика для многопроцессорных систем возможно за счёт использования высокоуровневых алгоритмических абстракций, таких как представление алгоритма в виде графа [68] или использование готовых параллельных блоков и типовых алгоритмических структур. Именно это направление (а также направление автоматизированного распараллеливания за счёт анализа исходных кодов) является на сегодняшний день одним из наиболее перспективных в сфере автоматизации программирования для параллельных архитектур.
Подход, разработанный в диссертационной работе, в качестве основы использует высокоуровневые абстракции: параллельные алгоритмические структуры (ПАС), - и существенно отличается от традиционного "низкоуровневого" подхода к разработке параллельного программного обеспечения. Параллельная алгоритмическая структура — это высокоуровневая полиморфная (параметризуемая) структура, представляющая общий алгоритм параллельной обработки данных. Разработанный подход существенно расширяет существующие подходы на ПАС как в теоретическом, так и практическом плане.
Разработчик программно-аппаратной платформы, используя методы диссертационной работы, уходит от наукоёмкой разработки параллельного алгоритма, проблемы выбора инструмента распараллеливания, написания параллельного
кода, сложного запуска на целевой системе. Кроме того, проектирование параллельного программного обеспечения производится совместно с проектированием параллельной аппаратной части, на которой оно будет исполняться. Разработка алгоритмической части в новой методе производится методом нисходящего проектирования, а не восходящего, как в существующих реализациях на ПАС, что повышает наглядность. Предложенные модели прогнозирования производительности будущей программно-аппаратной платформы позволяют избежать затрат на разработку неэффективного конечного продукта, а полученные оценки характеристик параллельной обработки позволяют скорректировать схему многопроцессорной системы до реализации, выбрать и заранее оценить алгоритм распараллеливания для рассматриваемых функций. Для демонстрации подхода диссертационной работы была реализована среда визуальной разработки параллельного программного обеспечения для обработки изображений и сигналов.
Таким образом, целью работы является создание методов и средств автоматизированной разработки параллельного программного обеспечения для обработки изображений и сигналов, обеспечивающих быстрое и понятное для прикладного специалиста получение программных решений для заданной им многопроцессорной системы и снижающих требования к знаниям в области параллельного программирования и аппаратных архитектур.
Для достижения поставленной цели в ходе диссертационной работы были решены следующие задачи.
1. Выполнена классификация функций обработки изображений и сигналов, многопроцессорных систем, а также применяемых подходов к разработке параллельного программного обеспечения с выделением их ограничений.
2. Сформулированы требования к разрабатываемым в диссертационной работе методам и средствам автоматизации распараллеливания обработки изображений и сигналов, ориентированных на использование прикладными специалистами.
3. Выделены основные этапы автоматизированной разработки и проведена их формализация, определены инструментальные средства.
4. Разработан подход к совместному проектированию аппаратной и программной составляющих целевой платформы для обработки изображений и сигналов по спецификациям прикладного специалиста и оценке эффективности получаемых в процессе проектирования вариантов.
5. Определён основной набор параллельных алгоритмических структур для обработки изображений и сигналов, представляющих собой типовые алгоритмы параллельных вычислений и доступа к данным, включая общую схему организации параллельных процессов, шаблоны и типы взаимодействия.
6. Сформулирован набор характеристик и разработаны аналитическая и имитационная модели для оценки производительности вариантов предлагаемой пользователем программно-аппаратной платформы обработки изображений и сигналов до её непосредственной реализации.
7. Разработан метод автоматизированного получения параллельного программного кода для последовательных функций обработки изображений и сигналов.
8. Реализовано автоматическое выполнение созданного по новому подходу параллельного программного кода в виде множества взаимодействующих заданий под управлением системы планирования на многопроцессорной платформе.
9. Разработанная последовательность методов реализована в интегрированной среде разработки, проведено их внедрение в ряде практически значимых проектов и оценена эффективность полученных решений и адекватность разработанных моделей.
В ходе диссертационной работы использовались следующие методы исследований: теория цифровой обработки изображений и сигналов, методы параллельного программирования, методы моделирования, теория языков программирования и архитектур вычислительных систем.
Научная новизна работы заключается в том, что:
1. Разработан новый метод автоматизированного создания параллельного программного обеспечения обработки изображений и сигналов для различных классов архитектур вычислительных средств.
2. Разработаны аналитическая и имитационная модели предсказания производительности обработки изображений и сигналов по спецификациям параллельных алгоритмов и аппаратных платформ.
3. Предложен новый подход совместного проектирования программной и аппаратной части программно-аппаратной платформы для обработки изображений и сигналов.
4. Предложен набор основных параллельных алгоритмических структур, характерных для обработки изображений и сигналов.
Практическая ценность результатов состоит в следующем:
• разработан метод, позволяющий снизить требуемый уровень знаний разработчиков в области параллельного программного обеспечения и архитектуры вычислительных средств и исключающий большинство нетривиальных и рутинных этапов при создании параллельного программного обеспечения обработки изображений и сигналов, а также упрощающий проектирование и повышающий наглядность представления программ;
• реализованы аналитическая и имитационная модели для предсказания производительности предлагаемых разработчиком вариантов программно-аппаратной платформы параллельной обработки изображений и сигналов;
• разработаны и реализованы алгоритмы расширения последовательных функций по типу ПАС и архитектуре вычислительной системы, использование которых позволяет автоматически получить параллельный код;
• разработана среда визуального программирования для выполнения всех этапов создания параллельного программного обеспечения, проведена проверка адекватности моделей и применяемости методов и среды разработки на практике.
Основные положения, выносимые на защиту:
1. метод автоматизированной разработки параллельного программного обеспечения для обработки изображений и сигналов на основе ПАС;
2. метод совместного проектирования аппаратной и программной составляющих целевой платформы для параллельной обработки изображений и сигналов по
спецификациям прикладного специалиста и оценке эффективности получаемых при проектировании вариантов;
3. расширяемый набор основных параллельных алгоритмических структур, характерных для обработки изображений и сигналов;
4. аналитическая и имитационная модели предсказания производительности предлагаемых вариантов программно-аппаратной платформы параллельной обработки изображений и сигналов;
5. метод автоматизированного получения параллельного кода для последовательных функций обработки изображений и сигналов по типу ПАС и архитектуре вычислительной системы;
6. структура среды визуального программирования для создания параллельного программного обеспечения обработки изображений и сигналов;
7. результаты внедрения методов и среды разработки диссертационной работы, сравнение модельных и практических значений характеристик параллельной обработки.
Диссертационная работа содержит введение, четыре раздела, заключение и приложения. В первом разделе приводится классификация многопроцессорных систем и функций обработки изображений и сигналов, представлен обзор подходов к разработке параллельного программного обеспечения и перечислены средства распараллеливания. Также здесь представлены существующие инструменты, использующие, как и разработанный подход, параллельные алгоритмические структуры, выделены ограничения существующих подходов. Второй раздел подробно описывает новый метод разработки параллельного программного обеспечения и способы реализации каждого этапа. Предложен подход совместного проектирования аппаратной и программной части целевой системы. Рассмотрены характеристики производительности и масштабируемости распараллеливания, представлены разработанные модели оценки производительности планируемой параллельной программно-аппаратной платформы. Также представлены разработанные алгоритмы автоматизированного получения параллельного кода функций
обработки изображений и сигналов, способ интеграции с системой планирования и запуска на целевой архитектуре. В третьем разделе рассмотрена реализация интегрированной среды визуальной разработки параллельного программного обеспечения по новому методу, структура модулей и классы. Здесь также освещены аспекты разработанной системы моделирования параллельной программно-аппаратной платформы и генерации программного кода для заданной аппаратной архитектуры. В четвёртом разделе описано применение разработанных методов и средств для параллельной обработки изображений и сигналов, проведена практическая оценка характеристик распараллеливания и адекватности моделей. В конце пояснительной записки приводится заключение по диссертационной работе, список используемой литературы и приложения.
Результаты работы докладывались и обсуждались:
• на научных сессиях МИФИ в 2004-2008 годах в Москве;
• на 9-ой международной конференции по компьютерным наукам и информационным технологиям CSIT'2007 в республике Башкортостан в 2007 г.;
• на 10-ой международной конференции по компьютерным наукам и информационным технологиям CSIT'2008 в г. Анталия, Турция в 2008 г.;
• на 7-ой международной научно-практической конференции "Исследование, разработка и применение высоких технологий в промышленности" в г. Санкт-Петербург в 2009 г.;
• на 53-ей научной конференции МФТИ "Современные проблемы фундаментальных и прикладных наук" в г. Москва в 2010 г.;
• на международной научной конференции "Математическое моделирование и вычислительная физика" ММСР'2013 в г. Дубна в 2013 г.
Методы диссертационной работы прошли апробацию, практическое использование результатов подтверждено двумя актами о внедрении (приложение 1). По теме диссертационной работы опубликовано 17 печатных работ, из них 3 -в изданиях, рекомендованных ВАК, и 1 работа в журнале, входящем в базу цитирования Scopus.
1. Обзор методов и средств распараллеливания обработки изображений и сигналов для многопроцессорных систем
1.1. Классификация функций обработки изображений и сигналов с точки
зрения параллельного исполнения
Задачи обработки изображений и сигналов можно разбить на 3 основных иерархических уровня [53]:
• Обработка изображений и сигналов, в узком смысле предобработка. Она является базовым этапом, на основе которого строится дальнейшая работа. Входными данными операций являются массивы байт исходных изображений или сигналов. Выходными данными — массивы байт, подвергнувшиеся обработке.
• Анализ изображения или сигнала является более высокоуровневым этапом. Его цель - перевести изображение или сигнал в совокупность некоторых измеренных характеристик, на основе которых можно проводить выводы об изображении или сигнале и составляющих объектах.
• Процесс разбора изображения или сигнала может основываться, как на исходном представлении, так и на результатах, полученных в ходе обработки и анализа. Анализ и понимание изображения или сигнала зачастую оперируют некоторыми характеристиками, полученными на этапе предобработки, например, выделенными контурами.
При параллельном выполнении операций обработки изображений и сигналов основными характеристиками являются ускорение, масштабируемость и переносимость на разные платформы. Для параллельной обработки массива данных размером пиар идентичных процессорах можно рассчитать время параллельного исполнения функции по следующей формуле [73]:
Гр(п,р)=^ + Г0(п,р), (1.1)
где Тр - время параллельной обработки изображения или сигнала на р процессорах, Т\ — время последовательной обработки на одном процессоре, Т0 — время из-
держек на коммуникацию процессов, задержек синхронизации и выполнения не распараллеливаемой части алгоритма.
Из формулы (1.1) следует формула для ускорения 5 [67]:
5(п,р) = РТо(п,р) ■ (1.2)
Таким образом, при реализации параллельных систем зачастую можно столкнуться с низким ускорением, вызванным различными издержками, преимущественно: несбалансированностью аппаратных компонент, неоптимальной реализацией алгоритма, несоответствием алгоритма аппаратной платформе. Разработка параллельных алгоритмов, построение сбалансированных многопроцессорных систем, поиск проблем производительности является очень сложной задачей. В отличие от последовательных программ, где время исполнения определяется скоростью процессора и числом инструкций, производительность параллельной программно-аппаратной платформы зависит от множества дополнительных факторов, например, состязания за ресурсы и синхронизации.
К счастью, поведение функций обработки изображений и сигналов обладает высокой степенью схожести. Взяв за основу зависимость данных, операции обработки можно разделить на три категории по охвату соседних точек, при вычислении нового значения [73]:
1) Точечные операции. Значение точки на результирующем изображении или сигнале зависит от значения единственной точки на исходном объекте. Примерами таких операций являются логические и арифметические операторы для исходного объекта и константы или для двух объектов.
2) Локальные операции. В данном случае значение точки на результирующем изображении или сигнале зависит от значения точек из некоторой области в исходном объекте. Как правило, в качестве области используются соседние с точкой элементы, например, 4-х связное или 8-связное множество для изображения, или период для сигнала в алгоритмах свёртки и фильтрации.
3) Глобальные операции. Значение точек зависит от всего изображения или сигнала в целом. Главными операциями этого класса являются статистические операции и операции преобразования.
Возможность выделения операций обработки изображений и сигналов в три класса позволяет разработать алгоритмы параллельной обработки данных не для каждой операции, а для каждого класса в отдельности. Распараллеливание операций каждого из классов имеет свои особенности [23], поэтому в следующих подразделах они рассматриваются раздельно.
1.1.1. Точечные операции
Точечные операции представляют алгоритм для распараллеливания, соответствующий независимому по данным параллелизму (рисунок 1.1).
1 2
В
В
Рис. 1.1. Схема точечного алгоритма параллельной обработки Так как обработка каждой точки является независимой операцией, каждый процесс может вычислить новое значение независимо от других. Таким образом, распараллеливание таких операций сводится к распределению сегментов изображения или сигнала по процессам с их независимой последующей обработкой.
Для выполнения процессом своей части обработки изображение или сигнал делится на части. Для изображений существуют два основных метода разбиения [73]: разбиение на полосы и блочное разбиение. Если изображение состоит из N пикселей, то после разделения каждому из р процессоров предназначен сегмент
размером * ^ при разбиении по полосам или ^ * ^ в случае блочного разбиения.
1.1.2. Локальные операции
На рисунке 1.2 приведена схема параллельного алгоритма для локальных операций обработки изображений и сигналов:
1 2
В
О
Рис. 1.2. Схема локального алгоритма параллельной обработки Так как вычисление в таких операциях зависит от области вокруг очередной точки, то при обработке на границах области, выделенной процессу, требуются точки, принадлежащие соседнему сегменту другого процесса [83]. В этом случае, по процессам распределяются сегменты, включающие дополнительную гранич-
ную площадь с граничными точками соседних сегментов объекта. При таком способе локальная операция может быть выполнена каждым процессом независимо.
1.1.3. Глобальные операции
Распараллеливание глобальных операций существенно зависит от самой операции. В этом случае используются различные методы, такие как, например: итеративный параллелизм, взаимодействующие равные, производители и потребители, — и специальные средства коммуникации, такие как: широковещательная рассылка, сборка или полный обмен. В отдельной глобальной операции выбирается свой характерный метод распараллеливания [18]. Например, для параллельного вычисления глобальной гистограммы изображения каждый процесс считает локальную гистограмму своего сегмента. Результаты всех процессов затем собираются управляющим процессом и объединяются в глобальную гистограмму.
Точечные и локальные операции составляют около 70-80 процентов функций обработки изображений и сигналов (оценка проведена для функций набора программных пакетов: Adobe Photoshop, The GIMP, Corel PhotoPaint, Picasa и IP-PLab MSCo), поэтому использование в разработанном подходе двух параллельных алгоритмических структур, соответствующих алгоритмам распараллеливания для точечных (рис. 1.1) и локальных (рис. 1.2) операций, уже позволяет добиться автоматизированного распараллеливания для большинства функций обработки изображений и сигналов. Для распараллеливания глобальных операций используются другие параллельные алгоритмические структуры, такие как, например, параллельная редукция и конвейеризация, рассматриваемые далее.
Похожие диссертационные работы по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК
Методика и программные средства организации процесса обработки данных в многоканальной многопроцессорной системе цифровой обработки сигналов2008 год, кандидат технических наук Стручков, Игорь Вячеславович
Модели и алгоритмы организации мобильных параллельных вычислений в среде многоядерных процессоров2011 год, кандидат технических наук Бакулев, Александр Валериевич
Методы и алгоритмы повышения эффективности вычислительной системы с параллельной архитектурой на основе модулярных структур данных2015 год, кандидат наук Чернобровкин, Виталий Викторович
Автоматизация распараллеливания алгоритмов функционирования многопроцессорных систем2007 год, кандидат технических наук Новиков, Алексей Владимирович
Обработка данных на параллельных вычислительных комплексах2006 год, кандидат физико-математических наук Карпов, Андрей Николаевич
Список литературы диссертационного исследования кандидат наук Герценбергер, Константин Викторович, 2014 год
Литература
1. Антонов, А. С. Параллельное программирование с использованием технологии MPI : учеб. пособие / А. С. Антонов. - М. : Изд-во МГУ, 2004. - 71 с.
2. Антонов, А. С. Под законом Амдала / А. С. Антонов // Компьютерра. — 2002. -№ 5. - С. 24-27.
3. Афанасьев, К. Е. Многопроцессорные вычислительные системы и параллельное программирование [Электронный ресурс] / К. Е. Афанасьев [и др.]. -Электрон, текст, и граф. дан. - [Б. м.] : ЮНЕСКО, 2003. Режим доступа: http://oldunesco.kemsu.ru/mps/index.htm, свободный. - Загл. с экрана.
4. Ахо, А. В. Компиляторы: принципы, технологии и инструментарий / А. В. Ахо [и др.]. - 2-е изд. - М. : Вильяме, 2008. - 1184 с.
5. Баканов, В. М. Параллельные вычисления : учеб. пособие / В. М. Баканов. -М. : МГУПИ, 2006. - 124 с.
6. Берзигияров, П. К. Программирование на типовых алгоритмических структурах с массивным параллелизмом / П. К. Берзигияров // Вычислительные методы и программирование. — 2001. - Том 2. — С. 1—16.
7. Бирюков, П. Ю. Разработка системы автоматической обработки печатных плат / П. Ю. Бирюков, И. В. Богин, К. В. Герценбергер, А. И. Фирсов, Е. В. Чепин //Науч. сессия МИФИ-2004 : сб. науч. тр. -М. : МИФИ, 2004. - Т. 12. - С. 184-186.
8. Бирюков, П. Ю. Сопоставление образов с шаблоном в системе автоматической обработки изображения печатных плат / П. Ю. Бирюков, И. В. Богин, К. В. Герценбергер, А. И. Фирсов, Е. В. Чепин // Науч. сессия МИФИ-2005 : сб. науч. тр. - М. : МИФИ, 2005. - Т. 12. - С. 157-158.
9. Богданов, А. В. Архитектуры и топологии многопроцессорных вычислительных систем / А. В. Богданов [и др.]. - М. : Изд-во "Интернет-университет информационных технологий - ИНТУИТ.ру", 2004. - 176 с.
10. Богин, И. В. Разработка новой версии библиотеки обработки изображений IPPLabMSCO v.5.0 / И. В. Богин, Е. В. Чепин // Науч. сессия МИФИ-2005 : сб. науч. тр. в 15 т.-М. : МИФИ, 2005.-Т. 12.-С. 159-160.
11. Богин, И. В. Реализация параллельной обработки цифровых изображений для библиотеки IPPLab MSCo / И. В. Богин, К. В. Герценбергер, Е. В. Чепин // Науч. сессия МИФИ-2006 : сб. науч. тр. - М. : МИФИ, 2006. - Т. 12. - С. 139-140.
12. Брауде, Э. Технология разработки программного обеспечения / Э. Брауде. — СПб. : Питер, 2004. - 656 с.
13. Водяхо, А. И. Высокопроизводительные системы обработки данных : учеб. пособие для вузов / А. И. Водяхо, Н. Н. Горнец, Д. В. Пузанков. - М. : Высш. шк., 1997.-304 с.
14. Воеводин, В. В. Параллельные вычисления / В. В. Воеводин, Вл. В. Воеводин. - СПб. : БХВ-Петербург, 2002. - 608 с.
15. Гайдученко, А. Б. Библиотека цифровой фильтрации сигналов для реализации на вычислительном кластере / А. Б. Гайдученко, К. В. Герценбергер, И. И. Егоров, А. В. Прохоров, Е. В. Тестов, Е. В. Чепин // Науч. сессия МИФИ-2007 : сб. науч. тр.-М. :МИФИ, 2007.-Т. 12.-С. 150-151.
16. Гербер, Р. Начало работы с ОрепМР [Электронный ресурс] / Р. Гербер. — Электрон, текст, и граф. дан. - [Б. м.] : Intel® Software Network, 2009. Режим доступа: http://software.intel.com/ru-ru/articles/getting-started-with-openmp, свободный.
17. Гергель, В. П. Основы параллельных вычислений для многопроцессорных вычислительных систем : учеб. пособие / В. П. Гергель. — Нижний Новгород : Изд-во ННГУ им. Н.И. Лобачевского, 2003. - 184 с.
18. Гергель, В. П. Теория и практика параллельных вычислений / В. П. Гергель. - М. : Интернет-университет информационных технологий, 2007. - 423 с. - (Серия "Основы информационных технологий").
19. Герценбергер, К. В. Аналитическая модель оценки производительности многопроцессорной обработки данных для набора параллельных алгоритмических структур / К. В. Герценбергер, Е. В. Чепин // Бизнес-информатика : междисциплинарный научно-практический журнал. — 2011. - № 4 (18). - С. 24-30.
20. Герценбергер, К. В. Визуализация событий эксперимента MPD коллайдера NICA для системы мониторинга / К. В. Герценбергер, С. П. Мерц, Е. В. Чепин //
Научная визуализация. - 2014. - Том 6, № 1. - С. 1-19. - Режим доступа к журн.: http ://sv-j ournal. com/2014-1/.
21. Герценбергер, К. В. Имитационная модель оценки эффективности многопроцессорной обработки данных для параллельных алгоритмических структур / К. В. Герценбергер, Е. В. Чепин // Программные продукты и системы : международный журнал. - 2012. - № 2. - С. 117-120.
22. Герценбергер, К. В. Использование параллельных алгоритмических структур для автоматизации процесса разработки параллельного программного обеспечения / К. В. Герценбергер, Е.В. Чепин // Труды 53-й научной конференции МФТИ «Современные проблемы фундаментальных и прикладных наук». — М. : МФТИ, 2010. - Часть XI: Информационные бизнес системы. - С. 54-55.
23. Герценбергер, К. В. Методы параллельной обработки изображений и сигналов в зависимости от локальности вычислений / К. В. Герценбергер // Сб. тр. Седьмой международной научно-практической конференции "Исследование, разработка и применение высоких технологий в промышленности". — СПб. : Изд-во Политехи, ун-та, 2009. - Т. 2. - С. 49-50.
24. Герценбергер, К. В. Об аппаратно-программном комплексе для определения характеристик электромагнитных полей / К. В. Герценбергер, П. С. Сорокоумов, Е. В. Чепин // Труды 53-й научной конференции МФТИ «Современные проблемы фундаментальных и прикладных наук». - М. : МФТИ, 2010. - Часть XI: Информационные бизнес системы. - С. 56-57.
25. Герценбергер, К. В. Проектирование распределенного вычислительного комплекса для эксперимента MPD коллайдера NICA / К. В. Герценбергер // XVII Научная конференции молодых учёных и специалистов к 100-летию В. П. Джеле-пова. Труды конференции. - Дубна : ОИЯИ, 2013. - С. 188-192.
26. Герценбергер, К. В. Разработка программного комплекса параллельной обработки сигналов на кластерной системе / К. В. Герценбергер, С. Д. Горев, Е. В. Чепин // Науч. сессия МИФИ-2008 : сб. науч. тр. - М. : МИФИ, 2008. - Т. 12. -С. 125-126.
27. Герценбергер, К. В. Реализация параллельной фильтрации цифровых сигналов на кластерной системе / К. В. Герценбергер, Е. В. Чепин // Науч. сессия МИФИ-2007 : сб. науч. тр. - М. : МИФИ, 2007. - Т. 12. - С. 148-149.
28. Герценбергер, К. В. Среда визуального программирования для разработки параллельного программного обеспечения обработки изображений и сигналов / К. В. Герценбергер, А. А. Дюмин, П. С. Сорокоумов // Программные продукты и системы : международный журнал. -2013.-№ 2.-С. 208-213.
29. Герценбергер, К. В. Эффективность распараллеливания глобальных операций на кластерной системе / К. В. Герценбергер // Науч. сессия МИФИ-2008. - М. : МИФИ, 2008. - Т. 12. - С. 155-156.
30. Гетц, Б. Теория и практика Java: Часть 1. Разветвляемся [Электронный ресурс] / Б. Гетц. — Электрон, текст, и граф. дан. - [Б. м.] : developerWorks, 2008. Режим доступа: http://www.ibm.com/developerworks/ru/library/j-jtplll37, свободный. - Загл. с экрана.
31. Гладцын, В. А. Средства моделирования вычислительных сетей : учеб. пособие / В. А. Гладцын, В. В. Яновский. - СПб. : Изд-во СПбГЭТУ "ЛЭТИ", 2001. -128 с.
32. Гольденберг, Л. М. Цифровая обработка сигналов / Л. М. Гольденберг, Б. Д. Матюшкин, М. Н. Поляк. - М. : Радио и связь, 1990. - 256 с.
33. Гонсалес, Р. Цифровая обработка изображений / Р. Гонсалес, Р. М. Вудс. — М. : Техносфера, 2005. - 1072 с.
34. Городняя, Л. В. Основы функционального программирования / Л. В. Городняя. - М. : Изд-во "Интернет-университет информационных технологий - ИНТУИТ.ру", 2004. - 280 с. : ил.
35. Дацюк, В. Н. Методическое пособие по курсу «Многопроцессорные системы и параллельное программирование» [Электронный ресурс] / В. Н. Дацюк, А. И. Жегуло, А. А. Букатов. - Электрон, текст, и граф. дан. — Ростов-на-Дону, 2000. - Режим доступа: http://hpcc.sfedu.ru/tutor/method/index.html, свободный. -Загл. с экрана.
36. Духнич, Е. И. Организация вычислительных машин и систем : учеб. пособие / Е. И. Духнич, А. Е. Андреев. - Волгоград : ВГТУ, 2004. - 62 с.
37. Истомин, Т. Е. Конструктор параллельной программы на типовых алгоритмических структурах : дипломная работа / Т. Е. Истомин ; МГУ им. М. В. Ломоносова, ф-т ВМиК. - М, 2003. - 45 с.
38. Истомин, Т. Е. Система параллельного программирования на типовых алгоритмических структурах / Т. Е. Истомин // Высокопроизводительные параллельные вычисления на кластерных системах : материалы второго Международного научно-практического семинара / под ред. Р. Г. Стронгина. — Нижний Новгород : Изд-во Нижегородского госуниверситета, 2002. - С. 137-140.
39. Карпов, Ю. К. Имитационное моделирование систем. Введение в моделирование в AnyLogic 5 / Ю. К. Карпов. - СПб. : БХВ-Петербург, 2005. - 400 с.
40. Кузьминский, М. И. ОрепМР: средства распараллеливания для многопроцессорных систем [Электронный ресурс] / М. И. Кузьминский // Открытые системы. - Электрон, журн. - 1998. - № 3. - Режим доступа: http://www.osp.ru/os/1998/03/19.htm, свободный. - Загл. с экрана.
41. Лабусов, А. Н. Технологии распараллеливания [Электронный ресурс] / А. Н. Лабусов. — Электрон, текст, и граф. дан. - СПб. : Центр перспективных исследований СПбГПУ, 1998. — Режим доступа: http://www.spbcas.ru/cfd/techn/Parallel.htm, свободный. - Загл. с экрана.
42. Левитин, А. В. Алгоритмы: Введение в разработку и анализ : пер. с англ. / А. В. Левитин. - М. [и др.] : Вильяме, 2006. - 574 с.
43. Мак-Дональд, М. WPF: Windows Presentation Foundation в .NET 3.5 с примерами на С# 2008 для профессионалов / М. Мак-Дональд. - М. : Вильяме, 2008. -928 с.
44. Малашонок, Г. И. Организация параллельных вычислений в рекурсивных символьно-численных алгоритмах / Г. И. Малашонок, Ю. Д. Валеев // Труды конференции ПаВТ'2008. - Челябинск : Изд-во ЮУрГУ, 2008. - С. 153-165.
45. Марпл, С. JI. Цифровой спектральный анализ и его приложения / С. Л. Марпл. - М. : Мир, 1990. - 584 с.
46. Мешков, А. В. Visual С++ и MFC. : пер. с англ. / А. В. Мешков, Ю. В. Тихомиров. - 2-е изд., перераб. и доп. - СПб. : БХВ-Петербург, 2003. - 1040 с.
47. Московский, А. А. Первый опыт реализации шаблона параллельного программирования на основе Т-подхода / А. А. Московский, А. Ю. Первин, Е. О. Сергеева // Программные системы: теория и приложения : тр. междунар. конф. - М. : Наука, Физматлит, 2006. - Т. 1. - С. 245-255.
48. Немнюгин, С. А. Параллельное программирование для многопроцессорных вычислительных систем / С. А. Немнюгин, О. Л. Стесик. — СПб. : БХВ-Петербург, 2002. - 400 с.
49. Олифер, В. Г. Сетевые операционные системы : учебное пособие для вузов по направлению "Информатика и вычислительная техника / В. Г. Олифер, Н. А. Олифер. — СПб. : Питер, 2005. - 539 с. - (Серия: Учебник для вузов).
50. Олифер, Н. А. Средства анализа и оптимизации локальных сетей / Н. А. Олифер, В. Г. Олифер. - [Б. м.] : Центр Информационных Технологий, 1998. -424 с.
51. Орлов, А. О. Разработка программного имитационного комплекса для исследования автоматизированных систем специального назначения : дипломная работа / А. О. Орлов ; МИФИ, ф-т Кибернетика. - 2008. - 64 с.
52. Предсказатель производительности DVM-программ (Предиктор) [Электронный ресурс] / Институт прикладной математики им. М. В. Келдыша. - Электрон. текст, и граф. дан. - [Б. м.] : [б. и.], 2010. - Режим доступа: http://www.keldysh.ru/dvm/dvmhtml 107/rus/usr/predictor/predUGr.html, свободный. - Загл. с экрана.
53. Прэтт У. Цифровая обработка изображений : пер. с англ. : в 2-х кн. / У. Прэтт. - М. : Мир, 1982.
54. Развитие многоядерной архитектуры процессоров Intel [Электронный ресурс] / Корпорация Intel. - Электрон, текст, и граф. дан. - [Б. м.] : [б. и.], 2005. -Режим доступа: http://it.inthepress.ni/v/l3438.html, свободный. — Загл. с экрана.
55. Сергиенко, А. Б. Цифровая обработка сигналов / А. Б. Сергиенко. — СПб. : Питер, 2002. - 608 с.
56. Средства создания и проектирования параллельных программ [Электронный ресурс] / J ШИТ НИВЦ МГУ. - Электрон, текст, и граф. дан. - [Б. м.] : [б. и.], 2003. - Режим доступа: http://parallel.ksu.ru/tech/tech_dev/build_par.html, свободный. — Загл. с экрана.
57. Степанова, А. С. Анализ производительности многопроцессорной системы с помощью имитационного моделирования / А. С. Степанова, Е. В. Чепин // Труды седьмой Всероссийской конференции «Математическое моделирование и краевые задачи». - Самара : СамГТУ, 2010. - Ч. 4: Информационные технологии в математическом моделировании. — С. 179-182.
58. Степанова, А. С. Имитационная модель многопроцессорной системы в среде GPSS World / А. С. Степанова, Е. В. Чепин // Междисциплинарный научно-практический журнал «Бизнес-информатика». - 2010. — № 2 (12). - С. 11-14.
59. Цилькер, Б. Я. Организация ЭВМ и систем : учебник для вузов / Б. Я. Цилькер, С. А. Орлов. - СПб. : Питер, 2004. - 668 с.
60. Чеканов, Д. Технология Hyper-Threading от Intel [Электронный ресурс] / Д. Чеканов, С. Мильчаков. - Электрон, текст, и граф. дан. - [Б. м.] : 3D News, 2002. - Режим доступа: http://www.3dnews.ru/cpu/hyper-treading/, свободный. — Загл. с экрана.
61. Эндрюс, Г. Р. Основы многопоточного, параллельного и распределенного программирования : пер. с англ. / Г. Р. Эндрюс. — М. : Издательский дом "Вильяме", 2003.-512 с.
62. Bacci, В. Skeletons and Transformations in an Integrated Parallel Programming Environment / B. Bacci [et al.] // Proc. Parallel Computing Technologies. - 1999. — P. 13-27.
63. Binstock, A. Multi-Core: Intel's New Processors Architecture Explained [Electronic resource] / A. Binstock. - Electronic text and graph, data. - [S. 1.] : Intel® Software Network, 2005. - Access mode: http://www.intel.com/cd/ids/developer/asmo-na/eng/211198.htm, free. - Title from screen.
64. Browne, J. Visual Programming and Parallel Computing / J. Browne [et al.]. -Knoxville (USA): University of Tennessee, 1994.-255 p.
65. Cole, M. Algorithmic skeletons: structured management of parallel computation / M. Cole. - [S. 1.] : MIT Press, 1991. - 170 p.
66. Cole, M. Bringing Skeletons out of the Closet / M. Cole // A Pragmatic Manifesto for Skeletal. Parallel Programming. - Parallel Computing, 2004. - № 30. - P. 389-406.
67. Cole, M. Frame: An Imperative Coordination Language for Parallel Programming / M. Cole // Technical Report EDI-INF-RR-0026. - Edinburgh (Scotland) : Univ. of Edinburgh, Div. Informatics, 2000. - P. 11.
68. Foster, I. Designing and Building Parallel Programs [Electronic resource] /1. Foster. - Electronic text and graph, data. - [S. 1.] : Addison-Wesley, 1995. - Access mode: http://www.mcs.anl.gov/dbpp/index.htm, free. - Title from screen.
69. Gertsenberger, K. V. Implementation parallel processing of digital signals on cluster system / K. V. Gertsenberger, E. V. Chepin // Proc. of the International Workshop on Computer Science and information technologies : CSIT'2007 : Bashkortostan,
2007. - Ufa State Aviation Technical University, 2007. - Vol. 1. - P. 152-155.
70. Gertsenberger, K. V. Using a CASE-oriented approach for parallel software development / K. V. Gertsenberger, E. V. Chepin // Proc. of the International Workshop on Computer Science and information technologies : CSIT'2008 : Antalya, Turkey,
2008. - Ufa State Aviation Technical University, 2008. - Vol. 1. - P. 63-68.
71. Goswami, D. Parallel Architectural Skeletons: Re-Usable Building Blocks for Parallel Applications : Ph.D. thesis / D. Goswami; University of Waterloo. - Waterloo (Canada, Ontario), 2001. - P. 148.
72. Gropp, W. MPI the Complete Reference: The MPI-2 Extensions" / W. Gropp, S. Huss-Lederman. - Boston (USA) : MIT Press, 1998. - Vol. 2. - 350 p.
73. Juhasz, Z. An analytical method for predicting the performance of parallel image processing operations / Z. Juhasz // The Journal of supercomputing. - 1998. — № 12. P. 157-174.
74. Karniadakis, G. E. Parallel Scientific Computing in C++ and MPI: A Seamless Approach to Parallel Algorithms and their Implementation / G. E. Karniadakis, R. M. Kirby // Cambridge University Press. - 2003. - P. 455-537.
75. Kuchen, H. A skeleton library / H. Kuchen // Proceedings of the 8th International Euro-Par Conference on Parallel Processing. - Springer-Verlag, 2002. - P. 620-629.
76. Lowe, D. G. Distinctive Image Features from Scale-Invariant Keypoints / D. G. Lowe // International Journal of Computer Vision. - 2004. - № 60. - P. 91-110.
77. McCool, M. D. Structured Parallel Programming with Deterministic Patterns [Electronic Resource] / M. D. McCool. - Electronic text and graph, data. - [S. 1.] : Intel® Software Network, 2010. - Access mode: http://software.intel.com/en-us/articles/structured-parallel-programming-with-deterministic-patterns/, free. - Title from screen.
78. Merritt, R. Wintel will fund parallel software lab at Berkeley [Electronic resource] / R. Merritt // EE Times. - Electronic text and graph, data. - 2008. — Access mode: http://www.eetimes.com/electronics-news/4076402/Wintel-will-fund-parallel-software-lab-at-Berkeley, free. - Title from screen.
79. Pitas, I. Digital Image Processing Algorithms / I. Pitas. - New York : Prentice Hall, 1993.-361 p.
80. Reinders, J. Intel Threading Building Blocks: Outfitting C++ for Multi-core Processor Parallelism / J. Reinders. - Electronic text and graph, data. - [S. 1.] : O'Reilly Media Inc., 2007. - Access mode: http://amazon.com/exec/obidos/ASIN/0596514808/, free. - Title from screen.
81. Sanders, J. CUDA by Example: An Introduction to General-Purpose GPU Programming / J. Sanders, E. Kandrot. - [S. 1.] : Addison-Wesley Professional, 2010. -312 p.
82. Scarpino, M. OpenCL in Action / M. Scarpino. - [S. 1.] : Manning Publications, 2011.-458 p.
83. Seinstra, F. J. A software architecture for user transparent parallel image processing / F. J. Seinstra, D. Koelma, J. Geusebroek // Parallel Computing. - 2002. -№28.-P. 967-993.
84. Varga, A. OMNeT++ Discrete Event Simulation System Version 4.0. User Manual / A. Varga. - Electronic text and graph, data. - Last upd: December 16, 2004. -[S. 1.], 2004. - Access mode: http://sce.uhcl.edu/yang/public/download/OMNET++.pdf, free. - Title from screen.
Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.