ИТМиВТ - Институт точной механики и вычислительной техники С. А. Лебедева РАН
Институт точной механики и вычислительной техники им. С. А. Лебедева РАН - научно-исследовательский институт в области информационных технологий, вычислительной техники и микроэлектроники
English
Главная страница Контактная информация Карта сайта и поиск
Об институте Решения Проекты Образование

Оптимизирующие компиляторы

Современное состояние ИТ индустрии характеризуется огромным разнообразием вычислительных систем. Любая вычислительная система требует программных средств для ее интеграции и эффективного использования аппаратных возможностей. К таким программным средствам относятся операционные системы, драйверы устройств, системы программирования и многое другое. Для создания любого программного продукта требуется система программирования, основной частью которой является компилятор — переводчик с языка программирования в машинный код целевой машины. В современных условиях уже никого не интересует получение просто целевого кода — код должен быть высокоэффективным и надежным. Поэтому основным инструментом становится оптимизирующий компилятор. Основная задача оптимизирующего компилятора — получение кода, максимально эффективного для данного вычислительного комплекса.

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

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

Разработка компилятора требует временных затрат в пределах десятков лет и значительных затрат по сопровождению этих решений (примеры — оптимизирующие компиляторы компаний Intel, Sun Microsystems, Transmeta, Microsoft, IBM, HP, Elbrus и т.д.). Все эти компании создали свои собственные, не совместимые друг с другом коммерческие продукты с предельным уровнем внутренней сложности. Ситуация продолжает ухудшаться с расширением типологии архитектур (Multi core, Mini core, EPIC) и обусловленным ею появлением новых систем программирования (OMP, MPI и т.д.). К тому же имеющиеся коммерческие компиляторы представляют собой закрытые системы, в которые их разработчики не способны быстро внести адекватную поддержку новых требований и решений.

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

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

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

Целевые пользователи технологии:

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

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

Строительные блоки решают следующие задачи:

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

Компоненты оттестированы в контексте компилятора GCC с языков C, C++, Fortran для платформы x86;

Технология адаптирована для всех платформ, поддерживаемых компиляторами GCC — Intel x86, Itanium, Sun SPARC, MIPS, IBM PowerPC, Cell.

 

© 1948—2016 «ИТМиВТ»
Версия для печати Контактная информация