SlideShare ist ein Scribd-Unternehmen logo
1 von 38
Downloaden Sie, um offline zu lesen
XII международная конференция
CEE-SECR / РАЗРАБОТКА ПО
28 - 29 октября, Москва
Технология предметно-ориентированного
программирования для неоднородных
многоядерных платформ
Борис Седов, Юрий Шейнин, Алексей Сыщиков
boris.sedov@guap.ru, sheynin@aanet.ru
Санкт-Петербургский государственный
университет аэрокосмического приборостроения
Зачем нужна такая технология?
© 2006 OMS & MCIT GUAP
2/17
1. Требуется разработчик “два в одном”:
квалифицированный специалист в предметной области
+ квалифицированный программист
2. Сложность разработки параллельного встраиваемого ПО
3. Неоднородность встраиваемых систем
4. Аппаратные платформы быстро устаревают, но решаемые на них
задачи и алгоритмы устаревают редко
5. Для достижения требований необходима адаптация алгоритмов под
платформы и платформ под алгоритмы
Жизненный цикл программы в рамках технологии
3/17
Разработка Симулятор Генератор кода
Жизненный цикл программы в рамках технологии
3/17
Разработка Симулятор Генератор кода
Жизненный цикл программы в рамках технологии
3/17
Разработка Симулятор Генератор кода
Платформа 1
Жизненный цикл программы в рамках технологии
3/17
Разработка Симулятор Генератор кода
Платформа 1
Жизненный цикл программы в рамках технологии
3/17
Разработка Симулятор Генератор кода
Платформа 1Платформа 2
Жизненный цикл программы в рамках технологии
3/17
Разработка Симулятор Генератор кода
Платформа 1Платформа 2Платформа 3
4/17
Детальная схема технологии
4/17
1
Симуляция и ранняя оценкаРазмещение на целевой платформеРазработка алгоритмов и программ
Детальная схема технологии
4/17
1
2
Симуляция и ранняя оценка
Детальная схема технологии
4/17
1
2
3
Симуляция и ранняя оценкаРазмещение на целевой платформе
Детальная схема технологии
Графический язык программирования VPL
• Разделение
проектирования и
программирования
5/17
Графический язык программирования VPL
• Разделение
проектирования и
программирования
Эксперт
Программист
5/17
Графический язык программирования VPL
• Разделение
проектирования и
программирования
Эксперт
Программист
• Простота внесения изменений в структуру программы
• Отсутствие влияния программиста (кодера) на спроектированную схему
• Локальное проявление ошибок разработки
• Поддержка и сопровождение программ в течение жизненного цикла
• Уменьшение вероятности ошибок без потери читаемости программы
• Гибкость и лёгкость изменения на любом этапе разработки
5/17
• Когнитивные преимущества:
• прозрачность процесса
разработки
• прослеживаемость схемы
зависимостей
• наглядность структуры
управления вычислениями
• Общие данные
• Естественный параллелизм
• Потенциальная
конвейеризация
Программа на языке VPL – схема
вычислений из операторов обработки,
операторов управления и общих данных
6/17
Графический язык программирования VPL
Предметно-ориентированное программирование
7/17
• Предметно ориентированные библиотеки
предоставляют удобство разработки в
предметной области
• Вовлечение в процесс разработки ПО для
встроенных систем специалистов предметных
областей
• Удобное средства разработки DSL библиотек
• Удобное повторное использование
разработок и кода
© 2006 OMS & MCIT GUAP
Схема программы –
ориентированный граф
Vp – вершина-оператор,
Vd – вершина-данное,
W/R/RE – дуги (связи) и их разметка
Vd1
Vd3
Vd2
W
R
W
RE
W
Vp1
Vp2 Vp3W
W
Vp4
RE
АРП-модель определяет
• синтаксис языка
• семантику объектов языка
• управляющие конструкции
АРП-модель предоставляет
• методы формальной
верификации
• идентичность результатов при
работе в разных окружениях
• возможности для переносимости
вычислений
• представление динамики
параллельного вычисления
• совмещение работы с общими
данными и модели распределенной памяти
Формальная модель вычислений: Асинхронные Развивающиеся Процессы
8/17
VIPE: визуальная среда проектирования
9/17
Интерактивные инструменты
Инструменты поддержки процесса разработки:
• валидация схемы • проверка синтаксиса
• проверка типов
• корректность связей
• полнота схемы
• и т.д.
10/17
Интерактивные инструменты
Инструменты поддержки процесса разработки:
• валидация схемы
• верификация (в работе)
• проверка синтаксиса
• проверка типов
• корректность связей
• полнота схемы
• и т.д.
• однозначность
• deadlocks
• livelocks
• завершаемость
• и т.д.
10/17
Интерактивные инструменты
Инструменты поддержки процесса разработки:
• валидация схемы
• верификация (в работе)
• интерактивная отладка и т.д.
• проверка синтаксиса
• проверка типов
• корректность связей
• полнота схемы
• и т.д.
• однозначность
• deadlocks
• livelocks
• завершаемость
• и т.д.
• пошаговая отладка
• breakpoints
• watches
• передача данных
• трассы вычислений
• выполнение операторов
• функциональная отладка
при последовательном
выполнении 10/17
эксперт
11/17
Средства проектирования
параллельных программ
Инструмент анализа «визуальный профилировщик»
Поиск критических участков (hotspots) в программе
Различные режимы работы:
• Абсолютные времена выполнения операторов схемы
• Относительные времена согласно структуре вложенностей
• Критические участки с фильтрацией малых величин 12/17
Инструмент статического анализа
Время
Ускорение
Коэффициент
эффективности
𝐸 =
𝑇1
𝑁 ∗ 𝑇𝑛
𝑆 =
𝑇1
𝑇𝑛
𝑅 =
𝑇𝑛
𝑇1
∗ 100%
𝑁 – количество процессоров
𝑇1 – время выполнения программы на 1 процессоре
𝑇𝑛 – время выполнения программы на N процессорах
Быстрая оценка работы ПО на модели многоядерной платформы
13/17
Позволяет оценить:
1. требования к производительности ядер
встроенной системы
2. требования к памяти ядер встроенной
системы
3. занятость вычислительных ядер для
различных вариантов размещения и баланс
занятости
4. количество и интенсивность обменов
данными
5. эффективность загрузки аппаратного
обеспечения
6. узкие места аппаратной платформы,
программы и распределения задач
VPL-симулятор
14/17
VPL программа
i1017
VPL-симулятор
15/17
Поддержка неоднородных платформ в VIPE
• Назначение элементов схемы на компоненты
аппаратной платформы (CPU, GPU, DSP, DMA)
• операторов на различные типы ядер
• данных на разные типы памяти
• обменов на разные типы соединений
• Выбор подходящей реализации операторов
обработки данных
• Подготовка исходных данных и отвод
результатов работы оператора программы с
учетом специфики различных механизмов
обмена данными
© 2006 OMS & MCIT GUAP
Рабочие прототипы
• ANSI C
• C++
• Параллельный OpenMP
• RT-run-time под платформу
(в работе)
Proof of concept
• Параллельные потоки
• MPI
• Ассемблер MIPS, DSP
Размещение на целевой платформе
16/17
Выводы
• Технология покрывает различные требования к разработке встроенного ПО
• DSL позволяют вовлекать экспертов непосредственно в процесс разработки
• Инструменты оценки производительности помогает разработчику достичь
лучших программных характеристик, соблюсти ограничения и требования
• Базовая формальная модель обеспечивает тождественность результатов
исполнения программы в любом окружении, в том числе в режиме отладки
• Подход позволяет создавать и отлаживать алгоритм однократно, чтобы потом
повторно использовать его в другом окружении и на других платформах
• Технология позволяет быстро подключать новые платформы
• Технология позволяет быстро создавать прототипы для демонстрации их
потенциальным клиентам
17/17boris.sedov@guap.ru, sheynin@aanet.ru
18
Примеры применения
Слежение за особенностями сцены
DSL, основанный на OpenVX
Программа отслеживания особенностей сцены в VIPE 19
DSL и проектирование
Слежение за особенностями сцены
Программа отслеживания
особенностей схемы
запускалась на платформе x86 с
использованием реализации от
Khronos
20
Результаты выполнения
Слежение за особенностями сцены
Оценка производительности
отслеживания особенностей сцены с
последовательной обработкой кадров
Оценка производительности
отслеживания особенностей сцены с
параллельной обработкой кадров
21
Статический анализ
Слежение за особенностями сцены
Профилирование программы
отслеживания особенностей сцены
Большое количество
времени проходит внутри
функций конвертирования
изображений (из формата
OpenVX и обратно)
22
Визуальный профилировщик
Отслеживание движения объектов радаром
Программа отслеживания движения объектов
радаром разрабатывался в проекте PaPP
Европейской технической платформы
ARTEMIS/ECSEL. 23
Проектирование
Отслеживание движения объектов радаром
Однако, результаты оказались хуже
ожидаемых. Статический анализ
подпрограммы “Обработка блоков данных”
показывает близкое к линейному
сокращение времени на 8 ядрах
Статический анализ показывает
приемлемое сокращение времени на 2-3
ядрах
24
Статический анализ
Отслеживание движения объектов радаром
Визуальный профилировщик выявляет, что
большое количество времени тратится на
функцию, которая считывает образцы
данных из файла (нынешний прототип
использует образцы, хранящиеся в файле).
Функция чтения файла находится в последовательной
части, следовательно параллелизм ограничен законом
Амдала.
Реальное получение данных должно быть
оптимизировано, чтобы занимать меньше времени.
Оценка с уменьшенным временем работы функции
чтения показывает удовлетворительные результаты. 25
Визуальный профилировщик
Отслеживание движения объектов радаром
Ядра (симулятор)
или
потоки (OpenMP)
Статический
анализ
сек. / %
Моделирование
VPL
сек. / %
Исполнение
сек. / %
Без OpenMP 1.60
1 1.26 / 100 1.29 / 100 1.65 / 100
2 0.64 / 50.8 0.88 / 68.2 1.00 / 60.6
3 0.60 / 47.6 0.72 / 55.8 0.81 / 49.1
4 0.34 / 30.0 0.55 / 42.6 1.25 / 76.7
Платформа
• Core i7 8 ядер -> VirtualBox VM 4 ядра
• Ubuntu 14.04, GCC 4.9.2.
Входные данные
• 12 MB данных сэмплирования сигнала
Сравнение результатов анализа, моделирования и исполнения
26

