Программа профессиональной сертификации по параллельному программированию

Инновации в образовании Вестник Нижегородского уноверситета им. Н.И. Лобачеллкого, 2012, № 4 (1), с. 41-44

УДК 378

ПРОГРАММА ПРОФЕССИОНАЛЬНОЙ СЕРТИФИКАЦИИ ПО ПАРАЛЛЕЛЬНОМУ ПРОГРАММИРОВАНИЮ

© 2012 г. В.П. Гергель 1, И.Б. Мееров 1, А.В. Сысоев 1, А.В. Русаков 1,

И. О. Одинцов 2, В.В. Самофалов 2

1 Нижегородский госуниверситет им. Н.И. Лобачевского 2 ЗАО «Интел А/О»

gergel@unn.ac.ru

Поступила в редакцию 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.