Демократия в гигафлопах
Далеко не все из тех, кто помнит времена расцвета больших электронно-счетных машин, ушли на пенсию; многие застали великую революцию персональных компьютеров, перевернувшую наши представления о доступности ЭВМ. Но, как и прежде, гудят в огромных безлюдных залах бесконечные ряды опутанных проводами шкафов и стеллажей с невиданной техникой, перемигиваясь разноцветными лампочками, — это компьютерная элита, аристократия информационной империи — супервычислители. Неужели эта область так и останется недоступной для простых смертных?
Долгие годы и даже десятилетия сфера высокопроизводительных вычислений (High Performance Computing, HPC) развивалась по законам, несколько отличавшимся от тех, по которым существует рынок персональных компьютеров. Нет, там так же хорошо работает закон Мура, регулярно удваивается количество флопов (flops — элементарные операции в секунду) на каждую условную единицу инвестиций, но доступ к этим технологиям во всем мире имеют лишь государственные научные и образовательные учреждения, а также представители крупного бизнеса. За тот период, когда в обиходе появились ноутбуки, карманные компьютеры, тонкие клиенты и прочие устройства, низводящие ПК практически до уровня бытовой техники, суперкомпьютеры не стали ни проще, ни доступнее.
Однако расхожая шутка «раз у вас еще нет демократии, тогда мы летим к вам!» применима ко всем областям человеческой деятельности: практически все, что было роскошью, становится продуктом массового спроса. Тенденции демократизации коснулись и рынка высокопроизводительной техники. Далее мы рассмотрим основные направления зарождающегося движения.
Многоядерные кристаллы. Это шаг персональных компьютеров в сторону HPC. Параллельные алгоритмы, всегда считавшиеся прерогативой суперкомпьютеров, могут быть эффективно реализованы на домашних и офисных машинах, большинство из которых уже оснащено двух- и даже четырехъядерными процессорами. Фактически в одной микросхеме располагаются теперь несколько полноценных и равноправных процессорных устройств. Такая технология применяется в настоящее время как в недорогих решениях для дома (Intel Core 2, AMD Athlon), так и в процессорах для мощных рабочих станций и серверов (AMD Opteron, Intel Xeon).
Конечно, рядовой пользователь не станет задумываться, отчего его любимый Excel или Photoshop вдруг стал работать гораздо быстрее, но программистам придется всерьез пересмотреть всю идеологию разработки приложений, научиться применять такие методы и решения, которые раньше использовались лишь в суперкомпьютерных вычислениях. Поддержка многоядерности де-факто стала нормой для самого широкого круга программ — от операционных систем до легкого прикладного софта.
Но мысль человеческая не остановится на четырех ядрах в одном кристалле… Можно попытаться сделать прогноз, касающийся дальнейшего развития в этой области, — восьмиядерные чипы уже анонсированы, а представители микропроцессорной индустрии уже говорят о десятках и даже сотнях ядер на процессор. Видимо, при столь серьезном увеличении количества ядер они будут разделены на группы для выполнения однотипных специализированных задач, а некоторые из них станут играть управляющую роль. В таком случае часть работы программиста по распараллеливанию будет выполняться аппаратно.
64-разрядные технологии и большая память. Одно из главных ограничений, налагаемых 32-разрядной технологией, касается максимального объема оперативной памяти. Требования, предъявляемые программным обеспечением к системным ресурсам, медленно, но верно приближались к роковому порогу в 4 Гбайт, но еще пару лет назад никому и в голову не могло прийти, что такого объема памяти может для чего-то не хватать.
Зато в сфере HPC с подобными препятствиями не желали мириться, и мир суперкомпьютеров уже давно освоил 64 разряда. Эффективное использование преимуществ этой технологии требует соответствующих подходов к программированию, как и параллельные вычисления, и именно на ПО для высокопроизводительных вычислений эти средства обкатывались.
VXTech Fusion1200 — сервер с 192 Гбайт ОЗУ
Теперь пришло время внедрять наработки среди персоналок. Первые 64-разрядные процессоры — Intel Itanium — были практически неприменимы в качестве CPU для настольных систем, поскольку 32-разрядное ПО (а на тот момент другого еще не существовало) функционировать на них не могло (точнее, работало слишком медленно), а цены на эти микросхемы были неприемлемы. Над первыми Athlon 64 посмеивались — мол, ловкий маркетинговый ход, красивое название, а программ под него нет. Старые программы работали на нем хорошо, хотя и не использовали весь его потенциал, и со временем софт с поддержкой 64-разрядности стал появляться. Компания Intel не осталась в стороне и предложила свои версии универсальных 32/64-разрядных процессоров.
Первой ОС для настольных ПК с поддержкой 64 разрядов стала Linux, и настоящие апологеты технического прогресса получили вполне рабочий инструмент для разработки программного обеспечения нового поколения. Вскоре и Microsoft поддержала тенденцию к переходу на новую архитектуру, выпустив 64-битные версии вначале Windows XP, а затем и Vista. С тех пор завоевание 64-разрядной технологией рынка домашней и офисной компьютерной техники было предрешено.
Все эти предпосылки сделали возможным использование большой памяти в повседневной работе. Пока такие решения в основном востребованы в сфере промышленных и научных исследований, обработки изображений и видео, а также поддержки баз данных, но и индустрия компьютерных игр, по-видимому, не останется в стороне. Рабочие станции с 16 Гбайт и серверы с 256 Гбайт ОЗУ сегодня не диковинка, а 8-гигабайтные модули памяти уже запущены в производство.
Персональные кластеры. Кластер — это набор однотипных вычислительных модулей, объединенных быстрым интерконнектом. Каждый модуль такой системы имеет собственную оперативную память, но может достаточно быстро обмениваться информацией с другими узлами, что позволяет параллельно решать одну задачу на всем кластере. Суперкомпьютеры с подобной архитектурой лидируют во всех современных топ-листах, так как обеспечивают максимальную производительность для большинства задач при заданном объеме финансовых, энергетических и прочих ресурсов. Сомневаюсь, что кластерные технологии в ближайшее время займут достойное место в домах и офисах, но процесс демократизации затронул и эту сферу.
Во-первых, существовавшие ранее решения были доступны для среднего и малого бизнеса, стремящегося использовать современные технологии компьютерного моделирования на производстве, ибо только так в настоящее время можно обеспечить конкурентоспособность своей продукции. Кроме того, небольшие инженерные группы и лаборатории зачастую были вынуждены днями, а то и неделями ожидать своей очереди на запуск расчета на супервычислителе своей организации. Им не нужны были такие гиганты, как BlueGene или Cray, но и мощности рабочих станций им явно было недостаточно.
Персональный кластер Typhoon 600
от компании TyanPSC
Есть спрос — есть и предложение. Благо, стоимость гигафлопа в последнее время сильно упала. Новинкой последней пары лет стали персональные кластеры. Они, как правило, представляют собой несколько вычислительных модулей, выполненных на отдельных платах (блэйд-технология), размещенных в одном корпусе, по размерам лишь немного превосходящем стандартные рабочие станции. В результате мы имеем на своем столе машину с несколькими десятками ядер и десятками гигабайт памяти, а пиковая производительность подобной системы достигает сотен гигафлоп.
Главные проблемы, которые пришлось решить разработчикам таких решений, — отвод тепла, шумоизоляция и обеспечение достаточного количества электроэнергии, ведь подобная техника предназначена для размещения в обычных рабочих помещениях. Но, по заявлениям производителей, они с этой задачей справились, и в настоящее время многие игроки на рынке HPC представили либо одну, либо даже несколько моделей персональных кластеров.
Отечественные кластеростроители стараются не отставать от зарубежных коллег: огромное количество оставшихся с советских времен НИИ, а также избыток нефтедолларов в нашей стране способствуют быстрому развитию рынка персональных кластеров. Компания «Т-Платформы» предлагает две линейки подобной продукции: T-EdgeMini и T-ForgeMini; ведет разработки в этом направлении и фирма Kraftway.
Платы для потоковых вычислений. В данном случае имеет место перенос технологий, традиционно развивавшихся в области персональных компьютеров и игровых приставок, как ни странно, в сферу высокопроизводительных вычислений. Именно огромные капиталы, обращающиеся на рынке компьютерных игр и развлечений, а также в областях, так или иначе связанных с этим бизнесом, стимулировали стремительное развитие технологий обработки трехмерных изображений. В разработку видеоплат, видеопроцессоров и акселераторов вкладывались и продолжают вкладываться огромные средства, и результаты действительно впечатляют.
В итоге компьютерное сообщество получило класс устройств, способных с головокружительной скоростью производить операции с плавающей точкой, и встал закономерный вопрос: почему эти замечательные свойства используются лишь для обработки графики, и нельзя ли создать универсальный вычислитель на базе современной видеокарты?
nVidia Tesla C870
Первой подобное устройство предложила компания NVIDIA. Летом представитель этой фирмы продемонстрировал плату NVIDIA Tesla C870, созданную на базе чипа G80 (того же, что и в картах GeForce семейства 8800). Внешне это устройство очень напоминает традиционные графические ускорители, но не имеет видеовыходов. По утверждению разработчиков, пиковая производительность вычислителя составляет порядка 500 Гфлоп при операциях с плавающей точкой. Одновременно с платой были представлены два готовых решения на ее основе: настольный суперкомпьютер Tesla D870 (до 1 Тфлоп) и сервер Tesla S870, предназначенный для монтажа в стойку (до 2 Тфлоп). Подключая несколько таких устройств к рабочей станции, можно добиться производительности до 8 трлн операций в секунду!
ATI FireStream
Компания ATI, вошедшая в состав AMD, ответила несколькими месяцами позже, показав свое HPC-решение на базе GPU. Представленная плата носит название FireStream и отличается от Tesla поддержкой вычислений двойной точности (64-битные вещественные числа) и большим объемом памяти (2 Гбайт GDDR3 против 1,5 Гбайт у продукта от NVIDIA). Начало продаж намечено на I квартал 2008 года.
Для создания программного обеспечения под новые устройства с ними будет поставляться комплект средств разработки (Software Development Toolkit, SDK) на языке C, включающий драйверы, компиляторы, инструменты для отладки, а также готовые библиотеки функций.
Цифры, приводимые в пресс-релизах компаниями — производителями вычислителей на базе GPU, действительно ошеломляют: заявленная производительность сопоставима с производительностью крупнейших суперкомпьютеров нашей страны! Так в чем же здесь подвох? Дело в том, что класс алгоритмов, которые можно эффективно реализовать на предлагаемой архитектуре, очень узок и специфичен. Не будет прироста эффективности на слабомасштабируемых задачах, а также на целочисленных вычислениях — в этих случаях лучше полагаться на традиционные процессоры. Возможно, будущее за комбинированными решениями, и тут весьма эффективным может стать объединение компаний AMD и ATI.
***
Конечно, большие суперкомпьютеры не канут в Лету с приходом эры миниатюризации. Как бы ни старались производители упаковать максимально большое количество процессоров в как можно более компактный корпус, всегда найдутся желающие использовать очень много таких маленьких устройств одновременно, собрав из них большой вычислитель. В сфере HPC существует даже тенденция к увеличению создаваемых машин: под мощные кластерные системы строятся отдельные здания, рядом с которыми специально для них ставят электростанции, а тепла они выделяют как хорошая котельная.
Однако круг задач, которые теперь можно решать на своем рабочем месте, не прибегая к помощи подобных «монстров», расширяется. Высокопроизводительные системы стремительно дешевеют и становятся более доступными, и это не может не радовать. В конечном счете от этого выиграет каждый!