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

«Виртуализация», предложенная американо-израильской компанией ScaleMP, создает новое качество – виртуальный SMP-сервер с большим числом микропроцессоров и большим объемом оперативной памяти из ряда небольших серверов стандартной архитектуры. А эффективность в данном случае обусловлена возможностью создания больших виртуальных SMP-серверов (реальные серверы данного класса весьма дорогостоящи) из относительно дешевых серверов стандартной архитектуры.

Предложенное разработчиками название vSMP весьма удачно. Префикс v, означающий versatile (т.е. «универсальный», «многосторонний»), явно несет еще и подтекст виртуализации. vSMP предполагает агрегирование небольших компьютеров на платформе x86 в единое виртуальное целое. Такое агрегирование отсутствует и в случае вышеупомянутой виртуализации серверов стандартной архитектуры средствами программного обеспечения типа VMware и т.п., и в случае виртуализации больших серверов архитектуры SMP/ссNUMA c разбиением их на разделы (так называемое «парционирование»). Поэтому на сегодня vSMP является уникальным программным решением.

vsmp vs smp

Взглянем на рынок SMP-серверов, экономичную альтернативу которым предлагает ScaleMP. Уже серверы с четырьмя процессорными разъемами стоят непропорционально дорого (дороже системные платы и дороже соответствующие версии процессоров), если их сравнивать с одно-двухпроцессорными серверами стандартной архитектуры. Но в первую очередь речь идет о больших многопроцессорных SMP-серверах масштаба предприятия, базирующихся на процессорах Intel Xeon и AMD Opteron1.

Собственно, такие дорогостоящие SMP-серверы предлагают очень немногие производители. Можно упомянуть, например, IBM (серверы x3950 M2, содержащие до 16 разъемов для шестиядерных Xeon 7400), или Unisys ES7000 (модель 7600R имеет до 16 разъемов для Xeon 7400). Ясно, что речь идет об относительно небольшой и четко очерченной области рынка. Эта область все последние годы испытывала давление со стороны серверов стандартной архитектуры, вычислительные ресурсы которых (включая число процессорных ядер) быстро возрастали, покрывая потребности приложений, которым ранее требовались большие SMP-системы. Это справедливо, даже если расширить круг рассматриваемых больших SMP-систем на Unix-серверы на базе RISC-процессоров (Power, SPARC64) и Itanium 2. Альтернативой им в некоторых случаях оказываются кластерные системы. По мнению автора, разработка и реализация новых архитектур SMP/ссNUMA для больших серверов данного класса замедлилась. Пожалуй, из относительно недавних разработок можно упомянуть лишь Fujitsu/Sun SPARC Enterprise M8000/M9000.

Компания ScaleMP позиционирует свое программное обеспечение vSMP Foundation как предназначенное в первую очередь для работы приложений вычислительного характера (High Performance Computing, HPC) и приложений, требующих оперативной памяти большой емкости и интенсивно работающих с ней. Ситуации, когда для приложения требуется емкость оперативной памяти больше, чем может предоставить сервер стандартной архитектуры или узел кластера или МРР-системы, не являются чем-то уникальным. Даже распараллеленные в кластере приложения не обязаны предполагать распределенное хранение данных. Например, самый популярный в мире комплекс программ квантовой химии Gaussian-03 для расчетов частот колебаний в рамках теории возмущений второго порядка для молекулярных систем большого размера требует гораздо большей емкости оперативной памяти, чем имеется в типовых узлах современных кластеров.

Что еще может подтолкнуть пользователя к тому, чтобы он воспользовался разработками ScaleMP на базе архитектуры vSMP? Во-первых, это большая сложность создания и поддержания работы кластеров. Применение vSMP отвечает парадигме «единого образа системы» (Single System Image), и вместо кластера со многими отдельными узлами обслуживающий персонал работает как бы с единым большим компьютером. Упрощение работы уменьшает ТСО.

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

