Технологии построения и использования кластерных систем

Обзор архитектуры персональных мини-кластеров

Разбить на страницы
Показывать лекцию целиком

За несколько тысячелетий развития цивилизации, более-менее известных нам благодаря историкам, человек научился с удивительной легкостью оперировать весьма большими и практически непредставимыми числами – благодаря переписям населения мы, по крайней мере совместно, способны "сосчитать" до сотен миллионов, но вот что такое 9,1 * 10-31 килограмма или 6,022 * 1023 моль-1 вряд ли кто может оценить, если только не напомнить, что это масса электрона и число Авогадро соответственно. Более того, человек не только сам научился считать, но и создал себе неутомимого помощника, на которого переложил подавляющее большинство расчетных и перекладывает все больше остальных задач. Сегодня "вычислительные устройства" сопровождают нас повсеместно: от сотовых телефонов до стиральных машин с программным управлением; от электронных книг до автоматических пылесосов, самостоятельно убирающих квартиру в отсутствие хозяина. Однако на фоне этого неудержимого процесса "компьютеризации" человечества долгое время нетронутой оставалась область, в которой звучат такие внушающие уважение далеким от компьютеров людям, как "суперкомпьютер", "терафлоп", "высокопроизводительные вычисления". В последнее время и здесь ситуация изменилась $$\dots$$

1.1. От суперкомпьютера к мини-кластеру

"Citius, Altius, Fortius""Быстрее, Выше, Сильнее" – лат. – девиз Олимпийских игр современности, как ни к какой другой области, применим к вычислительной технике. Воплощение в жизнь не раз видоизменявшего свою исходную формулировку, но до сих пор действующего эмпирического закона сформулированного в 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 см.

(рис 1.1) Мини-кластер "RenderCube"

Тенденция "персонализации" супервычислений в последнее время развивается все активнее и недавно была подхвачена в том числе и производителями видеокарт, мощности которых возросли настолько, что возникло естественное желание использовать их не только в графических расчетах, но и в качестве ускорителей вычислений общего назначения. Соответствующие решения представлены в настоящее время компанией NVIDIA (семейство NVIDIA $$\to$$ Tesla™) и компанией AMD (семейство ATI FireStream™) и демонстрируют в силу специфики внутреннего устройства потрясающую (в сравнении с универсальными процессорами) пиковую производительность, превышающую 1 терафлопс.

1.2. Многоядерность – два, четыре, восемь – кто больше?

Несколько лет назад в моде были казавшиеся вполне обоснованными прогнозы, когда именно будет преодолен тот или иной порог по тактовой частоте процессоров. Четыре-пять гигагерц виделись практически свершившимся фактом, десять маячили где-то недалеко впереди. Однако прогнозы эти на долгое время так и остались прогнозами. В некоторый момент оказалось, что тепло, выделяемое процессором, становится настолько большим, что о стабильной работе на частотах выше четырех гигагерц в условиях, характерных для обычных персональных компьютеров, и говорить не приходитсяЛишь в 2007 году компания IBM сумела преодолеть в серийно-выпускаемых процессорах порог частоты в 4 гигагерца. . Энтузиасты, используя дополнительное охлаждение, вплоть до жидкого азота, научились разгонять процессоры производства Intel выше 6 гигагерц, в отдельных случаях до 7 и даже 8, но о стабильной продолжительной работе на таких частотах речь не идет, лишь о прохождении ряда общепринятых сообществом "оверклокеров" тестов. Очевидно, что индустрия по этому пути пойти не могла. Вместе с тем, закон Мура усилиями инженеров продолжал свое победное шествие, и вновь появляющиеся транзисторы при очередном улучшении технологических норм нужно было как-то употребить в дело. Решение было найдено в многоядерности, и сегодня это фактически основной путь развития процессоровСправедливости ради надо отметить, что идет не только количественный рост, выраженный в числе ядер, но и качественный в виде значительных "архитектурных" изменений , который тем или иным способом реализуют все основные игроки на этом рынке.

1.2.1. Процессоры Intel Core и Intel Xeon

Как просто было когда-то сравнивать процессоры компании Intel между собой. Все знали, есть Pentium, есть его "урезанный" вариант Celeron, а в остальном, чем выше частота, тем лучше. Эта простота была следствием того факта, что в формуле, определяющей производительность вычислительной системы "тактовая частота процессора ? число инструкций, выполняемых за один такт (Instructions Per Cycle, IPC)" переменной величиной была только частота. Необходимо, конечно, отметить, что получаемая по этой формуле величина, дает только так называемую "пиковую производительность", приблизиться к которой на практике можно лишь на отдельных специально подобранных задачах. Именно поэтому сравнение вычислительных систем, в том числе в списке Top500 и аналогичных, выполняется на основе производительности, показанной на стандартном тесте, в качестве которого повсеместно используется LINPACK [5]. Как только наращивание тактовой частоты прекратилось, компании Intel понадобился другой способ описания и градации выпускаемых процессоров. Сегодня все процессоры производства Intel делятся, прежде всего, по назначению: для настольных систем, ноутбуков, серверов и рабочих станций и т.д. Затем в каждом классе выделяют серии процессоров, отличающиеся между собой по некоторым ключевым характеристикам. В классе настольных и мобильных систем сегодня "царствуют" представители семейства Intel $$\to$$ Core™2, в серверном сегменте – процессоры Intel $$\to$$ Xeon $$\to$$, при этом и те и другие построены на микроархитектуре Intel $$\to$$ Core™, пришедшей в 2006 году на смену архитектуре Intel $$\to$$ NetBurst™.

(рис 1.2) Архитектура Intel Core™

