Описание архитектуры и программного обеспечения суперкомпьютерного комплекса RM600 E20-E60 ИПХФ РАН.
 
 

  1. Краткое описание суперкомпьютерного комплекса RM600 Е20-Е60.
В Институте с 1998 года функционирует комплекс из двух серверов RM600 E20 и RM600 E60 фирмы Siemens (Германия) с общей пиковой производительностью около 10 Гфлоп. Серверы соединены между собой с помощью двух 100 Мбит портов свитча Super Stack 2 Switch 3300 фирмы 3COM. Обе модели относятся к многопроцессорным SMP-серверам с общим полем оперативной памяти на базе RISC-микропроцессоров R10000 фирмы MIPS. Модель Е20 масштабируется до 8 , а модель Е60 до 24 процессоров. В них применена современная архитектура сс-NUMA - кэш-когерентный доступ к неоднородной памяти. Эта архитектура снимает ограничения по масштабируемости, присущие SMP, основанной на концепции системной шины, и гарантирует аппаратную кэш-когерентность для дальней памяти, в результате чего отпадает необходимость в программном обеспечении когерентности, а скорость доступа значительно возрастает.

Характеристика моделей RM600 E20/E60 :

В состав серверов RM600 E20/E60 входят следующие функциональные модули: центральный блок, система ввода/вывода и периферийные устройства.

Главной информационной магистралью центрального блока служит синхронная конвейерная шина SPbus (Synchronous Pipelines bus), разрядностью 128 бит, работающая на тактовой частоте 50 Мгц. К SPbus непосредственно подсоединяются процессорные платы с локальной основной памятью и платы ввода/вывода HIOS с подсистемами в/в (рис.1).

Рисунок 1. Архитектура систем RM600 E20/E60

Применение в RM600E архитектуры ccNUMA имеет следующие преимущества:

Симметричная мультипроцессорная архитектура позволяет динамически распределять нагрузку и допускает параллельное выполнение прикладных заданий на нескольких процессорах. Четыре процессора R10000 взаимодействуют на плате посредством кластерной шины. Операции доступа каждого из четырех процессоров выполняются параллельно без каких-либо взаимных помех. Отсутствует необходимость обращения к системной шине, если только не требуется взаимодействие за пределами одной платы. В результате архитектура двухуровневой шины дает пропускную способность шины до 1,07 Гбайт/с.

Одна процессорная плата поддерживает работу до 4 дочерних плат с процессорами R10000. Процессорная плата RM600 E20/E60 включает основную локальную память, емкость которой может быть расширена до 4 Гбайт с приращением по 64/256 Мбайт, независимо от числа процессоров. Процессорная плата имеет двухшинную архитектуру (рис.2):

Рисунок 2. Процессорная плата RM600 E20/E60

Каждая дочерняя процессорная плата содержит один RISC-процессор и кэш-память второго уровня (SLC-second-level cache) емкостью 4 Мбайт. SLC использует технологию обратного копирования в память и корректирующие ошибки коды (ECC).

Процессор MIPS R10000 представляет собой 64-битовый RISC-процессор с тактовой частотой 200 Мгц. R10000 реализует суперскалярную обработку и включает 2 блока целочисленной арифметики, 2 блока арифметики с плавающей точкой, устройство управления памятью, кэш-память первого уровня емкостью по 32 Кбайт для команд и данных, с контролем четности и контроллер кэш-памяти второго уровня

В системах RM600Е используется синхронная динамическая память SDRAM с коррекцией ошибок. Она размещается на процессорных платах, реализована по 16-битовой и/или 64-битовой технологии и защищена кодом контроля ошибок (ECC), который корректирует все однобитовые и обнаруживает все двухбитовые ошибки. Архитектура основной памяти базируется на технологии ccNUMA, которая предполагает переменное время доступа к памяти в зависимости от места расположения процессора. Обращение к основной памяти, расположенной на другой плате в традиционных SMP-системах, соответствует "удаленному" обращению посредством системной шины. Наличие "близкой" памяти позволяет обеспечить более высокую пропускную способность, поскольку обрабатываемые данные оказываются доступными с минимальным временем ожидания. В свою очередь, скорость выполнения процесса зависит и от того, требуется ли когерентность кэш-памяти и насколько эффективно операционная система работает с NUMA. В результате достигнутый на типовых коммерческих приложениях уровень пропускной способности (более 1 Гбайт/с) почти вдвое превышает производительность традиционных методов реализации обращений к памяти.

