Суперкомпьютеры



В начале 21 века при слове компьютер вспоминаются ряды столов с персоналками, за которыми трудятся десятки человек, или цифровые записные книжки, умные сотовые телефоны, миниатюрные системы спутникового ориентирования на местности - величиной с ладонь. Но еще 15-20 лет назад символом прогресса были большие залы, где люди в белых халатах что-то набирали на пультах управления с мигающими разноцветными лампочками. Урчали кондиционеры, в закрытых шкафах вращались большие магнитные бобины, печатные устройства шириной с письменный стол, строча, выводили на рулоны газетного формата полученные результаты. На первый взгляд кажется, что эти компьютерные монстры, подобно бронтозаврам, вымерли, не выдержав конкуренции с юркими и гибкими персоналками. Но это только на первый взгляд. Никуда не делись реальные громоздкие задачи физики и химии атмосферы, проектирования ракет, самолетов, автомобилей, разработки нефтегазовых пластов, синтеза новых химических соединений, моделирования волновых процессов в электродинамике и гидроакустике. Как никогда, жизненно необходимы быстрые расчеты в фармакологии, молекулярной генетике, обработке миллионов запросов в торговле и так далее. Поэтому мощные вычислительные машины все это время продолжали существовать, отойдя, правда, несколько в тень. Называют их сейчас суперкомпьютерами и им посвящена сегодняшняя передача.

Что же такое суперкомпьютер и чем принципиально он отличается от настольного? Конечно, понятие это - относительное. Вполне рядовая персоналка, на которой пишутся эти строки, по своим возможностям превосходит суперкомпьютеры начала семидесятых и просто не идет ни в какое сравнение с ЭВМ, удивительно точно рассчитавшей траекторию полета Юрия Гагарина. Можно ли из этого сделать вывод, что между обычным компьютером и суперкомпьютером нет никакой принципиальной разницы? Для того, чтобы ответить на этот непростой вопрос необходимо в самых общих чертах сказать за счет чего неуклонно увеличивается мощность современных компьютеров.

Сразу напрашивается - за счет быстродействия микросхем, то есть развития элементной базы. Важной характеристикой быстродействия является тактовая частота процессора, которую часто выносят на корпус компьютера, например Пентиум 500. 500 МГц - это и есть тактовая частота. Мощный компьютер 1949 года EDSAC обладал тактовой частотой в пол мегагерца и производил 100 арифметических операций в секунду. Современный скромный суперкомпьютер CRAY C90 с частотой 250 МГц может произвести в секунду миллиард арифметических операций. Таким образом, тактовая частота возросла в пятьсот раз, а производительность в десять миллионов. Чему же обязаны остальные 20 тысяч раз? Основной прогресс в производительности достигнут благодаря новым решениям в архитектуре компьютеров.

Магистральным принципом ускорения стал принцип параллельной обработки данных. Увеличить производительность можно, если за один такт процессора одновременно выполнять несколько операций. Известны два основных подхода к параллельным вычислениям: "конвейерность и собственно параллельность".

Специалист по параллельным вычислениям Владимир Воеводин поясняет параллельность таким примером:

"Если один солдат вскопает огород за 10 часов, то рота солдат из пятидесяти человек с такими же способностями, работая одновременно, справятся с той же работой за 12 минут - принцип параллельности в действии!" То есть копание огорода - можно отнести к операциям, которые неплохо распараллеливаются.

Конвейерная обработка весьма похожа на автомобильный конвейер. Современный процессор за один такт может совершить немало микроопераций, а одно вычисление - это как раз множество микроопераций. Если необходимые части процессора вовремя загружать, то достигается значительное ускорение выполнения программы. Допустим, на конвейере за восьмичасовую смену собирается 100 автомобилей. Тогда для эффективной его работы необходима одна бригада и разбиение операций так, чтобы на каждую уходило около пяти минут, включая движение конвейера. Может показаться, что конвейер легко заменить параллельной обработкой, но тогда на сто выпускаемых автомобилей необходимо сто бригад, что резко увеличивает затраты на персонал, площади и так далее.

