Студенческий (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 – Кринкин К. В.
28 марта 2013 состоится очередной технологический семинар посвященный методу профилирования динамических библиотек в linux
Аннотация
В докладе будет рассказываться об Elfperf - свободном инструменте для неивазивного(“безболезненного”) профилирования разделяемых библиотек, разработанного в рамках студенческого проекта компании ЕМС.
В первой части будет дана постановка задачи и описан принцип работы динамического загрузчка (ld-linux.so):
Во второй части доклада будет дано конкретное описание процесса решения задачи неинвазивного профилирования:
Также планируется демонстрация работы Elfperf в полевых условиях.
О докладчиках
Эдуард Рябиков, студент 4-го курса кафедры МО ЭВМ СПбГЭТУ “ЛЭТИ”. Является постоянным участником лаборатории OSLL и активным членом сообщества FRUCT. Занимается разработкой для Linux, Android/iOS и геоинформационных сервисов. Проекты: Elfperf, geo2tag (Server-side platform for LBS services), Mhb for Android/iOS (Medical handbook for mobile devices) Интересы: Linux, C/C++.
Марк Заславский, студент 5 курса Института Информационных Технологий и Управления СПБГПУ, сотрудник FRUCT. В рамках профессиональной деятельности занимался кросс-платформенной разработкой под различные операционные системы (Maemo, MeeGo, Android, iOS, Debian, CentOS), разработкой и внедрением систем непрерывной интеграции, созданием и сборкой deb и rpm пакетов для кроссплатформенных проектов, оптимизацией быстродействия существующих решений.
Участник проектов
Профессиональные интересы - Linux-разработка, кроссплатформенная разработка.
Информация
Приглашаются все желающие. Для прохода в здание АУ отправьте заявку не позднее чем за 4 часа через форму регистрации.
14 марта 2013 состоится очередной технологический семинар посвященный разработке игровых движков
Аннотация
Семинар будет посвящен индустрии компьютерных игр и основным проблемам и технологиям с которыми приходится иметь дело профессионалам в этой области. Краткий план семинара:
О докладчике
Андрей Коротков – в течение 12 лет интересуется разработкой игр, начинал еще с ZX Spectrum. За этот период, в качестве хобби, было создано немало независимых игр, некоторые из которых издавались, а некоторые - получали различные награды, например от Independent Game Developers Contest. Также в качестве хобби занимается разработкой открытого кроссплатформерного игрового движка.
Работал над большими коммерческими проектами, например в компании Wargaming (самая крупная и успешная геймдев компания на постсоветском пространстве), а также над околоигровыми проектами связанными с интерактивной 3D графикой реального времени (например 3D геоинформационная система, разработки в области дополненной реальности и машинного зрения).
На данный момент занимается продюсированием игровых и околоигровых проектов в компании 2Nova Interactive. Постоянно находится в курсе всего самого интересного в этой теме.
Информация
Приглашаются все желающие. Для прохода в здание АУ отправьте заявку не позднее чем за 4 часа через форму регистрации.
В текущем мировом рейтинге инфраструктурных решений для гео-контекстных сервисов (http://craftkeys.com/open/open-source-location-based-services/) платформа Geo2tag LBS уже занимает второе место. Команда geo2tag уверена, что сразу после внедрения новых возможностей, таких как, адаптация многосервисной поддержки на сервере и агрегация каналов, которые сейчас находятся в стадии тестирования и готовятся к релизу, уже в начале 2013 года платформа Geo2Tag выйдет на первое место.
11 декабря 2012 состоится очередной технологический семинар посвященный технологии Map-Reduce
Аннотация
Будет рассказано о возможностях обработки больших объемов данных с использованием различных реализаций Map-Reduce.
Будет не очень много слайдов и ощутимое количество кода на Python и Java. Экспертных знаний этих языков не требуется, но будет прекрасно, если слушатели будут понимать основные конструкции.
О докладчике
Дмитрий Барашев, доцент кафедры информатики математико-механического факультета СПбГУ. В течении последних шести лет занимался обработкой больших объемов данных для разных приложений в Google.
Информация
Приглашаются все желающие. Для прохода в здание АУ отправьте заявку не позднее чем за 4 часа через форму регистрации.
6 декабря 2012 в 18.00 часов в Санкт-Петербургском Академическом университете (СПбАУ) состоится технологический семинар, посвященный обзору современного состояния средств поддержки многопоточности в java.
Основные тезисы:
О докладчике
Глеб Смирнов. Увлекается многопоточностью в java с 2009 года. Вёл разработку серверных приложений с высокой степенью параллелизма, включая платформу для высокочастотной алгоритмической торговли. Последние полтора года работает в Яндексе.
Участие в семинаре бесплатное, но требуется предварительная регистрация
Ресурсы:
29.11.12 В СПбАУ пройдет технологический семинар на тему “Семинар Unicode и языковые системы”
Аннотация
В современной программной индустрии в условиях глобализации экономики локализация и интернационализация приложений становится все более важной. На семинаре планируется рассказ об одном из “китов”, на которых стоит интернационализация приложений - стандарте Юникод. Будет небольшой экскурс в историю, описание основ стандарта: набора символов, кодировок UTF, сортировки с учетом языковых особенностей; более глубокие понятия, такие как диакритические знаки, лигатуры, письмо справа налево, иероглифическое письмо и их реализация в Юникоде будут показаны на примере языков: французского, арабского, корейского, китайского, японского, хинди. Также вкратце будет расказано о смежных стандартах: унификация Han, GB 18030.
О докладчике
Денис Киряев Ведущий инженер в компании EMC, подразделение Captiva. Впервые заинтересовался Юникодом в университете на курсе теории языков программирования; более глубокие знания получил на 31-й международной конференции по Юникоду в Сан-Хосе, Калифорния. Проектировал и участвовал в реализации поддержки Юникода в основном продукте подразделения EMC Captiva - InputAccel.
2 ноября на SECR'2012 представлен доклад Е.Баталов, А.Карташов, К.Кринкин Технология контейнерной виртуализации для платформы Android
Виртуализация широко применяется для настольных и серверных решений и начинает завоевывать область мобильных устройств. В статье рассматривается реализация контейнерной виртуализации для устройств на базе Android. Рассмотрены аналоги (Cells, VmWare Horizon Mobile, TrustDroid, EmbeddedXen). Для построения контейнеров применен механизм linux containers (LXC).
Предлагается оригинальный подход к виртуализации телефонии, аудио- и видео- устройств. Предлагаются политики для маршрутизации входящих и исходящих вызовов, а также схема мультиплексирования звука. Вводится понятие активного контейнера Android, который по-умолчанию, принимает весь пользовательский ввод, осуществляет вывод графики на видимую область экрана, принимает входящие и отправляет исходящие сообщения и звонки. Неактивные контейнеры выполняют приложения в фоне, звук может быть микширован. Пользователю предоствляется интерфейс переключения активного контейнера. Описывается стратегия тестирования производительности и проводится анализ потребляемых ресурсов.
Virtualization is widely used for desktop and server systems and in several years it comes into mobile world. The paper suggests approach for container virtualization for Android operating system. Analogues (like Cells, VmWare Horizon Mobile, TrustDroid, EmbeddedXen) are described, and their advantages and disadvantages are considered. Approach suggested by authors is based on linux containers (LXC) mechanism. It allows virtualization of process identifiers, network resources and also can be used for resource management on top of cgroups. For resource management in multi-container environment new supervisor (AndCont) has been developed. Also suggested solution includes modified Android binder driver for inter-process communications; components for multiplexing user input; GPU and frame buffer virtualization scheme; proxy-based solution for in-coming and out-coming messages and phone calls. Active container is introduced to define Android OS instance which is holding user input queue and able to use physical screen for output graphical content. Other (non-active) Android instances do output into virtual buffers which are not visible for users and they are able to run applications in background. Special proxy-based layer has been developed for telephony virtualization. It includes wrapper around native (proprietary) modules for radio-interface features management and set of rules which are defining calls routing scheme. Sound can be mixed from several applications from different containers but during a call audio tract will be monopolized by telephony. On the power management side in paper suggested two solutions: wake_lock() and wake_unlock() virtualization too keep sleeping state for each container; wait_for_fb_sleep event emulation for rendering interface notification to avoid user interface updating. Most of fixes in regular android drivers (e.g. Alarm, Audio etc) have been made by adding unique state context for each container and adding device wide event and data multiplexor. In paper performance testing strategy and scenarios are described; results are discussed. Adding containers has low impact on battery power consumption but approach should be improved for better memory usage. It’s possible to run two Android with traditional applications (games, players) but set of devices is limited for that. Performance tuning will be continued by authors.
Не секрет, что настоящего специалиста, программиста-профессионала от студента отличает прежде всего опыт. Набраться этого опыта можно двумя способами: участвуя в разработке реальных программных продуктов и общаясь с профессионалами. Первый способ останется за кадром, а общение с профессионалами — тема для этого поста.
С пониманием необходимости живого общения, начиная с 2010 года была создана традиция приглашать разработчиков из компаний города Санкт-Петербурга на встречи со студентами. Сейчас общение проходит на территории Академического университета в виде семинара или мастер-класса, где приглашенные гости рассказывают о том с какими технологиями им приходится иметь дело, в каких проектах они участвуют, или (что весьма нередко) устраивают мастер класс.
За немногим более чем год, в университете побывали специалисты из Яндекс, Oracle/Sun, JetBrains, Google, EMC, Лаборатории Касперского и других не менее известных компаний города. Было рассмотрено множестов тем, как обзорных, например о том, что такое облачные вычисления и какие есть стандарты в этой области, так и сугубо практических, таких как мастер классы по написанию юнит-тестов или, например, подробный рассказ о технологиях отладки сложных linux систем с разбором реальных ситуаций. С полным списоком семинаров можно ознакомиться на сайте Академического университета в разделе в разделе Семинары, там же можно скачать слайды многих презентаций.
В этом семестре, также запланировано много гостей, но начнется все 11 октября с рассказа о мощном наборе средств кросс-платформенной сборки программ linux (и не только) — autotools. Ограничусь ссылкой на анонс (внизу). Мероприятия открытые и каждый может присутствовать после регистрации.
Если у вас есть идеи для тем семинаров, которые Вы хотели бы услышать или, наоборот, есть с чем выступить перед студентами — то, пожалуйста, пишите в этом топике или лично. Такое общение полезно всем — и профессионалам и студентам.
Ссылки по теме: http://spbau.ru Анонсы семинаров: http://mit.spbau.ru/taxonomy/term/22