Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Стронгин Р.Г. Высокопроизводительные паралленльные вычисления на кластерных системах. 2003

.pdf
Скачиваний:
29
Добавлен:
08.03.2016
Размер:
2.01 Mб
Скачать

Министерство образования Российской Федерации

Нижегородский государственный университет им.Н.И.Лобачевского

Высокопроизводительные параллельные вычисления на кластерных системах

Материалы третьего Международного научно-практического семинара

13–15 ноября 2003 г.

Издательство Нижегородского госуниверситета Нижний Новгород

2003

УДК 681.3.012:51 ББК 32.973.26–018.2:22 В 93

B93 Высокопроизводительные параллельные вычисления на кла-

стерных системах. Материалы третьего Международного научно-практического семинара / Под ред. проф. Р.Г. Стронгина. Нижний Новгород: Изд-во Нижегородского госуниверситета, 2003. ??? с.

Сборник сформирован по итогам научного семинара, посвященного теоретической и практической проблематике параллельных вычислений, ориентированных на использование современных многопроцессорных архитектур кластерного типа. Семинар проходил в Нижнем Новгороде 13-15 сентября 2003 года.

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

Отв. за выпуск к.ф.-м.н., доцент В.А. Гришагин

ББК 32.973.26–018.2:22

Поддержка семинара

Российский фонд фунтаментальных исследований

Компания Intel Technologies

NSTLab Нижегородская лаборатория программых технологий

Министерство образования Российской Федерации (ФЦП «Интеграция» и НП «Университеты России»)

Фонд содействия развитию малых форм предприятий

внаучно-технической сфере

©Нижегородский госуниверситет им. Н.И. Лобачевского, 2003

13–15 сентября 2003 года Вычислительный Центр РАН, Институт математического моделирования РАН, Нижегородский государственный университет им. Н.И. Лобачевского провели в Нижнем Новгороде третий Международный научно-практический семинар и Всероссийскую молодежную школу «Высокопроизводительные параллельные вычисления на кластерных системах». Молодежная школа была организована совместно с Международной научной конференцией Parallel Computing Technologies (PaCT – 2003).

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

Проблематика семинара нацелена на рассмотрение следующих вопросов параллельных вычислений:

принципы построения кластерных вычислительных систем;

методы управления параллельных вычислениями в кластерных системах;

параллельные алгоритмы решения сложных вычислительных задач;

программные среды и средства для разработки параллельных программ;

прикладные программные системы параллельных вычислений;

методы анализа и оценки эффективности параллельных программ;

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

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

3

ОРГКОМИТЕТ СЕМИНАРА

Р.Г. Стронгин председатель Оргкомитета, Первый проректор ННГУ, профессор, д.ф.-м.н.

Гергель В.П. заместитель председателя Оргкомитета, профессор, д.т.н., ННГУ.

Батищев Д.И. профессор, д.т.н., ННГУ.

Евтушенко Ю.Г. директор Вычислительного центра РАН, чл.-корр. РАН.

Золотарев В.И.

Крюков В.А.

Нестеренко Л.В.

директор Петродворцового телекоммуникационного центра СПбГУ зав. отделом Института Прикладной Математики РАН, профессор, д.ф.-м.н.

директор по стратегии и технологиям Нижегородской лаборатории Intel (INNL),

к.ф.-м.н.

Сергеев Я.Д. профессор, д.ф.-м.н., ННГУ, Калабрийский университет (Италия).

Четверушкин Б.Н. директор Института математического моделирования РАН, чл.-корр. РАН.

Юнаковский А.Д. зав. лаб. Института Прикладной Физики РАН, к.ф.-м.н.

Гришагин В.А. ученый секретарь семинара, к.ф.-м.н., ННГУ

4

ПОРТАЛ ПОДДЕРЖКИ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ

К.Е. Афанасьев, А.В. Демидов keafa@kemsu.ru , demid@kemsu.ru

За последнее десятилетие все более широкое применение в отечественных научных и производственных расчетах занимают вычисления на компьютерных кластерах. Конечно, фирменные SMP- и MPP-системы гораздо производительнее кластеров с таким же числом процессоров, однако их высокая стоимость делает фирменные системы недоступными большинству российских предприятий, институтов и университетов. С другой стороны, практически во всех организациях такого типа развернуты локальные компьютерные сети, объединяющие персональные компьютеры сотрудников, учебные классы и т.п. Многие локальные сети также подключены к глобальным сетям, в основном к Интернет. В то же время компьютерные ресурсы организаций практически не используются круглосуточно, более того их использование в учебном или производственном процессе редко превышает 12 часов в сутки. Это позволяет администраторам организовывать на базе существующих сетей компьютерные кластеры (преимущественно Linux-кластеры), которые могут функционировать в нерабочее время (например, ночью). Благодаря отсутствию необходимости приобретения дополнительного оборудования и свободному распространению программного обеспечения организация кластера не требует больших финансовых вложений.

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

5

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

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

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

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

1.Вычислительные ресурсы.

Это аппаратная часть портала, которая может быть представлена как SMP- и MPP-системами заводской сборки, так и компьютерными кластерами различной вычислительной мощности. На самых мощных системах можно запускать научные расчеты, а на более слабых, например, исследовать распараллеливание численных методов. Необходимым требованием к вычислительному ресурсу является поддержка им возможности удаленного управления посредством rshell (remote shell).

