Россия, г. Саранск |
Обзор архитектуры персональных мини-кластеров
За несколько тысячелетий развития цивилизации, более-менее известных нам благодаря историкам, человек научился с удивительной легкостью оперировать весьма большими и практически непредставимыми числами – благодаря переписям населения мы, по крайней мере совместно, способны "сосчитать" до сотен миллионов, но вот что такое 9,1 * 10-31 килограмма или 6,022 * 1023 моль-1 вряд ли кто может оценить, если только не напомнить, что это масса электрона и число Авогадро соответственно. Более того, человек не только сам научился считать, но и создал себе неутомимого помощника, на которого переложил подавляющее большинство расчетных и перекладывает все больше остальных задач. Сегодня "вычислительные устройства" сопровождают нас повсеместно: от сотовых телефонов до стиральных машин с программным управлением; от электронных книг до автоматических пылесосов, самостоятельно убирающих квартиру в отсутствие хозяина. Однако на фоне этого неудержимого процесса "компьютеризации" человечества долгое время нетронутой оставалась область, в которой звучат такие внушающие уважение далеким от компьютеров людям, как "суперкомпьютер", "терафлоп", "высокопроизводительные вычисления". В последнее время и здесь ситуация изменилась
1.1. От суперкомпьютера к мини-кластеру
"Citius, Altius, Fortius"1"Быстрее, Выше, Сильнее" – лат. – девиз Олимпийских игр современности, как ни к какой другой области, применим к вычислительной технике. Воплощение в жизнь не раз видоизменявшего свою исходную формулировку, но до сих пор действующего эмпирического закона сформулированного в 1965 году Гордоном Муром, похоже, стало "делом чести" производителей аппаратного обеспечения. Из всех известных формулировок этого закона точку зрения потребителя/пользователя наилучшим образом отражает вариант: "производительность вычислительных систем удваивается каждый 18 месяцев". Мы сознательно не использовали термин "процессор", поскольку конечного пользователя вовсе не интересует, кто обеспечивает ему повышение мощности: процессор, ускоритель, видеокарта, – ему важен лишь сам факт роста возможностей "за те же деньги".
Правда, в последние несколько лет возможности увеличения мощности процессоров на основе повышения тактовой частоты оказались фактически исчерпаны, и производители, выбрав в качестве магистрального пути развития увеличение числа ядер на кристалле, были вынуждены призвать на помощь разработчиков программного обеспечения. Старые последовательные программы, способные использовать лишь одно ядро, теперь уже не будут работать быстрее на новом поколении процессоров "задаром" – требуется практически повсеместное внедрение программирования параллельного.
Помимо представленной выше известна и другая формулировка закона Мура: "доступная (человечеству) вычислительная мощность удваивается каждые 18 месяцев". Зримое свидетельство этого варианта формулировки – список Top500 [1] самых высокопроизводительных вычислительных систем мира, обновляемый дважды в год. В 31-м списке Top500 (июнь 2008) впервые в истории был преодолен петафлопный порог производительности – суперкомпьютер "Roadrunner" [2] производства компании IBM показал на тесте LINPACK 1,026 петафлопс (предыдущий "психологический" барьер в один терафлопс был преодолен системой ASCI Red [3] производства компании Intel в 1997 году – как видим, всего за 11 лет пик мощности вырос на три порядка). А суммарная мощность систем, представленных в 31-м списке Top500, составила 11,7 петафлопс. Много это или мало? Если взять за основу, что реальная производительность хорошей "персоналки" на четырехъядерном процессоре составляет порядка 20 гигафлопс, то весь список Top500 будет эквивалентен половине миллиона таких персоналок. Очевидно, что это лишь вершина айсберга. По данным аналитической компании Gartner общее число используемых в мире компьютеров превысило в 2008 году 1 миллиард.
Представленные в списке Top500 данные позволяют проследить характерные тенденции развития индустрии в сфере суперкомпьютерных вычислений. Первый список Top500 датирован июнем 1993 года и содержит 249 систем класса SMP и 97, построенных на основе единственного процессора; более 40% всех решений в нем были созданы на платформе, разработанной компанией Cray, еще в 1976 выпустившей первую векторную систему Cray1, с которой связывают само возникновение термина "суперкомпьютер". Уже четырьмя годами позже в Top500 не осталось ни одной системы на основе единственного процессора, а взамен появилась первая система с производительностью всего в 10 гигафлопс (в 100 раз меньше, чем у лидера списка системы ASCI Red), относящаяся к довольно новому тогда классу, который сегодня занимает в Top500 80% списка и является, по факту, основным способом построения суперкомпьютеров. Думается, многие догадались, что речь идет о кластерах.
Основным преимуществом кластеров, предопределившим их повсеместное распространение, было и остается построение из стандартных массово выпускающихся компонент, как аппаратных, так и программных. Сегодня 75% систем в списке построены на основе процессоров компании Intel, чуть больше 13% – на процессорах компании IBM и 11% – компании AMD (на двух оставшихся производителей NEC и Cray приходится по одной системе соответственно); 81% систем используют всего два типа интерконнекта: Gigabit Ethernet или Infiniband; 85% систем работают под управлением операционной системы из семейства Linux. Как видим, разнообразием список не блещет, что является несомненным плюсом с точки зрения пользователей.
Однако для пользователя массового еще большим плюсом была бы возможность иметь персональный суперкомпьютер у себя на столе или, на худой конец, стоящий под столом. И кластера, принесшие в индустрию высокопроизводительных вычислений идею "собери суперкомпьютер своими руками", как нельзя лучше отвечают этой потребности. Сейчас трудно достоверно установить, какая система может быть названа первым в мире "персональным кластером", во всяком случае уже в начале 2001 года компания RenderCube [4] представила одноименный мини-кластер из 4-х двухпроцессорных систем, заключенных в кубический корпус со стороной всего в 42 см.
Тенденция "персонализации" супервычислений в последнее время развивается все активнее и недавно была подхвачена в том числе и производителями видеокарт, мощности которых возросли настолько, что возникло естественное желание использовать их не только в графических расчетах, но и в качестве ускорителей вычислений общего назначения. Соответствующие решения представлены в настоящее время компанией NVIDIA (семейство NVIDIA Tesla™) и компанией AMD (семейство ATI FireStream™) и демонстрируют в силу специфики внутреннего устройства потрясающую (в сравнении с универсальными процессорами) пиковую производительность, превышающую 1 терафлопс.
1.2. Многоядерность – два, четыре, восемь – кто больше?
Несколько лет назад в моде были казавшиеся вполне обоснованными прогнозы, когда именно будет преодолен тот или иной порог по тактовой частоте процессоров. Четыре-пять гигагерц виделись практически свершившимся фактом, десять маячили где-то недалеко впереди. Однако прогнозы эти на долгое время так и остались прогнозами. В некоторый момент оказалось, что тепло, выделяемое процессором, становится настолько большим, что о стабильной работе на частотах выше четырех гигагерц в условиях, характерных для обычных персональных компьютеров, и говорить не приходится2Лишь в 2007 году компания IBM сумела преодолеть в серийно-выпускаемых процессорах порог частоты в 4 гигагерца. . Энтузиасты, используя дополнительное охлаждение, вплоть до жидкого азота, научились разгонять процессоры производства Intel выше 6 гигагерц, в отдельных случаях до 7 и даже 8, но о стабильной продолжительной работе на таких частотах речь не идет, лишь о прохождении ряда общепринятых сообществом "оверклокеров" тестов. Очевидно, что индустрия по этому пути пойти не могла. Вместе с тем, закон Мура усилиями инженеров продолжал свое победное шествие, и вновь появляющиеся транзисторы при очередном улучшении технологических норм нужно было как-то употребить в дело. Решение было найдено в многоядерности, и сегодня это фактически основной путь развития процессоров3Справедливости ради надо отметить, что идет не только количественный рост, выраженный в числе ядер, но и качественный в виде значительных "архитектурных" изменений , который тем или иным способом реализуют все основные игроки на этом рынке.
1.2.1. Процессоры Intel Core и Intel Xeon
Как просто было когда-то сравнивать процессоры компании Intel между собой. Все знали, есть Pentium, есть его "урезанный" вариант Celeron, а в остальном, чем выше частота, тем лучше. Эта простота была следствием того факта, что в формуле, определяющей производительность вычислительной системы "тактовая частота процессора ? число инструкций, выполняемых за один такт (Instructions Per Cycle, IPC)" переменной величиной была только частота. Необходимо, конечно, отметить, что получаемая по этой формуле величина, дает только так называемую "пиковую производительность", приблизиться к которой на практике можно лишь на отдельных специально подобранных задачах. Именно поэтому сравнение вычислительных систем, в том числе в списке Top500 и аналогичных, выполняется на основе производительности, показанной на стандартном тесте, в качестве которого повсеместно используется LINPACK [5]. Как только наращивание тактовой частоты прекратилось, компании Intel понадобился другой способ описания и градации выпускаемых процессоров. Сегодня все процессоры производства Intel делятся, прежде всего, по назначению: для настольных систем, ноутбуков, серверов и рабочих станций и т.д. Затем в каждом классе выделяют серии процессоров, отличающиеся между собой по некоторым ключевым характеристикам. В классе настольных и мобильных систем сегодня "царствуют" представители семейства Intel Core™2, в серверном сегменте – процессоры Intel Xeon , при этом и те и другие построены на микроархитектуре Intel Core™, пришедшей в 2006 году на смену архитектуре Intel NetBurst™.
Особенностям микроархитектуры Intel Core™, позволившей компании Intel существенно потеснить своего основного конкурента компанию AMD, посвящено множество материалов и публикаций. Не ставя перед собой задачу подробного ее обсуждения, кратко отметим лишь ключевые моменты, выделяемые самими разработчиками.
- Wide Dynamic Execution. Если основой повышения производительности процессоров архитектуры NetBurst была тактовая частота, то в архитектуре Core на первое место вышло число инструкций за такт (с учетом увеличения этого показателя за счет наращивания числа ядер): IPC каждого ядра в этой архитектуре равно 4, таким образом пиковая производительность четырехъядерных процессоров равна "16 ? на тактовую частоту".
- Advanced Smart Cache. Кэш второго уровня в архитектуре Core является общим на каждую пару ядер (четырехъядерные процессоры Intel сегодня фактически представляют собой два двухъядерных, размещенных на одном кристалле), что позволяет как динамически менять его "емкость" для каждого ядра из пары, так и использовать преимущества совместного использования ядрами данных, находящихся в кэше. Кроме того, в случае активного использования всего одного ядра, оно "задаром" получает кэш вдвое большего размера, чем было бы в случае отдельного кэша второго уровня на каждое ядро.
- Advanced Digital Media Boost. По сравнению с NetBurst в архитектуре Core была значительно улучшена работа с векторными расширениями SSE. С точки зрения конечного пользователя основным из этих улучшений, помимо добавления новых команд, стала способность процессоров выполнять SSE-инструкции за один такт вместо двух в NetBurst.
- Intelligent Power Capacity. Процессоры на архитектуре Core получили возможность как интерактивного отключения незадействованных в данный момент подсистем, так и "динамического" понижения частоты ядер, что дало возможность существенно снизить тепловыделение (Thermal Design Power, TDP), что особенно положительно сказалось на процессорах для настольных и мобильных систем. Так двухъядерный Pentium D с частотой 2,8 ГГц имел TDP 130 Вт, тогда как четырехъядерный Core 2 Quad Q9300 с частотой 2,5 ГГц – всего 95 Вт.
Кроме того необходимо отметить существенно уменьшившийся по сравнению с 31-стадийным в последних процессорах архитектуры NetBurst конвейер – его длина в архитектуре Core составляет 14 стадий, плюс "честную" 64-разрядность, плюс в очередной раз доработанное предсказание ветвлений, плюс многое, оставшееся за кадром
Приведем технические данные текущих лидеров в классе настольных и серверных процессоров.
Процессор Intel-> Core™2 Quad Q9650
Тактовая частота: 3 ГГц.
Число ядер: 4.
Кэш второго уровня: 12 Мб (по 6 Мб на каждую пару ядер).
Частота системной шины: 1333 МГц.
Технологический процесс: 45 нанометров.
Процессор Intel-> Xeon-> X7460
Тактовая частота: 2,66 ГГц.
Число ядер: 6.
Кэш второго уровня: 9 Мб (по 3 Мб на каждую пару ядер).
Кэш третьего уровня: 16 Мб.
Частота системной шины: 1066 МГц.
Технологический процесс: 45 нанометров.
В заключение отметим еще один весьма важный факт – помимо пиковой производительности той или иной архитектуры и соответственно процессоров, построенных на ее основе, значимым обстоятельством для конечного потребителя является процент мощности, который можно "отжать от пика". Для систем в Top500, построенных на процессорах компании Intel, этот показатель составляет в 31-м списке 61%, при этом "удельная мощность" в расчете на один процессор/ядро равна 6,23 гигафлопс (необходимо заметить, конечно, что значительная часть этих систем введена в строй уже несколько лет назад и построена не на новейших процессорах).