Weitere ähnliche Inhalte

Was ist angesagt?

Разработка систем управления для отечественных АКПП
Разработка систем управления для отечественных АКППРазработка систем управления для отечественных АКПП
Разработка систем управления для отечественных АКППMATLAB
 
Проектирование систем связи
Проектирование систем связиПроектирование систем связи
Проектирование систем связиMATLAB
 
кластеры и суперкомпьютеры
кластеры и суперкомпьютерыкластеры и суперкомпьютеры
кластеры и суперкомпьютерыnastena07051995
 
Исследования SDN в Оренбургском государственном университете: сетевая безопас...
Исследования SDN в Оренбургском государственном университете: сетевая безопас...Исследования SDN в Оренбургском государственном университете: сетевая безопас...
Исследования SDN в Оренбургском государственном университете: сетевая безопас...ARCCN
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...a15464321646213
 
RUNOS OpenFlow controller (ru)
RUNOS OpenFlow controller (ru)RUNOS OpenFlow controller (ru)
RUNOS OpenFlow controller (ru)Alexander Shalimov
 
Multithreading in JS. Myth or reality?
Multithreading in JS. Myth or reality?Multithreading in JS. Myth or reality?
Multithreading in JS. Myth or reality?Alexander Syrotenko
 
Практическое применение SDN/NFV в современных сетях: от CPE до Internet eXchange
Практическое применение SDN/NFV в современных сетях: от CPE до Internet eXchangeПрактическое применение SDN/NFV в современных сетях: от CPE до Internet eXchange
Практическое применение SDN/NFV в современных сетях: от CPE до Internet eXchangeARCCN
 
