Инновации в образовании Вестник Нижегородского уноверситета им. Н.И. Лобачеллкого, 2012, № 4 (1), с. 41-44
УДК 378
ПРОГРАММА ПРОФЕССИОНАЛЬНОЙ СЕРТИФИКАЦИИ ПО ПАРАЛЛЕЛЬНОМУ ПРОГРАММИРОВАНИЮ
© 2012 г. В.П. Гергель 1, И.Б. Мееров 1, А.В. Сысоев 1, А.В. Русаков 1,
И. О. Одинцов 2, В.В. Самофалов 2
1 Нижегородский госуниверситет им. Н.И. Лобачевского 2 ЗАО «Интел А/О»
Поступила в редакцию 06.05.2012
Приводятся основные положения программы профессиональной сертификации по параллельному программированию, разработанной совместными усилиями специалистов Нижегородского университета и компании «Интел». Дается описание программы и структура учебного плана. Рассказывается об опыте проведения сертификации на базе ННГУ. Ставится задача дальнейшего расширения программы, формулируются планы на будущее.
Ключевые слова: профессиональная сертификация, параллельное программирование, технологии высокопроизводительных вычислений, суперкомпьютерное образование.
Введение
В 2011 году в Нижегородском государственном университете им. Н.И. Лобачевского (ННГУ) при поддержке российского отделения корпорации «Интел» стартовал проект по разработке и реализации программы профессиональной сертификации в области параллельных вычислений на базе технологий и программного обеспечения (ПО) компании «Интел». Основными целями программы являются:
1. Стимулирование интереса разработчиков ПО к более углубленному освоению области параллельного программирования.
2. Стандартизация профессиональных требований к квалификации специалистов в области параллельного программирования.
3. Формирование системы образовательных материалов, согласованной с содержанием профессиональных требований.
В целом, деятельность по развитию программы сертификации должна привести к расширению сообщества профессиональных разработчиков ПО в области параллельного программирования и, как результат, к более широкому практическому использованию потенциала современных высокопроизводительных вычислительных систем для решения актуальных задач образования, науки, промышленности и бизнеса.
Краткая характеристика программы
Программа сертификации включает разработку и тиражирование учебных курсов, обуче-
ние и сертификацию специалистов, поддержку профессиональных сообществ, активизацию академических программ. Подготовка и тестирование специалистов проводятся в рамках различных тематических мероприятий (школ, семинаров, конференций и т.п.). Для проведения автоматизированной проверки знаний (тестирования) разработан веб-портал http://nncc.unn.ru, содержащий материалы для самостоятельного изучения.
В основу формирования программы сертификации были положены следующие положения:
• Поддержка в рамках программы сертификации поэтапного освоения профессиональной области параллельного программирования.
• Создание для программы сертификации системы учебных курсов, достаточных для освоения основных знаний, умений и навыков, требуемых для успешной деятельности в области параллельного программирования.
• Согласование методов и способов проверки освоения требуемых знаний, умений и навыков с уровнем сложности изучаемого материала.
Для организации поэтапного освоения профессиональной области в программе сертификации выделены уровни программы сертификации по параллельному программированию (Intel Parallel Programming Professional, IPPP) с последовательно возрастающими наборами требуемых знаний, умений и навыков: Начальный (Introduction), Базовый (Basic), Экспертный (Expert), Профессиональный (Master). Первые три уровня ориентированы на разработчиков
параллельного ПО, профессиональный уровень рассчитан прежде всего на преподавателей и специалистов, которые будут проводить обучение в рамках программы сертификации. Начальный уровень в большей степени содержит теоретический материал предметной области и информацию о его реализации в программных инструментах «Интел», а базовый - максимально подробно рассказывает о специфике программных инструментов «Интел» и примерах работы с ними. Отметим, что уровень эксперта предусматривает консультирование обучающегося и оценку его индивидуальной практической работы наставниками, прошедшими профессиональный уровень сертификации.
Начальный уровень подразумевает владение знаниями и навыками параллельного программирования начального уровня и включает следующие основные разделы:
1. Введение в основы параллелизма.
2. Введение в технологии параллельного программирования (OpenMP, MPI).
3. Введение в использование инструментов для параллельного программирования на примере пакета Intel Parallel Studio.
4. Введение в параллельные алгоритмы на примере классических разделов численных методов и технологий Intel.
Для начального уровня возможна самостоятельная подготовка и последующая on-line-сер-тификация, не предполагающая внешний контроль за процессом сдачи теста.
Базовый уровень подразумевает владение знаниями и навыками практического параллельного программирования. Основные отличия от начального уровня заключаются в более глубокой проработке теоретических и практических основ параллельных вычислений, в расширении состава используемых технологий (Intel TBB и Intel Cilk Plus), изучении дополнительных глав параллельных численных методов (расширение спектра практических приложений параллельного программирования).
Структура учебного плана
Принципиальный момент при разработке учебного плана состоит в определении необходимого набора основных знаний, умений и навыков, требуемых для успешной деятельности в области параллельного программирования. Для решения этого вопроса в основу программы сертификации положен Свод знаний и умений предметной области «Суперкомпьютерные технологии и параллельные вычисления», разработанный профессиональным сообществом Су-перкомпьютерного консорциума университетов России в ходе выполнения проекта Комиссии при Президенте РФ по модернизации и техно-
логическому развитию экономики России «Создание системы подготовки высококвалифицированных кадров в области суперкомпьютерных технологий и специализированного программного обеспечения» [1, 2].
За основу методики подготовки рекомендаций по составлению учебных планов в области суперкомпьютерных технологий и высокопроизводительных вычислений принят подход, использованный сообществами ACM (Association for Computing Machinery) и IEEE Computer Society при разработке международных рекомендаций Computing Curricula [3, 4].
Суть подхода состоит в следующем:
1. Свод знаний, который должен быть освоен для успешной деятельности в рамках определенных отраслей науки, техники и бизнеса, определяется набором областей знаний, представляющих собой отдельные части изучаемой специальности.
2. Области делятся на меньшие структуры, называемые разделами, которые представляют собой отдельные тематические модули.
3. Каждый раздел, в свою очередь, состоит из набора тем, представляющих собой нижний уровень этой иерархии в определяемой специальности.
Каждый раздел сопровождается указанием, является ли он обязательным или факультативным, а также рекомендуемым объемом учебного времени, необходимым для его изучения.
Важно подчеркнуть, что подобная структура областей, разделов и тем определяет именно свод знаний, необходимый для освоения специальности, а не перечень учебных курсов. И именно этот свод знаний может служить основой для разработки учебных планов и определения необходимых учебных курсов.
Наличие Свода знаний и умений предметной области позволило разработать учебный план программы сертификации, состоящий из следующих образовательных модулей:
• Модуль 1 «Введение в основы параллелизма».
• Модуль 2 «Введение в технологии параллельного программирования (OpenMP, MPI, TBB, Cilk Plus)».
• Модуль 3 «Введение в использование инструментов для параллельного программирования на примере пакета Intel Parallel Studio».
• Модуль 4 «Введение в параллельные алгоритмы на примере классических разделов численных методов».
В приводимой далее таблице для каждого модуля указываются имеющиеся в них разделы. Для каждого модуля и раздела плана указано количество учебных часов для лекций (л) и лабораторных работ (лр).
Теблще
Структура учебного плана
Модуль, раздел Количество учебных часов по уровням
начальный базовый
Модуль 1. «Введение в основы параллелизма» 22 л 6 лр 22 л 6 лр
Математические основы параллельных вычислений 4 л 4 л
Архитектуры - аспекты параллелизма 8 л 8 л
Операционные системы - аспекты параллелизма 10 л 6 лр 10 л 6 лр
Модуль 2. «Введение в технологии параллельного программирования (OpenMP, MPI, TBB, Cilk Plus)» 11 л 11 лр 19 л 19 лр
Введение в параллельное программирование 2 л 2 л
Принципы организации параллелизма с использованием технологии OpenMP 2 л 2 лр 2 л 2 лр
Распределение вычислений и синхронизация с использованием технологии OpenMP 2 л 4 лр 2 л 4 лр
Принципы организации параллелизма с использованием MPI 2 л 2 лр 2 л 2 лр
Передача данных средствами MPI З л З лр З л З лр
Типы данных MPI. Виртуальные топологии - 2 л 2 лр
Создание параллельных программ с использованием библиотеки TBB - 4 л 4 лр
Создание параллельных программ с использованием технологии Cilk Plus - 2 л 2 лр
Модуль 3. «Введение в использование инструментов для параллельного программирования на примере пакета Intel Parallel Studio» 1 л 8 лр 2 л 12 лр
Обзор возможностей пакета инструментов Intel Parallel Studio XE 1 л 1 л
Лабораторные работы по использованию инструментов Intel Parallel Studio XE для решения модельных задач (л/р «Вычисление определенного интеграла», «Поиск простых чисел», «Сортировки») 8 лр 8 лр
Лабораторная работа «Поиск путей на графе» - 4 лр
Библиотека MKL (входит в л/р модуля 4) - 1 л
Библиотека IPP (входит в л/р модуля 4) - -
Модуль 4. «Введение в параллельные алгоритмы на примере классических разделов численных методов» 4 л 4 лр 10 л 12 лр
Плотные и разреженные матрицы. Форматы хранения. Типовые алгоритмы (матричное умножение). Методы решения систем линейных уравнений 4 л 4 л
Дифференциальные уравнения в частных производных - 2 л
Методы Монте-Карло - 2 л
Лабораторная работа по использованию инструментов Intel Parallel Studio XE для разработки и анализа алгоритмов на примере задачи умножения разреженных матриц 4 лр 4 лр
Лабораторная работа «Методы прогонки и циклической редукции в решении СЛАУ с ленточной матрицей» - 2 лр
Лабораторная работа «Параллельные методы Монте-Карло» - 2 лр
Лабораторная работа «Фильтрация изображений. Быстрое преобразование Фурье» - 2 л 2 лр
Лабораторная работа «Дифференциальные уравнения в частных производных» - 2 лр
Итоговое тестирование 1 1
Детализированные учебные планы и методические материалы для проведения занятий и самостоятельного изучения представлены на портале http://nncc.unn.ru.
Основные результаты
В целом можно отметить, что выполнены все необходимые работы для инициации программы сертификации, в том числе определены тре-
бования к начальному и базовому уровням, разработаны учебные планы, подготовлены тесты, выполнена апробация. Выполнение работ осуществлялось на базе центра компетенции «Интел» в ННГУ (базовое подразделение), специалистами Санкт-Петербургского и Новосибирского университетов, сотрудниками компании «Интел». Тестирование участников сертификации проводилось с использованием системы «Сигма» (НИВЦ МГУ). Разработан сайт программы сертификации - http://nncc.unn.ru.
Опыт организации и проведения научнообразовательных мероприятий в области параллельного программирования [5-7] позволяет сделать следующие выводы:
1. В университетском сообществе в России существует большой интерес к области высокопроизводительных вычислений. Тем не менее в стране и за рубежом отсутствуют программы сертификации специалистов по тематике параллельного программирования.
2. Несмотря на появление в учебных планах разных вузов отдельных курсов по параллельным вычислениям, в данной области отмечается нехватка квалифицированных кадров.
3. Знания многих студентов носят преимущественно эмпирический характер, обусловленный самостоятельным, не всегда систематизированным изучением предмета. К сожалению, практические знания и навыки часто не подкреплены уверенным владением теоретическим материалом, что ограничивает возможности роста специалиста и его адаптации к быстро растущей и постоянно меняющейся области параллельных вычислений. Анализ результатов тестирования претендентов на получение сертификата полностью подтверждает этот тезис.
4. За 2011 год в программе сертификации приняли участие 1720 человек, успешно прошли сертификацию 363 человека (21% успешных попыток). Отметим, что в случае прохождения предварительного обучения по программам начального и базового уровней процент успешных попыток сдачи теста существенно повышается и составляет 75%.
Планы развития программы
Выполненные работы обеспечили возможность практической апробации разработанных подходов, учебных планов и курсов. Полученные результаты позволяют ставить задачу существенного развития программы сертификации. Для дальнейшего развития программы сертификации в 2012 году планируется выполнить следующие работы:
1. Совершенствование учебного плана на основе совместной работы с центром компетенции «Интел» по высокопроизводительным вычислениям в МГУ.
2. Значительное увеличение масштаба программы путем привлечения российских вузов как ассоциированных участников программы сертификации.
В 2013 году предполагается преобразование «пилотной» программы сертификации, разработанной на предшествующих этапах и ориентированной в значительной степени на инструменты компании «Интел», в общепрофессиональную программу сертификации, включающую следующие компоненты:
1. Основную программу сертификации, предусматривающую освоение и проверку (сертификацию) фундаментальных и основных прикладных знаний и умений в области параллельного программирования.
2. Специальные программы сертификации, ориентированные на более конкретные технологии и программные средства разных компаний («Интел», «Майкрософт» и др.).
Список литературы
1. Свод знаний и умений в области суперкомпью-терных технологий. URL: http://www.hpc-education.ru.
2. Воеводин В.В., Гергель В.П. Суперкомпью-терное образование: третья составляющая суперком-пьютерных технологий // Вычислительные методы и программирование: новые вычислительные технологии. 2010. Т. 11, № 2. С. 117-122.
3. Рекомендации по преподаванию программной инженерии и информатики в университетах. М.: ИН-ТУИТ.РУ «Интернет-Университет Информационных технологий», 2007. URL: http://se.math.spbu.ru/SE.
4. Computing Curricula Computer Science 2008. URL: http://www. computer.org/portal/c/document_library/ get_file?p_l_id=2814020&folderId=3111026&name=DLF E-57604.pdf
5. Баркалов К.А., Гергель В.П., Гергель А.В. и др. Организация и проведение всероссийской школы по суперкомпьютерным технологиям // Открытое и дистанционное образование. 2010. № 2. С. 24-29.
6. Гергель В.П., Линев А.В., Мееров И.Б., Сысоев А.В. Об опыте проведения программ повышения квалификации профессорско-преподавательского состава по направлению «Высокопроизводительные вычисления» // Открытое и дистанционное образование. 2010. № 3. С. 15-20.
7. Гергель В.П., Стронгин Р.Г. Опыт Нижегородского университета по подготовке специалистов в области суперкомпьютерных технологий // Вестник Нижегородского университета. 2010. №3(1). С. 191-199.
UNN-INTEL PROFESSIONAL CERTIFICATION PROGRAM ON PARALLEL PROGRAMMING
V.P. Gergel, I.B. Meyerov, A V. Sysoyev, A V. Rusakov, I. O. Odintsov, V. V. Samofalov
The article presents the main concepts of UNN-Intel professional certification program on parallel programming. A short description of the program and curriculum structure are given. The experience of certification at UNN is described. The aims of further development are formulated.
Keywords: professional certification, parallel programming, Intel technologies, HPC education.