Проект Еlfperf победил в конкурсе

Студенческий (CO-OP) проект компании EMC и Open Source and Linux Lab и стал победителем в конкурсе-конференции «Технологии Microsoft в теории и практике программирования 2013 (Новые подходы к разработке ПО на примере технологий Microsoft и EМС)», прошедшей 26 марта в Санкт-Петербургском Государственном Политехническом Университете.

Дипломами от компаний Microsoft и EMC был награжден проект участников Open Source and Linux Lab «Elfperf», выполненный совместно с компанией EMC. В рамках проекта был разработан метод неинвазивного измерения производительности программ для ОС Linux и реализован системный профилировщик. Ключевым преимуществом разработанного инструмента является исключительная гибкость применения – с его помощью возможны высокоточные измерения при минимальном вмешательстве в процесс функционирования исследуемого ПО и ОС. Данные качества достигаются путем интеграции кода профилировщика внутрь динамического компоновщика ld-linux.so (dynamic linker) и библиотеки динамической загрузки libdl.so “на лету”. Подобный метод позволяет осуществлять перехват адресов профилируемых функций на этапе проведения релокаций (relocation) или динамической загрузки. Профилируемая программа вместо адресов реальных функций получает адреса инструментального кода, который проводит измерение производительности, не затрагивая код приложения и профилируемых функций.

Другой особенностью профилировщика Elfperf является полная поддержка процессорных архитектур x86 и x64. Помимо вызовов функций, следующих соглашениям о вызовах cdecl и thiscall для обеих архитектур, Elfperf также позволяет профилировать функции, которые были оптимизированы на этапе компиляции.

Проект «Elfperf» был разработан участниками Open Source and Linux Lab – студентом 4 курса СПбГЭТУ “ЛЭТИ” Рябиковым Э.М. и студентом 5 курса СПБГПУ Заславским М.М. в сотрудничестве с программистами компании EMC.

На текущий момент работа проекта была протестирована на дистрибутиве Debian Stable x86/x64 и eglibc. Ведутся работы по переносу проекта на другие дистрибутивы Linux и glibc. Портирование требует внесения изменений в исходный код профилировщика и тщательного тестирования. Параллельно с этим, проверяется работа инструмента «Elfperf» на реальных проектах компании EMC.

Open Source and Linux это сообщество студентов, преподавателей и профессиональных разработчиков, которые стремятся постоянно оттачивать свои умения в области разработки программного обеспечения, освоения новых технологий и получения знаний в высокотехнологичных областях. В деятельности лаборатории принимают участие студенты и аспиранты различных ВУЗов – СПбГЭТУ “ЛЭТИ”, СПБГПУ, СПБАУ РАН. Также, лаборатория очень тестно сотрудничает с Российско-Финской программой университетского сотрудничества в области телекоммуникаций FRUCT. Ведутся совместные проекты с крупнейшими IT-компаниями Санкт-Петербурга. В область интересов лаборатории входит свободное ПО, энергосбережение в мобильных сетях, Smart Spaces, мобильные геосервисы, технологии виртуализации, высокопроизводительные вычисления, разработки на Qt.

Научный руководитель проекта – доцент кафедры математического обеспечения ЭВМ, Санкт-Петербургского электротехнического университета “ЛЭТИ”, кандидат технических наук, лидер Open Source and Linux Lab – Кринкин К. В.

Подробное описание проекта - http://redmine.osll.spb.ru/projects/epat/wiki/_Architecture_description_

Страница проекта на Github - https://github.com/OSLL/elfperf