Пилотные зоны для тестирования и апробирования SDN&NFV разработок и решений в...
Пилотные зоны для тестирования и апробирования SDN&NFV разработок и решений в...Пилотные зоны для тестирования и апробирования SDN&NFV разработок и решений в...
Пилотные зоны для тестирования и апробирования SDN&NFV разработок и решений в...ARCCN
 
Быстрое прототипирование алгоритмов управления
Быстрое прототипирование алгоритмов управленияБыстрое прототипирование алгоритмов управления
Быстрое прототипирование алгоритмов управленияMATLAB
 
Учебно-методическая работа по тематике ПКС и ВСС
Учебно-методическая работа по тематике ПКС и ВССУчебно-методическая работа по тематике ПКС и ВСС
Учебно-методическая работа по тематике ПКС и ВССARCCN
 
Introduction in CUDA (1-3)
Introduction in CUDA (1-3)Introduction in CUDA (1-3)
Introduction in CUDA (1-3)Alexander Mezhov
 
Bgp методякоби
Bgp методякобиBgp методякоби
Bgp методякобиMichael Karpov
 
Отчет «Центра прикладных исследований компьютерных сетей» на Совете фонда "Ск...
Отчет «Центра прикладных исследований компьютерных сетей» на Совете фонда "Ск...Отчет «Центра прикладных исследований компьютерных сетей» на Совете фонда "Ск...
Отчет «Центра прикладных исследований компьютерных сетей» на Совете фонда "Ск...ARCCN
 
Отчет по проектах ЦПИКС
Отчет по проектах ЦПИКСОтчет по проектах ЦПИКС
Отчет по проектах ЦПИКСARCCN
 
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...Mikhail Kurnosov
 
[DD] 9. Programmable Logic IC
[DD] 9. Programmable Logic IC[DD] 9. Programmable Logic IC
[DD] 9. Programmable Logic ICGabit Altybaev
 

Was ist angesagt? (19)

Разработка систем управления для отечественных АКПП
Разработка систем управления для отечественных АКППРазработка систем управления для отечественных АКПП
Разработка систем управления для отечественных АКПП
 
Проектирование систем связи
Проектирование систем связиПроектирование систем связи
Проектирование систем связи
 
кластеры и суперкомпьютеры
кластеры и суперкомпьютерыкластеры и суперкомпьютеры
кластеры и суперкомпьютеры
 
Исследования SDN в Оренбургском государственном университете: сетевая безопас...
Исследования SDN в Оренбургском государственном университете: сетевая безопас...Исследования SDN в Оренбургском государственном университете: сетевая безопас...
Исследования SDN в Оренбургском государственном университете: сетевая безопас...
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...
 
RUNOS OpenFlow controller (ru)
RUNOS OpenFlow controller (ru)RUNOS OpenFlow controller (ru)
RUNOS OpenFlow controller (ru)
 
Multithreading in JS. Myth or reality?
Multithreading in JS. Myth or reality?Multithreading in JS. Myth or reality?
Multithreading in JS. Myth or reality?
 
Практическое применение SDN/NFV в современных сетях: от CPE до Internet eXchange
Практическое применение SDN/NFV в современных сетях: от CPE до Internet eXchangeПрактическое применение SDN/NFV в современных сетях: от CPE до Internet eXchange
Практическое применение SDN/NFV в современных сетях: от CPE до Internet eXchange
 
Пилотные зоны для тестирования и апробирования SDN&NFV разработок и решений в...
Пилотные зоны для тестирования и апробирования SDN&NFV разработок и решений в...Пилотные зоны для тестирования и апробирования SDN&NFV разработок и решений в...
Пилотные зоны для тестирования и апробирования SDN&NFV разработок и решений в...
 
Gpgpu
GpgpuGpgpu
Gpgpu
 
Быстрое прототипирование алгоритмов управления
Быстрое прототипирование алгоритмов управленияБыстрое прототипирование алгоритмов управления
Быстрое прототипирование алгоритмов управления
 
Учебно-методическая работа по тематике ПКС и ВСС
Учебно-методическая работа по тематике ПКС и ВССУчебно-методическая работа по тематике ПКС и ВСС
Учебно-методическая работа по тематике ПКС и ВСС
 
Introduction in CUDA (1-3)
Introduction in CUDA (1-3)Introduction in CUDA (1-3)
Introduction in CUDA (1-3)
 
Bgp методякоби
Bgp методякобиBgp методякоби
Bgp методякоби
 
Отчет «Центра прикладных исследований компьютерных сетей» на Совете фонда "Ск...
Отчет «Центра прикладных исследований компьютерных сетей» на Совете фонда "Ск...Отчет «Центра прикладных исследований компьютерных сетей» на Совете фонда "Ск...
Отчет «Центра прикладных исследований компьютерных сетей» на Совете фонда "Ск...
 
Отчет по проектах ЦПИКС
Отчет по проектах ЦПИКСОтчет по проектах ЦПИКС
Отчет по проектах ЦПИКС
 
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
 
[DD] 9. Programmable Logic IC
[DD] 9. Programmable Logic IC[DD] 9. Programmable Logic IC
[DD] 9. Programmable Logic IC
 
Secure OS QP
Secure OS QPSecure OS QP
Secure OS QP
 

Andere mochten auch

Особенности разработки для подключенных устройств
Особенности разработки для подключенных устройствОсобенности разработки для подключенных устройств
Особенности разработки для подключенных устройствCEE-SEC(R)
 
Использование открытых кодов для расширения возможностей платформы MIPSfpga
Использование открытых кодов для расширения возможностей платформы MIPSfpgaИспользование открытых кодов для расширения возможностей платформы MIPSfpga
Использование открытых кодов для расширения возможностей платформы MIPSfpgaCEE-SEC(R)
 
