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



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

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

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

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

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

Колпаков Александр Анатольевич. Методы, алгоритмы и программные структуры повышения производительности вычислений многопроцессорных компьютерных систем обработки данных: диссертация ... кандидата Технических наук: 05.13.15 / Колпаков Александр Анатольевич;[Место защиты: Московский технологический университет].- Москва, 2016.- 140 с.

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

Введение

ГЛАВА 1. Методы повышения производительности вычислительных процессов в компьютерных системах обработки данных 14

1.1 Структура производительных многопроцессорных вычислительных систем

1.2 Аналитические модели параллельных вычислений 22

1.3 Математические методы анализа и обработки данных 27

1.4 Структурные методы повышения производительности вычислительных систем 32

1.5 Выводы и постановка задачи исследований 40

Глава 2. Модели параллельных вычислений с использованием специализированных вычислительных модулей 42

2.1 Многоканальная система обработки дискретных последовательностей 42

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

2.3 Исследование и разработка структурной схемы архитектуры гетерогенной системы «CPU – GPU» 51

2.4 Модель PRAM с учетом архитектуры гетерогенной системы «CPU-GPU» 54

2.5 Выводы 56

ГЛАВА 3. Алгоритмы повышения производительности вычислений в гетерогенных многопроцессорных вычислительных компьютерных системах 57

3.1 Алгоритм повышения производительности гетерогенной многопроцессорной системы 57

3.2 Методы и алгоритмы декомпозиции задачи при выполнении параллельных вычислений в гетерогенной многопроцессорной вычислительной системе 60

3.3 Методы уменьшения времени выполнения алгоритма путем уменьшения потока данных между оперативной памятью и GRAM 64

3.4 Алгоритм принятия решения о переносе вычислений на графический процессор и использовании кэширования данных 65

3.5 Выводы 72

ГЛАВА 4. Программное обеспечение гетерогенных компьютерных систем и структуры систем обработки данных 73

4.1 Технологии программирования графических процессоров 73

4.1.1 Программирование графического процессора на основе вершинных и пиксельных программ 73

4.1.2. Программирование графического процессора на основе библиотеки CUDA 75

4.1.3 Программирование графического процессора на основе библиотеки OpenCL 78

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

4.3 Разработка модуля обработки программного кода 87

4.4 Экспериментальная оценка эффективности работы алгоритма повышения производительности гетерогенной компьютерной 105

4.5 Алгоритм обработки данных и аудио-видео информации в микропроцессорной вычислительной системе с применением графических процессоров в системе телекоммуникации 109

4.6 Выводы 122

Заключение 124

Литература 125

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

Актуальность темы.

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

