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

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

ОБНОВЛЕНИЯ

23 января 2020

На Международном авиационно-космическом авиасалоне МАКС-2019 были представлены два процессорных модуля Салют-ЭЛ24ПМ, выполняющие полностью спроектированные в VIPE программы, в составе сегмента бортовой сети летательного аппарата на технологии SpaceWire/GigaSpaceWire для высокопроизводительной распределенной обработки информации и управления (подробнее).

Официально анонсирована поддержка многоядерного процессора Мультикор 1892ВМ14Я и процессорного модуля Салют-ЭЛ24ПМ на его основе в VIPE c сентября 2019 года.

 

Среда программирования VIPE позволяет разрабатывать переносимые параллельные приложения в визуально-графическом виде с использованием расширяемого набора предметно ориентированных библиотек, размещать их на неоднородных многоядерных платформах с процессором 1892ВМ14Я, обеспечивает выполнение задач на двух CPU ARM Cortex-A9, двух DSP-ядрах ELcore-30M, вывод трехмерной графики с использованием 3D-акселератора Mali-300, а также взаимодействие с периферийными и сетевыми интерфейсами Салют–ЭЛ24ПМ.

12 сентября 2019

Издательство IGI Global анонсировало выход книги “Tools and Technologies for the Development of Cyber-Physical Systems“, одна из глав которой посвящена VIPE. В главе “Model-Based Techniques and Tools for Programming Embedded Multicore Platforms“ представлено подробное описание базовой формальной модели вычислений (MoC) VIPE и семантики языковых конструкций, которые позволяют разработчику понять, как ведут себя рассматриваемые конструкции. Аннотация главы:

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

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

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

ВИЗУАЛЬНАЯ СРЕДА ПОЗВОЛЯЕТ БЫСТРО СОЗДАВАТЬ РЕШЕНИЯ ДЛЯ РАЗЛИЧНЫХ ПРЕДМЕТНЫХ ОБЛАСТЕЙ

Туманные вычисления

 

Неоднородные многоядерные процессоры

Машинное зрение

 

Аэрокосмическая отрасль

 

Другие предметные области

 

Программа киберфизической системы для идентификации лиц и слежения за ними

  • Среда разработки для визуального языка параллельного программирования VPL
  • Разделение проектирования и программирования:
    • проектирование для специалистов в предметной области
    • программирование для разработчиков и кодеров
  • Предметно-ориентированная разработка, библиотеки предметных областей
  • Встроенные средства валидации и интерактивной отладки
  • Верификация параллельных программ

Подробнее узнайте в статье. Свяжитесь с нами,
и мы пришлем Вам статью.

  • Профилирование кода на инструментальном компьютере разработчика
  • Наглядное представление результатов профилирования для поиска узких мест и анализа критических путей в программе
  • Быстрая предварительная оценка характеристик программы и внутреннего параллелизма алгоритма
  • Детальный анализ характеристик параллельной программы с помощью симулятора VPL
  • Анализ поведения параллельной программы на упрощенной модели неоднородной многоядерной платформы

Подробнее узнайте в статье. Свяжитесь с нами,
и мы пришлем Вам статью.

  • Генерация кода для тестирования на инструментальном компьютере разработчика
  • Генерация параллельного кода под различные целевые платформы
  • Применение различных методов оптимизации под особенности платформ: неоднородность, количество ядер, память, внутреннюю систему коммуникаций и др.
  • Интеграция с компилятором и другими сторонними инструментами для  сборки, загрузки и запуска программы на целевой платформе
  • Удаленная отладка на целевой платформе

Подробнее узнайте в статье. Свяжитесь с нами,
и мы пришлем Вам статью.

ИСПОЛЬЗУЙТЕ VIPE ДЛЯ СВОИХ ПРОЕКТОВ

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

Инструменты среды (создание, анализ и генерация кода) позволяют:

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

Работа с инструментами VIPE на примере
программы радара дорожного трафика
(5 минут)