О создании компилятора с высокоуровневого языка на компьютер с программируемо...
О создании компилятора с высокоуровневого языка на компьютер с программируемо...О создании компилятора с высокоуровневого языка на компьютер с программируемо...
О создании компилятора с высокоуровневого языка на компьютер с программируемо...CEE-SEC(R)
 
Эволюция идеологии удалённого управления вычислительными системами на примере...
Эволюция идеологии удалённого управления вычислительными системами на примере...Эволюция идеологии удалённого управления вычислительными системами на примере...
Эволюция идеологии удалённого управления вычислительными системами на примере...CEE-SEC(R)
 
Обучение цифровой и микропроцессорной технике в университете
Обучение цифровой и микропроцессорной технике в университетеОбучение цифровой и микропроцессорной технике в университете
Обучение цифровой и микропроцессорной технике в университетеCEE-SEC(R)
 
Программно-аппаратная разработка с использованием FPGA на примере поддержки п...
Программно-аппаратная разработка с использованием FPGA на примере поддержки п...Программно-аппаратная разработка с использованием FPGA на примере поддержки п...
Программно-аппаратная разработка с использованием FPGA на примере поддержки п...CEE-SEC(R)
 
LMS Moodle с точки зрения программиста
LMS Moodle с точки зрения программистаLMS Moodle с точки зрения программиста
LMS Moodle с точки зрения программистаCEE-SEC(R)
 

Andere mochten auch (7)

Особенности разработки для подключенных устройств
Особенности разработки для подключенных устройствОсобенности разработки для подключенных устройств
Особенности разработки для подключенных устройств
 
Использование открытых кодов для расширения возможностей платформы MIPSfpga
Использование открытых кодов для расширения возможностей платформы MIPSfpgaИспользование открытых кодов для расширения возможностей платформы MIPSfpga
Использование открытых кодов для расширения возможностей платформы MIPSfpga
 
О создании компилятора с высокоуровневого языка на компьютер с программируемо...
О создании компилятора с высокоуровневого языка на компьютер с программируемо...О создании компилятора с высокоуровневого языка на компьютер с программируемо...
О создании компилятора с высокоуровневого языка на компьютер с программируемо...
 
Эволюция идеологии удалённого управления вычислительными системами на примере...
Эволюция идеологии удалённого управления вычислительными системами на примере...Эволюция идеологии удалённого управления вычислительными системами на примере...
Эволюция идеологии удалённого управления вычислительными системами на примере...
 
Обучение цифровой и микропроцессорной технике в университете
Обучение цифровой и микропроцессорной технике в университетеОбучение цифровой и микропроцессорной технике в университете
Обучение цифровой и микропроцессорной технике в университете
 
Программно-аппаратная разработка с использованием FPGA на примере поддержки п...
Программно-аппаратная разработка с использованием FPGA на примере поддержки п...Программно-аппаратная разработка с использованием FPGA на примере поддержки п...
Программно-аппаратная разработка с использованием FPGA на примере поддержки п...
 
LMS Moodle с точки зрения программиста
LMS Moodle с точки зрения программистаLMS Moodle с точки зрения программиста
LMS Moodle с точки зрения программиста
 

Ähnlich wie Технология предметно ориентированного программирования гетерогенных многоядерных платформ

Подходы к мониторингу информационных систем
Подходы к мониторингу информационных системПодходы к мониторингу информационных систем
Подходы к мониторингу информационных системCisco Russia
 
Программный комплекс "НейроКС"
Программный комплекс "НейроКС"Программный комплекс "НейроКС"
Программный комплекс "НейроКС"kulibin
 
Middleware
MiddlewareMiddleware
Middlewaremegakott
 
Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"Fwdays
 
Embarcadero All-Access
Embarcadero All-AccessEmbarcadero All-Access
Embarcadero All-AccessSerghei Urban
 
Создание и развитие отечественной платформы с открытым программным кодом для ...
Создание и развитие отечественной платформы с открытым программным кодом для ...Создание и развитие отечественной платформы с открытым программным кодом для ...
Создание и развитие отечественной платформы с открытым программным кодом для ...ARCCN
 
RST2014_Taganrog_NewGenerationMicroproccessor
RST2014_Taganrog_NewGenerationMicroproccessorRST2014_Taganrog_NewGenerationMicroproccessor
RST2014_Taganrog_NewGenerationMicroproccessorRussianStartupTour
 
