Опыт использования кластера ВЦ РАН в образовательных целях[1]

 

Г.М. Михайлов, Н.Н. Оленев, А.А. Петров, Ю.П. Рогов, А.М. Чернецов

Вычислительный центр им. А.А. Дородницына Российской академии наук
 (ВЦ РАН), Москва

 

С момента ввода в эксплуатацию в 2003 году вычислительный кластер Вычислительного центра имени А.А. Дородницына Российской академии наук (ВЦ РАН) [1] используется не только для проведения научных расчетов, но и в образовательных целях [2]. Кластер ВЦ РАН (http://www.ccas.ru/acluster/main.htm) с суммарной оперативной памятью в 32 GB и с суммарной памятью на жестком накопителе в 288 GB содержит восемь вычислительных узлов, связанных вычислительной сетью Myrinet 2000 (http://www.myri.com) и управляющей сетью Ethernet 100Base-T. Вычислительные узлы кластера содержат по два процессора Intel Xeon DP 2600 MHz, 512 Kb cache. Управляющий узел кластера имеет процессор Intel Pentium 4 2260 MHz, 512 Kb cache, 533 MHz. На кластере установлена операционная система Linux RedHat 9, различные библиотеки взаимодействий API GM-2; MPICH-GM v.1.2.5-10, библиотеки высокого уровня ATLAS 3.6.0, Intel MKL 7.2.1 и параллельная библиотека ScaLapack. На кластере используется пакетная система очередей OpenPBS (http://www.openpbs.org), входящая в состав проекта OSCAR v 3.0 (http://sourceforge.net/projects/oscar/). Для работы студентов в системе очередей выделена специальная очередь shortest (время выполнения до 1 часа), при этом реализована политика выполнения в первую очередь задач с наименьшим временем выполнения.

Основываясь на характеристиках имеющегося в ВЦ РАН вычислительного кластера, был специально разработан годовой курс обучения «Параллельное программирование в интерфейсе MPI», который излагается студентам 5 курса Московского физико-технического института (государственного университета), обучающимся на базовой кафедре «Математическое моделирование сложных процессов и систем» в ВЦ РАН. Курс рассчитан на начинающего пользователя Message Passing Interface - интерфейса передачи сообщений MPI - студента или специалиста, не знакомого с методами программирования для параллельных ЭВМ, однако владеющего последовательным программированием на языке программирования С в среде Windows или Linux. В настоящее время в локальной сети ВЦ РАН помещен рабочий вариант полной электронной версии курса, который непрерывно совершенствуется. Некоторые из работ появляются в открытом доступе [2].

С одной стороны, данный курс MPI следует международным образцам достаточно полного изложения MPI, которые даны в западных учебных курсах, например, в курсе Cornell Theory Center (CTC) [3]. С другой стороны, данный курс MPI специально предназначен для специалистов в математическом моделировании сложных процессов и систем. Поэтому к стандартным упражнениям апробированных учебных курсов здесь добавлены упражнения, связанные с применением параллельных вычислений в математическом моделировании. Курс состоит из двух частей: первая часть предназначена для начинающих использовать MPI и содержит восемь лабораторных работ по темам: основы программирования в MPI, попарный и коллективный обмен сообщениями, управление группами и коммуникаторами, производные типы данных и устойчивые запросы связи в MPI, - а вторая часть предназначена для совершенствующихся в его использовании и содержит шесть лабораторных работ: виртуальная топология и топология графа, параллельные математические библиотеки, определяемые пользователем операции приведения, зондирование сообщений и тесты исполнения, - и индивидуальную курсовую работу по решению практической проблемы. В основе первой части лежит курс MPI от CTC, эволюционно совершенствующийся на основе работ ВЦ РАН по мере получения новых результатов в области параллельных вычислений. Например, в первой лабораторной работе (см. [4]) домашнее задание включает составление параллельной версии программы идентификации параметров блока «Производство» в модели экономики России переходного периода (см. [5]).

 

Рис.1. Пример вызова электронной версии курса [2]

 

Изложение курса MPI в виде цикла лабораторных работ идеально подходит для студентов, обучающихся по системе Физтеха, в которой свободное посещение занятий сочетается с обязательным выполнением заданий для самостоятельной работы и сдачей заданий к назначенному сроку. Кроме того, электронная версия курса может быть использована в системе открытого дистанционного образования. Необходимые предварительные требования к подготовке студентов включают знание основ программирования на языке С или C++ , а также знание операционных систем Linux и Windows NT на уровне пользователя.

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

Студентам МФТИ в осеннем семестре требуется изучить первые восемь лабораторных работ-модулей, выполнив и сдав практические задания, помещенные в заключительной части каждого модуля. На изучение каждого модуля, как правило, отводится две недели. До конца второй недели следует по электронной почте выслать преподавателю решение домашних заданий лабораторной работы и сдать в очном режиме классные задания. При этом решение заданий по каждой лабораторной работе следует отправить отдельным электронным письмом, а в начале темы письма следует указать номер группы. Крайний срок отправки решений, после которого могут возникнуть трудности с получением зачета в срок: начало девятой, восьмой, седьмой, шестой, пятой, четвертой, третьей и второй недели до Нового года соответственно для 1-8 модуля.

Выполнение лабораторной работы № 1 «Основы программирования в MPI», на изучение и сдачу которой студентам предоставлено четыре недели, дает допуск к выполнению всех последующих работ.

Заметим, что практические упражнения могут быть выполнены не только на кластере ВЦ РАН, но и на виртуальной параллельной машине, устанавливаемой в Windows NT/2000 на вашем компьютере. Для этого перед началом работы вам следует установить переносимую реализацию MPI - MPICH для Windows - на ваш компьютер (http://www-unix.mcs.anl.gov/mpi/mpich/). Предварительно следует изучить руководство по установке MPICH (http://www.cluster.bsu.by/mpich_install.pdf) и руководство пользователя MPICH (http://www.cluster.bsu.by/mpich_userguide.pdf). Кроме того, полезно изучить руководство пользователя МВС 1000М Межведомственного суперкомпьютерного центра (http://www.jscc.ru/), с тем, чтобы вы знали ответы на следующие вопросы:

• компиляция при использовании библиотек MPI;

• использование команды mpirun;

• создание файла;

• понимание механизма выполнения MPI на двух узлах.

Именно необходимость предварительной подготовки к курсу MPI увеличивает общее время выполнения лабораторной работы № 1 примерно в два раза.

Студентам МФТИ в весеннем семестре требуется сдать шесть лабораторных работ и одну индивидуальную курсовую работу.

Для выполнения индивидуальной курсовой работы студенту в начале семестра необходимо получить у своего научного руководителя тему работы, которая могла бы быть использована как часть магистерской диссертации. Требования к теме: должно существовать или быть близко к завершению решение задачи в виде последовательной версии программы на языке С или С++. При отсутствии задачи на распараллеливание у научного руководителя можно взять тему курсовой работы у преподавателя. Крайний срок отправки решений, после которого будут трудности с получением в срок дифференцированного зачета: начало восьмой, седьмой, шестой, пятой, четвертой, третьей и второй недели до 1 июня, соответственно, для 9-14 модуля и курсовой работы.

Распечатки ответов на контрольные вопросы по всем модулям оказываются востребованными при получении дифференцированного зачета. Итоговая оценка складывается из трех частей: 30% - оценка за осенний семестр, 30% - оценка за весенний семестр и 40% - оценка за курсовую работу.

Изложение данного курса MPI ограничено использованием языка С. Пользователи Фортрана могут изучить его самостоятельно, основываясь на пособиях [6-9] или на знании MPI для C/C++.

Литература

1.             Михайлов Г.М., Копытов М.А., Рогов Ю.П., Чернецов А.М., Аветисян А.И., Самоваров О.И. Вычислительный кластер ВЦ РАН // Высокопроизводительные параллельные вычисления на кластерных системах. Материалы четвертого Международного научно-практического семинара и Всероссийской молодежной школы. /Под ред. чл.-корр. РАН В.А. Сойфера, Самара. 2004. С. 193-199.

2.             Оленев Н.Н. Параллельное программирование в интерфейсе MPI // Сборник лабораторных работ, ВЦ РАН. 2003-2004 (электронная версия на правах рукописи):
http://www.ccas.ru/mmes/educat/lab04k/

3.             Cornell Theory Center Topics: Message Passing Interface.
http://www.tc.cornell.edu/ctc-Main/services/education/topics/

4.             Оленев Н.Н. Основы параллельного программирования в системе MPI. М.: ВЦ РАН. 2005. 80 с.

5.             Оленев Н.Н. Параллельные вычисления для идентификации параметров в моделях экономики // Высокопроизводительные параллельные вычисления на кластерных системах. Материалы четвертого Международного научно-практического семинара и Всероссийской молодежной школы. /Под ред. чл.-корр. РАН В.А. Сойфера, Самара. 2004. С. 204-209.

6.             Немнюгин С.А., Стесик О.Л. Параллельное программирование для многопроцессорных вычислительных систем. – СПб.: БХВ-Петербург, 2002. – 400 с.

7.             Домашняя страница MPI в Argonne National Labs
http://www-unix.mcs.anl.gov/mpi/

8.             Часто задаваемые вопросы по MPI
http://www.faqs.org/faqs/mpi-faq/

9.             Практическое программирование в MPI на RS/6000: SP:
http://www.redbooks.ibm.com/abstracts/sg245380.html?Open

 



[1] Работа выполнена при финансовой поддержке Российского фонда фундаментальных исследований (код проекта 04-07-90346).