В-третьих, компоненты серверов стандартной архитектуры быстро развиваются, за год-полтора появляются аппаратные средства нового поколения, которые можно объединить с применением vSMP в единый виртуальный сервер. «Фирменные» разработки больших SMP-серверов, напротив, занимают много времени, новые технологии, становящиеся экономически эффективными в силу массовости систем со стандартной архитектурой, туда попадают с опозданием. Это часто компенсируется за счет собственных оригинальных разработок производителей больших SMP-серверов, но такие разработки дорого стоят.

Архитектура vSMP

Как уже отмечено выше, программное обеспечение для vSMP предлагает виртуализацию нового типа, которая на программном уровне заменяет дорогостоящие аппаратные средства больших SMP-серверов. В первую очередь речь идет о межсоединении таких серверов. Эти межсоединения разрабатываются фирмами исключительно для собственных компьютеров и представляют собой закрытые решения, не являющиеся индустриальными стандартами. Разработка и производство таких межсоединений (общие шины, коммутаторы или иерархические системы на их базе) сложны; они вносят едва ли не основной вклад в удорожание подобных серверов. Сами межсоединения в таких серверах часто располагаются
в конструктивах типа backplane/midplane (задняя плата/срединная плата).

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

В качестве примеров «фирменных» межсоединений можно указать NumaLink из ccNUMA-серверов SGI Origin/Altix или IBM XA из серверов семейства xSeries.
В самых массовых платформах стандартной архитектуры наборы микросхем поддерживают шину Intel FSB; в AMD Opteron поддержка межсоединения HyperTransport встроена в процессор.

Наборы микросхем обеспечивают единое поле оперативной памяти, когерентность кэш-памяти процессора, единое пространство ввода/вывода и другие вещи, которыми пользуются различные операционные системы, работающие на SMP-серверах. Грубо говоря, можно сказать, что межсоединение создает унифицированный интерфейс, доступный разработчикам ОС. В качестве примера можно привести Intel MultiProcessor Specification: эта спецификация позволяет одной копии операционной системы работать на компьютерах, имеющих до 255 процессоров.

Стандартные наборы микросхем, дающие высокую экономическую эффективность из-за их относительно низкой стоимости, позволяют строить SMP-системы с четырьмя разъемами для Xeon или с восемью разъемами для Opteron (еще раз напомним, в последних базовые функции набора микросхем интегрированы в процессоры). Хотя для систем, содержащих свыше двух разъемов, уже имеется большой скачок стоимости процессоров и системных плат вверх.

Что предложила ScaleMP? Идея vSMP состоит в том, чтобы использовать дешевые строительные блоки стандартной архитектуры, которые будут объединены высокоскоростным межсоединением Infiniband, а функции SMP-интерфейса для ОС перенести из аппаратуры набора микросхем в программное обеспечение [2, 3].

В [1] со ссылкой на президента ScaleMP Схая Фултайма утверждается, что программное обеспечение vSMP Foundation не использует продвинутые возможности Infiniband типа RDMA и может работать и с Gigabit Ethernet. Однако применение Infiniband представляется оправданным, поскольку речь идет о высокой производительности. Для создания аппаратной инфраструктуры для vSMP необходимы системные платы вместе с соответствующими процессорами, памятью и другими элементами, а также компоненты межсоединений Infiniband – адаптеры, кабели и коммутаторы.

vSMP Foundation загружается в память всех системных плат сразу после загрузки BIOS c носителя, именуемого vSMP Foundation Device. В настоящее время это флэш-накопитель с USB-интерфейсом.

Это программное обеспечение агрегирует процессоры, память и средства ввода/вывода, создавая виртуальную унифицированную среду для ОС и приложений. В настоящее время с vSMP работает Linux – RedHat Enterprise Level (RHEL), SuSE Linux Enterprise Server (SLES), но потенциально могут работать любые современные операционные системы для x86; первыми на очереди стоят Windows Server 2003/2008 [1].

Основу программного обеспечения ScaleMP cоставляет «движок» – Virtual Machine Monitor (VMM), который перехватывает обращения ОС к интерфейсам, отрабатываемым в «настоящих» SMP-системах набором микросхем (межсоединением), и использует для обработки этих запросов аппаратные средства Infiniband. vSMP Foundation создает, в частности, окружение – BIOS и ACPI, с согласованным видом единого компьютера для ОС.