Особенностям микроархитектуры Intel $$\to$$ 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-разрядность, плюс в очередной раз доработанное предсказание ветвлений, плюс многое, оставшееся за кадром $$\dots$$

    Приведем технические данные текущих лидеров в классе настольных и серверных процессоров.

    Процессор 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 гигафлопс (необходимо заметить, конечно, что значительная часть этих систем введена в строй уже несколько лет назад и построена не на новейших процессорах).

    1.2.2. Процессоры AMD Phenom™ и AMD Opteron™

    Компания AMD основана в 1969 году (всего на год позже, чем Intel) и в сознании рядового пользователя прочно занимает место главного конкурента Intel на рынке процессоров для настольных систем и отчасти на рынке серверных, практически всегда при этом выступая в роли догоняющего. Если принимать во внимание только "внешние" факторы, вроде рыночной доли, то ситуация, действительно, может быть воспринята именно так. И в этом свете основной успех компании за последнее десятилетие связан с выпуском в 2003 году 64-битных процессоров AMD Opteron™, быстро завоевавших популярность и позволивших AMD значительно упрочить свое положение, в том числе в сегменте высокопроизводительных решений. Достаточно отметить, что в 28-м списке Top500 (ноябрь 2006) доля систем, построенных на основе процессоров AMD, достигла своего исторического максимума и составила 22,6%, против 52,6% у компании Intel и 18% у компании IBM. Однако кроме такого чисто количественного сравнения, в котором AMD неизменно проигрывает своим конкурентам, есть еще показатели качественные, и тут компания нередко за прошедшие годы бывала первопроходцем и реализовывала действительно интересные архитектурные решения.

    Среди прочего это и интеграция в процессор северного моста, что дает более быстрый доступ к оперативной памяти и использование Direct Connect Architecture для взаимодействия процессоров между собой посредством высокоскоростной шины HyperTransport™, позволяющей без существенных потерь в производительности объединять в рамках одной системы до 8 процессоров Opteron. Кроме того нужно отметить, что в процессорах Opteron реализована "честная" четырехъядерность (Native Quad-Core Design), двухпотоковое управление 128-битными SSE-инструкциями, выполнение до четырех операций с плавающей точкой двойной точности за такт, расширенная технология оптимизации энергопотребления (Enhanced AMD PowerNow!) и многое другое. Последними серверными процессорами компании AMD являются четырехъядерные модели Opteron 3G на ядре Barcelona.

    На рынке настольных систем основное оружие компании AMD сегодня – процессоры AMD Phenom™. Процессоры Phenom построены на той же микроархитектуре (AMD K10), что и серверные Opteron. Помимо уже отмеченных особенностей можно упомянуть наличие в процессорах Phenom кэша третьего уровня, пиковую пропускную способность шины HyperTransport до 16 Гб/с, поддержку 128-битных операций SSE, работу кэша второго уровня на частоте ядра, технологию улучшенной защиты от вирусов (NX бит / Enhanced Virus Protection). Текущее поколение процессоров Phenom выпускается по технологии 65 нм.

    (рис 1.3) Архитектура AMD Phenom™

    Приведем технические данные текущих лидеров в классе настольных и серверных процессоров.

    Процессор AMD Phenom™ X4 Quad-Core 9950

    Тактовая частота: 2,6 ГГц.

    Число ядер: 4.

    Кэш второго уровня: 2 Мб (по 512 Кб на каждое ядро).

    Кэш третьего уровня: 2 Мб (общий на все ядра).

    Частота интегрированного контроллера памяти: 1066 МГц.

    Технологический процесс: 65 нанометров.

    Процессор Third-Generation AMD Opteron™ 8360 SE

    Тактовая частота: 2,5 ГГц.

    Число ядер: 4.

    Кэш второго уровня: 2 Мб (по 512 Кб на каждое ядро).

    Кэш третьего уровня: 2 Мб (общий на все ядра).

    Частота интегрированного контроллера памяти: 2000 МГц.

    Технологический процесс: 65 нанометров.

    В заключение, как и для процессоров компании Intel, приведем усредненные данные из списка Top500. Для систем в Top500, построенных на процессорах компании AMD, отношение "показанная мощность/пиковая мощность" составляет в 31-м списке 71%, при этом "удельная мощность" в расчете на один процессор/ядро равна 4,48 гигафлопс. Как и ранее отметим, что значительная часть этих систем построена не на новейших процессорах.

    1.2.2. Процессоры IBM Power6

    История компании IBM значительно длиннее, чем у Intel и AMD, и в отличие от последних IBM никогда не производила только процессоры. Фактически, компания, говоря сегодняшним языком, всегда пыталась поставлять "готовые решения". Однако обсуждения всего списка продукции IBM выходит за рамки данного материала, и мы остановимся только на процессорах, которые выпускает компания сегодня, и на основе которых строит как сервера "начального" уровня, так и суперкомпьютеры вроде Roadrunner или BlueGene.

    Микропроцессорная архитектура Power (расшифровывается как Performance Optimization With Enhanced RISC) имеет не менее богатую историю, чем сама компания IBM. Начиная с 1990 года, когда были выпущены первые компьютеры на основе процессоров Power, и по сегодняшний день архитектура постоянно развивается, с каждым поколением процессоров привнося значительные новшества. Текущая версия процессоров Power – Power6 выпущена в середине 2007 года, тем не менее уже 7 систем в 31-м списке Top500 построено на основе этих процессоров.

    (рис 1.4) Процессор IBM Power6

    Процессор Power6 выпускается по 65 нм технологическому процессу. Максимальная частота серийно выпускаемых образцов на сегодня равна 4,7 ГГц.

    Процессоры Power6 имеют два ядра, способных выполнять по два потока команд одновременно, по 4 Мб кэша второго уровня на каждое ядро, 32 Мб кэша третьего уровня на отдельном кристалле, присоединенного к шине с пропускной способностью 80 Гб/с. Каждое ядро содержит по два блока работы с целыми числами и числами с плавающей точкой соответственно. Однако главной изюминкой процессора Power6 является блок десятичных вычислений с плавающей точкой, аппаратно реализующий более 50 команд для выполнения математических операций над вещественными числами в десятичном представлении и перевода из двоичной системы счисления в десятичную и обратно. Второе не менее важное отличие Power6 от процессоров предыдущих серий – отказ IBM от внеочередного (out-of-order) исполнения команд, что стало одним из основных факторов, позволившим поднять частоту процессоров выше 4 ГГц.

    Процессоры Power6 поставляются в многочиповом корпусе, аналогично Power5, вмещающем до 4 процессоров и общий кэш третьего уровня. В многопроцессорной конфигурации возможна "связка" из 32 процессоров посредством двух шин межпроцессорного обмена с пропускной способностью 50 Гб/с.

    В заключение, как и ранее, приведем усредненные данные из списка Top500. Для систем в Top500, построенных на процессорах IBM семейства Power, отношение "показанная мощность/пиковая мощность" составляет в 31-м списке 77%, при этом "удельная мощность" в расчете на один процессор/ядро равна 3,71 гигафлопс. Как и ранее отметим, что значительная часть этих систем построена не на новейших процессорах.

    Если же брать в расчет только системы на процессорах Power6, то картина несколько меняется: отношение "показанная мощность/пиковая мощность" для этих систем составляет 65%, а "удельная" на одно ядро – 12,14 гигафлопс. Существенно меньший показатель по показанной мощности не в последнюю очередь объясняется отказом от внеочередного исполнения команд, затрудняющего и без того непростую задачу достижения пиковой производительности. Что касается "удельной мощности", то здесь с наилучшей стороны проявляет себя высокая тактовая частота процессоров Power6.

    1.2.3. Процессоры PowerXCell™ 8i

    Рассказ о процессоре PowerXCell™ 8i начать нужно, конечно же, с его прямого предка – процессора Cell, разработанного альянсом STI (Sony, Toshiba, IBM) в первую очередь для использования в игровых приставках Sony PlayStation 3. В процессе создания этого процессора были приняты весьма интересные решения, дающие в итоге очень высокую пиковую производительность (более 200 гигафлопс, правда, только для вещественной арифметики одинарной точности), но требующие в качестве платы более сложного программирования.

    Прежде всего отметим, что процессор Cell имеет существенно "неоднородное" устройство. Он состоит из одного двухъядерного Power Processor Element (PPE) и 8 Synergistic Processor Element (SPE). PPE построен на архитектуре PowerPC, и "отвечает" в процессоре Cell за исполнение кода общего назначения (операционной системы в частности), а также контролирует работу потоков на сопроцессорах SPE. Ядра PPE 64-разрядны и, также как и Power6, используют поочередный (in-order) порядок исполнения команд. PPE имеет блок векторных операций Vector Multimedia eXtensions (VMX), кэш первого уровня размеров 64 Кб (по 32 Кб на кэш инструкций и данных) и кэш второго уровня размером 512 Кб.

    В отличие от PPE SPE-ядра представляют собой специализированные векторные процессоры, ориентированные на быструю потоковою работу с SIMD-инструкциями. Архитектура SPE довольно проста: четыре блока для работы с целочисленными векторными операциями и четыре блока для работы с числами с плавающей запятой. Большинство арифметических инструкций представляют данные в виде 128-разрядных векторов, разделённых на четыре 32-битных элемента. Каждый SPE оснащён 128 регистрами, разрядность которых – 128-бит. Вместо кэша первого уровня SPE содержит 256 Кб собственной "локальной памяти" (local memory, также называемой local store или LS) разделённой на четыре отдельных сегмента по 64 Кб каждый, а также DMA-контроллер, который предназначен для обмена данными между основной памятью (RAM) и локальной памятью SPE (LS), минуя PPE. Доступ к LS составляет 6 тактов, что больше, чем время обращения к кэшу первого уровня, но меньше, чем к кэшу второго для большинства современных процессоров. SPE-ядра, также как и PPE, используют in-order исполнение инструкций.

    (рис 1.5) Процессор Cell

    Частота всех ядер в процессоре Cell составляет 3,2 ГГц, что дает производительность одного SPE в 3,2 ? 4 ? 2 = 25,6 гигафлопс (последняя двойка в произведении за счет двух конвейеров, позволяющих за один такт выполнять операции умножения и сложения над вещественными числами). Таким образом, пиковая производительность всего процессора Cell получается превышающей 200 гигафлопс.

    Модель программирования под процессор Cell "изначально" многопоточная, поскольку на SPE могут выполняться только специализированные потоки. Данные, с которыми они работают, должны располагаться в LS, соответственно типичным подходом является их предвыборка. В целом Cell весьма эффективно справляется с "потоковой" обработкой, характерной для мультимедиа, для задач кодирования, сжатия и т.д.

    Основное отличие процессора PowerXCell™ 8i от своего "предка" состоит в значительном улучшении работы с вещественными числами двойной точности, что позволило довести пиковую производительность на них до уровня в 100 гигафлопс. Кроме того PowerXCell™ 8i производится по 65 нм технологии, в отличие от 90 нм, использующихся в Cell. Наконец, в PowerXCell™ 8i был кардинально (до 32 Гб) увеличен объем поддерживаемой памяти.

    В настоящий момент в Top500 три системы построены на процессорах PowerXCell 8i, в том числе лидер списка. Как и ранее, приведем усредненные данные из списка Top500 по этим трем системам. Отношение "показанная мощность/пиковая мощность" систем на основе процессоров PowerXCell 8i составляет в 31-м списке 74%, при этом "удельная мощность" в расчете на одно ядро равна 8,36 гигафлопс (то есть порядка 80 гигафлопс на процессор).

    1.2.4. Процессоры Sun UltraSPARC T1 и Sun UltraSPARC T2

    Начиная разработку микроархитектуры UltraSPARC Architecture, компания Sun Microsystems подошла к процессу с позиций, существенно отличающихся от остальных производителей. В многоядерных процессорах Intel, AMD и IBM каждое ядро фактически является полноценным исполнительным устройством, ориентированным на выполнение кода общего назначения, а в процессорах семейства Cell SPE-ядра, напротив, в принципе не могут исполнять такой код и, по сути, являются сопроцессорами. В основу процессоров UltraSPARC T1 (кодовое имя Niagara), выпущенных на рынок в 2005 году и UltraSPARC T2 (кодовое имя Niagara-2), выпущенных в 2007, положена идея "многопоточности" для достижения высокой производительности не путем ускорения выполнения одного потока команд, а за счет обработки большого числа потоков в единицу времени. Как результат процессоры UltraSPARC T1 способны выполнять 32 потока одновременно (на восьми "четырехпоточных" ядрах), а процессоры UltraSPARC T2 – 64 потока (на восьми "восьмипоточ ных" ядрах). Эта многопоточность аппаратная (как, например, HyperThreading у компании Intel), то есть операционная система воспринимает UltraSPARC T1 и UltraSPARC T2 как 32 и 64 процессора соответственно.

    В обоих процессорах компания Sun реализовала технологию, названную ими CoolThreads, позволяющую значительно снизить энергопотребление – TDP процессоров UltraSPARC T1 не превышает 79 Вт (по 2,5 ватта на поток), процессоров UltraSPARC T2 – 123 Вт (всего 2 ватта на поток).

    (рис 1.6) Процессор Sun UltraSPARC T1

    Технические характеристики процессора Sun UltraSPARC T1:

  • Тактовая частота: 1,0 или 1,2 ГГц.
  • Число ядер: 8 (по 4 потока на каждое).
  • Кэш инструкций первого уровня: 16 Кб на каждое ядро.
  • Кэш данных первого уровня: 8 Кб на каждое ядро.
  • Кэш второго уровня: 3 Мб (общий на все ядра).
  • Интерфейс JBUS с пиковой пропускной способностью 3,1 Гб/с, 128-битной шиной частотой от 150 до 200 МГц.
  • 90 нм технологический процесс.
  • Энергопотребление: 72 Вт, пиковое – 79 Вт.
  • Переключение между потоками в процессоре UltraSPARC T1 осуществляется по циклической схеме на каждом такте, т.е. в каждый конкретный момент времени активен только один из четырех потоков ядра. Однако в случае, если в потоке возникает простой (например, при кэш-промахе), ядро переключается на работу с другим потоком. Такая стратегия позволяет скрыть возникающие задержки доступа к памяти при наличии достаточного количества потоков исполнения. Ядра UltraSPARC T1 по функциональности аналогичны процессорам предыдущего поколения UltraSPARC III, но существенно упрощены архитектурно, например, сокращены возможности прогноза ветвлений и спекулятивного выполнения команд, а число стадий конвейера уменьшено до шести (14 в UltraSPARC III).

    Интересная особенность процессоров UltraSPARC T1 и T2 – наличие встроенного в ядро криптографического модуля (сопроцессора), реализующего на аппаратном уровне алгоритм RSA с 2048-разрядными ключами. Сопроцессор ядер в UltraSPARC T2 дополнительно поддерживает алгоритмы шифрования DES, 3DES, RC4, AES, SHA, MD5, CRC, а также алгоритм генерации случайных чисел.

    Основной недостаток процессора UltraSPARC T1 – наличие в процессоре только одного блока вычислений с плавающей точкой, доступного для всех потоков всех ядер. В процессоре UltraSPARC T2 эту проблему решили – у каждого ядра есть собственный модуль для выполнения вещественных операций. Также в UltraSPARC T2 была поднята максимальная тактовая частота – до 1,4 ГГц. Плюс увеличен объем кэша второго уровня – до 4 Мб, однако в отличие от UltraSPARC T1 кэш не общий, а раздельный – по 512 Кб на каждое ядро. Кроме того, в процессор интегрированы два 10-Gbit контроллера Ethernet и контроллер шины PCI Express.

    1.3. Ускорители

    Технологический мир сегодня пронизан конвергенцией – взаимным влиянием и даже взаимопроникновением технологий, стиранием границ между ними, возникновением многих интересных результатов на стыке областей в рамках междисциплинарных работ. Одно из проявлений этого явления – "игра" основных производителей аппаратных составляющих компьютеров на "чужих полях". Так компании NVIDIA и ATI (последняя теперь в составе компании AMD), накопив опыт и поняв, что пиковая мощность их продуктов уже стала сравнима с кластерами "средней руки", от выпуска графических ускорителей начали движение на рынок высокопроизводительных решений, представив соответствующие продукты (семейства NVIDIA $$\to$$ Tesla™ и ATI FireStream™). Напротив, компании, традиционно выпускавшие процессоры и серверные решения, взялись осваивать область мультимедиа: компания Intel разрабатывает многопоточное векторное графическое устройство Larrabee [6], компания IBM в составе альянса STI создала, как мы уже обсуждали, процессор Cell, изначально ориентированный именно на быструю обработку мультимедиа информации. Никуда не делись и типичные ускорители вычислений, способные существенно добавить мощности даже обычным "персоналкам" – на этом направлении работает, например, компания ClearSpeed Technology [7].

    Как следствие, перед обычными пользователями, желающими попробовать "с чем едят" суперкомпьютерные технологии возникает большой и не всегда просто осуществляемый выбор. Попытаемся немного прокомментировать возможности двух из представленных выше систем: ClearSpeed™ Advance™ X620 и NVIDIA $$\to$$ Tesla™ D870.

    1.3.1. Ускоритель вычислений ClearSpeed™ Advance™ X620

    ClearSpeed™ Advance™ X620 – это ускоритель операций над данными с плавающей запятой, представленных в формате с двойной точностью. Ускоритель является сопроцессором, разработанным специально для серверов и рабочих станций, которые основаны на 32-х или 64-х битной х86 архитектуре, и построен на базе двух процессоров CSX600 со 194 вычислительными ядрами. X260 подключается к PCI-X разъему на материнской плате. Среда разработки под X260 основана на языке C и включает SDK, а также набор инструментов для написания и отладки программ.

    Технические характеристики X260:

  • 2 процессора CSX600, работающих на частоте 210 МГц.
  • Каждый CSX600 содержит 97 ядер (из них 96 в poly-исполнительном блоке и 1 в mono-исполнительном блоке).
  • Пиковая производительность X260 – 66 гигафлопс.
  • Память 1 Гб DDR2 DRAM 64-bit (по 0,5 Гб на каждый процессор).
  • Пиковая пропускная способность шины памяти 3,2 Гб/с.
  • Подключается к ПК через PCI-X разъем материнской платы.
  • Максимальная потребляемая мощность: 43 Вт.
  • Рабочий диапазон температур: 10..50?C.
  • Ускоритель X260 поддерживает операционные системы семейств Linux (Red Hat, SUSE) и Windows (XP, 2003 Server). Для работы с X260 необходимо установить специальный драйвер.

    (рис 1.7) Ускоритель ClearSpeed Advance X260

    При работе с ускорителем программист может использовать несколько уровней памяти:

  • каждый mono-процессор обладает локальной памятью (mono local memory) размером 128 Кб;
  • каждый poly-процессор обладает локальной памятью (poly local memory) размером 6 Кб;
  • все процессоры во всех блоках имеют доступ к общей памяти устройства (global memory = device memory) размером 1024 Мб.
  • Главное (хост) приложение, использующее возможности X620 состоит из двух частей:

  • программа, выполняющаяся на главном процессоре;
  • программа, которая выполняется на ускорителе.
  • ClearSpeed™ Advance™ X620 обычно используется в качестве сопроцессора для ускорения внутренних циклов программы, достигающегося за счет использования стандартных математических библиотек, разработанных ClearSpeed. Если в приложении происходит вызов функции, поддерживаемой математическими библиотеками ClearSpeed, то библиотека сама анализирует возможность ее ускорения. В зависимости от выполненного анализа функция начинает выполняться либо на главном процессоре, либо перехватывается ускорителем. Этот механизм широко используется в ряде математических приложений, например в MATLAB.

    Если в приложении происходит вызов функции, не поддерживаемой библиотеками ClearSpeed, то программист, в случае необходимости, может сам реализовать ее, используя имеющийся инструментарий.

    1.3.2. Настольный суперкомпьютер NVIDIA Tesla D870

    В 2007 году компания NVIDIA представила продукты семейства Tesla™ для построения высокопроизводительных вычислительных систем. Семейство включает вычислительный процессор NVIDIA $$\to$$ Tesla™ C870, приставной суперкомпьютер NVIDIA $$\to$$ Tesla™ D870 и вычислительный сервер NVIDIA $$\to$$ Tesla™ S870. Два последних решения построены на двух и четырех процессорах C870 соответственно. Сервер S870 выпускается в 1U форм-факторе и предназначен для построения на его основе кластерных решений. Его обсуждение выходит за рамки данного материала.

    (рис 1.8) Внешний вид NVIDIA Tesla D870

    Настольный (в терминологии компании NVIDIA приставной) суперкомпьютер NVIDIA $$\to$$ Tesla™ D870 конструктивно представляет собой два процессора C870, объединенных в небольшом корпусе. Необходимым условием для подключения D870 к компьютеру является наличие не менее двух PCI Express разъемов, в первом должна быть установлена видеокарта NVIDIA не менее чем 8ххх серии, а во второй ставится специальная плата-переходник, к которой и подключается D870.

    Технические характеристики D870:

  • 2 платы NVIDIA $$\to$$ Tesla™ C870.
  • Каждый процессор C870 содержит 128 скалярных процессора с частотой 1,35 ГГц.
  • Пиковая производительность D870 – 1 терафлопс.
  • Память 3 Гб GDDR3 384-bit (по 1,5 Гб на каждый процессор).
  • Пиковая пропускная способность шины памяти 76,8 Гб/с.
  • Подключается кабелем к специальной плате-переходнику, установленной в разъем PCI Express x8 или x16.
  • Максимальный уровень шума 40 дБ.
  • Максимальная потребляемая мощность 520 Вт.
  • Суперкомпьютер D870 поддерживает операционные системы семейств Windows, Linux, Mac OS. В комплект поставки входят следующие компоненты (необходимо устанавливать в указанном порядке): CUDA Driver, CUDA Toolkit, CUDA SDK.

    CUDA (Compute Unified Device Architecture) – программно аппаратное решение, позволяющее использовать видеопроцессоры для вычислений общего назначения. Возможность программирования видеопроцессоров компании NVIDIA на CUDA существует, начиная с семейства видеокарт 8ххх. Разработка программ для выполнения на D870 происходит таким же способом.

    С точки зрения программиста, D870 представляет собой набор независимых мультипроцессоров. Каждый мультипроцессор состоит из нескольких независимых скалярных процессоров, двух модулей для вычисления математических функций, конвейера, а также общей памяти.

    CUDA позволяет создавать специальные функции (ядра, kernels), которые выполняются параллельно различными блоками и потоками, в отличие от обычных C-функций. При запуске ядра блоки распределяются по доступным мультипроцессорам. Мультипроцессор занимается распределением, параллельным выполнением потоков внутри блока и их синхронизацией. Каждый поток независимо исполняется на одном скалярном процессоре с собственным стеком инструкций и памятью.

    CUDA предоставляет программисту доступ к нескольким уровням памяти:

  • каждый поток обладает локальной памятью;
  • все потоки внутри блока имеют доступ к быстрой общей памяти блока, время жизни которой совпадает со временем жизни блока; память блока разбита на страницы, доступ к данным на разных страницах осуществляется параллельно;
  • все потоки во всех блоках имеют доступ к общей памяти устройства.
  • Всем потокам также доступны два вида общей памяти для чтения: константная и текстурная, они кэшируются. Так же как и в общей памяти устройства, данные сохраняются на протяжении работы приложения.

    (рис 1.9) Мини-кластер Orion Multisystems

    1.4. Мини-кластеры

    Были времена, когда кластеры собирали на основе обычных рабочих станций. Таков, например, был первый известный кластер Beowulf, собранный летом 1994 года в научно-космическом центре NASA из 16 компьютеров на базе процессоров 486DX4 с тактовой частотой 100 MHz. Связь узлов в этом кластере осуществлялась посредством 10 Мбит/с сети, невероятно медленно по сегодняшним меркам. Однако довольно быстро стало понятно, что каждый отдельный узел кластера не нуждается во всем многообразии комплектующих, из которых состоит обычный "отдельно стоящий" компьютер. В действительности все, что должно быть в каждом узле, – процессор, память, жесткий диск с размером достаточным, чтобы установить на него операционную систему, и сетевой интерфейс. Это понимание привело к тому, что характерным форм-фактором для стоечных серверов, из которых собирают современные кластеры, стал 1U с высотой порядка 4,5 см. Идея "упаковать" некоторое количество узлов в небольших размеров корпус так, чтобы кластер не требовал отдельного помещения, что называется, лежала на поверхности. Мы уже упоминали про мини-кластер RenderCube. Еще одним примером подобного подхода является мини-кластер, представленный в 2005 году стартап-компанией Orion Multisystems, включающий до 96 процессоров и до 192 Гб памяти [8].

    В 2006 году свои решения в этой нише начала поставлять российская компания "Т-Платформы", сначала на основе процессоров компании AMD, а позднее и компании Intel.

    1.4.1. Персональный суперкомпьютер T-Forge Mini

    T-Forge Mini – компактный суперкомпьютер, габаритные размеры (360?321?680 мм) и небольшая масса которого позволяют установить его непосредственно на рабочем месте сотрудника. Уровень шума T-Forge Mini не превышает 45 децибел, что позволяет использовать мини-кластер в том числе и в офисных условиях.

    (рис 1.10) Мини-кластер T-Forge Mini

    Технические характеристики мини-кластера T-Forge Mini:

  • До 4-х двухпроцессорных узлов на базе двухъядерных процессоров AMD Opteron™ или AMD Opteron™ HE с низким энергопотреблением, объединенных сетью Gigabit Ethernet.
  • Память до 64 Гб.
  • До 4-х устройств HDD SATA общим объемом до 2 Тб.
  • 4 блока питания мощностью 350 Вт.
  • До 9-ти портов Gigabit Ethernet.
  • Контроль частоты вращения вентиляторов.
  • Видео-карта ATI Rage XL 8Mb.
  • Плата удаленного управления сервером с поддержкой стандарта IPMI (опционально).
  • Операционная система: ОС SUSE Linux Enterprise Server 9, RedHat Enterprise Linux 4 или Microsoft Windows Compute Cluster Server 2003.
  • Один из первых мини-кластеров T-Forge Mini в максимальной конфигурации (не считая объема памяти) с пиковой производительностью в 70 гигафлопс был приобретен ННГУ в рамках нацпроекта "Образование" в 2006 году [9] и используется при выполнении многих образовательных и научных проектов.

    1.4.2. Мини-кластер T-Edge Mini

    Мини-кластер T-Edge Mini несколько крупнее, чем T-Forge Mini (габаритные размеры T-Edge Mini 530?360?700 мм), да и масса под 100 кг уже не позволяет назвать его "настольным", но под столом он вполне способен разместиться. Дополнительный объем был потрачен компанией-разработчиком с толком. Во-первых, размещен дополнительный вычислительный узел, во-вторых, поддерживаются четырехъядерные процессоры, в-третьих, в качестве интерконнекта может быть использован не только Gigabit Ethernet, но и Infiniband.

    Технические характеристики мини-кластера T-Edge Mini:

  • До 5-ти двухпроцессорных узлов на базе четырехъядерных процессоров Intel $$\to$$ Xeon $$\to$$, объединенных сетью Gigabit Ethernet или Infiniband.
  • Память до 64 Гб.
  • 3 блока питания мощностью 600 Вт.
  • Адаптер сервисной сети, осуществляющий мониторинг и администрирование управляющего узла по протоколу RS 485 ServNET v.2.0.
  • Порты ввода/вывода на передней панели: VGA port, USB ports, Keyboard and Mouse.
  • Порты ввода/вывода на задней панели: 2 RJ-45 GbE ports, 1 RJ-45 FE port, 4 порта для мониторинга узлов по протоколу RS 485.
  • Встроенный DVD привод.
  • Встроенный KVM and GbE коммутатор.
  • Операционная система: ОС SUSE Linux Enterprise Server 9, RedHat Enterprise Linux 4 или Microsoft Windows Compute Cluster Server 2003.
  • (рис 1.11) Мини-кластер T-Forge Mini

    В 2007 году ННГУ в рамках нацпроекта "Образование" приобрел два мини-кластера T-Edge Mini, построенных на процессорах Intel $$\to$$ Xeon $$\to$$ 5320 (1,86 ГГц) с 20 Гб оперативной памяти и дисковой подсистемой на 1,25 Тб. В качестве интерконнекта в одном из мини-кластеров использован Gigabit Ethernet, во втором Infiniband. Пиковая производительность каждого – 297 гигафлопс.

    1.5. Источники рисунков

  • Рис. 1.1.http://www.rendercube.com/gallery.htm.
  • Рис. 1.2.http://www.overclockers.ru/lab/22660.shtm.
  • Рис. 1.3.http://www.amd.com/us-en/Processors/ProductInformation/0,,30_118_15331_15332%5E15334,00.html.
  • Рис. 1.4.http://www-01.ibm.com/support/docview.wss?uid=tss1prs3036aid=1.
  • Рис. 1.6.http://ru.wikipedia.org/wiki/UltraSPARC_T1.
  • Рис. 1.7. – "ClearSpeed™ Advance™ X620 Product Datasheet".
  • Рис. 1.8. – System Specification. NVIDIA Tesla D870 Deskside GPU Computing System – [http://www.nvidia.com/docs/IO/43395/D870-SystemSpec-SP-03718-001_v01.pdf].
  • Рис. 1.9. – "Мини-кластер в одном корпусе: 96 процессоров и 192 Гб RAM" – [http://www.ixbt.com/staticnews/04/12/67.html].
  • Рис. 1.10. – "Готовые решения компании "Т-Платформы" для прикладных задач" – [http://www.t-platforms.ru/pdf/T-Platforms_Turn-key_Solutions.pdf].
  • Страницы:

    За несколько тысячелетий развития цивилизации, более-менее известных нам благодаря историкам, человек научился с удивительной легкостью оперировать весьма большими и практически непредставимыми числами – благодаря переписям населения мы, по крайней мере совместно, способны "сосчитать" до сотен миллионов, но вот что такое 9,1 * 10-31 килограмма или 6,022 * 1023 моль-1 вряд ли кто может оценить, если только не напомнить, что это масса электрона и число Авогадро соответственно. Более того, человек не только сам научился считать, но и создал себе неутомимого помощника, на которого переложил подавляющее большинство расчетных и перекладывает все больше остальных задач. Сегодня "вычислительные устройства" сопровождают нас повсеместно: от сотовых телефонов до стиральных машин с программным управлением; от электронных книг до автоматических пылесосов, самостоятельно убирающих квартиру в отсутствие хозяина. Однако на фоне этого неудержимого процесса "компьютеризации" человечества долгое время нетронутой оставалась область, в которой звучат такие внушающие уважение далеким от компьютеров людям, как "суперкомпьютер", "терафлоп", "высокопроизводительные вычисления". В последнее время и здесь ситуация изменилась $$\dots$$

    1.1. От суперкомпьютера к мини-кластеру

    "Citius, Altius, Fortius""Быстрее, Выше, Сильнее" – лат. – девиз Олимпийских игр современности, как ни к какой другой области, применим к вычислительной технике. Воплощение в жизнь не раз видоизменявшего свою исходную формулировку, но до сих пор действующего эмпирического закона сформулированного в 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 см.

    (рис 1.1) Мини-кластер "RenderCube"

    Тенденция "персонализации" супервычислений в последнее время развивается все активнее и недавно была подхвачена в том числе и производителями видеокарт, мощности которых возросли настолько, что возникло естественное желание использовать их не только в графических расчетах, но и в качестве ускорителей вычислений общего назначения. Соответствующие решения представлены в настоящее время компанией NVIDIA (семейство NVIDIA $$\to$$ Tesla™) и компанией AMD (семейство ATI FireStream™) и демонстрируют в силу специфики внутреннего устройства потрясающую (в сравнении с универсальными процессорами) пиковую производительность, превышающую 1 терафлопс.

    1.2. Многоядерность – два, четыре, восемь – кто больше?

    Несколько лет назад в моде были казавшиеся вполне обоснованными прогнозы, когда именно будет преодолен тот или иной порог по тактовой частоте процессоров. Четыре-пять гигагерц виделись практически свершившимся фактом, десять маячили где-то недалеко впереди. Однако прогнозы эти на долгое время так и остались прогнозами. В некоторый момент оказалось, что тепло, выделяемое процессором, становится настолько большим, что о стабильной работе на частотах выше четырех гигагерц в условиях, характерных для обычных персональных компьютеров, и говорить не приходитсяЛишь в 2007 году компания IBM сумела преодолеть в серийно-выпускаемых процессорах порог частоты в 4 гигагерца. . Энтузиасты, используя дополнительное охлаждение, вплоть до жидкого азота, научились разгонять процессоры производства Intel выше 6 гигагерц, в отдельных случаях до 7 и даже 8, но о стабильной продолжительной работе на таких частотах речь не идет, лишь о прохождении ряда общепринятых сообществом "оверклокеров" тестов. Очевидно, что индустрия по этому пути пойти не могла. Вместе с тем, закон Мура усилиями инженеров продолжал свое победное шествие, и вновь появляющиеся транзисторы при очередном улучшении технологических норм нужно было как-то употребить в дело. Решение было найдено в многоядерности, и сегодня это фактически основной путь развития процессоровСправедливости ради надо отметить, что идет не только количественный рост, выраженный в числе ядер, но и качественный в виде значительных "архитектурных" изменений , который тем или иным способом реализуют все основные игроки на этом рынке.

    1.2.1. Процессоры Intel Core и Intel Xeon

    Как просто было когда-то сравнивать процессоры компании Intel между собой. Все знали, есть Pentium, есть его "урезанный" вариант Celeron, а в остальном, чем выше частота, тем лучше. Эта простота была следствием того факта, что в формуле, определяющей производительность вычислительной системы "тактовая частота процессора ? число инструкций, выполняемых за один такт (Instructions Per Cycle, IPC)" переменной величиной была только частота. Необходимо, конечно, отметить, что получаемая по этой формуле величина, дает только так называемую "пиковую производительность", приблизиться к которой на практике можно лишь на отдельных специально подобранных задачах. Именно поэтому сравнение вычислительных систем, в том числе в списке Top500 и аналогичных, выполняется на основе производительности, показанной на стандартном тесте, в качестве которого повсеместно используется LINPACK [5]. Как только наращивание тактовой частоты прекратилось, компании Intel понадобился другой способ описания и градации выпускаемых процессоров. Сегодня все процессоры производства Intel делятся, прежде всего, по назначению: для настольных систем, ноутбуков, серверов и рабочих станций и т.д. Затем в каждом классе выделяют серии процессоров, отличающиеся между собой по некоторым ключевым характеристикам. В классе настольных и мобильных систем сегодня "царствуют" представители семейства Intel $$\to$$ Core™2, в серверном сегменте – процессоры Intel $$\to$$ Xeon $$\to$$, при этом и те и другие построены на микроархитектуре Intel $$\to$$ Core™, пришедшей в 2006 году на смену архитектуре Intel $$\to$$ NetBurst™.

    (рис 1.2) Архитектура Intel Core™

    Особенностям микроархитектуры Intel $$\to$$ 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-разрядность, плюс в очередной раз доработанное предсказание ветвлений, плюс многое, оставшееся за кадром $$\dots$$

    Приведем технические данные текущих лидеров в классе настольных и серверных процессоров.

    Процессор 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 гигафлопс (необходимо заметить, конечно, что значительная часть этих систем введена в строй уже несколько лет назад и построена не на новейших процессорах).

    1.2.2. Процессоры AMD Phenom™ и AMD Opteron™

    Компания AMD основана в 1969 году (всего на год позже, чем Intel) и в сознании рядового пользователя прочно занимает место главного конкурента Intel на рынке процессоров для настольных систем и отчасти на рынке серверных, практически всегда при этом выступая в роли догоняющего. Если принимать во внимание только "внешние" факторы, вроде рыночной доли, то ситуация, действительно, может быть воспринята именно так. И в этом свете основной успех компании за последнее десятилетие связан с выпуском в 2003 году 64-битных процессоров AMD Opteron™, быстро завоевавших популярность и позволивших AMD значительно упрочить свое положение, в том числе в сегменте высокопроизводительных решений. Достаточно отметить, что в 28-м списке Top500 (ноябрь 2006) доля систем, построенных на основе процессоров AMD, достигла своего исторического максимума и составила 22,6%, против 52,6% у компании Intel и 18% у компании IBM. Однако кроме такого чисто количественного сравнения, в котором AMD неизменно проигрывает своим конкурентам, есть еще показатели качественные, и тут компания нередко за прошедшие годы бывала первопроходцем и реализовывала действительно интересные архитектурные решения.

    Среди прочего это и интеграция в процессор северного моста, что дает более быстрый доступ к оперативной памяти и использование Direct Connect Architecture для взаимодействия процессоров между собой посредством высокоскоростной шины HyperTransport™, позволяющей без существенных потерь в производительности объединять в рамках одной системы до 8 процессоров Opteron. Кроме того нужно отметить, что в процессорах Opteron реализована "честная" четырехъядерность (Native Quad-Core Design), двухпотоковое управление 128-битными SSE-инструкциями, выполнение до четырех операций с плавающей точкой двойной точности за такт, расширенная технология оптимизации энергопотребления (Enhanced AMD PowerNow!) и многое другое. Последними серверными процессорами компании AMD являются четырехъядерные модели Opteron 3G на ядре Barcelona.

    На рынке настольных систем основное оружие компании AMD сегодня – процессоры AMD Phenom™. Процессоры Phenom построены на той же микроархитектуре (AMD K10), что и серверные Opteron. Помимо уже отмеченных особенностей можно упомянуть наличие в процессорах Phenom кэша третьего уровня, пиковую пропускную способность шины HyperTransport до 16 Гб/с, поддержку 128-битных операций SSE, работу кэша второго уровня на частоте ядра, технологию улучшенной защиты от вирусов (NX бит / Enhanced Virus Protection). Текущее поколение процессоров Phenom выпускается по технологии 65 нм.

    (рис 1.3) Архитектура AMD Phenom™

    Приведем технические данные текущих лидеров в классе настольных и серверных процессоров.

    Процессор AMD Phenom™ X4 Quad-Core 9950

    Тактовая частота: 2,6 ГГц.

    Число ядер: 4.

    Кэш второго уровня: 2 Мб (по 512 Кб на каждое ядро).

    Кэш третьего уровня: 2 Мб (общий на все ядра).

    Частота интегрированного контроллера памяти: 1066 МГц.

    Технологический процесс: 65 нанометров.

    Процессор Third-Generation AMD Opteron™ 8360 SE

    Тактовая частота: 2,5 ГГц.

    Число ядер: 4.

    Кэш второго уровня: 2 Мб (по 512 Кб на каждое ядро).

    Кэш третьего уровня: 2 Мб (общий на все ядра).

    Частота интегрированного контроллера памяти: 2000 МГц.

    Технологический процесс: 65 нанометров.

    В заключение, как и для процессоров компании Intel, приведем усредненные данные из списка Top500. Для систем в Top500, построенных на процессорах компании AMD, отношение "показанная мощность/пиковая мощность" составляет в 31-м списке 71%, при этом "удельная мощность" в расчете на один процессор/ядро равна 4,48 гигафлопс. Как и ранее отметим, что значительная часть этих систем построена не на новейших процессорах.

    1.2.2. Процессоры IBM Power6

    История компании IBM значительно длиннее, чем у Intel и AMD, и в отличие от последних IBM никогда не производила только процессоры. Фактически, компания, говоря сегодняшним языком, всегда пыталась поставлять "готовые решения". Однако обсуждения всего списка продукции IBM выходит за рамки данного материала, и мы остановимся только на процессорах, которые выпускает компания сегодня, и на основе которых строит как сервера "начального" уровня, так и суперкомпьютеры вроде Roadrunner или BlueGene.

    Микропроцессорная архитектура Power (расшифровывается как Performance Optimization With Enhanced RISC) имеет не менее богатую историю, чем сама компания IBM. Начиная с 1990 года, когда были выпущены первые компьютеры на основе процессоров Power, и по сегодняшний день архитектура постоянно развивается, с каждым поколением процессоров привнося значительные новшества. Текущая версия процессоров Power – Power6 выпущена в середине 2007 года, тем не менее уже 7 систем в 31-м списке Top500 построено на основе этих процессоров.

    (рис 1.4) Процессор IBM Power6

    Процессор Power6 выпускается по 65 нм технологическому процессу. Максимальная частота серийно выпускаемых образцов на сегодня равна 4,7 ГГц.

    Процессоры Power6 имеют два ядра, способных выполнять по два потока команд одновременно, по 4 Мб кэша второго уровня на каждое ядро, 32 Мб кэша третьего уровня на отдельном кристалле, присоединенного к шине с пропускной способностью 80 Гб/с. Каждое ядро содержит по два блока работы с целыми числами и числами с плавающей точкой соответственно. Однако главной изюминкой процессора Power6 является блок десятичных вычислений с плавающей точкой, аппаратно реализующий более 50 команд для выполнения математических операций над вещественными числами в десятичном представлении и перевода из двоичной системы счисления в десятичную и обратно. Второе не менее важное отличие Power6 от процессоров предыдущих серий – отказ IBM от внеочередного (out-of-order) исполнения команд, что стало одним из основных факторов, позволившим поднять частоту процессоров выше 4 ГГц.

    Процессоры Power6 поставляются в многочиповом корпусе, аналогично Power5, вмещающем до 4 процессоров и общий кэш третьего уровня. В многопроцессорной конфигурации возможна "связка" из 32 процессоров посредством двух шин межпроцессорного обмена с пропускной способностью 50 Гб/с.

    В заключение, как и ранее, приведем усредненные данные из списка Top500. Для систем в Top500, построенных на процессорах IBM семейства Power, отношение "показанная мощность/пиковая мощность" составляет в 31-м списке 77%, при этом "удельная мощность" в расчете на один процессор/ядро равна 3,71 гигафлопс. Как и ранее отметим, что значительная часть этих систем построена не на новейших процессорах.

    Если же брать в расчет только системы на процессорах Power6, то картина несколько меняется: отношение "показанная мощность/пиковая мощность" для этих систем составляет 65%, а "удельная" на одно ядро – 12,14 гигафлопс. Существенно меньший показатель по показанной мощности не в последнюю очередь объясняется отказом от внеочередного исполнения команд, затрудняющего и без того непростую задачу достижения пиковой производительности. Что касается "удельной мощности", то здесь с наилучшей стороны проявляет себя высокая тактовая частота процессоров Power6.

    1.2.3. Процессоры PowerXCell™ 8i

    Рассказ о процессоре PowerXCell™ 8i начать нужно, конечно же, с его прямого предка – процессора Cell, разработанного альянсом STI (Sony, Toshiba, IBM) в первую очередь для использования в игровых приставках Sony PlayStation 3. В процессе создания этого процессора были приняты весьма интересные решения, дающие в итоге очень высокую пиковую производительность (более 200 гигафлопс, правда, только для вещественной арифметики одинарной точности), но требующие в качестве платы более сложного программирования.

    Прежде всего отметим, что процессор Cell имеет существенно "неоднородное" устройство. Он состоит из одного двухъядерного Power Processor Element (PPE) и 8 Synergistic Processor Element (SPE). PPE построен на архитектуре PowerPC, и "отвечает" в процессоре Cell за исполнение кода общего назначения (операционной системы в частности), а также контролирует работу потоков на сопроцессорах SPE. Ядра PPE 64-разрядны и, также как и Power6, используют поочередный (in-order) порядок исполнения команд. PPE имеет блок векторных операций Vector Multimedia eXtensions (VMX), кэш первого уровня размеров 64 Кб (по 32 Кб на кэш инструкций и данных) и кэш второго уровня размером 512 Кб.

    В отличие от PPE SPE-ядра представляют собой специализированные векторные процессоры, ориентированные на быструю потоковою работу с SIMD-инструкциями. Архитектура SPE довольно проста: четыре блока для работы с целочисленными векторными операциями и четыре блока для работы с числами с плавающей запятой. Большинство арифметических инструкций представляют данные в виде 128-разрядных векторов, разделённых на четыре 32-битных элемента. Каждый SPE оснащён 128 регистрами, разрядность которых – 128-бит. Вместо кэша первого уровня SPE содержит 256 Кб собственной "локальной памяти" (local memory, также называемой local store или LS) разделённой на четыре отдельных сегмента по 64 Кб каждый, а также DMA-контроллер, который предназначен для обмена данными между основной памятью (RAM) и локальной памятью SPE (LS), минуя PPE. Доступ к LS составляет 6 тактов, что больше, чем время обращения к кэшу первого уровня, но меньше, чем к кэшу второго для большинства современных процессоров. SPE-ядра, также как и PPE, используют in-order исполнение инструкций.

    (рис 1.5) Процессор Cell

    Частота всех ядер в процессоре Cell составляет 3,2 ГГц, что дает производительность одного SPE в 3,2 ? 4 ? 2 = 25,6 гигафлопс (последняя двойка в произведении за счет двух конвейеров, позволяющих за один такт выполнять операции умножения и сложения над вещественными числами). Таким образом, пиковая производительность всего процессора Cell получается превышающей 200 гигафлопс.

    Модель программирования под процессор Cell "изначально" многопоточная, поскольку на SPE могут выполняться только специализированные потоки. Данные, с которыми они работают, должны располагаться в LS, соответственно типичным подходом является их предвыборка. В целом Cell весьма эффективно справляется с "потоковой" обработкой, характерной для мультимедиа, для задач кодирования, сжатия и т.д.

    Основное отличие процессора PowerXCell™ 8i от своего "предка" состоит в значительном улучшении работы с вещественными числами двойной точности, что позволило довести пиковую производительность на них до уровня в 100 гигафлопс. Кроме того PowerXCell™ 8i производится по 65 нм технологии, в отличие от 90 нм, использующихся в Cell. Наконец, в PowerXCell™ 8i был кардинально (до 32 Гб) увеличен объем поддерживаемой памяти.

    В настоящий момент в Top500 три системы построены на процессорах PowerXCell 8i, в том числе лидер списка. Как и ранее, приведем усредненные данные из списка Top500 по этим трем системам. Отношение "показанная мощность/пиковая мощность" систем на основе процессоров PowerXCell 8i составляет в 31-м списке 74%, при этом "удельная мощность" в расчете на одно ядро равна 8,36 гигафлопс (то есть порядка 80 гигафлопс на процессор).

    1.2.4. Процессоры Sun UltraSPARC T1 и Sun UltraSPARC T2

    Начиная разработку микроархитектуры UltraSPARC Architecture, компания Sun Microsystems подошла к процессу с позиций, существенно отличающихся от остальных производителей. В многоядерных процессорах Intel, AMD и IBM каждое ядро фактически является полноценным исполнительным устройством, ориентированным на выполнение кода общего назначения, а в процессорах семейства Cell SPE-ядра, напротив, в принципе не могут исполнять такой код и, по сути, являются сопроцессорами. В основу процессоров UltraSPARC T1 (кодовое имя Niagara), выпущенных на рынок в 2005 году и UltraSPARC T2 (кодовое имя Niagara-2), выпущенных в 2007, положена идея "многопоточности" для достижения высокой производительности не путем ускорения выполнения одного потока команд, а за счет обработки большого числа потоков в единицу времени. Как результат процессоры UltraSPARC T1 способны выполнять 32 потока одновременно (на восьми "четырехпоточных" ядрах), а процессоры UltraSPARC T2 – 64 потока (на восьми "восьмипоточ ных" ядрах). Эта многопоточность аппаратная (как, например, HyperThreading у компании Intel), то есть операционная система воспринимает UltraSPARC T1 и UltraSPARC T2 как 32 и 64 процессора соответственно.

    В обоих процессорах компания Sun реализовала технологию, названную ими CoolThreads, позволяющую значительно снизить энергопотребление – TDP процессоров UltraSPARC T1 не превышает 79 Вт (по 2,5 ватта на поток), процессоров UltraSPARC T2 – 123 Вт (всего 2 ватта на поток).

    (рис 1.6) Процессор Sun UltraSPARC T1

    Технические характеристики процессора Sun UltraSPARC T1:

  • Тактовая частота: 1,0 или 1,2 ГГц.
  • Число ядер: 8 (по 4 потока на каждое).
  • Кэш инструкций первого уровня: 16 Кб на каждое ядро.
  • Кэш данных первого уровня: 8 Кб на каждое ядро.
  • Кэш второго уровня: 3 Мб (общий на все ядра).
  • Интерфейс JBUS с пиковой пропускной способностью 3,1 Гб/с, 128-битной шиной частотой от 150 до 200 МГц.
  • 90 нм технологический процесс.
  • Энергопотребление: 72 Вт, пиковое – 79 Вт.
  • Переключение между потоками в процессоре UltraSPARC T1 осуществляется по циклической схеме на каждом такте, т.е. в каждый конкретный момент времени активен только один из четырех потоков ядра. Однако в случае, если в потоке возникает простой (например, при кэш-промахе), ядро переключается на работу с другим потоком. Такая стратегия позволяет скрыть возникающие задержки доступа к памяти при наличии достаточного количества потоков исполнения. Ядра UltraSPARC T1 по функциональности аналогичны процессорам предыдущего поколения UltraSPARC III, но существенно упрощены архитектурно, например, сокращены возможности прогноза ветвлений и спекулятивного выполнения команд, а число стадий конвейера уменьшено до шести (14 в UltraSPARC III).

    Интересная особенность процессоров UltraSPARC T1 и T2 – наличие встроенного в ядро криптографического модуля (сопроцессора), реализующего на аппаратном уровне алгоритм RSA с 2048-разрядными ключами. Сопроцессор ядер в UltraSPARC T2 дополнительно поддерживает алгоритмы шифрования DES, 3DES, RC4, AES, SHA, MD5, CRC, а также алгоритм генерации случайных чисел.

    Основной недостаток процессора UltraSPARC T1 – наличие в процессоре только одного блока вычислений с плавающей точкой, доступного для всех потоков всех ядер. В процессоре UltraSPARC T2 эту проблему решили – у каждого ядра есть собственный модуль для выполнения вещественных операций. Также в UltraSPARC T2 была поднята максимальная тактовая частота – до 1,4 ГГц. Плюс увеличен объем кэша второго уровня – до 4 Мб, однако в отличие от UltraSPARC T1 кэш не общий, а раздельный – по 512 Кб на каждое ядро. Кроме того, в процессор интегрированы два 10-Gbit контроллера Ethernet и контроллер шины PCI Express.

    1.3. Ускорители

    Технологический мир сегодня пронизан конвергенцией – взаимным влиянием и даже взаимопроникновением технологий, стиранием границ между ними, возникновением многих интересных результатов на стыке областей в рамках междисциплинарных работ. Одно из проявлений этого явления – "игра" основных производителей аппаратных составляющих компьютеров на "чужих полях". Так компании NVIDIA и ATI (последняя теперь в составе компании AMD), накопив опыт и поняв, что пиковая мощность их продуктов уже стала сравнима с кластерами "средней руки", от выпуска графических ускорителей начали движение на рынок высокопроизводительных решений, представив соответствующие продукты (семейства NVIDIA $$\to$$ Tesla™ и ATI FireStream™). Напротив, компании, традиционно выпускавшие процессоры и серверные решения, взялись осваивать область мультимедиа: компания Intel разрабатывает многопоточное векторное графическое устройство Larrabee [6], компания IBM в составе альянса STI создала, как мы уже обсуждали, процессор Cell, изначально ориентированный именно на быструю обработку мультимедиа информации. Никуда не делись и типичные ускорители вычислений, способные существенно добавить мощности даже обычным "персоналкам" – на этом направлении работает, например, компания ClearSpeed Technology [7].

    Как следствие, перед обычными пользователями, желающими попробовать "с чем едят" суперкомпьютерные технологии возникает большой и не всегда просто осуществляемый выбор. Попытаемся немного прокомментировать возможности двух из представленных выше систем: ClearSpeed™ Advance™ X620 и NVIDIA $$\to$$ Tesla™ D870.

    1.3.1. Ускоритель вычислений ClearSpeed™ Advance™ X620

    ClearSpeed™ Advance™ X620 – это ускоритель операций над данными с плавающей запятой, представленных в формате с двойной точностью. Ускоритель является сопроцессором, разработанным специально для серверов и рабочих станций, которые основаны на 32-х или 64-х битной х86 архитектуре, и построен на базе двух процессоров CSX600 со 194 вычислительными ядрами. X260 подключается к PCI-X разъему на материнской плате. Среда разработки под X260 основана на языке C и включает SDK, а также набор инструментов для написания и отладки программ.

    Технические характеристики X260:

  • 2 процессора CSX600, работающих на частоте 210 МГц.
  • Каждый CSX600 содержит 97 ядер (из них 96 в poly-исполнительном блоке и 1 в mono-исполнительном блоке).
  • Пиковая производительность X260 – 66 гигафлопс.
  • Память 1 Гб DDR2 DRAM 64-bit (по 0,5 Гб на каждый процессор).
  • Пиковая пропускная способность шины памяти 3,2 Гб/с.
  • Подключается к ПК через PCI-X разъем материнской платы.
  • Максимальная потребляемая мощность: 43 Вт.
  • Рабочий диапазон температур: 10..50?C.
  • Ускоритель X260 поддерживает операционные системы семейств Linux (Red Hat, SUSE) и Windows (XP, 2003 Server). Для работы с X260 необходимо установить специальный драйвер.

    (рис 1.7) Ускоритель ClearSpeed Advance X260

    При работе с ускорителем программист может использовать несколько уровней памяти:

  • каждый mono-процессор обладает локальной памятью (mono local memory) размером 128 Кб;
  • каждый poly-процессор обладает локальной памятью (poly local memory) размером 6 Кб;
  • все процессоры во всех блоках имеют доступ к общей памяти устройства (global memory = device memory) размером 1024 Мб.
  • Главное (хост) приложение, использующее возможности X620 состоит из двух частей:

  • программа, выполняющаяся на главном процессоре;
  • программа, которая выполняется на ускорителе.
  • ClearSpeed™ Advance™ X620 обычно используется в качестве сопроцессора для ускорения внутренних циклов программы, достигающегося за счет использования стандартных математических библиотек, разработанных ClearSpeed. Если в приложении происходит вызов функции, поддерживаемой математическими библиотеками ClearSpeed, то библиотека сама анализирует возможность ее ускорения. В зависимости от выполненного анализа функция начинает выполняться либо на главном процессоре, либо перехватывается ускорителем. Этот механизм широко используется в ряде математических приложений, например в MATLAB.

    Если в приложении происходит вызов функции, не поддерживаемой библиотеками ClearSpeed, то программист, в случае необходимости, может сам реализовать ее, используя имеющийся инструментарий.

    1.3.2. Настольный суперкомпьютер NVIDIA Tesla D870

    В 2007 году компания NVIDIA представила продукты семейства Tesla™ для построения высокопроизводительных вычислительных систем. Семейство включает вычислительный процессор NVIDIA $$\to$$ Tesla™ C870, приставной суперкомпьютер NVIDIA $$\to$$ Tesla™ D870 и вычислительный сервер NVIDIA $$\to$$ Tesla™ S870. Два последних решения построены на двух и четырех процессорах C870 соответственно. Сервер S870 выпускается в 1U форм-факторе и предназначен для построения на его основе кластерных решений. Его обсуждение выходит за рамки данного материала.

    (рис 1.8) Внешний вид NVIDIA Tesla D870

    Настольный (в терминологии компании NVIDIA приставной) суперкомпьютер NVIDIA $$\to$$ Tesla™ D870 конструктивно представляет собой два процессора C870, объединенных в небольшом корпусе. Необходимым условием для подключения D870 к компьютеру является наличие не менее двух PCI Express разъемов, в первом должна быть установлена видеокарта NVIDIA не менее чем 8ххх серии, а во второй ставится специальная плата-переходник, к которой и подключается D870.

    Технические характеристики D870:

  • 2 платы NVIDIA $$\to$$ Tesla™ C870.
  • Каждый процессор C870 содержит 128 скалярных процессора с частотой 1,35 ГГц.
  • Пиковая производительность D870 – 1 терафлопс.
  • Память 3 Гб GDDR3 384-bit (по 1,5 Гб на каждый процессор).
  • Пиковая пропускная способность шины памяти 76,8 Гб/с.
  • Подключается кабелем к специальной плате-переходнику, установленной в разъем PCI Express x8 или x16.
  • Максимальный уровень шума 40 дБ.
  • Максимальная потребляемая мощность 520 Вт.
  • Суперкомпьютер D870 поддерживает операционные системы семейств Windows, Linux, Mac OS. В комплект поставки входят следующие компоненты (необходимо устанавливать в указанном порядке): CUDA Driver, CUDA Toolkit, CUDA SDK.

    CUDA (Compute Unified Device Architecture) – программно аппаратное решение, позволяющее использовать видеопроцессоры для вычислений общего назначения. Возможность программирования видеопроцессоров компании NVIDIA на CUDA существует, начиная с семейства видеокарт 8ххх. Разработка программ для выполнения на D870 происходит таким же способом.

    С точки зрения программиста, D870 представляет собой набор независимых мультипроцессоров. Каждый мультипроцессор состоит из нескольких независимых скалярных процессоров, двух модулей для вычисления математических функций, конвейера, а также общей памяти.

    CUDA позволяет создавать специальные функции (ядра, kernels), которые выполняются параллельно различными блоками и потоками, в отличие от обычных C-функций. При запуске ядра блоки распределяются по доступным мультипроцессорам. Мультипроцессор занимается распределением, параллельным выполнением потоков внутри блока и их синхронизацией. Каждый поток независимо исполняется на одном скалярном процессоре с собственным стеком инструкций и памятью.

    CUDA предоставляет программисту доступ к нескольким уровням памяти:

  • каждый поток обладает локальной памятью;
  • все потоки внутри блока имеют доступ к быстрой общей памяти блока, время жизни которой совпадает со временем жизни блока; память блока разбита на страницы, доступ к данным на разных страницах осуществляется параллельно;
  • все потоки во всех блоках имеют доступ к общей памяти устройства.
  • Всем потокам также доступны два вида общей памяти для чтения: константная и текстурная, они кэшируются. Так же как и в общей памяти устройства, данные сохраняются на протяжении работы приложения.

    (рис 1.9) Мини-кластер Orion Multisystems

    1.4. Мини-кластеры

    Были времена, когда кластеры собирали на основе обычных рабочих станций. Таков, например, был первый известный кластер Beowulf, собранный летом 1994 года в научно-космическом центре NASA из 16 компьютеров на базе процессоров 486DX4 с тактовой частотой 100 MHz. Связь узлов в этом кластере осуществлялась посредством 10 Мбит/с сети, невероятно медленно по сегодняшним меркам. Однако довольно быстро стало понятно, что каждый отдельный узел кластера не нуждается во всем многообразии комплектующих, из которых состоит обычный "отдельно стоящий" компьютер. В действительности все, что должно быть в каждом узле, – процессор, память, жесткий диск с размером достаточным, чтобы установить на него операционную систему, и сетевой интерфейс. Это понимание привело к тому, что характерным форм-фактором для стоечных серверов, из которых собирают современные кластеры, стал 1U с высотой порядка 4,5 см. Идея "упаковать" некоторое количество узлов в небольших размеров корпус так, чтобы кластер не требовал отдельного помещения, что называется, лежала на поверхности. Мы уже упоминали про мини-кластер RenderCube. Еще одним примером подобного подхода является мини-кластер, представленный в 2005 году стартап-компанией Orion Multisystems, включающий до 96 процессоров и до 192 Гб памяти [8].

    В 2006 году свои решения в этой нише начала поставлять российская компания "Т-Платформы", сначала на основе процессоров компании AMD, а позднее и компании Intel.

    1.4.1. Персональный суперкомпьютер T-Forge Mini

    T-Forge Mini – компактный суперкомпьютер, габаритные размеры (360?321?680 мм) и небольшая масса которого позволяют установить его непосредственно на рабочем месте сотрудника. Уровень шума T-Forge Mini не превышает 45 децибел, что позволяет использовать мини-кластер в том числе и в офисных условиях.

    (рис 1.10) Мини-кластер T-Forge Mini

    Технические характеристики мини-кластера T-Forge Mini:

  • До 4-х двухпроцессорных узлов на базе двухъядерных процессоров AMD Opteron™ или AMD Opteron™ HE с низким энергопотреблением, объединенных сетью Gigabit Ethernet.
  • Память до 64 Гб.
  • До 4-х устройств HDD SATA общим объемом до 2 Тб.
  • 4 блока питания мощностью 350 Вт.
  • До 9-ти портов Gigabit Ethernet.
  • Контроль частоты вращения вентиляторов.
  • Видео-карта ATI Rage XL 8Mb.
  • Плата удаленного управления сервером с поддержкой стандарта IPMI (опционально).
  • Операционная система: ОС SUSE Linux Enterprise Server 9, RedHat Enterprise Linux 4 или Microsoft Windows Compute Cluster Server 2003.
  • Один из первых мини-кластеров T-Forge Mini в максимальной конфигурации (не считая объема памяти) с пиковой производительностью в 70 гигафлопс был приобретен ННГУ в рамках нацпроекта "Образование" в 2006 году [9] и используется при выполнении многих образовательных и научных проектов.

    1.4.2. Мини-кластер T-Edge Mini

    Мини-кластер T-Edge Mini несколько крупнее, чем T-Forge Mini (габаритные размеры T-Edge Mini 530?360?700 мм), да и масса под 100 кг уже не позволяет назвать его "настольным", но под столом он вполне способен разместиться. Дополнительный объем был потрачен компанией-разработчиком с толком. Во-первых, размещен дополнительный вычислительный узел, во-вторых, поддерживаются четырехъядерные процессоры, в-третьих, в качестве интерконнекта может быть использован не только Gigabit Ethernet, но и Infiniband.

    Технические характеристики мини-кластера T-Edge Mini:

  • До 5-ти двухпроцессорных узлов на базе четырехъядерных процессоров Intel $$\to$$ Xeon $$\to$$, объединенных сетью Gigabit Ethernet или Infiniband.
  • Память до 64 Гб.
  • 3 блока питания мощностью 600 Вт.
  • Адаптер сервисной сети, осуществляющий мониторинг и администрирование управляющего узла по протоколу RS 485 ServNET v.2.0.
  • Порты ввода/вывода на передней панели: VGA port, USB ports, Keyboard and Mouse.
  • Порты ввода/вывода на задней панели: 2 RJ-45 GbE ports, 1 RJ-45 FE port, 4 порта для мониторинга узлов по протоколу RS 485.
  • Встроенный DVD привод.
  • Встроенный KVM and GbE коммутатор.
  • Операционная система: ОС SUSE Linux Enterprise Server 9, RedHat Enterprise Linux 4 или Microsoft Windows Compute Cluster Server 2003.
  • (рис 1.11) Мини-кластер T-Forge Mini

    В 2007 году ННГУ в рамках нацпроекта "Образование" приобрел два мини-кластера T-Edge Mini, построенных на процессорах Intel $$\to$$ Xeon $$\to$$ 5320 (1,86 ГГц) с 20 Гб оперативной памяти и дисковой подсистемой на 1,25 Тб. В качестве интерконнекта в одном из мини-кластеров использован Gigabit Ethernet, во втором Infiniband. Пиковая производительность каждого – 297 гигафлопс.

    1.5. Источники рисунков

  • Рис. 1.1.http://www.rendercube.com/gallery.htm.
  • Рис. 1.2.http://www.overclockers.ru/lab/22660.shtm.
  • Рис. 1.3.http://www.amd.com/us-en/Processors/ProductInformation/0,,30_118_15331_15332%5E15334,00.html.
  • Рис. 1.4.http://www-01.ibm.com/support/docview.wss?uid=tss1prs3036aid=1.
  • Рис. 1.6.http://ru.wikipedia.org/wiki/UltraSPARC_T1.
  • Рис. 1.7. – "ClearSpeed™ Advance™ X620 Product Datasheet".
  • Рис. 1.8. – System Specification. NVIDIA Tesla D870 Deskside GPU Computing System – [http://www.nvidia.com/docs/IO/43395/D870-SystemSpec-SP-03718-001_v01.pdf].
  • Рис. 1.9. – "Мини-кластер в одном корпусе: 96 процессоров и 192 Гб RAM" – [http://www.ixbt.com/staticnews/04/12/67.html].
  • Рис. 1.10. – "Готовые решения компании "Т-Платформы" для прикладных задач" – [http://www.t-platforms.ru/pdf/T-Platforms_Turn-key_Solutions.pdf].
  • Вернуться к учебному плану