VIPE – интегрированная среда параллельного программирования для неоднородных многоядерных платформ.
Программный комплекс VIPE предназначен для разработки прикладных параллельных программ, эффективно выполняющихся на неоднородных многоядерных платформах общего назначения. Среда обеспечивает полный цикл разработки ПО: от фазы проектирования до получения готового к использованию машинного кода. VIPE позволяет создавать полнофункциональные, алгоритмически корректные, отлаженные и платформонезависимые программы единожды и использовать их многократно. Среда позволяет портировать разработанное ПО на различные платформы за прогнозируемое время с предсказуемыми затратами.
Процесс разработки ПО в среде VIPE разделен на три этапа: разработка ПО (проектирование и программирование), оценка характеристик ПО, размещение на целевой платформе.
На первом этапе эксперт предметной области проектирует ПО в визуальной среде разработки. Благодаря графическому языке VPL, все участники процесса разработки имеют общее видение проекта и единый терминологический словарь. Использование визуальных предметно-ориентированных библиотек (DSL библиотек) позволяет активно вовлекать в процесс разработки ПО экспертов различных предметных областей. На одном уровне абстракции эксперт предметной области разрабатывает алгоритм решения задачи, используя имеющуюся DSL библиотеки при необходимости дополняя их новыми элементами. На другом уровне абстракции, квалифицированный программист может на традиционном языке программирования (Си) написать реализацию дополнительных функций обработки данных, которые включаются как дополнительные типы операторов в VPL-программу.
Программисту доступны инструменты валидации и интерактивной отладки VPL-программы. Совместно команда разработчиков формирует полностью функциональное, алгоритмически корректное и отлаженное прикладное ПО.
1
На втором этапе итеративный процесс разработки поддерживается инструментами оценки производительности VIPE. Программа статического анализа производительности крупноблочных параллельных приложений выполняет поиск узких мест (bottlenecks) в разрабатываемой программе, выявляет проблемы с ее распараллеливанием, позволяет доработать ПО для получения требуемых характеристик работы на целевой платформе. Информация об архитектуре и характеристиках целевой аппаратной платформы позволяет исполнять программы на настраиваемой модели вычислительной платформы в симуляторе. Симулятор позволяет оценивать различные конфигурации платформ – многопроцессорные, многоядерные, распределенные, что позволяет подготовить программу к исполнению на различных конфигурациях ЭВМ.
На третьем этапе выполняется размещение разработанной программы на целевой вычислительной платформе. При анализе и генерации кода в VIPE учитываются такие свойства целевых платформ, как неоднородность и многоядерность. Среда автоматически генерирует С код из разработанной высокоуровневой программы на графическом языке VPL. Этот код будет использован в качестве входного штатным набором инструментов сборки, компиляции, линковки и т.д. программ на высокоуровневом языке программирования, поставляемого вместе с конкретной аппаратной платформой. Полученный и скомпонованный с функциями организации многопроцессорного/многопоточного выполнения программ машинный код загружается загрузчиком платформы на целевую платформу.
Программный комплекс VIPE предоставляет средства разработки программ для персональных ЭВМ общего назначения, в том числе включающих процессорные ядра общего назначения и процессорные ядра графических акселераторов.
2
3
Подробнее
Разработчиками VIPE являются наши партнеры – Институт Высокопроизводительных Компьютерных и Сетевых Технологий (vkist.guap.ru)