Одна из главных задач vSMP Foundation – обеспечение когерентности памяти, в том числе специализированного кэша на системных платах. Соответствующие комплексные алгоритмы работают параллельно, на поблочной основе [2, 3]. Для уменьшения задержек межсоединения используются высокоэффективные алгоритмы кэширования, всего пятнадцать (!) различных алгоритмов [1]2.

Для кэширования из оперативной памяти системных плат отдается порядка одной восьмой (эта память зеркалируется). Например, из восьми серверов с оперативной памятью по 8 Гбайт будет образован виртуальный сервер с памятью емкостью 56 Гбайт, а по 1 Гбайт памяти на каждой плате будет задействовано для кэширования (в эту часть памяти размещается также само программное обеспечение vSMP Foundation, которое занимает порядка 250 Мбайт). Емкость зеркалируемой памяти может настраиваться.

Очевидная область применения vSMP – для задач с интенсивными вычислениями. vSMP Foundation позволяет объединить в один сервер до 32 процессоров (до 128 процессорных ядер) с суммарной производительностью 1,5 TFLOPS и выше и с памятью емкостью до 1 Тбайт. Ясно, что при этом должно подразумеваться в основном последовательное обращение в память. В противном случае будут важны задержки по обращению к оперативной памяти, а они при использовании vSMP будут, очевидно, велики.

Однако разработчики предлагают и еще один оригинальный способ применения vSMP – для приложений, где требуется большой объем памяти, но не обязательно предельно возможные процессорные ресурсы. В этом случае некоторые из серверов стандартной архитектуры могут иметь процессоры с относительно небольшой производительностью, и такие процессоры будут «не видны» в объединенном SMP-сервере и не будут использоваться в расчетах. Зато оперативная память этих серверов (системных плат) будет вносить свой вклад в общую память виртуального SMP-сервера. Имеется специальная опция программного обеспечения vSMP Foundation, позволяющая расширить масштабирование оперативной памяти объединенного SMP-сервера до 4 Тбайт.

Кроме обеспечения когерентности памяти, данное программное обеспечение агрегирует ресурсы ввода/вывода всех системных плат, так что средства ввода/вывода объединяются в общий пул (с унифицированной иерархией PCI) и разделяются всем образуемым виртуальным SMP-сервером [2, 3]. Аналогично описанному выше подходу с масштабированием памяти без задействования медленных процессоров, можно осуществлять масштабирование ресурсов ввода/вывода, также не используя такие процессоры для расчетов.

Таким образом, vSMP Foundation обеспечивает масштабирование всех основных ресурсов серверов стандартной архитектуры, входящих в состав виртуального SMP-сервера.

В марте 2009 года ScaleMP анонсировала программное обеспечение vSMP Foundation версии 2.0, которое содержит целый ряд новых интересных возможностей.

  • Добавлены средства, повышающие отказоустойчивость объединенного SMP-сервера. Они базируются на применении избыточных коммутаторов Infiniband и позволяют сохранить работоспособность в ситуациях со сбоем отдельных каналов и коммутаторов (зеркалирование системных плат было доступно и ранее).
  • Добавлены средства парционирования (разбиения на логические разделы) объединенного виртуального сервера – подобно тому, как это делается в «настоящих» больших SMP-серверах. Эти разделы изолированы друг от друга и позволяют работать в разных разделах с разными ОС. Максимальное число разделов равно восьми.
  • Обеспечивается подключение объединенного сервера к сетям хранения благодаря поддержке адаптеров Fibre Channel (HBA) Emulex LightPulse. Всего в виртуальной системе может быть до 32 адаптеров.
  • Появились средства удаленного управления vSMP Foundation через глобальную сеть.
  • Поставляются усовершенствованные средства, позволяющие осушествлять профилирование производительности.
  • Имеется поддержка работы с многоядерными процессорами Intel с микроархитектурой Nehalem (до 128 ядер).