Для увеличения эффективности компьютерных вычислений часто применяется использование многопроцессорной архитектуры. Однако, как известно [Graham, R. Bound on multiprocessing timing anomalies./R. Graham// SIAM Journal on Applied Mathematics. March 1969 г.; Amdahl, G. Validity of the Single Processor Approach to Achieving Large-Scale Computing Capabilities./G. Amdahl //1967. AFIPS spring joing computer conference] производительность многопроцессорных вычислений за счет дальнейшего увеличения процессоров существенно не повышается при превышении их количества определенного предела. В то же время современные компьютерные системы в своем составе могут содержать, кроме центрального процессора, специализированные вычислительные модули. Поэтому для решения задачи повышения производительности компьютерных систем рассматривается возможность распараллеливания программ на почти произвольное количество вычислений с использованием гетерогенной платформы на специализированных вычислительных модулях.

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

В данной диссертации исследования базируются на результатах работ в области параллельных вычислительных технологий таких учёных, как: Е.П. Балашов, В.Б. Бетелин, В.С. Бурцев, В.В. Васильев, S. Cray, A. Tanenbaum, D. Feitelson. При решении проблем функционирования многопроцессорных вычислительных систем большую роль сыграли работы в области математического программирования и исследований вычислительных операций таких учёных, как В.Л. Береснев, Э.Х. Гимади, В.Т. Дементьев, R. Bellmann, D. Johnson. При исследовании вопросов моделирования параллельных вычислений были рассмотрены фундаментальные труды в этой области B.B. Воеводина, Н.П. Вашкевича, B.C. Люб-ченко, S. Fortune, J. Wyllie, L. Valiant. Специфика вычислений на сопроцессорах и графических процессорах представлена в работах А.В. Борескова, В.А. Фролова, S. Hong, H. Kim, W.W. Hwu.

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

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

Объект исследования – многопроцессорные компьютерные системы.

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

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

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

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

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

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

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

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

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

Соответствие диссертационной работы паспорту специальности:

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

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

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

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

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

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

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

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

Результаты диссертационной работы внедрены в:

программное обеспечение микропроцессорных телекоммуникационных систем обмена аудио и видео информацией с повышением производительности и быстродействия обработки потоковых данных, внедренное в изделие при осуществлении ОКР ОАО «МРЗ»;

учебный процесс подготовки бакалавров по направлению «Информатика и вычислительная техника» в Муромском институте (филиале) ФГ БОУ ВПО «Владимирский государственный университет имени А.Г. Столетова и Н.Г. Столетова».

Апробация работы. Основные положения диссертационной работы докладывались на научно-технических конференциях:

III-я Всероссийская научная конференция «Зворыкинские чтения» (Муром, 2011); XVII Международная конференция по вычислительной механике и современным прикладным программным системам ВМСППС'2011 (Алушта, 2011); IV Всероссийские научные Зворыкинские чтения (Муром, 2012); XVIII Международная конференция по вычислительной механике и современным прикладным программным системам ВМСППС'2013 (Алушта, 2013); VI Всероссийские научные Зворыкинские чтения (Муром, 2014), 25-я Международная Крымская конференция «СВЧ-техника и телекоммуникационные технологии» КрыМиКо’2015 (Севастополь, 2015).

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

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

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

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

Диссертационные исследования выполнялись в рамках госбюджетных и научно-исследовательских работ:

Г/Б НИР № 376/01 от 2014 г. «Анализ и синтез электронных устройств, систем и сигналов с применением компьютерных технологий» (н.р. - д.т.н., проф. Кропотов Ю.А.);

ХД НИР с ОАО «Муромский радиозавод» № 4384/13 от 2013 г. «Внутри-корабельная оперативно-командная телекоммуникационная система связи с применением технологии Ethernet 100 Мбит» (н.р. - д.т.н., проф. Кропотов Ю.А.).

Публикации по работе. По теме диссертации опубликовано 11 печатных работ, в том числе 2 статьи в журналах из перечня ВАК РФ, 3 статьи в журналах из списка РИНЦ, 6 публикаций в материалах и тезисах докладов конференций.

Структура и объем работы. Диссертационная работа состоит из введения, 4 глав, заключения и приложений, изложена на 140 страницах, содержит 46 рисунков, 8 таблиц, список литературы состоит из 156 наименований.

Аналитические модели параллельных вычислений

При высоких требованиях к надежности и производительности вычислительных средств определяющим является требование низкой стоимости вычислительной системы. Это требование является одним из основных при создании массовой вычислительной техники, примерами которой являются микропроцессоры и микроЭВМ [67].

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

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

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

Вычислительные средства, построенные на основе модели коллектива вычислителей, являются универсальными .и позволяют решать сложные задачи. На основе подобной модели строятся современные персональные ЭВМ, а также высокопроизводительные многопроцессорные вычислительные системы [20, 64].

Многопроцессорные вычислительные системы. Система, содержащая несколько процессоров, работающих на общем пространстве обрабатываемых данных, и управляемая одной общей операционной системой, называется многопроцессорной [20, 30, 55].

Разновидностью многопроцессорных систем является мультипроцессорная система [20] – система, в которой могут быть активными сразу несколько процессоров. Пока процессоры выполняют обработку данных, они работают независимо друг от друга. Но в определенные моменты времени, обусловленные алгоритмом вычисления, процессоры должны синхронизировать свои действия [1].

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

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

Исследование и разработка структурной схемы архитектуры гетерогенной системы «CPU – GPU»

Как видно из структурной схемы на рис. 2.6, связку «CPU – GPU» можно отнести к модели с общей памятью. Основной моделью с общей памятью является модель PRAM (parallel random-access machine) – машина с параллельным произвольным доступом. Она является абстрактной идеализированной моделью параллельной синхронной машины с разделяемой общей памятью [4, с.14], которая использует допущения, приведенные ниже: количество процессоров (q) в машине не ограничено; каждый процессор имеет равнозначный доступ к любой ячейке общей памяти, размер которой не ограничен; - отсутствует конкуренция по ресурсам; - процессоры работают в режиме MIMD, но в частном случае может использоваться режим SIMD.

Все процессоры исполняют инструкции синхронно, причем выполнение любой инструкции занимает ровно 1 такт, называемый шагом PRAM-машины.

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

1) Concurrent Read, Concurrent Write (CRCW, одновременное чтение при одновременной записи всеми процессорами). 2) Concurrent Read, Exclusive Write (CREW, одновременное чтение, но запись может производиться только одним процессором). 3) Exclusive Read, Concurrent Write (CRCW, исключительное чтение одним процессором при одновременной записи любым процессором). 4) Exclusive Read, Exclusive Write (CRCW, данные могут быть и записаны, и считаны только одним процессором). Как видно из рис. 1.6 в разделе 1.2 для анализа алгоритмов на PRAM можно представить их вычисления в виде ациклического ориентированного графа «операции-операнды», по которому находятся значения основных характеристик, определенных в рамках данной модели.

