Организационный отчет о деятельности Регионального центра новых информационных технологий Воронежского государственного университета за 2005 год

Вид материалаОтчет

Содержание


Учебно-научный полигон на основе суперкомпьютерного центра ВГУ. Компьютерный кластер высокопроизводительных вычислений
Mpi_allreduce (nonvec)
Mpi_reduce (vec)
Mpi_send (nonblocking with wait)
Mpi_send & mpi_recv
Подобный материал:
1   2   3   4   5   6   7   8   9

Учебно-научный полигон на основе суперкомпьютерного центра ВГУ. Компьютерный кластер высокопроизводительных вычислений


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

Работы по созданию высокопроизводительного вычислительного кластера ВГУ выполнялись в рамках гранта VZ-010 (Научно–образовательный центр “Волновые процессы”) при финансовой поддержке Американского фонда гражданских исследований и развития CRDF.

Система удаленного доступа к ресурсам суперкомпьютерного центра


В состав высокопроизводительного вычислительного кластера ВГУ входят четырехпроцессорный сервер SUPERSERVER 8060 (4xCPU Pentium III Xeon, 700 MГц, 4 Гб SDRAM), четыре двухпроцессорных сервера SUPERSERVER 6010H (2xCPU Pentium–III, 1,13 ГГц, 1 Гб SDRAM), а также восемь рабочих станций (Pentium–4, 2,0 ГГц, 512 Mб RIMM). Рабочие станции соединены между собой и с многопроцессорными узлами 100-мегабитной сетью, многопроцессорные узлы связаны оптоволоконной сетью 1 Гбит/сек, через которую также обеспечивается связь кластера с сетью Интернет. Схема сетевой организации вычислительного кластера представлена на рис.13 (первый уровень – многопроцессорные узлы, второй уровень – однопроцессорные узлы).



Рис. 13. Схема компьютерного кластера ВГУ

На все узлы кластера установлена операционная система Scientific Linux. Эта ОС относится к семейству Linux — операционных систем, обладающих развитыми средствами для организации, управления и поддержки серверов, компьютерных сетей и кластеров на основе сетевых протоколов TCP/IP. Дистрибутив Scientific Linux, поддерживаемый Центром ядерных исследований CERN и Лабораторией Ферми (США), включает в себя компоненты, дающие возможность использования параллельных алгоритмов для организации сложных научных расчетов. Система имеет пакетную организацию, что позволяет, во–первых, устанавливать только те ее компоненты, которые необходимы для эффективного решения поставленных задач; во-вторых, отслеживать целостность системы при помощи средств менеджера пакетов и, в–третьих, автоматически обновлять компоненты через сеть Internet. Для данной ОС существует дистрибутив программного обеспечения LCG2, относящийся к классу middleware и используемый в европейских проектах метакомпьютинга и распределенных вычислений European DataGrid (EDG) и Enabling Grids for E–science in Europe (EGEE). На однопроцессорных узлах кластера в качестве второй ОС установлена Windows 2000 Professional. Это позволяет, во-первых, сохранить существовавшую ранее среду для обучения студентов младших курсов, и, во-вторых, в полной мере использовать эти узлы в условиях новой операционной среды.

Для дистанционного доступа к вычислительным ресурсам кластера по сети Интернет создан специализированный Web–сайт на базе программного обеспечения MS IIS (Microsoft Internet Information Services), размещенный на 4–процессорном внутреннем узле кластера — SUPERSERVER 8060. Интерфейс сервера разработан на языке " onclick="return false">
Для удаленного доступа к кластеру пользователи должны пройти регистрацию, после чего им предоставляется возможность размещать свои программы для выполнения на кластере через Web–интерфейс (браузер), дистанционно компилировать и исполнять их. Защита данных на Web–сервере осуществляется средствами MS IIS и файловой системы NTFS. Программы выполняются в пакетном режиме без взаимодействия с оператором или пользователем. Результаты работы программы переносятся на компьютер пользователя средствами Web–браузера.

