ОБЩАЯ ХАРАКТЕРИСТИКА ПРОГРАММЫ КУРСА
«МНОГОПРОЦЕССОРНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ И
ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ»
В.П. Гергель
Нижегородский государственный университет
им. Н.И. Лобачевского
Анализируя современное состояние компьютерной индустрии,
можно отметить, что применение параллельных вычислительных сис-
тем (ПВС) является стратегическим направлением развития вычисли-
тельной техники. Это обстоятельство вызвано не только принципиаль-
ным ограничением максимально возможного быстродействия обыч-
ных последовательных ЭВМ, но и практически постоянным существо-
ванием вычислительных задач, для решения которых возможностей
существующих средств вычислительной техники всегда оказывается
недостаточно. Отсюда вытекает значимость проблемы подготовки вы-
сококвалифицированных специалистов, способных эффективно ис-
пользовать высокопроизводительные компьютерные системы для ре-
шения важных научно-технических задач с высокой вычислительной
трудоемкостью. В свою очередь, это приводит к тому, что учебные
дисциплины по тем или иным аспектам параллельных вычислений
являются практически обязательными в образовательных программах
большинства университетов.
26
Основная цель данной работы состоит в изложении основных по-
ложений учебного курса по параллельному программированию, чи-
таемому в Нижегородском университете для студентов факультета
вычислительной математики и кибернетики с 1995 г. Кроме того, в
работе дается краткий обзор существующих учебных дисциплин по
данной тематике в стране и за рубежом. При рассмотрении вопросов
параллельных вычислений основное внимание уделяется использова-
нию кластерных компьютерных систем.
1. Проблема получения решений сложных вычислительно-
трудоемких научно-технических задач при реалистических временных
затратах на основе организации параллельных вычислений для быст-
родействующих компьютерных систем приобрела в последнее время
особую важность и значимость за счет широкого распространения кла-
стерных вычислительных систем (clusters) – современное состояние
данного подхода отражено, например, в обзоре, подготовленном под
редакцией Barker (2000). Под кластером обычно понимается (см., на-
пример, Xu and Hwang (1998), Pfister (1998)) множество отдельных
компьютеров, объединенных в сеть, для которых при помощи специ-
альных аппаратно-программных средств обеспечивается возможность
унифицированного управления (single system image), надежного функ-
ционирования (availability) и эффективного использования (perform-
ance). Применение кластеров может в некоторой степени снизить про-
блемы, связанные с разработкой параллельных алгоритмов и про-
грамм, поскольку повышение вычислительной мощности отдельных
процессоров позволяет строить кластеры из сравнительно небольшого
количества (несколько десятков) отдельных компьютеров (lowly paral-
lel processing). Это приводит к тому, что для параллельного выполне-
ния в алгоритмах решения вычислительных задач достаточно выделять
только крупные независимые части расчетов (coarse granularity), что, в
свою очередь, снижает сложность построения параллельных методов
вычислений и уменьшает потоки передаваемых данных между компь-
ютерами кластера. Вместе с этим следует отметить, что организации
взаимодействия вычислительных узлов кластера при помощи передачи
сообщений обычно приводит к значительным временным задержкам,
что накладывает дополнительные ограничения на тип разрабатывае-
мых параллельных алгоритмов и программ (минимальность информа-
ционных потоков передачи данных).
27
2. Для получения общего представления о состоянии проблемати-
ки по параллельным вычислениям могут быть использованы два ос-
новных портала глобальной сети Интернет:
• http://www.parallel.ru (российский портал);
• http://homer.csm.port.ac.uk/ieee-tfcc/ (портал международной рабо-
чей группы по кластерам – TFCC–IEEE Computer Society Task
Force on Cluster Computing).
На этих же порталах имеется информация об основных исследова-
телях и специалистах в области параллельных технологий и систем.
По рассматриваемой тематике имеется большое количество пуб-
ликаций; в числе последних и значимых изданий работы Xu and Hwang
(1998), Pfister (1998), Buyya R. (1998), Sterling T., Salmon J., Becker D.J.,
Savarrese D.F. (1999), Wilkinson B., Allen M. (1999). Среди опублико-
ванных за последние годы отечественных учебных пособий: Комолкин
А.В., Немнюгин С.А. (1998), Якобовский М.В. (2000), Фурсов В.А. и
др. (2000), Гергель В.П., Стронгин Р.Г. (2000).
3. Обзорам образовательной составляющей проблематики по па-
раллельным вычислениям посвящены отдельные разделы вышеупомя-
нутых информационных серверов сети Интернет.
На портале www.parallel.ru упомянуты 3 учебных курса:
• Воеводин Вл.В. Материалы к курсу лекций «Параллельные вы-
числения, технологии параллельного программирования, парал-
лельные компьютеры и супер-ЭВМ, анализ структуры программ»;
• Ластовецкий А.Л. Интерактивный учебный курс «Программиро-
вание параллельных вычислений на неоднородных сетях компью-
теров на языке mpC»;
• Комолкин А.В., Немнюгин С.А. Программирование для высоко-
производительных ЭВМ.
Кроме того, в сети Интернет доступна информация о ряде других
учебных программ:
• Крутиков М.П. Параллельные вычислительные системы (Институт
высокопроизводительных вычислений и баз данных, Санкт-
Петербург, www.csa.ru:81/~mike/edu/parallel.htnl);
• Симонов С.А. Языки и методов параллельного программирования
(Институт вычислительной математики и математической геофи-
зики СО РАН, Новосибирск, www.invest.sscc.ru/simonov/exam.htm).
28
Большую работу по систематизации образовательных программ
выполнила экспертная группа Министерства образования РФ по под-
готовке специалистов в области высокопроизводительных вычисле-
ний. В качестве рекомендаций данная группа выдвинула предложения
по созданию новых специализаций «Высокопроизводительные вычис-
лительные технологии и системы», «Математическое и программное
обеспечение высокопроизводительных вычислительных систем
(ВВС)», «ВВС и параллельное программирование», а также сформиро-
вала рекомендуемый набор учебных курсов по этим специализациям.
Информация о результатах деятельности рабочей группы представле-
на,
например,
в
работе
А.Н.Тихонова,
А.Д.Иванникова,
В.Г.Домрачева, А.К. Скуратова, И.В. Ретинской (2001).
Более широко представлены в Интернет зарубежные материалы по
обучению. В числе возможных примеров:
1. Introduction to High Performance Computing (Ediburch Parallel
Programming Center, www.epcc.ed.ac.uk/epcc-tec/courses/HPCintro.html)
2.
Practical Parallel Programming (University of Leeds,
www.comp.leeds.ac.uk, раздел MSc/modules_99/so31_comp3580.html)
3. Parallel Computing (Boston University) и др.
Анализируя содержание всех перечисленных учебных курсов,
можно отметить следующее:
• во многих курсах проблемы параллельного программирования
сводятся к задаче освоения средств программирования (типа биб-
лиотек MPI);
• вопросы моделирования вычислений с целью выявления возмож-
ных способов эффективного распараллеливания рассматриваются
в недостаточно полном объеме;
• лабораторный практикум по параллельному программирования
имеет в значительной степени иллюстративный характер (исполь-
зование простых примеров, задач, методов).
4. Характеризуя необходимый набор знаний и умений, требуемый
специалисту в области высокопроизводительных вычислений для эф-
фективного решения сложных научно-технических задач, можно вы-
делить следующий возможный набор разделов программы подготовки
в указанной области:
• Архитектура параллельных вычислительных систем,
• Модели вычислений и методы анализа сложности,
29
• Параллельные методы вычислений,
• Параллельное программирование (языки, среды разработки, биб-
лиотеки).
Приведенный перечень может быть расширен, но даже и в таком
составе становится ясным, что подготовка в области высокопроизво-
дительных вычислений не может быть сведена к нескольким учебным
курсам, а требует формирования комплексных учебных программ в
виде специализаций существующих или вновь вводимых специально-
стей.
Вместе с этим актуальным является наличие и общего (интеграль-
ного) учебного курса по параллельному программированию, в рамках
которого с единых позиций предпринималась бы попытка общего ана-
лиза многих проблем в области высокопроизводительных вычислений.
Такой курс может быть использован как систематическое введение в
предметную область в рамках специализаций и специальностей соот-
ветствующей направленности. Кроме того, подобный курс мог бы ока-
заться полезным для различных программ переподготовки и повыше-
ния квалификации кадров.
Именно к указанному типу относится учебный курс «Многопро-
цессорные вычислительные системы и параллельное программирова-
ние», который читается для студентов факультета вычислительной
математики и кибернетики Нижегородского университета с 1995 г.; с
1999 г. этот курс читается также в Нижегородском государственном
техническом университете. В 2001 г. данный курс читается (после со-
ответствующей переработки) для научных сотрудников Института
прикладной физики РАН и для работников компании «Интел».
В 2001 г. по курсу было подготовлено учебное пособие «Основы
параллельных вычислений» (см. Гергель, Стронгин (2001)), которое на
данный момент уже используется в учебном процессе более чем в 20
вузах страны.
Для характеристики содержания курса приведем в кратком виде
(до уровня подразделов) учебную программу курса (в полном виде
программа курса опубликована в пособии Гергеля, Стронгина (2001):
Достарыңызбен бөлісу: |