Эти подходы к компьютерной обработке данных известны уже почти полвека. Процессоры первых электронно-вычислительных машин не только считали, но и управляли устройствами ввода-вывода. Тогда это была магнитная лента. Скорость загрузки информации с нее была в тысячу раз меньше скорости процессора, который в это время элементарно простаивал. Усилиями инженеров IBM архитектура машин была значительно улучшена, когда компьютер оснастили шестью дополнительными независимыми процессорами ввода-вывода.

Потом к ощутимому результату привела оптимизация работы центрального процессора. Для этого память была разбита на два уровня и предусмотрен опережающий просмотр команд. Следующий важный шаг сделали ученые манчестерского университета. Они реализовали в 1963 году конвейерный принцип выполнения команд, разбив их на 4 стадии. Это позволило сократить время вычислений более чем в три раза. Они же впервые применили многопрограммную операционную систему, которая позволяла выполнять несколько программ одновременно, автоматически регулируя, какую из них в данный момент более разумно подать на процессор для выполнения.

В середине шестидесятых взошла звезда Сеймура Крея. Довольно долго в научных кругах слово "крей" было синонимом суперкомпьютера. Крей начал активно внедрять архитектуру однотипных связанных компьютерных блоков и так называемых векторных команд, когда одновременно обрабатывается целый массив данных.

Невозможно представить машину с мощным мотором, хлипким каркасом и велосипедными колесами. Современный суперкомпьютер - это не только высокая вычислительная мощность, но и суперобъемы оперативной и дисковой памяти, ведь огромное количество данных во время вычислений необходимо эффективно подавать в процессор и потом сохранять.

Надо сказать, что архитектура современных персональных компьютеров во многом впитала в себя эти достижения. И персоналка в некоторых отношениях - параллельная система. Но такой, качественный путь наращивания мощности достаточно растянут во времени. Поэтому ученые и инженеры пытались получить выигрыш за счет объединения мощностей одинаковых относительно недорогих устройств в единую систему. Идеология та же, что и с солдатами, копающими огород. Старшина определяет каждому участок, после чего солдаты независимо выполняют работу, а потом отчитываются за результат. Пиковая производительность такого устройства равна в пределе производительности одного солдата умноженной на их количество. Также определяется и пиковая производительность суперкомпьютера.

При подобной архитектуре стоимость системы, занимаемые площади, энергопотребление для достаточно большого числа однотипных связанных в сеть компьютеров возрастают почти линейно. Казалось бы задача решена: нужно в сто раз увеличить объем вычислений - соедини сто компьютеров. К сожалению, так получается в очень небольшом числе случаев.

Для решения большинства реальных задач на компьютерах с параллельной архитектурой необходимо разрабатывать специальные математические алгоритмы и особым образом писать программы. В обычном прикладном компьютерном расчете дифференциальные уравнения заменяются алгебраическими выражениями, а реальный объект - сеткой или каркасом с узловыми точками. В каждой точке подобного каркаса производятся вычисления с некоторым шагом по времени. Там, где параметры изменяются сильнее, сетка делается чаще. Распараллеливание сходно с разбивкой сетки на сектора, общитываемые отдельными процессорами.

К сожалению для расчета, сектора обычно зависят друг от друга. В физико-химических задачах, например, существенную роль играют не только внутренние процессы, но обмен энергией и веществом. Поэтому блоки суперкомпьютера должны через некоторые отрезки времени обмениваться данными. Чем более этот фактор важен, тем большую роль начинает играть не скорость счета каждого процессора, а обмен информацией между ними. То есть, суперкомпьютер - это не просто связанные компьютеры. Суперкомпьютер - это множество блоков объединенных специальной, и, к сожалению, дорогой, сверхскоростной сетью.

Но на этом проблемы не кончаются. Даже если удалось связать быстрыми магистралями быстрые компьютеры, то это не означает, что их производительность линейно возрастет. Над всеми параллельными вычислениями дамокловым мечом висит закон Амдала.

Закон Амдала говорит, какого максимального ускорения можно достичь для данного числа параллельных компьютеров в зависимости от доли последовательных операций в алгоритме. Примером последовательных операций может быть сложение подряд чисел от одного до ста. Сперва к единице прибавляется двойка, к результату тройка и так далее. Всего нужно 99 последовательных операций. Если же мы в программе разобьем все числа на пары, а потом каждую пару подадим на один из процессоров параллельного компьютера и сложим одновременно, то нам потребуется всего 7 таких операций. Это параллельная обработка.