Практическая реализация

Виртуальные SMP-серверы, базирующиеся на vSMP Foundation, могут содержать от двух до 16 плат стандартной архитектуры, один-четыре процессора (одно-восемь ядер) на плату, от 4 до 128 Гбайт памяти на плату. Всего – до 64 процессоров, до 128 ядер, до 4 Тбайт оперативной памяти. Возможны отказоустойчивые конфигурации (от двух плат и более).

Используются адаптеры Infiniband от Mellanox: HCA Infinihost/ConnectX, допустимы и современные варианты DDR/QDR [4]. Поскольку в SMP-сервер возможно объединение и серверов-лезвий, могут применяться соответствующие специализированные Infiniband-платы для серверов-лезвий Dell, IBM и Supermicro, a также Intel и специализированные коммутаторы для серверов-лезвий Dell, IBM и Supermicro, в том числе производства Сisco.

В «списке совместимости» устройств ввода/вывода можно найти адаптеры PCIe для SAS, SATA, Fibre Channel, RAID-адаптеры компании LSI. Но наиболее интересно, конечно, из каких серверов стандартной архитектуры можно собрать большой SMP-сервер, используя vSMP Foundation.

Для работы с vSMP минимальные изменения в ядрах Linux все-таки нужны. Для generic-ядер поддержка vSMP имеется уже давно, начиная с версии 2.6.11. ScaleMP предлагает необходимые для работы с vSMP ядра для дистрибутивов RHEL4-5, SLES10, Fedora Core4-7, OpenSuSE 10. Описанное относится к случаям, когда объединение в большой виртуальный SMP-сервер производится собственными силами. Соответствующие поставляемые ScaleMP cредства именуются при этом vSMP Foundation Standalone. Минимальная стоимость vSMP Foundation составляет всего 2750 долл.

В ScaleMP полагают, что востребованным может оказаться создание виртуальных SMP-серверов c четырьмя процессорными разъемами из двух более дешевых двухпроцессорных. В этом случае не требуется коммутатор Infiniband, а цена объединенного сервера [1] опустится ниже отметки 10 тыс. долл.3

Готовые компьютеры, использующие vSMP, предлагаются на рынке целым рядом фирм. Возможно, наиболее популярным из них стал VX Fusion-1200 компании VXtech, который продается и некоторыми другими фирмами. Он включает от восьми до 32 четырехъядерных процессоров Xeon, изготовленных по 45-нанометровой технологии, память емкостью до
512 Гбайт, а его производительность может превышать 1,5 TFLOPS.

В России компания «Т-Платформы», известная своими достижениями на отечественном рынке HPC, уже поставляет серверы T-Edge SMP c архитектурой vSMP. Они имеют близкие характеристики с VX Fusion и базируются на Xeon 5300. В новой модификации этих серверов применяется Xeon 5400 (до 64 процессоров), а емкость памяти может достигать 2 Тбайт. В качестве межсоединения в T-Edge SMP применяется Infiniband (в DDR-варианте).

Недавно компания Cray объявила о планах поставки своих «настольных суперкомпьютеров» CX1, работающих с Windows HPC Server 2008, которые с помощью vSMP будут преобразованы в «суперкомпьютерную рабочую станцию».

Производительность

Однако за возможность дешевым способом построить большой SMP-сервер из дешевых серверов стандартной архитектуры приходится платить. Во-первых, несколько уменьшается суммарная емкость оперативной памяти. Но главный вопрос – на сколько уменьшается производительность за счет программной реализации части аппаратуры больших SMP-серверов. В Internet доступно много различных данных о производительности vSMP. Большинство этих данных демонстрирует высокую производительность (и хорошее масштабирование с числом процессоров) vSMP относительно SMP-серверов или кластеров, использующих процессоры, отличные от применявшихся в vSMP [6, 7].

