Новое, «не железное» направление деятельности развернула корпорация Intel в этом году в России. Сертификационная программа Intel Programming Professional разработана специалистами корпорации в сотрудничестве с университетами России, чтобы помочь профессиональным разработчикам и начинающим специалистам грамотно и рационально применять современные инструменты и методы параллельного программирования и программирования для мобильных устройств. Привлечение большого числа участников в программу возложено на Национальный открытый университет ИНТУИТ. Совместными усилиями Intel и ИНТУИТ намерены сертифицировать несколько тысяч специалистов.

Супервычисления в современном мире — это дополнительные возможности для новых технологий, помощь в работе над научными открытиями, стратегическая основа современных инженерных и естественных наук. Наряду с фундаментальным значением супервычисления становятся все более доступными. И один из самых главных способов добиться эффективного использования имеющихся возможностей – параллелизм. Корпорация Intel создала целый спектр инструментов для разработки эффективных параллельных программ, например Intel Parallel Studio, Intel Compilers, Intel Math Kernel Library. А для того чтобы научить грамотно и наиболее продуктивно работать с этими инструментами, сотрудники корпорации Intel в России разработали образовательную сертификационную программу Intel Programming Professional, которая включает в себя два направления тренингов: параллельное (Parallel) и мобильное (Mobility).

Цель программы — предоставить студентам, аспирантам, молодым преподавателям и специалистам дополнительные знания и навыки в современном параллельном программировании и программировании для мобильных устройств. Для создания курсов и программы сертификации были привлечены специалисты Национального открытого университета ИНТУИТ, лидера в массовом обучении в области информационных технологий.

Сертификат – гарантия качества полученных знаний. «Он мотивирует к знаниям вообще и к знаниям инструментария Intel в частности, — уверена Екатерина Яблокова, заведующая лабораторией «НГУ-Интел». — Когда ребята подают документы на конкурсы, гранты и у них есть сертификат Intel, думаю, это очень неплохо для них. Например, на тренинге в Томске мы увидели неподдельный интерес к сертификатам Intel у работающих, практикующих программистов, они рекомендуют курсы своим коллегам».

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

Как устроены курсы?

Курсы разработаны сотрудниками Intel совместно с преподавателями лабораторий Нижегородского, Санкт-Петербургского и Новосибирского государственных университетов (ННГУ, СпбГУ, НГУ). Все созданные на данный момент восемь образовательных курсов имеют похожую структуру: это лекционные занятия, практика и итоговое тестирование.

Интерес к курсам есть как у специалистов, которые уже работают в области ИТ, так и у студентов. «Всегда интересно, когда курс подготовлен непосредственно сотрудниками компании, — считает Ренат Идрисов, преподаватель физического факультета НГУ, один из разработчиков курса по компиляторам. — Когда я был студентом, у нас был похожий спецкурс. Нам давали не только теорию, но и возможность на практике попробовать. Студентам это интересно, им в принципе интересно что-то новое, тем более когда можно потрогать, попробовать, пообщаться с разработчиками, приобщиться к новым технологиям».

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

Многие разработчики сходятся на том, что внедрять сертификационную программу стоит не только как самостоятельный спецкурс, но и в качестве части курсов каких-то дисциплин, в которых это может быть полезно. В частности, курсы по программированию, по архитектуре ЭВМ, параллельным вычислениям. Да и в тех направлениях, которые просто используют компьютерное моделирование — в них очень хорошо показывать, например, как эффективно использовать библиотеку MKL для решения конкретных задач.

Курсы абсолютно открыты; они выложены на образовательном портале НОУ «ИНТУИТ», а также на порталах Центра компетенции по образовательным программам Нижегородского университета и Intel Software Network. Корпорация приветствует использование материалов сертификационных курсов в отдельных курсах преподавателей, самообучение, преобразование курсов в соответствии с личной точкой зрения автора-преподавателя. «Любой хороший курс – это проекция автора, он начинает проводить эксперименты, начинает делать собственные открытия и соответственно находит какую-то привязку в теории. Если человек возьмет за основу курс и будет делать свои дополнения, это будет здорово. Мы надеемся, что вузы возьмут подобную практику на вооружение и будут обучать этому по крайней мере тех людей, которые планируют стать программистами», — говорит Андрей Ануфриенко, ведущий специалист команды анализа производительности Intel (Новосибирск), один из авторов курса «Оптимизация приложений с использованием компиляторов Intel».

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