Конкретные ограничения, которые вносит закон Амдала выглядят так. Если в программе 90% операций выполняется параллельно, а только 10% - последовательно, то при любом количестве процессоров нельзя достичь ускорения больше, чем в 10 раз. Если же мы надеемся ускорить решение в 100 раз, то отношение числа параллельных операций к последовательным должно быть 10 тысяч к одному. Если не удается поднять процент параллельных операций выше 98, то переход с машины в 32 процессора на 512, то есть теоретически в шестнадцать раз более мощную, приводит к ускорению только в два раза, а на машину с двумя тысячами процессоров - в два с половиной. Получается, что использовать мощные машины имеет смысл, когда, тщательно подготовлен весь алгоритм и код программы. Надо заметить, что немного важных задач позволяют себя так глубоко распараллелить и для их решения разумно использовать суперкомпьютеры с небольшим и средним числом процессоров.

Чтобы понять каких размеров достигли сейчас суперкомпьютеры, приведем параметры первых четырех из июньского списка 500 самых мощных суперкомпьютеров. Распределение мест происходит по результатам теста на пакете Linpack. При этом машина решает огромную систему линейных алгебраических уравнений. Такой механизм предпочтений один из многих возможных. Поэтому, конечно, на других типах задач близкорасположенные в списке компьютеры могут поменяться местами.

На первой позиции с большим отрывом находится машина ASCI White, изготовленная корпорацией IBM. Она составлена из 8192 процессоров SP Power3 375 MHz. Достигнутая производительность - больше 7 терафлопов, то есть более семи тысяч миллиардов операций с десятичными числами в секунду. На втором и четвертом местах также IBM-овские суперкомпьютеры с производительностью превышающей 2 терафлопа. Третье место занимает ASCI Red компании Интел, которая состоит из самого большого количества процессоров 9632. Корпорация IBM - бесспорный лидер в производстве суперкомпьютеров. Подавляющее большинство суперкомпьютеров сделаны в США и там же находятся. Сейчас в работе - еще более амбициозный проект. Министерство энергетики США заключило контракт на 200 миллионов долларов с компанией Compaq на создание к 2002 году в Лос-Аламоской национальной лаборатории суперкомпьютера производительностью 30 терафлоп, который может быть модернизирован к 2005 году до 100 терафлоп. С большим отрывом на втором месте Япония. Европа в производстве суперкомпьютеров отстала. Пока в европейских организациях и исследовательских центрах стоят американские и японские машины. Но в феврале комиссариат Франции по атомной энергии подписал с той же Compaq договор на создание европейского суперкомпьютера с пиковой производительностью в пять терафлоп. Ни одного российского суперкомпьютера в списке пятисот мощнейших нет. Можно сказать - пока нет.

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

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

Во всем мире суперкомпьютеры относятся к главным технологическим приоритетам. Достаточно сказать, что самые мощные машины, о которых мы выше говорили, изготовлены по заказу Американского военно-промышленного комплекса. Поэтому и в России, при крайне скудном финансировании, продолжались исследования в этой области. Важную объединяющую роль сыграла лаборатория Параллельных информационных технологий вычислительного центра МГУ. Здесь был создан самый, на мой взгляд, содержательный ресурс по параллельным вычислениям в русскоязычной Сети, а может быть и самый глубоко проработанный сайт в области компьютерных наук. Можно согласиться с авторами, что они создали прообраз "центра компетенции" по параллельным вычислениям. На сайте, кроме профессиональных, есть страницы, написанные на уровне качественной научно-популярной литературы.

Открыт для удаленных пользователей не только Интернет-узел, открыт также и суперкомпьютер вычислительного центра МГУ. Он стал своеобразным народным суперкомпьютерным центром. Один из российских ученых рассказывал мне, как руководитель лаборатории Владимир Воеводин приглашает и даже завлекает всех заинтересованных считать на своем кластере. Несмотря на то, что сама машина невелика по меркам Top-500, она позволяет совершенствовать и отлаживать программы параллельных вычислений, поддерживая сообщество ученых, использующих суперкомпьютеры. Именно так восстанавливается культура постановки и решения больших задач. Вспоминая закон Амдала, мы понимаем, что малые машины необходимы, ведь только для очень небольшого числа задач удается эффективно использовать вычислительную мощь тысяч процессоров.