Синхронная конвейерная шина (SPbus) предназначена для связи процессорных плат, плат HIOS и подсистем ввода/вывода: тактовая частота - 50 Мгц, разрядность данных - 128 бит, скорость передачи данных в установившемся режиме - 800 Мбайт/с, разрядность шины - 64 бит, разрядность адреса - 40 бит. Все магистрали данных контролируются четностью. SPbus представляет собой шину с расщеплением транзакций, которая допускает обработку до 8 параллельных транзакций и поддерживает требуемые протоколы когерентности кэш-памяти. Именно поэтому SPbus подходит для организации мультипроцессорной работы.

Шина SCSI-2 используется для подсоединения устройств массовой памяти. Скорость передачи данных в асинхронном режиме - 1,5 Мбайт/с. Скорость передачи данных в синхронном режиме - 5/10/20 Мбайт/с.

Системное шасси RM600 E (SPbus) имеет 16 гнезд для установки плат, из которых только 11 реально доступны. Гнезда SPbus 1, 3, 11, 13 и 15 не могут использоваться - они закрываются платами, имеющими двойную ширину (процессорными платами и платами HIOS).

В моделях RM600E реализована система ввода/вывода HIOS, которая была разработана с учетом необходимости обеспечения высокой производительности, масштабируемости и связности. При этом была принята во внимание возможность обеспечения высокой производительности за счет непосредственного подключения к системной шине независимых процессоров ввода/вывода. В результате каждый процессор ввода/вывода может обеспечивать работу до четырех высокопроизводительных субмодулей (ATM, SCSI, Ethernet ) с суммарной пропускной способностью до 100 Мбайт/с.

Система HIOS подключается непосредственно к SPbus. В зависимости от требуемой конфигурации в эту плату можно установить от одного до четырех субмодулей: Ethernet 10/100 baseT (ETN), ATM 155 Mbit, 8-битовый Single-Ended SCSI (8SE) для устройств со сменными носителями, 16-битовый Single-Ended SCSI (16SE) для жестких дисков в системной стойке RM600 E20, 16-битовый Differential SCSI (16DF) для жестких дисков в системной стойке RM600 E60 и стойке расширения, а также для внешних SCSI-устройств.

Устройства внутренней массовой памяти (жесткие диски и устройства со сменными носителями данных) системы RM600 E устанавливается в системную стойку и стойки расширения.

В зависимости от модели и общего количества стоек в систему может быть установлено до 623 жестких дисков размером 3.5" (по 9,1 Гбайт), что обеспечивает максимальную емкость дисковой памяти в 5,7 Тбайт. Устройства со сменными носителями размещаются в системной стойке, где предусмотрено два отсека для устройств с размером 5.25" (CD-ROM, лента) и три отсека для устройств с размером 3.5" (флоппи-дисковод, DAT). Если требуется большее количество устройств со сменными носителями, то к системе можно подключить до двух периферийных блоков (BG51/BG52), каждый из которых имеет по два отсека для устройств с размером 5.25".

Необходимый уровень готовности системы RM600E обеспечивается путем выбора и комбинации различных стандартных компонентов. Внешние блоки резервного батарейного питания (BBU) служат для защиты системы от длительных перерывов в работе первичного электропитания и гарантии упорядоченного выключения. Используются внешние BBU, размещаемые в отдельных стойках. Наряду с внешними блоками резервного батарейного питания для каждого из серверов Е20 и Е60 комплекса RM600E установлен центральный UPS (устройство бесперебойного питания) Masterguard S5210 мощностью 10 КВА. 

2. Программное обеспечение вычислительного комплекса RM600 E20-E60.

Семейство серверов RM600Е поставляется с единой операционной системой Reliant UNIX, которая возникла в результате объединения ОС SINIX компании Siemens-Nixdorf (SNI) и DC/OSx компании Pyramid Technology. Система Reliant UNIX вобрала в себя отличительные черты предшественников: производительность и работоспособность больших кластерных вычислительных систем от DC/OSx и высокую степень соответствия промышленным стандартам от SINIX. Она основана на UNIX System V Release 4 (SVR4) - наиболее развитой версии UNIX, включающей все основные разработки в овласти UNIX, и интегрирует их в однородную операционную систему, которая удовлетворяет международным стандартам и стандартам де-факто.