Чтобы оценить время выполнения алгоритма для N входных данных на PRAM-машине с p потоками, с использованием теоремы Брента [75] было получено выражение где О - верхняя асимптотическая оценка трудоёмкости алгоритма, N - количество входных данных алгоритма, S(N) - шаговая сложность алгоритма, W(N) = _Wl (N) - рабочая сложность параллельного алгоритма, где Wi(N) - количество параллельных операций на шаге /. Формула (2.17) дает верхнюю асимптотическую оценку времени исполнения алгоритма с шаговой сложностью S(N) и рабочей сложностью W(N). 2.4 Модель PRAM с учетом архитектуры гетерогенной системы «CPU-GPU» Поскольку PRAM во всех ее вариантах является идеализированной моделью и не может быть напрямую применена к реально существующим вычислительным системам, на ее основе было разработано немало моделей, учитывающих архитектурные особенности конкретных реализаций параллельных систем. Наиболее известными модификациями являются модель с локальной памятью процессоров LPRAM и ее расширения, модель массового параллелизма BSP, модель распределенных вычислений LogP и ряд других. Анализ, приведенный в главе 1, показал, что ни одна из имеющихся модификаций PRAM не подходит для оценки производительности алгоритмов, исполняемых на специализированных вычислительных модулях (эти модели и создавались для других целей), поэтому для создания модели параллельных вычислений на специализированных вычислительных модулях целесообразно взять за основу непосредственно базовую абстрактную модель PRAM.

Согласно схеме, приведенной на рис. 2.6, основными структурными элементами программируемого специализированного вычислительного модуля являются мультипроцессоры, которые содержат множество скалярных процессоров и разделяемую память. Имеется также глобальная оперативная память (SpRAM), c которой происходит обмен данными из оперативной памяти (RAM). Обращение к SpRAM занимает в среднем 450 тактов скалярного процессора, обращение к Shared Memory выполняется быстрее в несколько раз. Также специализированный вычислительный модуль имеет память для кэширования глобальных неизменяемых данных.

Из схемы, приведенной на рис. 2.7, следует, что модель PRAM не может быть использована непосредственно для описания графического процессора как единого устройства ввиду его сложной иерархической структуры, но ее можно применить для одного мультипроцессора в варианте «CREW-режим SIMD». В соответствии с вышесказанным можно отметить, что PRAM модель может быть применена к гетерогенной многопроцессорной системе с учётом следующих уточнений и дополнений: 1. Для всех процессоров память является разделяемой при операции чтения, но запись должна быть монопольной (PRAM – CREW (Concurrent Read, Exclusive Write)). 2. Количество скалярных процессоров в графическом мультипроцессоре ограничено сверху (qmax процессоров). Для выполнения большего числа потоков используется система горизонтального параллелизма, аналогичная модели BSP: генерируется расписание последовательного исполнения потоков, разбитых на пучки по qwarp скалярных процессоров. 3. Размер разделяемой памяти мультипроцессора ограничен – Ms байт. 4. Все скалярные процессоры имеют одинаковую скорость обработки данных по архитектуре SIMD со скоростью SGPU элементарных операций в секунду. 5. Введена дополнительная операция – обращение к оперативной памяти SpRAM специализированного вычислительного модуля на чтение или запись. Время обращения K – количество элементарных операций, которое требуется для обращения к одному 32-х разрядному числу в глобальной памяти специализированного вычислительного модуля.

Методы уменьшения времени выполнения алгоритма путем уменьшения потока данных между оперативной памятью и GRAM

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

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

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

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

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

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

