BC/NW 2003г., №1(3)/ 12.1

 



ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ДЛЯ ОРГАНИЗАЦИИ УЧЕБНОЙ КЛАСТЕРНОЙ ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЫ НА БАЗЕ ЛОКАЛЬНОЙ СЕТИ

 

 

Козлов Е.Н., Левин Г.А., Филатов А.В.

 

 

(Москва, Московский энергетический институт (ТУ), Россия)




В последние годы отмечается значительный интерес специалистов к параллельным вычислениям. Как показывает практика, дальнейшее повышение производительности вычислительных систем (ВС) тесно связано с внедрением параллелизма (одновременного, параллельного выполнения вычислений различными устройствами) на различных уровнях. Параллельная обработка данных используется как на уровне функциональных узлов и процессоров, так и на уровне крупноблочных вычислительных комплексов и распределённых вычислительных систем.

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

Подготовка специалистов требует приобретения ими не только глубоких теоретических знаний по данному вопросу, но и  практических навыков. Поэтому целесообразно организовать обучение на параллельных ВС. Для этого ВУЗами создаются или приобретаются ВС поддерживающие параллельную обработку данных на всех уровнях детализации вычислительного процесса. Как правило, это - ВС кластерного типа (кластеры). Кластеры - это интенсивно развивающийся тип параллельной ВС, которые (как правило) строятся из стандартных одно- или многопроцессорных узлов, объединённых стандартной коммутационной сетью (КС) в  единую систему. В некотором смысле кластерные ВС являются промежуточным типом между сильносвязанными параллельными ВС и распределёнными ВС.

«Фирменные» кластеры, построенные на специализированных процессорных узлах, специализированных высокоскоростных сетях и специализированном программном обеспечении, всё ещё достаточно дороги и подчас сложны в эксплуатации. Для учебных же целей можно использовать кластер, построенный на  обычной сети (Ethernet, Fast Ethernet). В качестве процессорных узлов можно использовать рабочие станции (компьютеры) сети. Однако поддержание такой системы и обеспечение работы  группы обучаемых всё же представляет некоторые трудности.

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

 

Созданное в МЭИ (ТУ) на кафедре ВМСиС специальное программное обеспечение позволяет быстро создать на базе компьютерного класса с локальной сетью Ethernet (Fast Ethernet) учебную кластерную вычислительную систему для одновременной работы на ней группы обучаемых.

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

Все ПО было разбито на три основные части (блока): клиентскую, серверную и служебную.

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

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

 

 

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

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

Очередь задач кластера организована по принципу FIFO (First In First Out), но если для первой в очереди задачи не достаточно ресурсов, то пробует запуститься вторая, третья и так далее. Таким образом, задачи, требующие большого количества ресурсов, дольше ожидают в очереди, чем задачи, требующие небольшого количества ресурсов.

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

Обмен информацией между процессорами осуществляется при помощи протокола стандарта MPI (реализация WMPI 1.3)

Серверная часть программного обеспечения работают под одной из операционных систем Windows 95/98, Windows NT 4.0 или Windows 2000. Под Windows 95 и NT должен быть установлен Internet Explorer 4.0 или выше.

 

Система была опробована в учебном классе. Предварительные результаты показали её работоспособность. Установка системы занимала не больше часа. Программы создавались в системе MS Visual C++ 6.0, и компилировались с библиотекой MPI. Дальнейший план развития предполагает создание системы визуализации работы программ, возможность построения гетерогенной (с точки зрения аппаратуры и ОС) кластерной системы, возможность построения учебно-экспериментальной метакомпьютерной системы, а так же выход на различные языки программирования и стандарты обмена данными.

 

ЛИТЕРАТУРА

 

1.     Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. –СПб.: БХВ-Петербург, 2002. –608 с.: ил.

2.     Эндрюс Г.Р. Основы многопоточного, параллельного и распределённого программирования.: Пер. с англ. –М.: Издательский дом «Вильямс», 2003. – 512 с.: ил.

3.     Кутепов В.П., Ладыгин И.И., Филатов А.В., Шамаева  О.Ю. О создании совета и научно-технического семинара МЭИ «Суперкомпьютерные технологии». МФИ-2001: Доклады международной конференции «Информационные средства и технологии». 16-18 октября 2001 г.,   3-х томах, Том 3 –М.: издательство «Станкин», 2001, стр. 6-9.