В связи с переходом на Scientific Linux Web–интерфейс удаленного доступа был перенесен на сервер Apache с использованием технологий CGI и PHP. Принцип работы интерфейса и его функциональность при этом не изменились. Для защиты данных используются штатные средства ОС Linux: журналируемая файловая система с разграничением доступа Ext3fs; технология аутентификации PAM (pluggable authentication modules); средства поддержки защищенных соединений Web–сервера Apache по протоколу HTTPS (разновидность HTTP, включающая в себя шифрование передаваемой информации), основанному на SSL (secure sockets layer). Из внутренней сети лаборатории также возможен доступ к кластеру посредством SSH (secure shell), дающий возможность работы с удаленной системой так, как если бы она была локально доступна пользователю. Следует заметить, что по SSH суперпользователь (системный администратор) не сможет аутентифицироваться и авторизоваться в системе — подключение осуществляется от имени обычного пользователя, затем при помощи встроенных команд ОС Linux после ввода пароля этот пользователь локально авторизуется как суперпользователь.

Администрирование кластера и управление вычислительной системой осуществляется исключительно посредством удаленного доступа по протоколу SSH, обеспечивающему защищенное соединение. Управление всеми запущенными на кластере задачами осуществляет только суперпользователь.

С помощью Web–интерфейса на кластере можно компилировать программы на языках программирования C и Fortran и отправлять их на исполнение в пакетном режиме. Внешний вид интерфейса представлен на рис. 14.




Рис. 14. Интерфейс с информацией о системе


Чтобы получить доступ к ресурсам кластера, необходимо пройти процедуру регистрации. Для этого необходимо заполнить соответствующую web-форму подачи заявки на регистрацию. После заполнения и отправки данных формы пользователь должен получить санкцию на регистрацию в системе от администратора кластера, а подлинность указанных им данных должна быть подтверждена непосредственно руководителем его организации. При регистрации средствами ОС Linux создается новая учетная запись, в которую входят учетное имя и пароль пользователя, используемые в дальнейшем при авторизации, а также его фамилия, имя и отчество, наименование организации и подразделения, рабочий телефон, адрес электронной почты, и так далее. Для каждого пользователя заводится отдельная группа безопасности, в которую входит только он. Для этой учетной записи создается так называемый домашний каталог, предназначенный для хранения данных пользователя, имя которого имеет вид /home/, где — учетное имя пользователя. Права доступа к этому каталогу автоматически выставляются такими, что прочесть либо записать что–либо в него может только данный пользователь либо суперпользователь. Тем самым устраняется возможность утечки либо изменения информации. В домашнем каталоге пользователя автоматически заводится подкаталог clust, в который в дальнейшем помещаются программы, загруженные пользователем для исполнения на кластере через Web–интерфейс.

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

Для компиляции и исполнения программы на кластере необходимо упаковать проект в архив формата ZIP, TAR, GZIP либо BZIP2 (таким образом, допустимы файлы с расширением .zip, .tar, .gz, .tar.gz, .bz2, .tar.bz2). Формат архива автоматически определяется по расширению имени. В архиве не может быть более одного проекта. Затем следует переслать этот архив на сервер, воспользовавшись соответствующей формой и задав имя и тип проекта. Под типом проекта понимается следующее: программа написана на языке C либо Fortran, использует или не использует SMP и MPI. Тип проекта определяет, таким образом, используемый транслятор и, если необходимо, дополнительные библиотеки времени выполнения.

На следующем этапе архив автоматически распаковывается на сервере, а список файлов, входящих в проект, отображается для пользователя. Из этого списка пользователь выбирает файл для компиляции. После сообщения об успешной компиляции можно запустить программу на выполнение. Для каждого проекта на сервере создается отдельный каталог вида /home//clust/
, где — учетное имя пользователя, получаемое при регистрации и используемое для авторизации, а
— заданное пользователем имя данного проекта. Средствами файловой системы Ext3fs права доступа к этому каталогу выставляются таким образом, что другие пользователи (кроме суперпользователя) не смогут даже прочитать файлы из этого каталога. Все файлы данного проекта хранятся в его каталоге, поэтому программа пользователя должна быть написана таким образом, чтобы брать необходимые ей данные из того же каталога, в котором она запущена, и создавать файлы результатов в этом же каталоге. Допускается создание промежуточных файлов (если в этом возникнет необходимость) как в каталоге проекта, так и в каталоге временных файлов /tmp, но в последнем случае эти файлы пользователю не показываются. Поскольку каталог /tmp доступен для чтения и записи любому пользователю, в целях предотвращения подмены либо утечки информации использовать этот каталог не рекомендуется. Пользователь, разрабатывающий программу для выполнения на кластере, должен учитывать данные требования.