Демонстрация VIPE и цепочки инструментов PaPP*
на примере программы радара дорожного трафика
(20 минут)

Демонстрация VIPE и цепочки инструментов PaPP
на примере программы сжатия изображения с
использованием стандарта CCSDS 122b** (25 минут)

* PaPP – Portable and Predictable Performance.

  Официальный сайт проекта

**

CCSDS 122b – стандарт сжатия изображения широко применяемый в аэрокосмической отрасли.

ПОДДЕРЖКА МНОГОЯДЕРНОСТИ И НЕОДНОРОДНОСТИ

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

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

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

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

Поддерживаемые в VIPE стандарты и программные интерфейсы параллельного исполнения программ на многоядерных, неоднородных и распределенных системах включают: • Pthreads* • OpenMP • OpenCL • OpenVX • MPI и другие.

Подробнее узнайте в статье. Свяжитесь с нами, и мы пришлем Вам статью.

ПОДДЕРЖКА OPENVX

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

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

 

 

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

АСИНХРОННЫЕ РАЗВИВАЮЩИЕСЯ ПРОЦЕССЫ (АРП)

ФОРМАЛЬНАЯ МОДЕЛЬ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ

АРП-модель определяет

  • синтаксис языка VPL
  • семантику объектов языка VPL
  • управляющие конструкции VPL

VIPE на основе VPL/АРП-модели

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

Схема параллельной программы – помеченный двудольный ориентированный граф

S = {Vp, Vd, F, W, M},
где:
      v∊Vp – вершина оператор (Op),
      v∊Vd – вершина объект-данное (DO),
      F – отношение инцидентности F ⊆ Vp x Vd,
      W – маркированные ребра,
      M – маркированные вершины

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

УЗНАЙТЕ О VIPE БОЛЬШЕ

Технические сведения (Datasheet):

  • VIPE
    Краткое описание каждого из компонентов среды, ее возможностей и перечень требований к инструментальной машине
    Загрузить

Информационные буклеты:

  • VIPE для разработчиков
    Создавайте прототипы и
    промышленные решения

    Загрузить
  • VIPE для специалистов предметных областей
    Используйте VIPE для
    компонентного проектирования

    Загрузить

Презентации:

 

  • Domain-Specific Programming Technology for Heterogeneous Manycore Platforms
    Краткий обзор возможностей среды VIPE

Статьи:

Проекты:

  • PaPP (Portable and Predictable Performance)
    Цель проекта – обеспечить предсказуемость производительности на каждом этапе
    разработки проекта. Проект выполнен в партнёрстве с 14 европейскими организациями

    Официальный сайт

Партнёры:

«Электронные вычислительно-информационные системы»
(АО НПЦ
«ЭЛВИС») является одним из ведущих центров
проектирования микросхем в России.

Официальный сайт

ARTEMIS – Европейская технологическая платформа по интеллектуальным встраиваемым системам.
Официальный сайт

РАЗРАБОТЧИКИ

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

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

Широко известные ученые и специалисты лидирующих компаний Санкт-Петербурга, институтов и организаций Российской Академии Наук читают лекции в ГУАП.

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

Институт высокопроизводительных компьютерных и сетевых технологий (ВКиСТ) является научно-исследовательским подразделением ГУАП. ВКиСТ имеет богатый опыт в разработке и программировании параллельных вычислительных архитектур, высокопроизводительных многоядерных систем реального времени, обладает компетенциями в аэрокосмической области, в частности в разработке системного программного обеспечения.

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

СВЯЖИТЕСЬ С НАМИ

Среда VIPE активно развивается. Она может быть полезна разработчикам, работающим в самых различных предметных областях, которым необходимо создавать встраиваемые решения на современных неоднородных многоядерных платформах.
Если вы создаете проект с использованием встраиваемых многоядерных платформ (IoT, машинное зрение и т.д.),
мы поможем реализовать ваш проект.

(812) 710-62-34