Курсы параллельного направления

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

По словам Идрисова, создатели курса акцентируют внимание специалистов на том, что за счет использования решений Intel, например инструментов оптимизации, даже «чужие» программные продукты можно улучшить: «Многие попросту не знают, что есть такой инструмент, как Vtune, который позволяет оптимизировать приложения. А ведь он бывает очень полезен».

Vtune – инструмент для анализа производительности (самая современная версия на данный момент — Vtune Amplifier). Он позволяет, во-первых, проанализировать производительность пользовательского приложения, то есть понять, какие функции или части кода занимают при выполнении приложения больше всего времени. Во-вторых, позволяет собрать некие события, которые процессор производит при выполнении программы, и указать возможные причины, способные негативно влиять на производительность приложения (например, плохая работа подсистемы памяти, ошибки ветвления).

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

Можно изучить два уровня курса. Если человек прочитал все и демонстрирует понимание курса, то это базовый уровень. Если же ему сложно, то он может ответить на более легкие вопросы и получить ознакомительный уровень.

«Введение в оптимизацию приложений с использованием библиотек Intel MKL», «Оптимизация приложений с использованием библиотек Intel MKL». Эти курсы обучают основам использования математической библиотеки прикладных программ Intel MKL (Math kernel Library), которая содержит основные функции линейной алгебры (перемножение матриц и решение систем линейных алгебраических уравнений), а также функции для вычисления преобразования Фурье, случайных распределений и другие математические функции. Все эти функции оптимизированы под современные вычислительные машины, кроме того, многие из них реализованы на машинах как с общей памятью, так и с распределенной памятью.

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

«Сейчас наш курс разбит на две части: базовую и продвинутую, — рассказывает Алексей Романенко, преподаватель факультета информационных технологий НГУ, один из авторов-разработчиков курса по MKL, — Introduction не подразумевает написание каких-либо программ, он дает только общие сведения о MKL, знание функциональности и знание принципов организации именования имен, структур данных. Basic подразумевает более глубокие знания, и для того, чтобы сдать экзамен по этому курсу, у человека должен быть компилятор, библиотека MKL. Ему дается файл с заданием (например, перемножить одну матрицу на другую и вывести результат), то есть это уже непосредственное решение конкретных задач».

 

Для кого и как работает сертификационная программа Intel

Рис.1. Сертификационные курсы по направлению «Технологии параллельного программирования»

Курсы мобильного направления

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

Курсы по мобильным приложениям направлены на то, чтобы научиться разрабатывать собственные приложения под операционные системы Tizen (потомок MeeGo) и Android. Корпорация Intel разработала процессор Intel Atom, который предназначен для мобильных устройств, а ОС специально адаптированы под этот процессор. Особенность операционной системы Tizen  в том, что она предназначена для широкого спектра мобильных устройств: если разработчик пишет приложение на ней, то оно может быть перенесено на смартфон, нетбук, планшет, а также может использоваться в «умном» телевидении и в бортовых компьютерах в автомобиле.

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

 

Для кого и как работает сертификационная программа Intel
Рис. 2. Сертификационные курсы по направлению «Технологии программирования для мобильных устройств»

Как реализуется программа сертификации

Сертификационные курсы реализуются в разных «оболочках»: тренинги, семинары, школы, онлайн-программы, образовательные программы. Екатерина Яблокова рассказывает о формах представления программы: «Тренинги мы предполагали делать изначально, это самое логичное продвижение сертификационной программы. Летние и зимние школы – хорошие площадки для того, чтобы еще и получить обратную связь от тех, кто эти курсы изучает. Одна из непривычных и новых форм для лаборатории – это продвижение в онлайн. Здесь все работает вполне успешно, но хотелось бы лучше проработать механизмы получения обратной связи, потому что конкретные результаты в виде полученных сертификатов — это здорово, но необходимо знать еще и реакцию аудитории. Ну и еще одно направление, которое мы сейчас обсуждаем, – это работа с кадровыми агентствами. Мы думаем, что они реально могут быть заинтересованы в профессиональных сертификационных курсах, чтобы улучшать качество своего 'кадрового материала', из которого уже работодатели смогут выбирать».

