|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Если обратиться к истории, то первой NUMA-системой была машина Butterfly, разработанная BBN в 1981 году. Первой действующей системой с архитектурой СС-NUMA стала Stanford DASH. Группа, работавшая с ней, использовала возможность изучить функционирование операционной системы SGI IRIX на 32-процессорном узле CC-NUMA в 1992 году. Сегодня Стенфордская группа развивает новую версию DASH, получившую название FLASH. Одной из задач FLASH является интеграция в единую архитектуру SMP модели с кэш-когерентной разделяемой памятью и МРР модели с программно-реализованной кэш-когерентностью. 5. Аппаратная реализация когерентности кэшейCC-NUMA - это кэш-когерентный доступ к неоднородной памяти. В системе CC-NUMA физически распределенная память объединяется, как в любой другой SMP-архитектуре, в единый массив. Не происходит никакого копирования страниц или данных между ячейками памяти. Нет никакой программно-реализованной передачи сообщений. Существует просто одна карта памяти, с частями, физически связанными медным кабелем, и очень умные (в большей степени, чем объединительная плата) аппаратные средства. Аппаратно-реализованная кэш-когерентность означает, что не требуется какого-либо программного обеспечения для сохранения множества копий обновленных данных или для передачи их между множеством экземпляров ОС и приложений. Со всем этим справляется аппаратный уровень точно так же, как в любом SMP-узле, с одной копией ОС и несколькими процессорами. COMA или Cache-Only Memory Architecture - это архитектура, конкурирующая c СС-NUMA, спроектированная с аналогичными целями, но имеющая другую реализацию. Вместо того чтобы распределять части памяти и поддерживать их когерентность, как это делается в CC-NUMA, COMA-узел не имеет памяти, а только большие кэши (называемые attraction memories) в каждом обрабатывающем блоке - кводе (quad). Для значений данных нет "домашних" ячеек памяти, в узле работает одна общая для всех кводов копия ОС, а когерентность в узле поддерживается специальным аппаратным соединением. Аппаратные средства COMA способны компенсировать недостатки алгоритмов ОС по распределению памяти и диспетчеризации. Однако для COMA требуется внесение изменений в подсистему виртуальной памяти ОС и заказные платы памяти дополнительно к плате кэш-когерентного соединения. 6. NUMA-Q - реализация компанией Sequent архитектуры CC-NUMAЭлементарным блоком платформы NUMA-Q служит квод (NUMA-Q означает CC-NUMA с кводами), в котором объединены четыре процессора, блок разделяемой памяти и шина PCI с семью слотами. Несколько кводов могут быть соединены связями с аппаратно-реализованной кэш-когерентностью для формирования более крупного одиночного SMP-узла таким же образом, как процессорные платы добавляются к объединительной плате обычного SMP-узла с большой шиной. Sequent рассматривает архитектуру NUMA-Q, как магистральную линию развития в будущем больших SMP-узлов, которая позволит преодолеть присущее SMP-платформам на основе общей шины ограничение в 32 процессора на узел и повысить возможности масштабирования систем SMP на порядок. Наиболее известную альтернативу традиционному подходу представляет аппаратно-реализованная кэш-когерентность на основе каталога. Специалисты Sequent пришли к заключению, что наилучшим вариантом является архитектура с кэш-когерентностью и неоднородной памятью, базирующейся на стандартизованном подходе SCI. Квод NUMA-Q может быть единственным обрабатывающим элементом в системе. В этом случае сам квод является ее узлом. Если же система содержит несколько кводов, она все еще будет одноузловой, в ней со всеми кводами станет работать только одна копия ОС, и здесь квод уже не узел. Кэш-когерентное соединение устанавливается между кводами и называется IQ-Link - это полностью аппаратное соединение, которое практически прозрачно для программ подобно обычному кэшу. Различие между SMP-узлом с объединительной платой и NUMA-Q-узлом с множеством кводов заключается в том, что соединение в системе NUMA-Q снимает ограничения одной объединительной платы и позволяет строить очень большие узлы с SMP подобной архитектурой. Резкое повышение масштабируемости достигается за счет того, что 12 процессорных блоков не устанавливаются на единую общую плату, а объединяются в группы - кводы, и между этими группами и памятью вставляются медные перемычки. IQ-Link поддерживает кэш-когерентность так же, как это делает объединительная плата SMP. Системы с большими шинами проектировались для увеличения пропускной способности, но не снимали проблемы задержек. Используя короткие шины внутри каждого квода, можно достичь очень малых задержек для большинства операций доступа к памяти. Таким образом, IQ-Link позволяет построить большие системы с множеством коротких шин и малыми задержками. Преимущества аппаратной поддержки когерентности проявляются, в частности, в том, что следующий уровень развития - кластерные системы из узлов NUMA-Q могут использовать то же программное обеспечение кластеризации, что и SMP-кластеры с общей шиной. В качестве среды для передачи данных между узлами NUMA-Q планируется волоконно-оптический канал и программное обеспечение системы Symmetry 5000 (ptx/SDI и Ptx/Clusters). Может возникнуть вопрос, зачем вообще нужно строить кластеры с NUMA-Q-узлами, если вместо этого можно построить очень большие узлы NUMA-Q. Причины те же, из-за которых кластеры применялись и ранее: надежность и масштабируемость. 7. Задержка - как основная характеристика различия архитектурОдним их ключевых различий описанных архитектур является диктуемая ими модель программирования, а различия в способах программирования напрямую обусловлены задержками доступа. Достижение организации памяти NUMA-Q заключается в том, что доступ к часто используемым данным происходит за микросекунды, тогда как считывание их с диска требует миллисекунд, а в МРР-системах с разделяемыми дисками доступ к удаленному диску может занимать десятки миллисекунд. В кластерах с отражением памяти между узлами добавляются когерентные соединения с программной поддержкой, в результате чего время доступа к удаленной памяти снижается до сотни микросекунд. Это, конечно, в сотни раз быстрее, чем обращаться к дискам для тех же данных, но сотни микросекунд - это все еще в сотни раз медленнее, чем скорость локальной памяти. Поэтому программист должен позаботиться о том, чтобы минимизировать такого типа пересылки, планируя для этого, где только возможно, распределение данных вручную. Следует отметить, что даже в RMC удаленный доступ опирается как на аппаратную, так и на программную поддержку, тогда как доступ к локальной памяти реализуется исключительно аппаратными средствами - очень быстро и с гарантией когерентности. Вот почему программирование в SMP так выгодно для прикладных программистов, которые не должны заботиться о распределении данных в памяти, так как все ее части доступны для любого ЦПУ и доступ к ним одинаково быстр. В реализации NUMA-Q в этом направлении был сделан еще один шаг. В самом худшем случае время доступа к памяти приблизительно такое же, как в архитектурах с большой шиной. В большинстве же случаев доступ будет в десять раз быстрее. Кроме того, уже 32-процессорная система NUMA-Q будет иметь большую пропускную способность памяти, чем любая другая современная SMP архитектура. Хотя производители "Гига-шины", возлагают большие надежды на шины с 256-битной шириной и пропускной способностью от 1 до 3 Гбайт/с, по-видимому, сейчас это верхний предел. На рисунке 3приведена диаграмма задержек доступа для разных архитектур в логарифмической шкале. Интересно перевести эти времена из микросекунд в более привычный диапазон. Если микросекундная задержка доступа в памяти системы NUMA-Q была бы такая же, как ожидание реакции ПК в течение одной секунды, то RMC заставил бы ждать две-три минуты, доступ к диску занял бы три часа, а доступ к удаленному диску - от 6 до 12 часов.
Рисунок 3. 8. Порядок работы NUMA-QВ качестве основного строительного блока для SMP-узлов платформы NUMA-Q компания Sequent использует кводы с четырьмя процессорами на блок распределенной памяти. В узле с тремя, например, кводами одна треть физической памяти будет близка (в смысле задержки доступа к памяти) к четырем процессорам квода, а две трети будут "не совсем близкими". Это может привести к выводу о том, что две трети обращений к памяти будут медленными и только одна треть - быстрой. К счастью, без модификации приложений, реализованных для традиционных SMP-архитектур, этого не происходит. В действительности основная часть процессорных доступов к памяти будет очень быстрой, и только маленький процент окажется не столь высокоскоростным. Это происходит из-за большой локальной памяти квода и большого удаленного кэша на плате IQ-Link. 8.1. Конфигурация памяти NUMA-QВ традиционном смысле память в каждом кводе не является локальной. Скорее, это одна треть адресного пространства физической памяти, которая имеет собственный адресный диапазон. Адресная карта распределяется по памяти равномерно, при этом каждый квод содержит смежную часть адресного пространства. В примере из рисунка 4 квод 0 имеет физические адреса 0-1 Гбайт, квод 1 - 1-2 Гбайт и квод 3 - адреса 2-3 Гбайт. Как и в любой SMP-системе, работает только одна копия ОС, она размещает в памяти и запускает одновременно на одном или нескольких процессорах любые процессы без какого-либо различия между ними.
Рисунок 4. Далее будем называть сегмент памяти, расположенный в кводе, локальной памятью квода, а память из других кводов удаленной памятью квода. Ясно, что доступ к локальной памяти квода происходит быстрее, чем доступ к удаленной для него памяти. Задержки доступа к единому пространству адресов памяти не одинаковы, вот почему NUMA-Q является истинной NUMA-архитектурой. В современной реализации архитектуры NUMA-Q компания Sequent использует процессоры Pentium Pro с двумя кэшами L1 и L2 внутри чипа. Как известно, в компьютерных системах кэши устанавливаются в предположении о "пространственной локальности" обращений к памяти. В соответствии с этим предположением основная часть всех кэш-промахов (cashe miss) в L2 будет попадать в диапазон локальной памяти квода и, таким образом, будет быстро обслуживаться. Если же адрес находится за пределами диапазона локальной памяти квода, поиск будет распространен на 32 мегабайтный кэш IQ-Link, который называется удаленным кэшем. Доступ к этому кэшу осуществляется с такой же скоростью, как и к локальной памяти квода. Если и в IQ-Link кэше данные не найдены, то для их получения отсылается запрос на шину IQ-Link. После того как требуемое значение загружено из другого квода, оно сохраняется в удаленном кэше платы IQ-Link запрашивающего квода, но не сохраняется в памяти этого квода. Последнее можно сделать только программно, явно скопировав одну часть памяти в другую. Интервал времени с момента, когда Pentium Pro не находит нужные данные в своем внутреннем L2 кэше, до момента, когда данные возвращены этому Pentium Pro и он сможет их использовать, составляет около 3,3 микросекунд. Эта задержка практически равна той, которая наблюдается при кэш-промахах в традиционных архитектурах с большой шиной и одной объединительной платой, однако в NUMA-Q такая ситуация возникает значительно реже. 8.2. Кэш-когерентность в NUMA-QПередача данных по единственной шине в SMP-архитектурах с одной объединительной платой может происходить по разным причинам, и их следует различать. Во-первых, это передача между портом ввода-вывода и памятью, и, во-вторых, ситуации, в которых процессор обращается к памяти при отсутствии данных в L2 кэше. Кроме того, имеются еще и передачи кэш-кэш между разными процессорами, которые называются промахами когерентности. Недостатком архитектур с большой шиной является то, что для поддержания когерентности нужно, чтобы все кэши следили за всеми пересылками, что и реализуется в протоколе слежения за шиной. При конструировании более быстрой шины можно либо уменьшить ее длину, либо уменьшить нагрузку на отдельную шину, например, продублировав ее. Как уже говорилось, некоторые производители пошли по второму пути, добавив отдельные шины ввода-вывода и двухпортовую память. Однако такой подход не позволяет получить удвоенную пропускную способность шин: в этих конфигурациях возникает большой поток когерентной активности, на который расходуется пропускная способность обеих шин и увеличивается средняя задержка. Компания Sequent сделала попытку отделить в системе NUMA-Q промахи когерентности от передач данных, связанных с вводом-выводом и обменами процессор-память. В примененном подходе трафик процессор-память и трафик ввода-вывода могут идти одновременно на нескольких шинах производительностью 500 Мбайт/с, а в то же время шина IQ-Link осуществляет слежение за всеми шинами процессор-память и гарантирует когерентность данных между ними. Пропускная способность когерентной шины IQ-Link уже доведена до 1 Гбайт/с на связь. Пропускная способность шин ЦПУ-память и ввод-вывод - 500 Мбайт/с на каждый квод. С добавлением большего числа кводов увеличивается и интегральная пропускная способность. В системе с восемью кводами (32 процессора) пропускная способность ЦПУ-память в восемь раз больше - 4 Гбайт/с. С двумя PCI-шинами в каждом кводе теоретически можно поддерживать пропускную способность шины ввода-вывода 2 Гбайт/с. Пропускная способность IQ-Link остается равной 1 Гбайт/с на связь, так как она подсоединяется ко всем восьми кводам. Однако большая часть ее трафика будет вызвана промахами когерентности и в меньшей степени подгрузкой из удаленной памяти, обслуживанием ввода-вывода и пр. Очень важна способность подсистем ввода-вывода работать централизованно, но при этом оставаться доступными из любого квода. Ценно и то, что трафик ввода-вывода проходит мимо IQ-Link. При сравнении пропускной способности шины IQ-Link с обычными архитектурами следует суммировать производительность всех 500 Мбайт/с шин кводов, поскольку именно эти шины поддерживают весь трафик, присущий любым SMP-системам. Было бы неправильно сравнивать только шину IQ-Link с обычной большой шиной, так как основная часть трафика IQ-Link вызвана промахами когерентности. NUMA-Q-архитектура разработана для того, чтобы поддерживать до 63 кводов с одной копией ОС, и это означает, что теоретический максимум пропускной способности для ввода-вывода и подгрузки в кэши составляет 32 Гбайт/с (63*500 Мбайт/с). Для сравнения, скорости современных одиночных объединительных плат находятся в диапазоне от 240 Мбайт/с до 1,6 Гбайт/с. В системах с несколькими кводами связи IQ-Link образуют кольцо прямых точечных соединений. Имеющиеся данные позволяют сделать вывод, что такое кольцеобразное соединение множества звеньев с производительностью 1 Гбайт/с каждое будет иметь суммарную пропускную способность 1,6 Гбайт/с. 8.3. Нужно ли оптимизировать программы для NUMA-Q?Эффективность работы приложения на платформе NUMA-Q зависит, главным образом, от того, насколько справедливы следующие предположения.
Что должны делать разработчики программного обеспечения для систем SMP при переносе его на NUMA-Q? Если некоторые из приведенных пунктов неверны, можно попытаться изменить программное обеспечение, чтобы настроить его на NUMA-Q. Однако если предположения выполняются, тогда тот факт, что малый процент доступов занимает больше времени, чем остальные, может не учитываться программистами так же, как не принимается во внимание работа кэшей. Конечно, приспосабливаясь к архитектуре NUMA-Q, можно достичь некоторого роста производительности приложения, но он будет небольшим. Важно, однако, то, что большинство потенциальных системных характеристик будут улучшаться на NUMA-Q без изменения программного обеспечения SMP-приложений. В ходе разработки соединения IQ-Link, компания Sequent провела тщательное тестирование с целью исследования рабочих характеристик приложений для СУБД Oracle и Informix. Тестирование показало, что эти приложения действительно демонстрируют хорошую пространственную локализацию кода и данных. В узле с восемью кводами, на котором производилось тестирование, более 51% L2 кэш-промахов разрешались в локальной памяти кводов, еще 30% приходились на 32 мегабайтный удаленный кэш в IQ-Link, и только 19% L2 кэш-промахов требовали доступа к удаленной памяти. Это свидетельствует о справедливости первого из вышеуказанных пунктов. 8.4. Задержки доступа к памяти в системе NUMA-QКакие задержки характерны для доступа к памяти в архитектурах NUMA-Q? В традиционных SMP-архитектурах с одной объединительной платой и большой шиной средняя задержка доступа к памяти составляет около двух микросекунд. В некоторой степени она еще сглаживается благодаря большим (2 Мбайт) L2 кэшам, но тем не менее играет существенную роль в формировании полной производительности узла. Причина того, что задержка значительно больше, чем время доступа в DRAMS (около 60 нс), заключается в том, что запрос должен пройти через обработку промахов в L2 кэше на процессорной плате, запросить доступ к шине объединительной платы, выйти на эту шину, попасть в очередь для доступа к плате памяти и в конце концов вернуться с данными. В узле NUMA-Q доступ к локальной памяти квода приблизительно в десять раз быстрее, чем доступ к памяти в SMP-узле с одной объединительной платой. Это происходит по следующим причинам: 1) память расположена близко к процессорам, 2) есть только четыре процессора, 3) нет объединительной платы между процессорами и локальной памятью квода, 4) шина между процессорами и памятью может работать с очень высокой скоростью. Задержка локальной памяти квода может не превышать 180 нс c момента обнаружения отсутствия данных в L2 кэше и до засылки данных в процессор. Следующая задержка - от 32 мегабайтного удаленного кэша IQ-Link, который является первым местом поиска данных, чьи адреса не попадают в диапазон локальной памяти квода. Доступ к этому удаленному кэшу происходит одновременно и с той же задержкой, что и у локальной памяти квода. Таким образом, дополнительные 32 Мбайт памяти удаленного кэша также в десять раз быстрее, чем память в архитектурах с одной объединительной платой и большой шиной. И наконец, следует рассмотреть задержки доступа к удаленной памяти квода. Здесь требуется разобраться, во-первых, с величиной минимальной задержки, во-вторых, с факторами, которые вносят вклад в максимальную задержку, и, в-третьих, с частотой разных задержек. Минимальная задержка в восьмикводовой системе составляет 3,3 микросекунды, от момента обнаружения отсутствия данных в процессорном кэше L2 до того, как данные вернутся к процессору. Вся доставка данных происходит почти так же быстро, как доступ к памяти в SMP-системах с большой шиной, однако рассматриваемая ситуация возникает значительно реже из-за наличия 512 Мбайт - 4 Гбайт локальной памяти квода и 32 Мбайт удаленного кэша в каждом соединении IQ-Link. Для сравнения можно напомнить, что типичный процессорный кэш систем с большой шиной имеет объем 2-4 Мбайт. Если все суммировать и принять во внимание коэффициент попаданий кэша, то средняя задержка в современном SMP-узле системы с большой шиной равняется 1-4 микросекундам, тогда как то же программное обеспечение на узле NUMA-Q, без всяких изменений, приводило бы к средней задержке 1-2,5 микросекунды. Это одна из причин, почему поставщики приложений не должны изменять свое программное обеспечение SMP, чтобы получить максимальную производительность от систем NUMA-Q: общий эффект задержки доступа к удаленной памяти квода действительно очень мал. 8.5. Пропускная способность шины IQ-LinkПо оценкам разработчиков, если система из одного узла с 32 процессорами обрабатывает от 20 до 25 тыс. транзакций в минуту, то IQ-Link не будет загружена даже на 30% своих возможностей. Это является следствием эффективности протокола когерентности, хорошей пространственной локализации в современных приложениях и, конечно, очень большой пропускной способности IQ-Link. Компания Sequent рассчитывает, что 32-процессорный узел NUMA-Q в три раза повысит существующий предел производительности. Если разработчики приложений произведут их настройку на NUMA-Q, они смогут дополнительно получить еще 20% производительности. В IQ-Link встроено много интеллектуальных способностей. Она способна следить за локализацией всех данных, которые были вытеснены из ее собственного квода, а также за данными, размещенными в 32 мегабайтном удаленном кэше. IQ-Link следит за шиной Pentium Pro и одновременно использует протокол поддержки когерентности на основе каталога, чтобы отслеживать все запросы и ответы на них, проходящие по шине IQ-Link. ЗаключениеОпределяющим фактором для производительности систем являются задержки доступа к данным. Для уменьшения их влияния в системы вводится дополнительная память. SMP-платформы обеспечили легко программируемую модель, так как время доступа ко всем частям памяти стало одинаково недолгим. Попытки распределять данные между узлами, передавая их между памятью, успешны только в том случае, если альтернативой является обращение за данными к диску. Однако для оптимизации производительности все еще требуется существенный объем перепрограммирования, так как задержки между узлами значительно больше, чем задержки внутри узла. Наиболее эффективный способ достичь высокой производительности и сохранить при этом простую модель программирования - построить как можно больший одиночный узел, прежде чем переходить к архитектуре из нескольких узлов. Однако из-за ограничений на размер объединительных плат и системных шин, с использованием кэша слежения этого сделать нельзя, и максимально достигнутое число процессоров не превышает сегодня 32. Для того чтобы выйти за этот предел можно использовать кэш-протоколы на основе каталогов и архитектуры CC-NUMA. Такой подход имеет дополнительные достоинства, так как позволяет подсоединять до 252 процессоров, получая огромную память и пропускную способность шины ввода-вывода и при этом имея средние задержки доступа к памяти меньше, чем у любой современной системы. Основным же достижением является отсутствие необходимости менять программное обеспечение SMP-приложений для того, чтобы воспользоваться всеми этими возможностями. Компания Sequent начала коммерческий выпуск SMP-систем на базе Unix еще в 1983 году, и сегодня многие фирмы-поставщики предлагаюттакие платформы. Сейчас Sequent опять первой прокладывает путь для следующего шага от SMP с большими шинами к NUMA-Q SMP-архитектурам. Возможно, что когда-нибудь все высокопроизводительные серверы будут строиться с использованием этой архитектуры. 15.02.1997г Также в разделе:
|
Эта рубрика в архиве
Список номеров за
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||