Исследователи из университета Райса (Rice University)
получили от правительственного агентства США по оборонным разработкам DARPA
грант размером 16 млн. долларов на разработку универсального компилятора.
Будущий компилятор должен уметь работать с любыми гетерогенными и многоядерными
платформами от суперкомпьютеров до роутеров и игровых консолей, оптимизируя
машинный код под конкретную платформу.
Благодаря оптимизации исполняемого кода под каждую конкретную
аппаратную платформу можно добиться значительной экономии в энергопотреблении
и серьезного выигрыша в скорости. Тем не менее, до сих пор разработчикам
приходилось создавать отдельный компилятор для каждой процессорной архитектуры.
Амбициозный проект под названием PACE (Platform-Aware Compilation Environment
среда компиляции с учетом платформы) ставит перед собой новую цель
компилятор, способный автоматически распознавать целевую платформу и
оптимизировать двоичный код для максимального использования ее преимуществ, в
том числе параллельной обработки, даже если изначально код написан на
традиционном языке программирования. Руководителем и директором по
исследовательской работе в этом проекте выступил профессор Кит Купер (Keith
Cooper).
Работа над проектом PACE должна занять 54 месяца. Сначала
исследователи собираются создать набор программ, который будет определять
возможности платформы, на которой они исполняются – многоядерность,
многопоточная обработка и.т.д., будь то интегрированная микросхема класса
«система-на-чипе» или кластер из множества узлов. Затем планируется создать
компилятор, который будет формировать двоичный машинный код с учетом всех
аппаратных особенностей платформы, причем этот компилятор будет проверять код
программы и пытаться автоматически разбить его на фрагменты для параллельного
исполнения в разных потоках и на разных ядрах или физических процессорах. В
финале своей работы исследователи рассчитывают создать инструментарий времени
исполнения, который поможет оценивать производительность приложения и менять
исполняемый код «на лету», если приложение было написано для архитектуры x86, а
исполняется на другой платформе.
Хотя описание программы PACE выглядит несколько
фантастическим, потенциальный результат проекта может коренным образом изменить
нынешнюю ситуацию, когда разработка компилятора для новой процессорной
архитектуры занимает 3-5 лет, хотя и окупается затем быстрой разработкой
приложений для нового процессора. При наличии универсального компилятора вводить
новые процессоры в эксплуатацию станет намного дешевле и быстрее.
Подробнее о проекте PACE можно прочитать на сайте
университета Райса.
По материалам gigaom.com.
|