Тренинги

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

Тренинги рассчитаны как на студентов, магистрантов и аспирантов, так и на научных сотрудников и молодых специалистов, которые могут использовать полученные навыки в работе.

Этот формат уже хорошо опробован лабораторией "НГУ-Интел»: этой весной успешно прошли тренинги в Москве и Томске. Очень важным моментом в дальнейшем развитии как сертификационной программы, так и тренингов, в частности, разработчики считают подготовку новых лекторов, или тренеров. Чтобы стать тренером, нужно, кроме изучения курса и успешной сдачи итогового теста, пройти строгое собеседование. Если этот этап удалось преодолеть, то участник программы становится обладателем сертификата Intel Programming Professional уровня Master и может самостоятельно преподавать курс (или курсы, если сдано несколько экзаменов).

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

Этот способ реализации сертификационной программы активно развивается и в географическом плане: в новом учебном году планируется провести тренинги лаборатории «НГУ-Интел» в Кемерове, Иркутске, Барнауле, Омске, Красноярске, а также в Казахстане (Алма-Ата).

Молодежные школы, летние и зимние школы Intel

Впервые в экспериментальном режиме сертификационная программа была опробована на молодежной школе осенью 2010 года в Нижнем Новгороде. Опыт был распространен на зимние школы «НГУ-Интел», «ННГУ-Интел» и «СПбГУ-Интел» в 2011 году. Например, в НГУ из 26 сдающих итоговые тесты семь студентов получили сертификаты Intel Parallel Programming Professional (Compilers) и семь – Intel Parallel Programming Professional (MKL). Темой этой школы была оптимизация компьютерных вычислений, студенты делали собственные проекты, решали задачи по использованию библиотек MKL, пытались реализовать собственные версии функций из библиотек.

Сейчас курсы интегрированы и с летней школой Intel, которая прошла в июле–августе в новосибирском офисе Intel. Два месяца интенсивную стажировку проходили 25 студентов, магистрантов, аспирантов из Новосибирска, Красноярска, Барнаула, Иркутска и Санкт-Петербурга. Во время стажировки студенты занимались в том числе компиляторами, MKL и мобильными приложениями и получили возможность стать сертифицированными специалистами по одному из направлений в области Intel Programming Professional.

Школы Intel, в отличие от тренингов, набирают студенческую и аспирантскую аудиторию. Отличительная особенность обучения в школе – это подробная работа над каждым заданием, индивидуальные занятия с лекторами, возможность не только закрепить базовые знания по программированию, но и поработать с новейшими программными инструментами вместе с профессионалами и разработчиками. График у «школьников» очень интенсивный: по четыре-пять занятий в день плюс вечерняя (а иногда и ночная, как признаются они сами) работа над проектами. Проекты — практическая часть обучения, в которой студенты прочувствуют на себе всю серьезность процесса разработки программ. Отдельные идеи, которые «школьники» начали прорабатывать на зимней школе, продолжают развиваться и готовятся к полноценному существованию на рынке. Например, работа Леонида Кальнеуса и Андрея Макова «Анализ ECG».

«Задача проекта, — рассказал Кальнеус, — разработать мобильный мониторинг пациента, которым смогут пользоваться люди без специального медицинского образования. Система должна будет отслеживать изменение в состоянии здоровья пользователя в реальном времени. То есть это будет система различных датчиков (ЭКГ, пульсоксиметр, тонометр) и программа обработки на мобильном устройстве. Сейчас мы занимаемся разработкой модуля для анализа ЭКГ, проводим дополнительные эксперименты в лаборатории НГУ по снятию и обработке ЭКГ». Проект Кальнеуса и Макова сейчас влился в проект mHealth, в котором ребята продолжают разрабатывать различные приложения, чтобы использовать их на мобильных устройствах в рамках этого проекта.

Университетские лаборатории Intel