Уровень целевого исполнителя для семейства ускорителей принимает на вход граф функциональных операций, а на выходе получает программу для ГПУ [50]. Эта программа имеет вид сценария исполнения, в котором доступны операции запуска шейдера на ГПУ с определенным набором параметров, выделение и освобождение памяти, а также передача данных из ОЗУ в видеоОЗУ и обратно. Основные этапы трансляции программы на уровне целевого исполнителя: 1. Разбиение исходного графа на подграфы, соответствующие различным проходам. В дальнейшем каждый подграф транслируется отдельно. 2. Выбор отображения для данных и для кода. Для кода выбирается и для данных выбирается их отображение на архитектуру ГПУ. При этом, например, один логический массив данных может отображаться на несколько физических буферов ГПУ, а операция редукции в исходном коде – на цикл, каждая итерация которого обрабатывает блок из 4-х элементов. 3. Генерация кода для ГПУ. После того, как отображения выбраны, по ним осуществляется генерация кода на ГПУ. В частности, осуществляется вычисление индексов для буферов ГПУ и ликвидация повторяющихся чтений. 4. Преобразования сгенерированного кода. На этом этапе производится слияние арифметических выражений в векторные команды и свертка констант.

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

Самыми сложными с точки зрения реализации являются этапы 2 и 3, их описанию посвящены два следующих раздела. Этап 4 относительно прост и выполняется при помощи арифметических преобразований. Возможность слияния арифметических выражений в векторные операции обеспечивается эффективным выбором отображений на этапах 2 и 3.

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

Алгоритм расширенного микширования с использованием графического процессора вместе с разработанным алгоритмом программной реализации внедрен в программное обеспечение микропроцессорных телекоммуникационных систем обмена аудио и видеоинформацией с повышением производительности и быстродействия обработки потоковых данных в ОКР ОАО МРЗ. На выбор способа реализации системы связи, под которой будет пониматься в первую очередь телефонная и громкоговорящая связь, оповещение и трансляция, влияют такие факторы, как: - назначение громкоговорящей связи, являющейся по своей сути командной и технологической связью, что обусловливает предъявление особых требований к ее функциональным возможностям; - возможность использования сети громкоговорящей связи для передачи сигналов систем видеонаблюдения, трансляции, телевидения, графической и другой цифровой информации; - документирование передаваемой информации, результатов диагностики и истории соединений; - конфигурирование системы; - условия эксплуатации и стойкость к различного рода помехам, специальным воздействиям; - наличие и доступность элементной базы, удовлетворяющей соответствующим требованиям по условиям эксплуатации и специальным воздействиям.

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

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

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

Предполагается, что построенный на базе функционально законченных модулей комплекс должен состоять из следующих приборов: - интеллектуальные абонентские устройства громкоговорящей связи, которые обеспечивают в зависимости от емкости соединение с любым абонентом или группой абонентов из числа закрепленных при конфигурировании. Подключение устройств к сети осуществляется по линиям Ethernet. Дополнительно в абонентском устройстве находится плата стыка с авральной сигнализацией и аналоговой системой связи, основанной на аналоговых коммутаторах, управляющихся через интерфейс RS232; - сетевой коммутатор, основанный на технологии Ethernet, который обеспечивает коммутацию соединений по соединительным линиям Ethernet (100 Мбит/с.). По указанным линиям обеспечивается подключение соответственно до 32 абонентских приборов к сети по линии Ethernet; - телефонные аппараты, основанные на стандартных протоколах IP-телефонии; - аппаратура трансляции командных и художественных передач, радио-и телевизионные приемники для приема художественных передач; - кабельные соединительные устройства, устройства подключения дополнительных микрофонов, выносных громкоговорителей и световых сигнализаторов вызова; - электроакустические преобразователи (громкоговорители, микрофоны, гарнитуры микрофонные, микротелефонные и головные телефоны).

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

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

Предлагается в качестве процессорной части прибора применить встраиваемый панельный компьютер APPC-0820T, который представляет из себя панельную рабочую станцию с 8" TFT LCD, резистивным сенсорным экраном, процессором Intel Atom D525 1.8 ГГц и объемом оперативной памяти 1Гб DDR3 RAM. В состав процессора Intel Atom D525 входит интегрированная графическая карта GMA 3150, которая может быть использована в качестве специализированного вычислительного модуля. Т.к. указанная графическая карта не поддерживает технологию CUDA, была использована технология BrookGPU.

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