Еще одной важной особенностью, возникающей из–за того, что данный интерфейс предоставляет удаленный (т.е. нелокальный) доступ, является невозможность организации интерактивного взаимодействия между пользователем и выполняемой задачей посредством стандартных потоков ввода–вывода — специфика протокола HTTP (и HTTPS) не допускает перенаправления этих потоков по сети. Вследствие этого, единственный способ передать программе какие–либо данные или же получить результаты, состоит в использовании внешних относительно программы файлов. Всякий проект, отправляемый на исполнение посредством данного интерфейса, должен содержать в архиве файл либо файлы с исходными данными (если таковые необходимы для решаемой задачи), а также сохранять конечные и, если нужно, промежуточные результаты в файл либо файлы. Способ оптимального размещения этих файлов изложен выше.

Эти, а также другие требования, предъявляемые к программам, содержатся в разделе «Помощь» Web-интерфейса. При использовании протокола SSH для доступа к спецификации можно воспользоваться специальной символической ссылкой на соответствующую директорию, создаваемой автоматически при регистрации нового пользователя.

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


Защита удаленного доступа к ресурсам высокопроизводительного кластера


Для защиты созданной ранее системы удаленного доступа к ресурсам высокопроизводительного компьютерного кластера, используемого в региональной информационно-образовательной среде, были проведено конфигурирование Web-сервера Apache, а также специальная настройка параметров PHP и прав доступа к каталогам пользователей. Для удобства регистрации пользователей был настроен сервер LDAP (Lightweight Directory Access Protocol), при помощи которого для регистрации, аутентификации, авторизации пользователей и их задач применяется LDAP-протокол. Одна из реализаций LDAP-сервера может использовать при ответах на запросы информацию из базы данных, в то время как другая – отвечать на запросы, динамически применяя Simple Network Management Protocol (Простой Протокол Управления Сетью – SNMP) для создания необходимой информации на лету.

Обычно каждая составляющая операционной системы, требующая аутентификации (telnet server, ftp server, web server и т.д.), имеет специальный встроенный код. Мы используем подключаемые модули аутентификации (Pluggable Authentication Modules, PAM). Для того чтобы произвести аутентификацию с помощью РАМ–модуля, операционная система вызывает его посредством системной библиотеки. В LDAP–окружении РАМ–модуль используется LDAP–сервером для аутентификации пользователей. РАМ поддерживается UNIX и Windows-системами, и его модули доступны из командной оболочки.

Из внутренней сети лаборатории дистанционного образования ВГУ возможен доступ к компьютерному кластеру посредством SSH (secure shell), дающему возможность работы с удаленной системой так, как если бы она была локально доступна пользователю.

LAM (Local Area Multicomputer) – реализация среды программирования MPI (Message Passing Interface) для гетерогенных компьютерных сетей. При помощи LAM/MPI выделенный кластер либо существующая локальная вычислительная сеть могут работать как один параллельный компьютер, решающий общие задачи. Считается, что LAM/MPI идеально подходит для кластеров, поскольку запуск и управление задачами, а также межпроцессный обмен сообщениями по сети осуществляются через системные сервисы. LAM/MPI может использовать для передачи сообщений как TCP/IP, так и разделяемую оперативную память.

В LAM реализована полная поддержка MPI версии 1 (за исключением возможности отмены отправки заданий) и большинство возможностей версии 2. LAM-приложения совместимы на уровне исходных кодов с любой другой реализацией MPI. LAM/MPI предоставляет широкие возможности для отладки приложений. Мониторинг задач осуществляется на двух уровнях: на первом уровне LAM/MPI позволяет делать "моментальные снимки" состояний процессов и сообщений в любой момент работы приложения.

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

Обеспечение системы тестирования компьютерного кластера

Как указывалось выше, узлы параллельного компьютерного кластера ВГУ первого уровня (12 процессоров в составе одного четырехпроцессорного и четырех двухпроцессорных узлов) связаны по протоколу Gigabit Ethernet, для связи остальных восьми однопроцессорных узлов используется протокол Fast Ethernet, связь обеспечивается коммутаторами Rapier G6f и Rapier 24 фирмы Allied Telesyn.

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

Тестирование кластера проводилось в следующих направлениях:

а) тестирование уровня программного и аппаратного обеспечения – оценка эффективности работы кластера в течение определенного периода времени (нагрузочное тестирование);

б) тестирование базового коммуникационного уровня – определение параметров среды взаимодействия параллельных процессов, эффективности выполнения основных коммуникационных процедур и примитивов синхронизации. Оно включает определение латентности и скорости передачи данных по коммуникационной сети кластера в различных режимах, а также эффективности работы конструкций MPI (Message Passing Interface) [2];