Несмотря на это, создание большого суперкомпьютера необходимо, так как позволяет закрыть область наиболее требовательных вычислительных задач. И такая машина создается в Межведомственном суперкомпьютерном центре.

Но решать задачи на таком мощном суперкомпьютере без предварительной обкатки все равно, что стрелять из пушки по воробьям. Кроме нерациональности есть еще и элементарная дороговизна. Это - именно тот самый большой зал с людьми в белых халатах, кондиционерами и мощным энергопотреблением.

Поэтому очень своевременным выглядит проект по созданию линейки малых и средних суперкомпьютеров по заказу Союзного государства России и Белоруссии. Звучит довольно странно. Для большинства эта структура, возглавляемая Павлом Бородиным - некое фиктивное политическое образование. Как бы то ни было, но этот Союз имеет собственный бюджет и финансирует вполне реальный проект, построенный, судя по стратегии его развития, не бюрократами, а учеными.

Причем финансирует нормально. Зарплаты исполнителей российско-белорусского проекта находятся на уровне средних московских компьютерных фирм. И эти три обстоятельства (грамотный проект, разумное финансирование и широкое сотрудничество) дали совершенно неожиданный результат. Стосковавшиеся по полноценной работе ученые и инженеры, сделали первые два работающих экземпляра суперкомпьютера всего за 4 месяца.

Почему проект можно назвать грамотно спроектированным? Во-первых он учитывает сам характер параллельных вычислений, зафиксированный в законе Амдала. Так как скорость решения задачи очень сильно зависит от параллельности алгоритма и кода, то целесообразно выпускать линейку суперкомпьютеров. Тогда можно делать расчеты оптимальными по затратам, останавливаясь на подходящей машине. Во-вторых, выбрана операционная система Linux, в идеологии которой заложены параллельность и надежность. Когда у вас триллион операций в секунду, то вероятность ошибки возрастает. Тут российско-белорусские ученые неоригинальны. Когда право выбора остается за профессионалами, а не за секретаршами, бухгалтерами и чиновниками (не важно государственными или корпоративными), то у операционных систем типа Майкрософт остается мало шансов. На этом рынке им досталось несколько проектов, да и то, скорее, в качестве курьеза. В-третьих, для связи вычислительных узлов при построении суперкомпьютера ставка сделана на коммуникационную аппаратную технологию SCI. SCI - не только современная, но и недорогая технология. Цена на один узел не более трех тысяч долларов. Благодаря этому российско-белорусские суперкомпьютеры будут доступны многим, ведь параметр стоимость/производительность у них на порядок меньше, чем у американских систем. Достигнуто это за счет тщательно продуманного сочетания зарубежной элементной базы, открытых операционных систем и собственных программных разработок.

Суперкомпьютеры нужны не только военным, большое их количество работает на нефтегазовые корпорации, позволяя оптимизировать добычу, добираться до сложных участков, снижать загрязнение окружающей среды, что для России - крайне актуально. Нужны суперкомпьютеры и для работы крупных банковских систем, баз данных государственного значения, прогнозирования погоды и климата. Уже сейчас, на старте программы, на создаваемые машины есть заказчики. И неудивительно. Как дико это ни звучит, Россия закупала, а может быть и до сих пор закупает в Индии небольшие суперкомпьютеры Param. Это трудно понять, даже трезво оценивая нынешнее состояние научно-технического потенциала страны. Здесь, при всей великодержавной риторике госчиновников про "великий русский народ", про "смекалку и изобретательность кулибиных", мы видим крайнюю степень неверия в то, что наши люди могут хоть что-нибудь стоящее сделать не только в конкуренции с западными, но и по сравнению со специалистами из крайне бедных развивающихся стран. Удивительно, как мы еще технику у Нигерии или Сомали не покупаем. Я думаю, до этого тоже дойдет, если платить высококвалифицированным специалистам по 50 долларов в месяц. За эти деньги можно лишь решать головоломку - почему человек все-таки ходит на эту работу?

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

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

Все ссылки в тексте программ ведут на страницы лиц и организаций, не связанных с радио "Свобода"; редакция не несет ответственности за содержание этих страниц.