Среди доступных результатов – сравнительные данные по SPEC{int,fp}_base_2006 для vSMP и «настоящих» серверов. При использовании в Fusion-1200 процессоров Xeon 5345 (по два на плату) в тестах SPECint_base_rate_2000 и SPECfp_base_rate_2000 достигнуто хорошее масштабирование при переходе от 8 к 128 ядрам: от 128 к 1623 и от 93 к 1097 для вариантов тестов целочисленного и с плавающей запятой соответственно.

Большое число результатов имеется для известных HPC-приложений Abaqus, LS-DYNA, STAR-CD, Fluent, для задач моделирования месторождений нефти и газа (Schlumberger Eclipse), для молекулярной динамики (Amber, NAMD, GROMACS), для квантовохимических комплексов программ MOLPRO (методы MRCI, CCSD, MP2, в т.ч. в прямом варианте), Jaguar (DFT/B3LYP, LMP2) и др. [6, 7].

Важно, что приводимые квантовохимические тесты охватывают расчеты различными методами; это дает широкий спектр различных типов рабочей нагрузки, отличающихся требованиями к аппаратуре.
В таблице 1 представлены времена расчетов для vSMP-cистемы Fusion-1200 c 12 двухъядерными процессорами Xeon 5160/3 ГГц для программы Jaguar.

Таблица 1. Времена расчетов (в секундах) по программе Jaguar, молекула холестерола

Видно, что эффективность распараллеливания заметно падает при переходе от восьми к 16 ядрам. Для метода DFT это обычно не характерно, однако автор не располагает данными о деталях распараллеливания конкретно в Jaguar.

На распараллеливание задач молекулярной динамики влияют величины задержки межсоединения, которые в vSMP должны быть велики. В [6] уменьшение эффективности распараллеливания для AMBER и NAMD наблюдается при переходе к 16 ядрам.

В [6] имеются и прямые сопоставимые данные для Fusion-1200 с Infiniband-кластером HP XC3000, причем все серверы используют процессоры Xeon 5160 (Woodcrest) с тактовой частотой 3 ГГц. Для vSMP на 12 процессорах при этом достигнуты показатели SPECint_base_rate2000 и SPECfp_base_rate2000, равные 584 и 411 соответственно. В таблице 2 приведены данные тестов по программе ABAQUS для задач структурной механики для vSMP по сравнению с кластером, который должен иметь преимущества за счет более быстрого межсоединения.

Видно, что вплоть до восьми ядер система vSMP по производительности близка к кластеру, а на 16 ядрах кластер оказывается в полтора раза быстрее. В новых версиях vSMP Foundation производительность может быть выше. Хорошее масштабирование и большая пропускная способность оперативной памяти достигаются в vSMP на тестах STREAM. Однако полученные ScaleMP результаты, например для Sun x4600 M2, занижены по сравнению с некоторыми другими литературными данными для серверов на базе Opteron, и интерпретация этих результатов требует отдельного обсуждения.

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

Литература

  1. Timothy Morgan, ScaleMP Makes Big SMPs Out of Little Ones. The Windows Observer, Aprile 16, 2008, www.itjungle.com/two/two041608-story09.html.
  2. Shai Fultheim, ScaleMP. Powering high-end x86 systems. September 2008, www.hpcuserforum.com/presentations/Tucson/ScaleMP – 12.3 – IDC – v3.pdf.
  3. The Versatile SMP (vSMP) Architecture and Solutions based on vSMP Foundation. Rev. 1.3, ScaleMP, 2008.
  4. Кузьминский М.Б., Infiniband: аппаратные средства и поддержка в Linux // Открытые системы. – 2008. – №7. – С. 14-19.
  5. Кузьминский М.Б., Практика Infiniband. // Открытые системы. – 2005. – №11. – С.12–19.
  6. Shai Fultheim, Powering high-end x86 systems. Fusion-1200 System. ScaleMP, VXtech, October 2007.
  7. Fusion-1200. Scalable x86 SMP System. Rev. 2.4, VXtech, 2008.

Михаил Кузьминский (kus@free.net) – старший научный сотрудник учреждения РАН «Институт органической химии им. Н.Д. Зелинского».


Таблица 2. Времена расчетов, Abaqus/Explicit 6.6-E2