2.Средства удаленного доступа.

6

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

3. Библиотеки распараллеленных процедур и функций. Пользователь портала должен думать о результатах своих

расчетов, а не о том, как лучше ему распараллелить тот или иной блок вычислений. Чем больше «строительных блоков» для создания параллельных программ ему будет предоставлено, тем проще и быстрее будет сделать расчет и получить результат. В этом компоненте могут быть представлены как широко известные математические библиотеки (например, SCALAPACK), так и библиотеки процедур, характерных для какой либо конкретной области вычислений (например, процедуры, типичные для решения задач гидродинамики).

4.Средства отладки параллельных программ.

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

5.Информация и документация.

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

7

инструкции по работе с каждым элементом портала, а особенно со средствами отладки и удаленного доступа.

ПО удаленного доступа

Согласно опросу, проведенному среди потенциальных пользователей системы, пользователь хочет, чтобы система позволяла:

1.Работать с сервером по протоколу TCP/IP;

2.Создавать новые проекты (расчетные программы) и копировать исходные коды программ с машины клиента на сервер;

3.Компилировать и перекомпилировать выбранные проекты на выбранном кластере, сообщать результаты компиляции, возвращать ошибки компиляции;

4.Запускать экземпляры расчетных программ на выбранном кластере;

5.Уничтожать выбранные экземпляры расчетных программ;

6.Сообщать об успешном или неуспешном завершении расчета;

7.Копировать файлы с результатами расчета с сервера на машину клиента;

8.Возвращать ошибки времени исполнения;

9.Сохранять настройки интерфейса и параметров запуска расчетов;

10.Удалять выбранные проекты и файлы.

Эти требования полностью были заложены в функциональные возможности разрабатываемой системы. Дополнительно была предусмотрена функция вызова хранимых на сервере расчетных программ и поддержка серий вычислительных экспериментов для последующей интеграции данной системы с пакетом прикладных программ «Акорд», созданном в ЦНИТ КемГУ для численного решения задач гидродинамики [1].

Исходя из приведенных требований и анализа предметной области, можно сделать вывод о том, что наиболее рациональным способом реализации поставленной задачи является распределенное приложение архитектуры «клиент–сервер».

В структуре «Вычислительного портала», сервер удаленного доступа является центральным компонентом. В его функции входит, с одной стороны, работа с клиентами, а с другой стороны – управление доступными вычислительными ресурсами в соответствии с запросами клиентов.

8

Сервер – это набор процессов, запущенных на выделенном ПК. Один из этих процессов работает постоянно. Это базовый процесс, прослушивающий сеть и принимающий входящие запросы на соединение от клиентов. Остальные процессы работают не постоянно, а создаются базовым или другим процессом для выполнения некоторого задания, либо системного, либо возникшего в результате запроса клиента.

В функции клиента входит работа с сервером для обеспечения доступа пользователя к ресурсам «Вычислительного портала». В структуре «Вычислительного портала» клиент является инвариантной частью и может быть представлен различными способами. В текущей реализации клиент выполняется в виде приложения под ОС Windows 98/2000/XP. Язык разработки – Delphi, среда разработки – Borland Delphi 6. В дальнейшем перспективным видится переход к клиенту, основанному на веб-браузере, что потребует введения дополнительных компонентов в структуру сервера без изменения общей логики его функционирования.

Для взаимодействия клиента и сервера между собой разрабатывается собственный протокол прикладного уровня (далее – протокол), работающий поверх протокола TCP/IP. Изначально планировалось использовать текстовый протокол, работающий по принципу протокола передачи почты POP3. Однако оказалось, что текстовые протоколы не имеют преимуществ перед бинарными, а при использовании последних к тому же отсутствует необходимость парсинга (синтаксического разбора) команд.

Средства отладки: эмулятор многопроцессорности

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

Чтобы отладить все ошибки (как алгоритмические, так и синтаксические), требуется кластер, по архитектуре сходный с тем, на котором предполагается запускать задачу. Поскольку не у каждого есть возможность собрать собственный кластер, то в этом случае

9

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

Главным требованием, которое ставилось перед созданием эмулятора и которое неукоснительно выполнялось, это переносимость кода из среды эмуляции в среду выполнения без каких-либо изменений. То есть эмулятор понимает синтаксис вызова всех процедур языка Fortran и библиотеки MPICH также, как они будут пониматься высокопроизводительным кластером. Текущая версия эмулятора [2] рассчитана на работу с программами, написанными на языке Fortran77 с использованием интерфейса обмена сообщениями MPICH версии 1.2.2. Т.к. большинство рабочих станций в настоящее время работают под управлением ОС семейства Windows, то текущая реализация эмулятора рассчитана на работу под управлением именно этих ОС.

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

Передача сообщений между процессами идет через файлы на жестком диске. Недостатком такого метода является низкая скорость обмена данными процессора с жестким диском. Тем не менее, не следует забывать, отладка программ, как правило, выполняется с небольшим набором данных и скорость на данном этапе не является критическим параметром. С другой стороны возможность просмотра этих файлов дает дополнительный инструмент для поиска ошибок в алгоритме и программе. Данный подход к эмулированию многопроцессорности был предложен в дипломной работе Д.А. Сучковой, выполненной в Уфимском Государственном авиационном техническом университете (УГАТУ) под руководством профессора В.П. Житникова.

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

10