Помимо удовлетворения основных требований к открытым UNIX-платформам дополнительные компоненты Reliant Unix, такие, как доступ к базам данных, языки программирования, человеко-машинный интерфейс и коммуникации, также соответствуют международным стандартам, что подтверждается сертификатом X-Open Unix 93. Кроме того, Reliant Unix совместим с UNIX95, а впоследствии и с 64-разрядным UNIX API, поддержанным SNI и Pyramid совместно с другими ведущими UNIX-производителями. При этом Reliant Unix удовлетворяет mipsABI - стандарту, обеспечивающему совместимость на уровне двоичного кода для процессоров MIPS, и включает SINIX/windows - продукт, реализующий среду рабочего стола на базе X Window и OSF/Motif и соответствующий стандарту CDE (Common Desktop Enviroment). Линейный рост производительности при увеличении числа процессоров стал возможным благодаря превращению операционной системы в полностью параллельную. Кроме того, в Reliant UNIX имеются разнообразные функции повышения стабильности и обеспечения высокой готовности: регистрация ошибок, процедуры идентификации неисправных аппаратных компонентов и восстановления, построения кластерных конфигураций и многие другие.

Для операционной системы, ориентированной на сегмент высокопроизводительных вычислений, существенным является обеспечение расширенных функций высокой готовности, включая поддержку горячей замены компонентов, избыточные аппаратные компоненты (вентиляторы, источники питания и т.п.) и автоматическую реконфигурацию на случай неисправности. Более того, в Reliant UNIX имеется широкий спектр функций, необходимых для работы современного вычислительного центра, включая функции печати, управления заданиями и резервного копирования. Далее следует отметить, что архитектура процессоров MIPS представляет собой одну из первых 64-битовых архитектур в коммерческом использовании, что, как известно, позволяет преодолеть ограничение 32-разрядной адресации для приложений и допускает создание максимальной конфигурации памяти, превышающей 4 Гбайт. При этом 64-битовая архитектура Reliant UNIX обеспечивает полную совместимость с применявшейся ранее 32-битовой архитектурой. Это, в частности, означает, что приложения не обязательно должны быть перетранслированы для выполнения на 64-битовой архитектуре, так можно сэкономить издержки на модернизацию существующих прикладных пакетов.

Основные характеристики Reliant Unix (функциональные расширения SVR4):

Reliant Unix обеспечивает полностью симметричное мультипроцессирование, когда все процессры управляются единственной копией ОС с равным доступом ко всем ресурсам; каждый процессор может обрабатывать любой системный вызов, в том числе какую угодно операцию ввода/вывода и любое прерывание. Все процессоры используют единое пространство памяти через общую шину ("плотно сцепленная" глобальная разделяемая память). Динамическое распределение загрузки (равномерно между всеми процессорами) обеспечивает эффективное использование параллельных процессоров без каких-либо модификаций прикладных программ. Этот метод, используемый для реализации мультипроцессирования, полностью встроен в ядро и не оказывает влияния на выполняемые приложения. Распараллеливание задач производится на уровне процессов. В состав Reliant Unix входит система разработки на языке Си, компиляторы С++ , Fortran 77, Pascal, приобретен компилятор Fortran 90 фирмы EPC (для процессоров MIPS). Версия Reliant Unix 5.44 поддерживает 64-разрядные версии СУБД Oracle 8.0 и Informix7.3.

В ИПХФ на сервере RM600 E20 функционирует 32-разрядная Reliant Unix 5.43, а на сервере RM600 E60 - 64-разрядная Reliant Unix 5.44. Новая версия ОС позволяет оперативной памяти RM600 расширяться до 24 Гбайт, адресному пространству пользователя - до 1 Тбайт, а размеру файлов и файловых систем - до 16Тбайт. Кроме того, желательно использовать 64-битовую технологию и для основных прикладных систем, когда необходима поддержка параллельной работы большого числа пользователей и требуется обработка больших объемов данных. Это, в частности, справедливо в случае интеграции в приложениях обработки изображений, видео- и аудиоданных, при решении задач вычислительной химии, гидро- и газодинамики.