Лаборатория ННГУ-Интел. В 2002 году на факультете ВМК ННГУ при поддержке Intel была создана учебно-исследовательская лаборато­рия «Математические и программные технологии для современных компью­терных систем» (ITLab). Основные на­правления деятельности:

  • учебное — апробация и внедрение обра­зовательных программ, организация дополнитель­ной учебной подготовки по избранным разделам информатики, вычислительной техники и програм­мирования;
  • инновационно-образовательное — проекты по разработке новых образовательных комплексов и программного обеспечения для проведения лабора­торных практикумов по избранным разделам инфор­матики, программирования и математики;
  • научно-исследовательское — учебно-исследовательские и научно-исследовательские проекты, научный семинар.

Лаборатория ведет работы в таких областях, как высокопроизводительные вычисления, глобальная оптимизация, системное программирование, программная инженерия.

Учебно-исследовательская лаборатория НГУ-Интел. Создана в 2005 году как межфакультетская структура, взаимодействующая с профильными кафедрами нескольких факультетов Новосибирского государственного университета — факультета информационных технологий, механико-математического и физического, а таккже с вузами Сибирского федерального округа. Деятельность лаборатории связана с такими областями, как высокопроизводительные вычисления, математические библиотеки, параллельное программирование, компьютерная графика, архитектурная оптимизация программ, компиляторы Java и др. Основные направления деятельности:

  • образовательные мероприятия;
  • стажировка в реальных проектах; также cтажеры имеют доступ к суперкомпьютерам в Сибирском суперкомпьютерном центре СО РАН;
  • развитие надпрофессиональных навыков — сотрудники Intel делятся опытом работы в команде, знакомят с искусством составления презентации, управления временем, выстраивания карьеры и др.;
  • мастер-классы по новейшим технологиям.

Лаборатория СПбГУ СПРИНТ-Интел (системное программирование и информационные технологии). С 2004 года ведет работу по решению актуальных научно-исследовательских задач в сфере современных компьютерных систем и технологий и совершенствованию образовательной деятельности в СПбГУ. В настоящее время в лаборатории большое внимание уделяется исследованиям в области приложений для высокопроизводительных вычислений и в области мобильных приложений для процессора Intel Atom. По тематике высокопроизводительных вычислений лаборатория организует ежегодные мероприятия — «День Лаборатории» на физическом факультете и «Фестиваль Лаборатории» на математико-механическом. Традиционный мастер-класс «Программные инструменты Intel для высокопроизводительных вычислений» проводит Сергей Немнюгин, профессор физфака, руководитель направления исследований в области высокопроизводительных вычислений. Профессор матмеха Олег Граничин руководит группой студентов и аспирантов — стажеров лаборатории, разрабатывающих проекты для мобильных платформ. Руководитель лаборатории СПРИНТ, заместитель директора НИИ информационных технологий Владимир Кияев ведет семинар лаборатории по технологическому предпринимательству «Семь шагов к успешному стартапу».

Онлайн-обучение

Один из самый актуальных и востребованных форматов реализации программы Intel Programming Professional – это возможность дистанционного обучения. Компания Intel и и Национальный открытый университет ИНТУИТ осуществляют этот вид подготовки к сертификации с помощью образовательного портала ИНТУИТ. Зарегистрировавшись на сайте, можно бесплатно пройти курсы, посмотреть видеолекции, решить пробные тесты и даже сдать экзамен на получение сертификата.

О будущем сертификационной программы

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

Авторы выражают признательность Татьяне Пичевой, руководителю пресс-службы лаборатории "НГУ-Intel", ведущую большую работу по укреплению и расширению сертификационной программы, за помощь в подготовке статьи.

Александр Авдеев (alexander.v.avdeev@intel.com) – операционный директор филиала Intel в Новосибирске; Игорь Одинцов (igor.o.odintsov@intel.com) – менеджер Intel по стратегическому развитию в России и СНГ (Санкт-Петербург); Виктор Самофалов (victor.samofalov@intel.com) – директор академических и исследовательских проектов Intel в России и СНГ (Нижний Новгород); Александр Сериков (aserikov@intuit.ru— проректор по учебной работе НОУ «ИНТУИТ»  (Москва).