Презентация Дроздова А. (Вице-президента Soft Machines), Владиславлева В.(Зам...
Презентация Дроздова А. (Вице-президента Soft Machines), Владиславлева В.(Зам...Презентация Дроздова А. (Вице-президента Soft Machines), Владиславлева В.(Зам...
Презентация Дроздова А. (Вице-президента Soft Machines), Владиславлева В.(Зам...Наталия Егорова
 
ПО PROJ - Новое слово в проектировании современных автоматизированных систем ...
ПО PROJ - Новое слово в проектировании современных автоматизированных систем ...ПО PROJ - Новое слово в проектировании современных автоматизированных систем ...
ПО PROJ - Новое слово в проектировании современных автоматизированных систем ...ООО "Прософт-Системы"
 
Развитие программной платформы Cisco WAN Automation Engine
Развитие программной платформы Cisco WAN Automation EngineРазвитие программной платформы Cisco WAN Automation Engine
Развитие программной платформы Cisco WAN Automation EngineCisco Russia
 
Hpc Server 2008 Ecosystem
Hpc Server 2008 EcosystemHpc Server 2008 Ecosystem
Hpc Server 2008 EcosystemOleg Nazarevych
 
Построение и переход на новую аналитическую платформу. Цели, вызовы, решения....
Построение и переход на новую аналитическую платформу. Цели, вызовы, решения....Построение и переход на новую аналитическую платформу. Цели, вызовы, решения....
Построение и переход на новую аналитическую платформу. Цели, вызовы, решения....HOWWEDOIT
 
Презентация для конкурса на лучшую статью по 3SL Cradle
Презентация для конкурса на лучшую статью по 3SL CradleПрезентация для конкурса на лучшую статью по 3SL Cradle
Презентация для конкурса на лучшую статью по 3SL CradleYulia Madorskaya
 
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.Vadim Martynov
 
Platypus platform ivbit
Platypus platform ivbitPlatypus platform ivbit
Platypus platform ivbitjskonst
 
росатом(эвмновогопокол)
росатом(эвмновогопокол)росатом(эвмновогопокол)
росатом(эвмновогопокол)PIPoruchikov
 
Freelance - система РСУ от компании АВВ
Freelance  - система РСУ от компании АВВFreelance  - система РСУ от компании АВВ
Freelance - система РСУ от компании АВВAPPAU_Ukraine
 

Ähnlich wie Технология предметно ориентированного программирования гетерогенных многоядерных платформ (20)

Подходы к мониторингу информационных систем
Подходы к мониторингу информационных системПодходы к мониторингу информационных систем
Подходы к мониторингу информационных систем
 
Программный комплекс "НейроКС"
Программный комплекс "НейроКС"Программный комплекс "НейроКС"
Программный комплекс "НейроКС"
 
Middleware
MiddlewareMiddleware
Middleware
 
Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"
 
Embarcadero All-Access
Embarcadero All-AccessEmbarcadero All-Access
Embarcadero All-Access
 
голубушин
голубушинголубушин
голубушин
 
Создание и развитие отечественной платформы с открытым программным кодом для ...
Создание и развитие отечественной платформы с открытым программным кодом для ...Создание и развитие отечественной платформы с открытым программным кодом для ...
Создание и развитие отечественной платформы с открытым программным кодом для ...
 
RST2014_Taganrog_NewGenerationMicroproccessor
RST2014_Taganrog_NewGenerationMicroproccessorRST2014_Taganrog_NewGenerationMicroproccessor
RST2014_Taganrog_NewGenerationMicroproccessor
 
Презентация Дроздова А. (Вице-президента Soft Machines), Владиславлева В.(Зам...
Презентация Дроздова А. (Вице-президента Soft Machines), Владиславлева В.(Зам...Презентация Дроздова А. (Вице-президента Soft Machines), Владиславлева В.(Зам...
Презентация Дроздова А. (Вице-президента Soft Machines), Владиславлева В.(Зам...
 
ПО PROJ - Новое слово в проектировании современных автоматизированных систем ...
ПО PROJ - Новое слово в проектировании современных автоматизированных систем ...ПО PROJ - Новое слово в проектировании современных автоматизированных систем ...
ПО PROJ - Новое слово в проектировании современных автоматизированных систем ...
 
Развитие программной платформы Cisco WAN Automation Engine
Развитие программной платформы Cisco WAN Automation EngineРазвитие программной платформы Cisco WAN Automation Engine
Развитие программной платформы Cisco WAN Automation Engine
 
Hpc Server 2008 Ecosystem
Hpc Server 2008 EcosystemHpc Server 2008 Ecosystem
Hpc Server 2008 Ecosystem
 
Построение и переход на новую аналитическую платформу. Цели, вызовы, решения....
Построение и переход на новую аналитическую платформу. Цели, вызовы, решения....Построение и переход на новую аналитическую платформу. Цели, вызовы, решения....
Построение и переход на новую аналитическую платформу. Цели, вызовы, решения....
 
190
190190
190
 
Презентация для конкурса на лучшую статью по 3SL Cradle
Презентация для конкурса на лучшую статью по 3SL CradleПрезентация для конкурса на лучшую статью по 3SL Cradle
Презентация для конкурса на лучшую статью по 3SL Cradle
 
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
 
Kalpa doklad
Kalpa dokladKalpa doklad
Kalpa doklad
 
Platypus platform ivbit
Platypus platform ivbitPlatypus platform ivbit
Platypus platform ivbit
 
росатом(эвмновогопокол)
росатом(эвмновогопокол)росатом(эвмновогопокол)
росатом(эвмновогопокол)
 
Freelance - система РСУ от компании АВВ
Freelance  - система РСУ от компании АВВFreelance  - система РСУ от компании АВВ
Freelance - система РСУ от компании АВВ
 

Mehr von CEE-SEC(R)

Подбор и адаптация методологий разработки ПО под различные типы производствен...
Подбор и адаптация методологий разработки ПО под различные типы производствен...Подбор и адаптация методологий разработки ПО под различные типы производствен...
Подбор и адаптация методологий разработки ПО под различные типы производствен...CEE-SEC(R)
 
Проектный офис и аналитик
Проектный офис и аналитикПроектный офис и аналитик
Проектный офис и аналитикCEE-SEC(R)
 
Онлайн-революция: от ранних репозиториев – к современным МООС-курсам
Онлайн-революция: от ранних репозиториев – к современным МООС-курсамОнлайн-революция: от ранних репозиториев – к современным МООС-курсам
Онлайн-революция: от ранних репозиториев – к современным МООС-курсамCEE-SEC(R)
 
Массовый параллелизм для гетерогенных вычислений на C++ для беспилотных автом...
Массовый параллелизм для гетерогенных вычислений на C++ для беспилотных автом...Массовый параллелизм для гетерогенных вычислений на C++ для беспилотных автом...
Массовый параллелизм для гетерогенных вычислений на C++ для беспилотных автом...CEE-SEC(R)
 
Как компании с вузами вместе ИТ специалиста готовили или Чем ИТ компания може...
Как компании с вузами вместе ИТ специалиста готовили или Чем ИТ компания може...Как компании с вузами вместе ИТ специалиста готовили или Чем ИТ компания може...
Как компании с вузами вместе ИТ специалиста готовили или Чем ИТ компания може...CEE-SEC(R)
 
«Знак качества» как инструмент анализа восприятия продукта клиентами
«Знак качества» как инструмент анализа восприятия продукта клиентами«Знак качества» как инструмент анализа восприятия продукта клиентами
«Знак качества» как инструмент анализа восприятия продукта клиентамиCEE-SEC(R)
 
Машинное обучение на каждый день
Машинное обучение на каждый деньМашинное обучение на каждый день
Машинное обучение на каждый деньCEE-SEC(R)
 
Process и Case Management в информационной системе:
Process и Case Management в информационной системе: Process и Case Management в информационной системе:
Process и Case Management в информационной системе: CEE-SEC(R)
 
Проблемы процесса разработки с точки зрения тестирования
Проблемы процесса разработки с точки зрения тестированияПроблемы процесса разработки с точки зрения тестирования
Проблемы процесса разработки с точки зрения тестированияCEE-SEC(R)
 
Как ЧПУ станку в домашней мастерской не превратиться в мульт героев “двое из ...
Как ЧПУ станку в домашней мастерской не превратиться в мульт героев “двое из ...Как ЧПУ станку в домашней мастерской не превратиться в мульт героев “двое из ...
Как ЧПУ станку в домашней мастерской не превратиться в мульт героев “двое из ...CEE-SEC(R)
 
Ай-трекинг в UX исследованиях
Ай-трекинг в UX исследованияхАй-трекинг в UX исследованиях
Ай-трекинг в UX исследованияхCEE-SEC(R)
 
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...CEE-SEC(R)
 
Технологичный подход к повышению продуктивности – кейсы и исследования
Технологичный подход к повышению продуктивности – кейсы и исследованияТехнологичный подход к повышению продуктивности – кейсы и исследования
Технологичный подход к повышению продуктивности – кейсы и исследованияCEE-SEC(R)
 
Субъектно-ориентированные информационные системы на предприятиях
Субъектно-ориентированные информационные системы на предприятияхСубъектно-ориентированные информационные системы на предприятиях
Субъектно-ориентированные информационные системы на предприятияхCEE-SEC(R)
 
Шаблоны контейнеров в Virtuozzo
Шаблоны контейнеров в VirtuozzoШаблоны контейнеров в Virtuozzo
Шаблоны контейнеров в VirtuozzoCEE-SEC(R)
 
Apache Storm: от простого приложения до подробностей реализации
Apache Storm: от простого приложения до подробностей реализацииApache Storm: от простого приложения до подробностей реализации
Apache Storm: от простого приложения до подробностей реализацииCEE-SEC(R)
 
Семантическое ядро рунета
Семантическое ядро рунетаСемантическое ядро рунета
Семантическое ядро рунетаCEE-SEC(R)
 
Разработка требований для противоречащих законодательств
Разработка требований для противоречащих законодательствРазработка требований для противоречащих законодательств
Разработка требований для противоречащих законодательствCEE-SEC(R)
 
IT-Лаборатория: кузница кадров и стартапов
IT-Лаборатория: кузница кадров и стартаповIT-Лаборатория: кузница кадров и стартапов
IT-Лаборатория: кузница кадров и стартаповCEE-SEC(R)
 
Законы создания IT команд и следствия законов для IT проектов «на пальцах»
Законы создания IT команд и следствия законов для IT проектов «на пальцах»Законы создания IT команд и следствия законов для IT проектов «на пальцах»
Законы создания IT команд и следствия законов для IT проектов «на пальцах»CEE-SEC(R)
 

Mehr von CEE-SEC(R) (20)

Подбор и адаптация методологий разработки ПО под различные типы производствен...
Подбор и адаптация методологий разработки ПО под различные типы производствен...Подбор и адаптация методологий разработки ПО под различные типы производствен...
Подбор и адаптация методологий разработки ПО под различные типы производствен...
 
Проектный офис и аналитик
Проектный офис и аналитикПроектный офис и аналитик
Проектный офис и аналитик
 
Онлайн-революция: от ранних репозиториев – к современным МООС-курсам
Онлайн-революция: от ранних репозиториев – к современным МООС-курсамОнлайн-революция: от ранних репозиториев – к современным МООС-курсам
Онлайн-революция: от ранних репозиториев – к современным МООС-курсам
 
Массовый параллелизм для гетерогенных вычислений на C++ для беспилотных автом...
Массовый параллелизм для гетерогенных вычислений на C++ для беспилотных автом...Массовый параллелизм для гетерогенных вычислений на C++ для беспилотных автом...
Массовый параллелизм для гетерогенных вычислений на C++ для беспилотных автом...
 
Как компании с вузами вместе ИТ специалиста готовили или Чем ИТ компания може...
Как компании с вузами вместе ИТ специалиста готовили или Чем ИТ компания може...Как компании с вузами вместе ИТ специалиста готовили или Чем ИТ компания може...
Как компании с вузами вместе ИТ специалиста готовили или Чем ИТ компания може...
 
«Знак качества» как инструмент анализа восприятия продукта клиентами
«Знак качества» как инструмент анализа восприятия продукта клиентами«Знак качества» как инструмент анализа восприятия продукта клиентами
«Знак качества» как инструмент анализа восприятия продукта клиентами
 
Машинное обучение на каждый день
Машинное обучение на каждый деньМашинное обучение на каждый день
Машинное обучение на каждый день
 
Process и Case Management в информационной системе:
Process и Case Management в информационной системе: Process и Case Management в информационной системе:
Process и Case Management в информационной системе:
 
Проблемы процесса разработки с точки зрения тестирования
Проблемы процесса разработки с точки зрения тестированияПроблемы процесса разработки с точки зрения тестирования
Проблемы процесса разработки с точки зрения тестирования
 
Как ЧПУ станку в домашней мастерской не превратиться в мульт героев “двое из ...
Как ЧПУ станку в домашней мастерской не превратиться в мульт героев “двое из ...Как ЧПУ станку в домашней мастерской не превратиться в мульт героев “двое из ...
Как ЧПУ станку в домашней мастерской не превратиться в мульт героев “двое из ...
 
Ай-трекинг в UX исследованиях
Ай-трекинг в UX исследованияхАй-трекинг в UX исследованиях
Ай-трекинг в UX исследованиях
 
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...
 
Технологичный подход к повышению продуктивности – кейсы и исследования
Технологичный подход к повышению продуктивности – кейсы и исследованияТехнологичный подход к повышению продуктивности – кейсы и исследования
Технологичный подход к повышению продуктивности – кейсы и исследования
 
Субъектно-ориентированные информационные системы на предприятиях
Субъектно-ориентированные информационные системы на предприятияхСубъектно-ориентированные информационные системы на предприятиях
Субъектно-ориентированные информационные системы на предприятиях
 
Шаблоны контейнеров в Virtuozzo
Шаблоны контейнеров в VirtuozzoШаблоны контейнеров в Virtuozzo
Шаблоны контейнеров в Virtuozzo
 
Apache Storm: от простого приложения до подробностей реализации
Apache Storm: от простого приложения до подробностей реализацииApache Storm: от простого приложения до подробностей реализации
Apache Storm: от простого приложения до подробностей реализации
 
Семантическое ядро рунета
Семантическое ядро рунетаСемантическое ядро рунета
Семантическое ядро рунета
 
Разработка требований для противоречащих законодательств
Разработка требований для противоречащих законодательствРазработка требований для противоречащих законодательств
Разработка требований для противоречащих законодательств
 
IT-Лаборатория: кузница кадров и стартапов
IT-Лаборатория: кузница кадров и стартаповIT-Лаборатория: кузница кадров и стартапов
IT-Лаборатория: кузница кадров и стартапов
 
Законы создания IT команд и следствия законов для IT проектов «на пальцах»
Законы создания IT команд и следствия законов для IT проектов «на пальцах»Законы создания IT команд и следствия законов для IT проектов «на пальцах»
Законы создания IT команд и следствия законов для IT проектов «на пальцах»
 

Технология предметно ориентированного программирования гетерогенных многоядерных платформ

  • 1. XII международная конференция CEE-SECR / РАЗРАБОТКА ПО 28 - 29 октября, Москва Технология предметно-ориентированного программирования для неоднородных многоядерных платформ Борис Седов, Юрий Шейнин, Алексей Сыщиков boris.sedov@guap.ru, sheynin@aanet.ru Санкт-Петербургский государственный университет аэрокосмического приборостроения
  • 2. Зачем нужна такая технология? © 2006 OMS & MCIT GUAP 2/17 1. Требуется разработчик “два в одном”: квалифицированный специалист в предметной области + квалифицированный программист 2. Сложность разработки параллельного встраиваемого ПО 3. Неоднородность встраиваемых систем 4. Аппаратные платформы быстро устаревают, но решаемые на них задачи и алгоритмы устаревают редко 5. Для достижения требований необходима адаптация алгоритмов под платформы и платформ под алгоритмы
  • 3. Жизненный цикл программы в рамках технологии 3/17 Разработка Симулятор Генератор кода
  • 4. Жизненный цикл программы в рамках технологии 3/17 Разработка Симулятор Генератор кода
  • 5. Жизненный цикл программы в рамках технологии 3/17 Разработка Симулятор Генератор кода Платформа 1
  • 6. Жизненный цикл программы в рамках технологии 3/17 Разработка Симулятор Генератор кода Платформа 1
  • 7. Жизненный цикл программы в рамках технологии 3/17 Разработка Симулятор Генератор кода Платформа 1Платформа 2
  • 8. Жизненный цикл программы в рамках технологии 3/17 Разработка Симулятор Генератор кода Платформа 1Платформа 2Платформа 3
  • 10. 4/17 1 Симуляция и ранняя оценкаРазмещение на целевой платформеРазработка алгоритмов и программ Детальная схема технологии
  • 11. 4/17 1 2 Симуляция и ранняя оценка Детальная схема технологии
  • 12. 4/17 1 2 3 Симуляция и ранняя оценкаРазмещение на целевой платформе Детальная схема технологии
  • 13. Графический язык программирования VPL • Разделение проектирования и программирования 5/17
  • 14. Графический язык программирования VPL • Разделение проектирования и программирования Эксперт Программист 5/17
  • 15. Графический язык программирования VPL • Разделение проектирования и программирования Эксперт Программист • Простота внесения изменений в структуру программы • Отсутствие влияния программиста (кодера) на спроектированную схему • Локальное проявление ошибок разработки • Поддержка и сопровождение программ в течение жизненного цикла • Уменьшение вероятности ошибок без потери читаемости программы • Гибкость и лёгкость изменения на любом этапе разработки 5/17
  • 16. • Когнитивные преимущества: • прозрачность процесса разработки • прослеживаемость схемы зависимостей • наглядность структуры управления вычислениями • Общие данные • Естественный параллелизм • Потенциальная конвейеризация Программа на языке VPL – схема вычислений из операторов обработки, операторов управления и общих данных 6/17 Графический язык программирования VPL
  • 17. Предметно-ориентированное программирование 7/17 • Предметно ориентированные библиотеки предоставляют удобство разработки в предметной области • Вовлечение в процесс разработки ПО для встроенных систем специалистов предметных областей • Удобное средства разработки DSL библиотек • Удобное повторное использование разработок и кода
  • 18. © 2006 OMS & MCIT GUAP Схема программы – ориентированный граф Vp – вершина-оператор, Vd – вершина-данное, W/R/RE – дуги (связи) и их разметка Vd1 Vd3 Vd2 W R W RE W Vp1 Vp2 Vp3W W Vp4 RE АРП-модель определяет • синтаксис языка • семантику объектов языка • управляющие конструкции АРП-модель предоставляет • методы формальной верификации • идентичность результатов при работе в разных окружениях • возможности для переносимости вычислений • представление динамики параллельного вычисления • совмещение работы с общими данными и модели распределенной памяти Формальная модель вычислений: Асинхронные Развивающиеся Процессы 8/17
  • 19. VIPE: визуальная среда проектирования 9/17
  • 20. Интерактивные инструменты Инструменты поддержки процесса разработки: • валидация схемы • проверка синтаксиса • проверка типов • корректность связей • полнота схемы • и т.д. 10/17
  • 21. Интерактивные инструменты Инструменты поддержки процесса разработки: • валидация схемы • верификация (в работе) • проверка синтаксиса • проверка типов • корректность связей • полнота схемы • и т.д. • однозначность • deadlocks • livelocks • завершаемость • и т.д. 10/17
  • 22. Интерактивные инструменты Инструменты поддержки процесса разработки: • валидация схемы • верификация (в работе) • интерактивная отладка и т.д. • проверка синтаксиса • проверка типов • корректность связей • полнота схемы • и т.д. • однозначность • deadlocks • livelocks • завершаемость • и т.д. • пошаговая отладка • breakpoints • watches • передача данных • трассы вычислений • выполнение операторов • функциональная отладка при последовательном выполнении 10/17
  • 24. Инструмент анализа «визуальный профилировщик» Поиск критических участков (hotspots) в программе Различные режимы работы: • Абсолютные времена выполнения операторов схемы • Относительные времена согласно структуре вложенностей • Критические участки с фильтрацией малых величин 12/17
  • 25. Инструмент статического анализа Время Ускорение Коэффициент эффективности 𝐸 = 𝑇1 𝑁 ∗ 𝑇𝑛 𝑆 = 𝑇1 𝑇𝑛 𝑅 = 𝑇𝑛 𝑇1 ∗ 100% 𝑁 – количество процессоров 𝑇1 – время выполнения программы на 1 процессоре 𝑇𝑛 – время выполнения программы на N процессорах Быстрая оценка работы ПО на модели многоядерной платформы 13/17
  • 26. Позволяет оценить: 1. требования к производительности ядер встроенной системы 2. требования к памяти ядер встроенной системы 3. занятость вычислительных ядер для различных вариантов размещения и баланс занятости 4. количество и интенсивность обменов данными 5. эффективность загрузки аппаратного обеспечения 6. узкие места аппаратной платформы, программы и распределения задач VPL-симулятор 14/17 VPL программа i1017 VPL-симулятор
  • 27. 15/17 Поддержка неоднородных платформ в VIPE • Назначение элементов схемы на компоненты аппаратной платформы (CPU, GPU, DSP, DMA) • операторов на различные типы ядер • данных на разные типы памяти • обменов на разные типы соединений • Выбор подходящей реализации операторов обработки данных • Подготовка исходных данных и отвод результатов работы оператора программы с учетом специфики различных механизмов обмена данными
  • 28. © 2006 OMS & MCIT GUAP Рабочие прототипы • ANSI C • C++ • Параллельный OpenMP • RT-run-time под платформу (в работе) Proof of concept • Параллельные потоки • MPI • Ассемблер MIPS, DSP Размещение на целевой платформе 16/17
  • 29. Выводы • Технология покрывает различные требования к разработке встроенного ПО • DSL позволяют вовлекать экспертов непосредственно в процесс разработки • Инструменты оценки производительности помогает разработчику достичь лучших программных характеристик, соблюсти ограничения и требования • Базовая формальная модель обеспечивает тождественность результатов исполнения программы в любом окружении, в том числе в режиме отладки • Подход позволяет создавать и отлаживать алгоритм однократно, чтобы потом повторно использовать его в другом окружении и на других платформах • Технология позволяет быстро подключать новые платформы • Технология позволяет быстро создавать прототипы для демонстрации их потенциальным клиентам 17/17boris.sedov@guap.ru, sheynin@aanet.ru
  • 31. Слежение за особенностями сцены DSL, основанный на OpenVX Программа отслеживания особенностей сцены в VIPE 19 DSL и проектирование
  • 32. Слежение за особенностями сцены Программа отслеживания особенностей схемы запускалась на платформе x86 с использованием реализации от Khronos 20 Результаты выполнения
  • 33. Слежение за особенностями сцены Оценка производительности отслеживания особенностей сцены с последовательной обработкой кадров Оценка производительности отслеживания особенностей сцены с параллельной обработкой кадров 21 Статический анализ
  • 34. Слежение за особенностями сцены Профилирование программы отслеживания особенностей сцены Большое количество времени проходит внутри функций конвертирования изображений (из формата OpenVX и обратно) 22 Визуальный профилировщик
  • 35. Отслеживание движения объектов радаром Программа отслеживания движения объектов радаром разрабатывался в проекте PaPP Европейской технической платформы ARTEMIS/ECSEL. 23 Проектирование
  • 36. Отслеживание движения объектов радаром Однако, результаты оказались хуже ожидаемых. Статический анализ подпрограммы “Обработка блоков данных” показывает близкое к линейному сокращение времени на 8 ядрах Статический анализ показывает приемлемое сокращение времени на 2-3 ядрах 24 Статический анализ
  • 37. Отслеживание движения объектов радаром Визуальный профилировщик выявляет, что большое количество времени тратится на функцию, которая считывает образцы данных из файла (нынешний прототип использует образцы, хранящиеся в файле). Функция чтения файла находится в последовательной части, следовательно параллелизм ограничен законом Амдала. Реальное получение данных должно быть оптимизировано, чтобы занимать меньше времени. Оценка с уменьшенным временем работы функции чтения показывает удовлетворительные результаты. 25 Визуальный профилировщик
  • 38. Отслеживание движения объектов радаром Ядра (симулятор) или потоки (OpenMP) Статический анализ сек. / % Моделирование VPL сек. / % Исполнение сек. / % Без OpenMP 1.60 1 1.26 / 100 1.29 / 100 1.65 / 100 2 0.64 / 50.8 0.88 / 68.2 1.00 / 60.6 3 0.60 / 47.6 0.72 / 55.8 0.81 / 49.1 4 0.34 / 30.0 0.55 / 42.6 1.25 / 76.7 Платформа • Core i7 8 ядер -> VirtualBox VM 4 ядра • Ubuntu 14.04, GCC 4.9.2. Входные данные • 12 MB данных сэмплирования сигнала Сравнение результатов анализа, моделирования и исполнения 26