Для вычислительных систем с общей памятью существует большое разнобразие средств, позволяющих реализовать параллельность, которую допускает выбранный программистом алгоритм. Стандартом для разработки параллельных программ (как для систем с общей памятью, так и для систем с распределенной памятью) стал MPI (Message Passing Interface) - интерфейс передачи сообщений. Головная организация проекта - Аргонская национальная лаборатория США - распространяет пакет MPICH (MPI Chameleon), перенесенный на большинство платформ. На сервере RM600 E60 инсталлирована версия MPICH 1.1.0 этого пакета, с помощью которого распараллелена такая известная программа для квантово-химических расчетов как GAMESS и ряд других научных программ. Программировать на MPI достаточно сложно. Его можно рассматривать как уровень ассемблера для параллельных программ. Выход в модульном программировании. На базе MPI можно создавать библиотеки параллельных программ. Такие библиотеки реализованы практически на всех современных суперкомпьютерах. Одна из самых интересных разработок - пакет линейной алгебры ScaLAPACK, разработанный группой Дж. Донгарра, также инсталлирован на сервере E60.

Для анализа быстродействия параллельных программ, написанных с использованием средств пакета MPICH, инсталлирована программа Jumpshot. Это инструмент для графической визуализации, интерпретирующий двоичные трассировочные CLOG файлы. Программа написана на языке JAVA, поэтому попутно была инсталлирована система JDKv.1.6 (Java Development Kit).

Широкое развитие получил новый подход к расширениям последовательных языков программирования, в частности языков Фортран и Си. В язык вводятся средства, позволяющие пользователю задавать размещение и распределение данных по процессорам, всю остальную работу по распараллеливанию программы выполняет компилятор. В 1992 году образована группа HPF (High Perfomance Forum), которая разработала проект языка HPF (High Perfomance Fortran), являющегося расщирением Фортрана 90. Этот язык становится фактическим стандартом. На сервере E60 инсталлирована система ADAPTOR (Automatic Data Parallelism TranslatOR) версии 6.1, которая преобразовывает HPF программы в программы на языках Fortran 77 или Fortran 90. Эти SPMD (single program, multiple data) программы содержат обращения к библиотеке DALIB (Distributed Array LIBrary), явно использующей транспортную систему MPI, инсталлированную на сервере, и компилируются обычным компилятором Fortran 90 в параллельные программы. ADAPTOR - разработка GMD (German National Research Center for Information Technology - http://www.gmd.de).

Для обеспечения поддержки выполнения пакетных запросов для выполнения задач расчетного характера на серверах RM600 E20 и E60 инсталлирована система Generic NQS (Network Queue System), которую с 1995 года сопровождает Шеффилдский университет (Великобритания). Для пакетных очередей установлен ряд пределов (квот) ресурсов, набор которых приписывается всей очереди. Кроме того, ограничения могут быть установлены в аргументах команды qsub, с помощью которой пакетный запрос направляется в очередь. Этот набор пределов для пакетного запроса фиксируется в момент его постановки в очередь. С целью защиты от перегрузки устанавливается предел выполнения - максимальное число одновременно выполняемых пакетных запросов, а также максимальное число одновременно выполняемых пакетных запросов для одного пользователя. Устанавливается также глобальный предел выполнения, который ограничивает число всех одновременно обрабатываемых пакетных запросов во всех очередях на данном компьютере. Для ограничения возможности пользователю отправлять свои запросы в наиболее приоритетные очереди применен механизм контроля доступа к очередям. Для каждой очереди может быть установлен один из двух режимов доступа - неограниченный и ограниченный. Максимальный приоритет и ограниченный доступ установлен для очереди, накапливающей и выполняющей пакетные запросы на счет параллельных программ. Счет параллельных программ осуществляется по одной в связи с использованием системного механизма "жесткой" привязки процессов параллельной программы к процессорам (для максимальной эффективности). С целью расширения средств разработки программ на серверах Е20 и Е60 был инсталлирован GNU Emacs v.20.3. Этот текстовый редактор предназначен для квалифицированных программистов и обладает мощными средствами разработки. Для решения задач системного управления инсталлирован интерпретируемый язык программирования Perl v.5.004.04 (Practical Extraction and Reporting Language). Для удобства работы начинающих пользователей инсталлирован файловый менеджер MC (Midnight Commander) и ряд других инструментов.