Уже в начале этого века NUMA станет определяющей технологией для Unix- и NT-серверов
Конкуренция на рынке высокопроизводительных компьютерных систем не ослабевает. Среди крупнейших событий, произошедших за последние годы прошлого века на рынке, следует отметить, например, приобретение в 1996 г. корпорацией Silicon Graphics (www.sgi.com) компании Cray Research, производителя знаменитых векторно-конвейерных суперкомпьютеров Cray 1/2/X-MP, а также серий C90 и T3D, предшественников нынешних Cray T90/J90 и T3E. (Правда, в прошлом году SGI продала торговую марку Cray и часть связанного с ней бизнеса.) Другим примером может служить слияние в 1997 г. корпорации Hewlett-Packard (www.hp.com) и компании Convex Computer, в результате которого в семейство серверов HP 9000 были включены SMP- и NUMA-системы Convex SPP на базе процессоров PA-RISC, предшественники нынешних машин V-класса. Не менее значимой была сделка, совершенная в 1998 г. Compaq Computer (www.compaq.com) по покупке корпорации Digital Equipment Corporation (DEC) вместе с известной линией серверов AlphaServer.
В июле 1999 г. о своем слиянии объявили крупнейшие компьютерные корпорации IBM (www.ibm.com) и Sequent Computer Systems (www.sequent.com). Общая сумма сделки составляла примерно 810 млн. долл. После решения всех финансовых вопросов Sequent фактически стала подразделением IBM. К тому времени эта корпорация была поставщиком масштабируемых NUMA-серверов, включающих до 64 процессоров Intel и работающих под управлением ОС DYNIX/ptx. Данные компьютеры в основном были предназначены для коммерческих систем онлайновой обработки транзакций и поддержки СУБД. По завершении слияния маркетинг и продажи этих серверов стали осуществляться через соответствующую всемирную инфраструктуру IBM.
Сервер IBM NUMA-Q 2000
Первоначально аналитики критиковали IBM за то, что она добавляет еще одну версию Unix к своим продуктам, среди которых уже есть ОС AIX. В момент покупки корпорация особо не распространялась о своих планах в отношении NUMA-Q, сообщив только о намерении интегрировать архитектуру, созданную в Sequent, в другие свои серверы. Как заявил Роберт Стефенсон (Robert Stephenson), вице-президент IBM и руководитель подразделения IBM Server Group: “NUMA станет определяющей технологией для Unix- и NT-серверов уже в начале XXI века. Это элегантное решение совмещает в себе высокую масштабируемость и легкость управления”. Действительно, серверы Sequent позволяют NT и Unix работать на одной системе: часть процессоров может быть выделена под задачи Windows NT, часть - под процессы Unix, при этом возможно разделение данных между задачами разных ОС. Считается, что с компанией Sequent связан один из прорывов в компьютерных технологиях.
На пути к NUMA
В 1983 г. в Портленде (шт. Орегон) восемнадцатью бывшими сотрудниками компании Intel под руководством Кейси Пауэлла была организована компания Sequel. Она ориентировалась на создание вычислительных архитектур для обслуживания информационных технологий в самых трудоемких сферах работы с деловой информацией - оперативной обработке транзакций, системах поддержки принятия решений и деловых коммуникациях. В начале 80-х наиболее трудные задачи решались на мэйнфреймах, а эта компания поставила своей целью построение такой вычислительной платформы, которая существенно превзойдет возможности однопроцессорных систем, но при этом будет базироваться на самых распространенных и недорогих процессорах от Intel.
Sequel, переименованная в 1987 г. в Sequent Computer Systems, реализовала первую SMP-версию ОС Unix, обладающую независимой от процессора архитектурой, а в мае того же года анонсировала первую компьютерную систему Symmetry (Unix SMP), масштабируемую до 30 процессоров Intel. Первая ОС SMP Unix компании Sequent называлась DYNIX и была выпущена в развитие BSD 4.2. В 1990 г. Sequent выпустила для своих машин на основе Unix System V новую версию ОС - DYNIX/ptx. На требование повысить надежность систем компания Sequent ответила созданием в 1992 г. кластеров для Unix. Кроме того,она небезуспешно решала одну из главных проблем архитектуры SMP - преодоление барьера масштабируемости в 30 процессоров, подняв с помощью архитектуры NUMA планку почти на порядок.
Как известно, NUMA (Non-Uniform Memory Access) - это архитектура, используемая в многопроцессорных системах, где время доступа зависит от географического расположения памяти. Процессор может работать с собственной локальной памятью гораздо быстрее, нежели с нелокальной, которая в свою очередь является локальной для другого процессора или разделяется между несколькими устройствами. Многопроцессорная архитектура SMP (Symmetric Multi Processing) позволяет несколько кристаллов связать в одну систему, объединив их вычислительную мощность. Ключевым понятием многопроцессорных архитектур является узел - вычислительная система, состоящая из одного или нескольких процессоров, имеющая оперативную память и систему ввода-вывода. Узел характеризуется тем, что на нем работает единственная копия ОС. Обычно SMP-узел содержит не менее двух одинаковых процессоров, используемых равноправно. Процессоры SMP взаимодействуют друг с другом с помощью так называемой шины межсоединения и используют общий пул памяти. При увеличении в сервере числа процессоров возрастает и трафик на данной шине. При значительном росте этого числа пропускная способность системы существенно снижается.
NUMA, как и SMP, позволяет получить объединенную вычислительную мощность большого количества процессоров, каждый из которых обращается к общему пулу памяти. Однако в этом случае процессоры организованы в небольшие группы, узлы, с помощью которых они могут связываться между собой. Например, 16-процессорный сервер может содержать четыре узла по четыре процессора. Каждый узел имеет собственный пул памяти.
По сравнению с SMP архитектура NUMA уменьшает нагрузку на шину, поскольку процессоры в узлах взаимодействуют друг с другом и со своей локальной оперативной памятью через отдельные шины. Кроме того, они могут обращаться к пулам памяти других узлов, хотя время доступа зависит от того, насколько эти узлы удалены один от другого. Поэтому такую архитектуру часто называют архитектурой с распределенной разделяемой памятью. В NUMA может быть задействовано 256 и даже 512 процессоров.
Проблема когерентности
Несколько процессоров могут разделять доступ к одной и той же памяти, обеспечивая широкую полосу пропускания за счет использования большой многоуровневой кэш-памяти. Поскольку они работают с данными, хранящимися в единой памяти узла, в подобной архитектуре обязательно должен быть механизм поддержки когерентности данных. Это понятие означает, что в любой момент времени для каждого элемента данных во всей памяти узла существует только одно его значение, хотя одновременно могут существовать несколько копий этого элемента, расположенные в разных видах памяти и обрабатываемые разными процессорами. Механизм когерентности должен следить за тем, чтобы операции с одним и тем же элементом данных выполнялись на разных процессорах последовательно, а устаревшие копии удалялись. В современных SMP-архитектурах когерентность реализуется аппаратными средствами.
Существует два класса протоколов когерентности кэш-памяти:
- на основе справочника (directory based). Информация о состоянии блока физической памяти содержится только в одном месте, называемом справочником (физически справочник может быть распределен по узлам системы);
- протоколы наблюдения (snooping). Каждая кэш-память, которая содержит копию данных некоторого блока физической памяти, имеет также соответствующую копию служебной информации о ее состоянии. Централизованная система записей отсутствует. Обычно кэш-память расположена на общей (разделяемой) шине и все ее контроллеры наблюдают за шиной (просматривают ее) и отслеживают, не содержат ли они копию соответствующего блока.
В многопроцессорных системах с централизованной общей памятью протоколы наблюдения приобрели популярность, поскольку для опроса состояния кэш-памяти они могут использовать заранее существующее физическое соединение (шину памяти). Кэширование на основе каталога удваивает пропускную способность шины, но требует более сложных аппаратных средств и вызывает дополнительные задержки при пересылке данных между памятью и обеими шинами.
Разновидностью архитектуры NUMA является кэш-когерентный доступ к неоднородной памяти cc-NUMA (cache coherent NUMA). В этом случае все процессоры объединены в один узел, причем первый уровень иерархии памяти образует их кэш-память, а cc-NUMA поддерживает когерентность внутри узла аппаратно. В системах cc-NUMA распределенная память представляется единым адресным пространством. Не происходит никакого копирования страниц или данных. Нет программной передачи сообщений для синхронизации доступа. Есть просто единый массив памяти (хотя физически состоящий из отдельных частей). Аппаратная когерентность кэш-памяти означает, что не требуется никакого программного обеспечения для поддержки актуальности множества копий данных. Все это выполняется на аппаратном уровне так же, как в любом SMP-узле, с одним экземпляром ОС и множеством процессоров. В свою очередь NUMA-Q - это по сути реализация архитектуры cc-NUMA компанией Sequent.
Элементарным блоком платформы NUMA-Q служит квод (quad), в котором объединены четыре процессора, блок разделяемой памяти и шина PCI с семью слотами. Несколько кводов могут быть соединены для формирования более крупного одиночного SMP-узла с аппаратно реализованной кэш-когерентностью. Кэш-когерентное соединение, устанавливаемое между шинами, называется IQ-Link. Оно практически прозрачно для программ подобно обычной кэш-памяти. В традиционном смысле память в каждом кводе не является локальной. Скорее это одна треть адресного пространства физической памяти, имеющая собственный адресный диапазон. Адресная карта распределяется по памяти равномерно, при этом каждый квод содержит смежную часть адресного пространства. Например, если требуемый адрес находится за пределами диапазона локальной памяти квода, поиск будет распространен на кэш-память IQ-Link, которая называется удаленной. Доступ к ней осуществляется с той же скоростью, что и к локальной памяти квода. Если и в кэш-памяти IQ-Link данные не найдены, то для их получения отсылается запрос на шину IQ-Link. После того как требуемое значение загружено из другого квода, оно сохраняется в удаленной кэш-памяти IQ-Link запрашивающего квода.
Решения IBM
Концепция NUMA-Q включает в себя системную архитектуру, эволюционировавшую из традиционной SMP, аппаратное обеспечение высокой доступности, программные средства и специализированные решения для различных областей деятельности. Годы успешной работы систем NUMA-Q на крупнейших предприятиях мира доказали, что эта архитектура является одной из лучших платформ для создания центров обработки данных. Среди пользователей систем NUMA-Q такие компании, как Boeing Company, Burlington Coat Factory, eToys, Hollywood Entertainment, Carlson Hospitality и др.
С точки зрения аппаратного обеспечения концепция NUMA-Q сегодня представлена системами NUMA-Q 2000 и NUMACenter. Напомним, что в соответствии с программой “ребрэндинга”, которую корпорация IBM объявила в прошлом году, серверы NUMA-Q теперь относятся к линейке eServer xSeries. Так, IBM NUMA-Q 2000 Model E410 - это уже третье поколение
NUMA-Q, впервые представленной в 1996 г. Система включает до 16 кводов, или 64 процессоров Pentium III Xeon 700 МГц с размером кэш-памяти 1 или 2 Мб (предыдущая модель E330 работала с процессорами 550 МГц). Согласно данным IBM, модель E410 примерно на 50% дешевле, чем сравнимые по мощности системы Sun Microsystems и Hewlett-Packard, а общая стоимость пользования (TCO) в течение трех лет у нее меньше почти на 40%. Инновацией IBM является реализация IQ-Link на базе стандартного интерфейса IEEE SCI (Scalable Coherent Interface). Вообще говоря, в модели E410 можно использовать как IQ-Link, так и недорогое решение DL2, обеспечивающее связь только двух кводов (8 процессоров). В обоих случаях поддерживается до 8 Гб памяти на квод.
С помощью программного обеспечения кластеризации корпорации IBM можно связать друг с другом до четырех 64-процессорных серверов. Максимальная общая память при этом составит 256 Гб, и, как утверждают представители корпорации, производительность такой системы при увеличении числа узлов будет возрастать практически линейно. Подобного уровня масштабируемости и готовности удалось достичь за счет применения многоканальной схемы ввода-вывода и сети хранения на основе межсоединений Fibre Channel, построенной по принципу коммутирующей матрицы. Вместе эти технологии образуют платформу, в которой отсутствует единая точка сбоя. Производительность дополнительно повышается за счет возможности прямого многопортового подключения к IBM Enterprise Storage Server (Shark), гарантирующего равномерное распределение операций ввода-вывода по всем имеющимся портам.
IBM NUMACenter - это решение для работы с коммерческими приложениями в информационной среде предприятия. Интегрирующий в себе современные технологические промышленные стандарты, NUMACenter может стать базой для электронного бизнеса. Эта мощная система легко адаптируется к смене ОС, компьютерных узлов, разнообразным требованиям клиентов, поддерживает распределение ресурсов и технологии Web. Она работает под управлением ОС DYNIX/ptx и Microsoft Windows NT (или Windows 2000). Отметим, что ОС DYNIX/ptx является частью проекта Monterey и поддерживает все технологии, в нем реализованные, такие, например, как 64-разрядные вычисления на платформе процессоров Intel с архитектурой IA-64.
Дальнейшее развитие архитектуры NUMA связано с работами по созданию своего рода вычислительных суперфабрик, практически не имеющих ограничений по масштабированию. В частности, разработка сервера под кодовым названием Regata позволит объединить до 256 процессоров на базе архитектур IA-32, IA-64 и Power4.