в) тестирование коммуникационного уровня приложений – оценка эффективности отображения различных логических топологий процессов на коммуникационную среду кластера.

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

Результаты определения пропускной способности кластера ВГУ представлены на рис.15а.



Рис 15а. Зависимость пропускной способности кластера ВГУ от размера сообщения

Для процессоров, связанных по протоколу Fast Ethernet, достигается латентность 90 мкс, а скорость пересылки данных составляет 80 Mбит/с для сообщений размером 256 Кбайт. Для процессоров, связанных по протоколу Gigabit Ethernet, достигается латентность 100 мкс, а скорость пересылки составляет 320 Mбит/с для сообщений размером 256 Кбайт.

Для одного узла достигается латентность 95 мкс, а скорость пересылки составляет 360 Mбит/с для сообщений размером 256 Кбайт.

При изменении размера сообщения до 32 Кбайт пропускная способность возрастает до 450 Мбит/c, а затем снижается до 350 Мбит/c. Это связано с тем, что при увеличении размера сообщения увеличивается количество кадров для передачи информации и время на разбиение сообщения, а размер кадра Ethernet при этом не меняется.

На рис.15б для сравнения представлены аналогичные зависимости для SCI-кластера НИВЦ МГУ. Использование специального коммуникационного оборудования и программного обеспечения позволяет в этом случае обеспечить непрерывный рост пропускной способности кластера в зависимости от размера сообщения.




Рис 15б. Пропускная способность SCI-кластера НИВЦ МГУ в зависимости от размера сообщения

Измерение времени выполнения основных операций MPI (см. табл. 1) позволяет оценить время работы всей параллельной программы и выбрать те процедуры, которые обеспечат наибольшую производительность. Например, при наличии достаточного объема памяти системы эффективнее создавать переменную для каждого процесса, чем рассылать ее значение с помощью операции MPI_BCAST.


Таблица 1. Время выполнения основных операций MPI

Операции MPI

Время выполнения, мкс

MPI_Wtime

2,2

MPI_Barrier

310

MPI_ALLREDUCE (NONVEC)

340

MPI_ALLREDUCE (VEC)

350

MPI_REDUCE (NONVEC)

770

MPI_REDUCE (VEC)

1200

MPI_BCAST

260

MPI_GATHER

2100

MPI_SEND (NONBLOCKING WITH WAIT)

48

MPI_SEND (BLOCKING )

47

MPI_SENDRECV

100

MPI_SEND & MPI_RECV

1600


Определение коэффициента полноты дает возможность оценить степень независимости одновременных обменов в сети кластера.

Для сети Gigabit Ethernet (коммутатор Rapier G6f) был получен коэффициент полноты Fe = 0,9; для сети Fast Ethernet (коммутатор Rapier 24) Fe =0,5. Это означает, что при использовании протокола Gigabit Ethernet одновременные обмены происходят практически независимо, при использовании протокола Fast Ethernet их взаимозависимость достаточно велика.

Исследование эффективности отображения логических топологий связи процессов на коммуникационную среду позволяет выявить наиболее эффективную топологию для решения конкретной задачи. Результаты определения пропускной способности для различных топологий соединения процессоров кластера представлены в табл.2,3. Тестирование проводилось для четырех процессоров. Как видно из результатов, наиболее «удачной» топологией соединения процессоров является «кольцо».

Таблица 2. Пропускная способность в сети Fast Ethernet

Топология сети

Средняя пропускная способность, Mбит/c

Общая пропускная способность, Mбит/c

звезда

3,26

9,8

кольцо

3,11

12,45

полный граф

0,42

2,52


Таблица 3. Пропускная способность в сети Gigabit Ethernet

Топология

сети

Средняя пропускная способность, Mбит/c

Общая пропускная способность, Mбит/c

звезда

19,49

58,47

кольцо

39,99

159,96

полный граф

9,03

54,21


В целом, тестирование кластера показало, что использование коммутатора Rapier G6f и сети Gigabit Ethernet позволяет до 20 раз в некоторых случаях увеличить общую пропускную способность по сравнению с применением протокола Fast Ethernet. Это особенно важно при использовании сложных топологий соединения процессоров с большим числом связей.

При тестировании кластера также применяются алгоритмы, разрабатываемые в рамках создаваемой в ВГУ библиотеки параллельных программ.