Текст книги "Основы AS/400"
Автор книги: Фрэнк Солтис
Жанр:
ОС и Сети
сообщить о нарушении
Текущая страница: 39 (всего у книги 41 страниц)
CC-NUMA и COMA
Для AS/400 возможны как минимум две реализации NUMA. Первая – неоднородный доступ к памяти с когерентным кэшем CC-NUMA (cache-coherent non-uniform memory access), вторая – архитектура памяти только с кэшем COMA (cache-only memory architecture). Конкретные детали реализации и оценки производительности этих архитектур широко отражены в компьютерной прессе. С начала 90-х годов разновидности этих архитектур исследуются в нескольких университетах и лабораториях. Некоторые компьютерные компании, такие как SGI (Silicon Graphics, Inc.), Sequent и Convex уже поставляют на рынок серверы CC-NUMA с большими возможностями масштабирования.
Итак, давайте кратко, не слишком вдаваясь в технические подробности, поговорим о том, какие детали этих архитектур Вы можете ожидать в будущих конфигурациях AS/400.
Обе схемы используют протокол когерентности кэшей на основе справочников, что необходимо для поддержки «вроде бы» общей памяти, хотя основная память и распределена между узлами. Проще говоря, в каждом узле имеется справочник, показывающий расположение всех страниц в глобальной адресуемой основной памяти (как локальной, так и удаленной).
Это отличается от шинной когерентности со слежением (snoopy bus-based coherence), используемой для кэшей второго уровня в узле SMP, описанной в главе 2. Одни и те же данные из страницы общей памяти могут одновременно находиться в нескольких кэшах процессоров узла SMP. При изменении данных в кэше одним процессором должны быть обновлены и копии в кэшах других процессоров. Под когерентностью кэшей понимают актуальность всех копий. При использовании протокола слежения справочник кэша каждого процессора содержит информацию только о тех страницах, которые находятся в его собственном кэше. При всяком изменении процессором данных в кэше об этом сообщается по шине слежения всем остальным процессорным кэшам, с целью обновить те же данные. Таким образом, каждый кэш следит за изменениями во всех других кэшах и обеспечивается когерентность кэшей. Поддержание в кэшах процессоров множественных копий гарантирует одинаковое время доступа ко всем данным (поэтому данная архитектура и называется UMA).
Но необходимость широковещательного оповещения об изменениях начинает мешать, если число кэшей растет. Протокол когерентности кэшей на основе справочников устраняет необходимость широковещательных оповещений об изменениях, так как справочники содержат информацию только о том, в каком узле находятся данные, но не о самих данных. Каждый узел отслеживает только свои собственные локальные данные, совместно используемые данные не дублируются. Обращение к данным локального узла выполняется быстрее, чем к данным удаленного узла. Вспомните, что узлы имеют общее адресное пространство, а не память. Каждому узлу кластера выделяется часть общего адресного пространства. Расширение адресного пространства и обновление справочников позволяет добавлять в кластер новые узлы.
Каталоги, о которых мы говорим, содержат только информацию о данных в памяти различных узлов, данные на диске вне этой структуры. Проще говоря, аппаратура следит за тем, что происходит в памяти, тогда как ОС – за тем, что находится на дисках.
Ранние реализации NUMA с когерентностью кэшей на основе справочников имели большую разницу во времени обработки промахов удаленных и локальных кэшей. Когда процессор в узле определяет промах кэша L2, время получения данных из памяти удаленного узла может быть значительно больше времени получения данных из памяти узла, в котором находится процессор. Например, на ранней машине Sequent промахи удаленных кэшей обрабатывались в 10 раз медленнее локальных. Чтобы добиться от такой архитектуры достаточной производительности, требуется поддерживать приемлемо низкое число удаленных обращений путем тщательного распределения данных приложений по узлам. Обычно число таких обращений пытаются свести к 10 процентам. Таким образом, переход от архитектуры SMP к распределенному кластеру может потребовать изменений в прикладных программах и перераспределению данных приложений.
В последних системах NUMA преодолена проблема множества удаленных обращений, присущих ранним системам, так что необходимость в изменении приложений и перераспределении данных отпала. CC-NUMA и COMA используют для этого некоторое дополнительное оборудование. На каждом узле расположено по одному или несколько процессоров, а также собственные кэши, подключенные через подсистемы памяти к локальной памяти узла (это в точности соответствует описанной ранее конфигурации SMP). Теперь представьте себе, что к подсистеме памяти и к сети межузловых соединений подключено отдельно устройство удаленного доступа RAD
(remote access device). Применительно к AS/400 я называю эту дополнительную аппаратуру RAD, однако, общепринятого названия не существует. Для некоторых систем ее именуют контроллером когерентности, для других – хабом. Независимо от названия, ее назначение – реализация протокола когерентности кэшей на основе справочника между подсистемой памяти узла и сетью межузловых соединений.
Подключения RAD для AS/400 будут очень похожи на подсистемы ввода-вывода, представленные на рисунке 10.1, но при этом с одной стороны к RAD присоединены шины 6хх, а с другой – порты SAN.
В машине CC-NUMA RAD содержит отдельный кэш, в котором находятся только удаленные данные. При адресации процессором данных, которых нет в его собственном кэше, запрошенные данные считываются из памяти узла (если адрес локальный), или из кэша RAD (если адрес удаленный). Обращения к удаленным данным, которые не могут быть обслужены кэшем RAD, должны быть посланы по межузловой сети к «домашнему» узлу соответствующей страницы памяти, чтобы получить нужный блок данных из памяти удаленного узла, а также для поддержания когерентности.
Кэш RAD повышает производительность машины архитектуры CC-NUMA, сокращая число удаленных промахов кэша, которые должны обрабатываться удаленным узлом. Очевидно, что первое обращение к удаленной странице памяти будет связано с большим временем ожидания выборки данных из памяти удаленного узла и помещения их в кэш RAD. Последующие обращения к той же странице любым процессором узла будут отрабатываться быстрее, так как не надо пересылать данные по межузловой сети. В результате, соотношение времени обработки промахов удаленных и локальных кэшей сокращено в современных системах от 2:1 до 3:1. Расходы на удаленные обращения достаточно невелики, так что большинство приложений при переносе их с SMP на кластер не требуют изменений. В связи с этим, CC-NUMA часто называют системами масштабируемого SMP.
Пример системы CC-NUMA – SGI/Cray Origin 2000. Origin 2000 может содержать до 64 узлов, соединенных масштабируемой сетью CrayLink. В каждом узле один или два процессора, до 4 ГБ памяти и соединения с подсистемой ввода-вывода. Максимальная конфигурация – 128 процессоров с общим объемом памяти в 256 ГБ. Пока в Origin 2000 устанавливаются процессоры MIPS R10000, работающие на частоте 195 МГц и имеющие кэши второго уровня объемом 4МБ.
Два процессора в одном узле работают не так, как в конфигурации SMP, из-за того, что между кэшами L2 нет протокола слежения. Вместо этого, они действуют как два отдельных процессора, использующие общие линии связи с памятью узла и вводом-выводом. Процессоры узла соединены с микросхемой хаба, которая, в свою очередь, подключена к памяти узла, подсистеме ввода-вывода и межузловой сети CrayLink. Микросхема хаба передает локальные обращения непосредственно памяти узла. Отдельная память в хабе предназначена для кэширования удаленных данных. Если запрос на удаленные данные не может быть удовлетворен памятью хаба, то выполняется обращение по межузловой сети к удаленному узлу. Интересно также то, что для быстрого переключения потоков информации внутри хаба есть перекрестный переключатель.
Кроме всего прочего, Cray Origin 2000 (конфигурации, насчитывающие более 64 процессоров, обозначены как системы Cray; меньшие модели – как SGI) – основа проекта ASCI Blue Mountain, о котором мы говорили в главе 2. Возможно, Вы помните, что этот проект состоит из двух частей. Работы ведутся поэтапно в Национальной лаборатории Лос-Аламоса, с задачей получить в конце 1998 года конфигурацию с 3072 процессорами, которая сможет достичь 4 терафлоп. Параллельно в Ливерморской национальной лаборатории будет развернута система IBM ASCI Blue Pacific, которая должна достичь аналогичного уровня производительности с помощью 512 8-каналь-ных узлов SMP. Успех или неудача этих двух систем, несомненно, многое скажут о том, каковы перспективы машин с распределенной общей памятью.
Недавно было проведено несколько исследований, направленных на улучшение производительности систем CC-NUMA и дальнейшее сокращение соотношения времени обработки промахов локальных и удаленных кэшей. Выяснилось, что в этом плане много обещает конфигурация СОМА. Эта система использует тот же самый протокол когерентности кэшей на основе справочника, что и CC-NUMA, но в СОМА часть основной памяти узла выделяется для работы в качестве большого кэша удаленных данных. Отдельный кэш удаленных данных в RAD СОМА устранен; вместо этого удаленные данные размещаются в иерархии кэшей процессора и основной памяти узла.
Первый проект СОМА в начале 90-х годов, позволял осуществлять перенос данных в основную память узла порциями, равными по размеру блоку кэша (такой подход аналогичен хранению блоков кэша в отдельном удаленном кэше CC-NUMA). Проблема этого подхода в том, что размеры блоков кэша меньше страниц памяти, поэтому для управления вторым размером страниц основной памяти в узле нужна дополнительная аппаратура, по сути, дублирующая описанную в главе 8 аппаратуру виртуальной памяти. Последние реализации СОМА, названные S-COMA (simple-COMA), хранят удаленные данные в основной памяти узла только блоками, равными размеру страницы. Благодаря этому, доступ как к удаленным, так и к локальным данным может осуществляться имеющейся аппаратурой виртуальной памяти. Конечно, в узле SMP по-прежнему нужна аппаратура, поддерживающая протокол когерентности кэша на основе справочников для удаленных данных, вместо протокола слежения для локальных данных.
S-СОМА потенциально превосходит по производительности CC-NUMA, так как в состоянии задействовать для хранения удаленных данных большую память узла. Эта архитектура может динамически настраивать размер памяти для удаленных данных в соответствии с потребностями приложения. С другой стороны, S-COMA требует пересылки по сети межузловых соединений блоков данных большего размера в случае удаленного промаха на узле. В течение следующих нескольких лет мы увидим, вытеснит ли СОМА или какой-либо ее вариант используемую ныне архитектуру CC-
NUMA.
Будущее ввода-вывода AS/400
Высокопроизводительные процессоры для будущих систем AS/400 ничего не дадут, если им не поставлять достаточно данных для полноценной загруженности. Давайте кратко рассмотрим будущее подсистемы ввода-вывода AS/400. Хотя этому вопроса уже уделено большое внимание в предыдущих главах, я постараюсь не повторяться.
Будущие технологии подсистем ввода-вывода
В главе 10 мы говорили о том, что архитектура подсистемы ввода-вывода в ходе выпуска версии 4 будет перестраиваться. Вероятно, это будет продолжаться и после 2001 года. В намерения IBM входит создание структуры ввода-вывода, в которую можно будет легко внедрять самые современные технологии. Внедрение шин и адаптеров PCI следует рассматривать как шаг в этом направлении, а не как окончательную цель.
Для подключения устройств к AS/400 по-прежнему будут использоваться различные интерфейсы. Большая часть средств подключения ввода-вывода уже обсуждалась в главах 10 и 11, включая SPD, PCI, ATM, Ethernet, SCSI и SSA. При необходимости, мы можем задействовать и другие, например ANSI Fibre Channel. Используемая System Area Network (SAN) допускает применение большинства новых интерфейсов.
SAN, которая, как уже говорилось, обычно подключается как кольцо, поддерживает протокол SCIL (Scalable Coherent Interface Link) и обладает большим потенциалом пропускной способности и скорости. В главе 11 я упомянул параллельное соединение SAN с 32 волокнами, работающее на частоте 500 МГц, что обеспечивает пропускную способность 1 ГБ в секунду (при том, что половина волокон используется для избыточных линий). Возможны и более быстрые версии. Так как соединения этого типа основаны на стандарте IEEE и используются в системах и IBM, и других фирм, то в будущем возможны новые подключения.
При переходе к сетевым вычислениям соотношение быстродействия и цены высокоскоростных коммуникационных адаптеров также будет улучшаться. Прогнозируется самое широкое распространение новейших коммуникационных технологий, таких как АТМ, оптоволоконные соединения и спутниковая связь, что позволит создавать еще более распределенные приложения. Ожидаемое значительное удешевление высокопроизводительных беспроводных коммуникаций (как локальных, так и на большие расстояния) будет, в свою очередь, способствовать увеличению масштабов мобильных вычислений.
В будущем нас также ожидают более объемные подсистемы хранения данных, и SAN позволит их подключать. Скорее всего, на всех системах IBM для этого будет применяться SSA – последовательная архитектура, оптимизированная для хранилищ. Следовательно, можно ожидать появления больших массивов дисков, лент и оптических устройств, совместно используемых многими системами.
IOP современных AS/400 будут продолжать развиваться. Все новые IOP используют процессоры PowerPC. Каждый из них имеет собственную память и работает под управлением специализированной ОС реального времени. Процессоры для новых IOP будут либо стандартными представителями семейства 32-разрядных процессоров PowerPC, создаваемых в Барлингтоне, либо (мы уже говорили о такой возможности) – размещаться на той же микросхеме, что и основной процессор.
Так как ОС реального времени на сегодняшних IOP, подобно всем другим были за последние несколько лет многократно модифицированы, то на разных IOP одной AS/400 могут выполняться разные версии ОС. Самая современная версия ОС, работающая на IOP PowerPC, основана на микроядре для лучшей переносимости ПО. В будущем мы сможем использовать для IOP стандартную ОС, так как ОС все меньше и меньше управляют устройствами. Уже сегодня, благодаря технологиям PCI, IOP отвечает за интерфейс шины PCI и за выполнение некоторых высокоуровневых функций ввода-вывода ОС.
Дисковые массивы
Хотя дисковые устройства работают все быстрее, им все равно не угнаться за технологиями процессоров, ведь повысить скорость работы механических устройств гораздо сложнее. Чтобы не зависеть от прогресса самих устройств, нужно попробовать их в других конфигурациях.
Несколько производителей недавно представили технологию чередования блоков данных (data striping) между дисками массива, заявив, что это глобальный прорыв в борьбе за повышение производительности систем. Между тем, впервые подобная технология стала коммерчески доступна еще на System/38. Ранее мы говорили, что приложение System/38 или AS/400 использует несколько системных объектов. В целях повышения производительности IBM решила распределить различные объекты по нескольким дискам, обеспечив параллельный доступ к ним. Таким образом, и System/
38 и AS/400 использовали чередование блоков данных с момента своего появления на рынке.
Технология чередования эффективна, если нужно считывать или записывать несколько объектов. Но увеличить производительность доступа к одиночной записи этот прием не поможет. В этом случае лучше предпочесть разновидность этой технологии, состоящую в синхронном вращении всех дисков массива. При этом головки всех дисков всегда расположены над одной и той дорожкой, и сектор 0 каждого диска проходит под головками всех дисков одновременно. Подобная синхронизация позволяет разбивать одну запись по всем дискам массива, и таким образом повышает производительность пересылок индивидуальных записей. С точки зрения системы такой массив выглядит как один диск с одной головкой, но со скоростью передачи данных в четыре раза большей, чем у любого одиночного диска массива. Это аналогично повышению скорости вращения диска в четыре раза, что не всегда возможно физически.
Давайте попробуем представить себе все это более наглядно. Итак, существует массив из четырех синхронно вращающихся дисков. При достаточном числе контроллеров устройств и трактов данных, мы могли бы записывать части одного объекта на все диски параллельно: четверть записи – на первый диск; другую – на второй и т. д. Вся запись в целом производится на четыре диска в четыре раза быстрее, чем та же самая – на один диск. Такая же экономия времени достигается и при считывании записи.
Технология синхронизации вращения дисков использовалась на протяжении многих лет суперкомпьютерами для получения большой скорости передачи данных в систему и из нее. Ее единственный недостаток в том, что весь массив с точки зрения системы имеет только одну головку. Многолетний опыт показал, что системы AS/ 400 работают тем быстрее, чем больше дисковых головок, иначе сокращается число возможных параллельных обращений к диску, и, таким образом, общая производительность потенциально снижается. По мере дальнейшего удешевления станет возможным подключать к системе все больше дисковых массивов, и это поможет повысить общую производительность, не дожидаясь прогресса в области механики.
В главе 8 мы определили как одно из преимуществ одноуровневой памяти то, что ни прикладное ПО, ни ПО ОС над MI никогда не имеют информации о дисковых устройствах. Одной из причин сокрытия дисков было предположение о скорой замене механической технологии чем-то иным. Полупроводниковые диски (большие полупроводниковые памяти с батареями питания) могут быть одним из вариантов такой замены, но возможны и другие.
Теперь давайте перейдем к будущему некоторых программных технологий для
AS/400.
Будущие программные технологии AS/400
Как уже отмечалось, аппаратные технологии управляются законами физики, так что их будущее достаточно предсказуемо. Зная, какие работы ведутся в разных лабораториях мира, можно с достаточной долей уверенности предположить, когда изучаемые аппаратные технологии будут готовы к промышленному использованию.
Однако оценить таким же образом перспективы ПО нельзя. Программными технологиями управляют законы бизнеса, а точнее – огромные капиталовложения в ПО, сделанные в уже существующие средства разработки программ и обучение пользователей. Поэтому каких-то радикальных изменений во всех прикладных программах и средствах разработки в ближайшем будущем ждать нельзя.
Возьмем, например, современные работы по объектно-ориентированным базам данных. Компьютерная пресса регулярно сообщает о новых разработках или реализациях объектно-ориентированных баз данных в различных исследовательских центрах. Очевидно, что уже сегодня возможно создание весьма развитых объектно-ориентированных баз данных, но лишь немногие пользователи захотят и смогут отказаться от своих сегодняшних реляционных баз данных в пользу этих новшеств. Поэтому, как уже упоминалось в главе 11, в будущем вероятно размещение в реляционной базе данных объектов, доступ к которым будет осуществляться через объектную систему управления.
Мой прогноз таков: хотя в ближайшие 5-10 лет можно ожидать революционных изменений в аппаратных средствах, прогресс в ПО будет гораздо более эволюционным. Пуристы могут сказать, что нужно отвернуться от старой технологии, чтобы понять огромнейшие преимущества новой. Но, увы, пуристы редко управляют бизнесом.
Операционные системы
В предисловии я говорил, что большинство новшеств современных ОС – «хорошо забытые старые» работы 60-х годов. Такое положение вряд ли скоро изменится, независимо от пропаганды производителями революционных расширений, планируемых для очередной «новой» ОС. ПО будет развиваться медленно, и в 2001 году мы по-прежнему будем оперировать сегодняшними ОС. Некоторые из них будут расширены, другие исчезнут, но фундаментальная структура используемых ОС останется неизменной.
Рост емкости и производительности аппаратуры заставит большинство разработчиков ОС устранять ограничения, присутствующие в сегодняшних реализациях. Переписывание основной части для 64-разрядных процессоров займет разработчиков Unix на следующие несколько лет. Производители 32-разрядных ОС ПК, вероятно, до 2001 года даже не начнут заниматься полной 64-разрядной реализацией, за исключением использования 64-разрядного адреса.
Как и все, OS/400 вряд ли претерпит значительные изменения, кроме обусловленных текущими потребностями. Большая часть таких изменений будет связана с поддержкой новых функций и средств, которые мы уже обсудили. В начале 90-х IBM переписала SLIC, предоставляющий базовые функции ОС/400, чтобы воспользоваться предполагаемым ростом емкости и производительности аппаратных средств. Таким образом, у OS/400 есть прочная основа для развития в будущем.