Компьютер научился оптимизировать код ПО быстрее программистов
10.07.15, Пт, 17:20, Мск,
Текст: Сергей Попсулин
Система Helium, созданная в MIT, способна оптимизировать бинарный код устаревших приложений в десятки раз быстрее, чем это делают профессиональные программисты вручную.
Система Helium
Команда исследователей из Массачусетского технологического института (MIT) и Лаборатории вычислительной техники и искусственного интеллекта (CSAIL) создали систему Helium, способную оптимизировать старые компьютерные программы под более новое аппаратное обеспечение и тем самым повышать скорость их работы. Об этом сообщил сайт учебного заведения.
Исследователи, в частности, посвятили свою работу программному обеспечению для работы с графикой, такому как Adobe Photoshop (растровый редактор) и Irfan View (просмотрщик).
Эти программы содержат фрагменты кода, предназначенные для преобразования изображений — фильтры. Фильтры отличаются тем, что выполняют одни и те же манипуляции с изображением многократно.
Производительность фильтров в значительной степени зависит от аппаратного обеспечения. Если компьютер оснащен современным оборудованием, производительность фильтров деградирует, так как их код остается оптимизированным под аппаратное обеспечение предыдущих поколений.
Извлечение и оптимизация кода
Исследователи научились «извлекать» фильтры из бинарного кода приложения, путем анализа многократно повторяющихся действий во время преобразования изображения. После того как созданная система, под названием Helium, «извлекла» фильтр из бинарного кода, она преобразует его в читабельный код на языке Halide, разработанном специалистами CSAIL.
Новая система на 75% повысила скорость работы фильтров в Photoshop
Далее выполняется оптимизация кода, и затем скомпилированные фрагменты кода, который был оптимизирован, вновь помещаются в бинарный файл, заменяя фрагменты с низкой производительностью.
Результаты
По словам авторов, оптимизация некоторых фильтров Photoshop с помощью системы Helium позволила на 75% увеличить их скорость работы, а производительность некоторых компонентов IrfanView удалось повысить в шесть раз.
«Мы убедились, что Helium способна за один день выполнить работу по оптимизации кода, на которую разработчики могут потратить до трех месяцев. Система, подобная этой, способна помочь компаниям обеспечить высокое быстродействие программ и экономить время сотни программистов, которое потребовалось бы на решение этой задачи», — прокомментировал один из создателей системы, профессор MIT Саман Амарасинг (Saman Amarasinghe). Он добавил, что ежегодно на оптимизацию кода уходят миллиарды долларов, которые можно было бы пустить на нечто более полезное.
Доклад исследователей был представлен на конференции SIGPLAN Ассоциации вычислительной техники (ACM), прошедшей в США в июне 2015 г.
Система для исправления ошибок в коде
Напомним, что в конце июня специалисты Лаборатории вычислительной техники и искусственного интеллекта при Массачусетском технологическом институте сообщили о другой разработке — системе Code Phage, способной исправлять программные ошибки в бинарных файлах, без доступа к исходному коду приложения, путем использования фрагментов кода из программ-доноров.