Сверхмашины: история развития суперкомпьютеров. Параллельные компьютеры с общей памятью


СУПЕРКОМПЬЮТЕРЫ: История и современность.

1.Введение

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

2.Немного истории

Первый в мире компьютер появился в 1943 г. во время Второй мировой войны. Изобретатели из Великобритании назвали его «Colossus», а предназначался он для раскодировки немецкой шифровальной машины «Энигма». «КОЛОСУС» насчитывал 2000 электронных ламп и работал с фантастической скоростью, обрабатывая около 25 000 символов в секунду.

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

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

3.Суперкомпьютер, флопс и закон Мура.

Что же такое суперкомпьютеры? Суперкомпью́тер (англ. supercomputer , СуперЭВМ ) - это вычислительная машина, значительно превосходящая по своим техническим параметрам большинство существующих на данный момент компьютеров. Она позволяет производить сложные расчеты за более короткие промежутки времени. О чем собственно и говорит приставка «Супер» (Super в переводе с английского означает: сверх, над). Любая компьютерная система состоит из трех основных компонентов - центрального процессора, то есть счетного устройства, блока памяти и вторичной системы хранения информации. Ключевое значение имеют не только технические параметры каждого из этих элементов, но и пропускная способность каналов, связывающих их друг с другом и с терминалами потребителей.

Важным показателем производительности компьютера является степень его быстродействия. Она измеряется так называемыми флопсами - от английского сокращения, ( Fl oating point OP erations per S econd , произносится как флопс) - внесистемная единица, используемая для измерения производительности компьютеров, показывающая, сколько операций в секунду выполняет данная вычислительная система. То есть за основу берется подсчет - сколько наиболее сложных расчетов машина может выполнить за один миг.

Началом эры суперкомпьютеров можно, пожалуй, назвать 1976 год, когда появилась первая векторная система Cray 1. Работая с ограниченным в то время набором приложений, Cray 1 показала настолько впечатляющие по сравнению с обычными системами результаты, что заслуженно получила название “суперкомпьютер” и определяла развитие всей индустрии высокопроизводительных вычислений еще долгие годы.

Cray-1, был самым быстродействующим на тот момент времени. Память Cray-1 составляла 8 Мбайт, поделенных на 16 блоков, с суммарным временем доступа 12,5 нс. Имелась и внешняя память на магнитных дисках емкостью около 450 Мбайт, расширявшаяся до 8 Гбайт. Для машины был создан оптимизирующий транслятор с Фортрана, макроассемблер и специальная многозадачная ОС.

За последние 15 лет нормы быстродействия суперкомпьютеров менялись несколько раз. По определению Оксфордского словаря вычислительной техники 1986 года, для того, чтобы получить гордое название «супер ЭВМ», машине нужно было иметь производительность в 10 мегафлоп (миллионов операций в секунду).В начале 90-х была преодолена отметка 200 мегафлоп, затем 1 гигафлоп.

Все компьютеры на планете Земля подчиняются закону Мура: их производительность удваивается каждые полтора года. В 1965 году Гордон Мур, один из основателей Intel, обнаружил следующую закономерность: появление новых моделей микросхем наблюдалось спустя примерно год после предшественников, при этом количество транзисторов в них возрастало каждый раз приблизительно вдвое. Мур пришел к выводу, что при сохранении этой тенденции мощность вычислительных устройств за относительно короткий промежуток времени может вырасти экспоненциально. Это наблюдение и получило название закона Мура. Все развитие электронной промышленности за последние 45 лет только подтверждает правильность этого закона.

4.Применение суперкомпьютеров

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

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

Суперкомпьютеры применяются и для военных целей. Кроме очевидных задач разработки оружия массового уничтожения и конструирования самолетов и ракет, можно упомянуть, например, конструирование бесшумных подводных лодок и др. Самый знаменитый пример - это американская программа СОИ. Уже упоминавшийся MPP-компьютер Министерства энергетики США будет применяться для моделирования ядерного оружия, что позволит вообще отменить ядерные испытания в этой стране.

5.Современные стандарты суперкомпьютеров

Каковы же современные стандарты для суперкомпьютеров?

На последней международной конференции SC11 в Сиэтле был преодолен рубеж в 10 петафолопс, т. е. 10 квадриллионов вычислительных операций в секунду. Такую производительность показал K Computer японской корпорации Fujitsu, содержащий 705 024 процессорных ядра.

На третьем месте – мощнейший суперкомпьютер США с производительностью 1,8 петафолопса, который уже почти три года не модернизировался.

В 2005 году в Америке была представлена задача преодолеть барьер в 1 петафолопс. Эту задачу они выполнили к 2008 года. Но с началом кризиса развитие Американских суперкомпьютеров резко сократилось.

На конференции SC11 был поставлен мировой рекорд скорости передачи информации. Информация из Сиэтла в канадскую Викторию, расстояние между которыми 212 км, передавалась по прямому многомодемовому оптоволокну со скоростью 98 гигабит в секунду. При такой скорости скачивание фильма заняло бы время меньше секунды. Такие высокие скорости передачи данных необходимы для совместной международной обработки данных, получаемых ЦЕРН на Большом андронном коллайдере .

6. Рынок суперкомпьютеров в России.

Во всемирный процесс активизации рынка высокопроизводительных вычислений (HPC) все активнее включается и Россия. В 2003 компания «Paradigm», ведущий поставщик технологий для обработки геолого-геофизических данных и проектирования бурения для нефтегазовой отрасли, модернизировала свой расположенный в Москве центр обработки сейсмических данных, установив серверный кластер IBM из 34 двухпроцессорных серверов на базе процессоров Intel Xeon. Новая система ускорила работу ресурсоемких вычислительных приложений «Paradigm» за счет применения кластерных технологий на базе ОС Linux. Новые возможности проведения более точных расчетов, несомненно, увеличат конкурентоспособность российских нефтяных компаний на мировом рынке.

Двумя важнейшими проэктами 2005 года стала установка суперкомпьютера МВС-15000BM отечественной разработки в Межведомственном Суперкомпьютерном Центре РАН (МСЦ) и установка на НПО <Сатурн> кластера IBM eServer Cluster 1350, включающего 64 двухпроцессорных сервера IBM eServer xSeries 336. Последний является крупнейшей в России супер-ЭВМ, используемой в промышленности, и четвертым в совокупном рейтинге суперкомпьютеров на территории СНГ. НПО <Сатурн> собирается использовать его в проектировании авиационных газотурбинных двигателей для самолетов гражданской авиации. Решаются вопросы и специального инженерного программного обеспечения для моделирования различных высокоэнергетических процессов в химической, атомной и аэрокосмической промышленности. Так, пакет IP-3D предназначен для численного моделирования газодинамических процессов в условиях экстремально высоких температур и давлений, невоспроизводимых в лабораторных условиях.

Еще одним крупнейшим отечественным проектом в области суперкомпьютеров являются российский проект МВС и российско-белорусский СКИФ. Разработка СуперЭВМ проекта МВС финансировалась за счет средств Минпромнауки России, РАН, Минобразования России, РФФИ, Российского фонда технологического развития. В настоящее время машины этой серии установлены в МСЦ РАН и ряде региональных научных центров РАН (Казань, Екатеринбург, Новосибирск) и используются преимущественно для научных расчетов. Так же одним из разработчиков ПО для МВС является фирма «InterProgma», работающая в Черноголовке в рамках уже существующего ИТ-парка. Компания в тесном сотрудничестве с ИПХФ РАН ведет разработку базового программного обеспечения для крупномасштабного моделирования на суперкомпьютерных системах.

В России же СКИФ и МВС пока воспринимаются лишь как академические проекты. Причина этого в том, что крупные российские машиностроительные корпорации, такие как НПО <Сатурн>, предпочитают зарубежные суперЭВМ, поскольку отработанные прикладные решения от мировых лидеров, таких как IBM и HP уже снабжены готовым целевым ПО и средствами разработки, имеют лучший сервис. Сделать МВС и СКИФ востребованными для российской промышленности поможет создание общего вычислительного центра ориентированного на промышленный сектор, с распределенным доступом к машинному времени. Создание Центра резко удешевит затраты на обслуживание суперкомпьютера, а также ускорит процесс создания и систематизации ПО (написание драйверов, библиотек, стандартных приложений).

7.Заключение

Еще 10-15 лет назад суперкомпьютеры были чем-то вроде элитарного штучного инструмента, доступного в основном ученым из засекреченных ядерных центров. Однако развитие аппаратных и программных средств сверхвысокой производительности позволило освоить промышленный выпуск этих машин, а число их пользователей в настоящее время достигает десятков тысяч. Фактически, в наши дни весь мир переживает подлинный бум суперкомпьютерных проектов, результатами которых активно пользуются не только такие традиционные потребители высоких технологий, как аэрокосмическая, автомобильная, судостроительная и радиоэлектронная отрасли промышленности, но и важнейшие области современных научных знаний.

Доктор физико-математических наук В. ВОЕВОДИН

У большинства людей слово "компьютер" ассоциируется в первую очередь с персоналкой, которую можно увидеть сегодня не только в любом офисе, но и во многих квартирах. В самом деле, мы живем в эпоху, когда персональный компьютер вошел буквально в каждый дом. Однако не стоит забывать, что ПК - это лишь часть компьютерного мира, где существуют гораздо более мощные и сложные вычислительные системы, недоступные рядовому пользователю. Многие, наверно, слышали о компьютере по имени Deep Blue, который в 1997 году обыграл самого Гарри Каспарова. Интуитивно понятно, что такая машина не могла быть простой персоналкой. Другой пример - отечественный компьютер МВС-1000 производительностью 200 миллиардов операций в секунду, недавно установленный в Межведомственном суперкомпьютерном центре в Москве. Кроме того, в прессе время от времени появляются сообщения о нелегальных поставках в Россию вычислительной техники, попадающей под эмбарго американского правительства.

Открытие межведомственного суперкомпьютерного центра в Президиуме Российской академии наук. На переднем плане 16-процессорный суперкомпьютер Hewlett-Packard V2250.

ASCI RED, детище программы Accelerated Strategic Computing Initiative, - самый мощный на сегодняшний день компьютер.

CRAY T3E - массивно-параллельный компьютер фирмы Тега Computer Company.

Наука и жизнь // Иллюстрации

Подобные компьютеры для многих так и остаются тайной за семью печатями, окруженной ореолом ассоциаций с чем-то очень большим: огромные размеры, сверхсложные задачи, крупные фирмы и компании, невероятные скорости работы и т.д. Одним словом, супер-ЭВМ, что-то далекое и недоступное. Между тем, если вам хотя бы раз приходилось пользоваться услугами серьезных поисковых систем в Интернете (см. "Наука и жизнь" № 11, 1999 г.), вы, сами того не подозревая, имели дело с одним из приложений суперкомпьютерных технологий.

Доктор физико-математических наук В. ВОЕВОДИН, заместитель директора Научно-исследовательского вычислительного центра МГУ им. М. В. Ломоносова.

ЧТО ТАКОЕ СУПЕРКОМПЬЮТЕР

Считается, что супер-ЭВМ - это компьютеры с максимальной производительностью. Однако быстрое развитие компьютерной индустрии делает это понятие весьма и весьма относительным: то, что десять лет назад можно было назвать суперкомпьютером, сегодня под это определение уже не подпадает. Производительность первых супер-ЭВМ начала 70-х годов была сравнима с производительностью современных ПК на базе традиционных процессоров Pentium. По сегодняшним меркам ни те, ни другие к суперкомпьютерам, конечно же, не относятся.

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

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

Так что же такое современный суперкомпьютер? Самая мощная ЭВМ на сегодняшний день - это система Intel ASCI RED, построенная по заказу Министерства энергетики США. Чтобы представить себе возможности этого суперкомпьютера, достаточно сказать, что он объединяет в себе 9632 (!) процессора Pentium Pro, имеет более 600 Гбайт оперативной памяти и общую производительность в 3200 миллиардов операций в секунду. Человеку потребовалось бы 100000 лет, чтобы даже с калькулятором выполнить все те операции, которые этот компьютер делает всего за 1 секунду!

Создать подобную вычислительную систему - все равно, что построить целый завод со своими системами охлаждения, бесперебойного питания и т.д. Понятно, что любой суперкомпьютер, даже в более умеренной конфигурации, должен стоить не один миллион долларов США: ради интереса прикиньте, сколько стоят, скажем, лишь 600 Гбайт оперативной памяти? Возникает естественный вопрос: какие задачи настолько важны, что требуются компьютеры стоимостью в несколько миллионов долларов? Или еще один: какие задачи настолько сложны, что хорошего Pentium III для их решения недостаточно?

НУЖНЫ ЛИ НАМ СУПЕРКОМПЬЮТЕРЫ?

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

Возьмем, к примеру, США, по территории которых два раза в год проходят разрушительные торнадо. Они сметают на своем пути города, поднимают в воздух автомобили и автобусы, выводят реки из берегов, заливая тем самым гигантские территории. Борьба с торнадо - существенная часть американского бюджета. Только штат Флорида, который находится недалеко от тех мест, где эти смерчи рождаются, за последние годы потратил более 50 миллиардов долларов на экстренные меры по спасению людей. Правительство не жалеет денег на внедрение технологий, которые позволили бы предсказывать появление торнадо и определять, куда он направится.

Как рассчитать торнадо? Очевидно, что для этого надо решить задачу о локальном изменении погоды, то есть задачу о движении масс воздуха и распределении тепла в неком регионе. Принципиально это несложно, однако на практике возникают две проблемы. Проблема первая: чтобы заметить появление смерча, надо проводить расчет на характерных для его образования размерах, то есть на расстояниях порядка двух километров. Вторая трудность связана с правильным заданием начальных и граничных условий. Дело в том, что температура на границах интересующего вас региона зависит от того, что делается в соседних регионах. Рассуждая дальше, легко убедиться, что мы не можем решить задачу о смерче, не имея данных о климате на всей Земле. Климат на планете рассчитать можно, что и делается каждый день во всех странах для составления среднесрочных прогнозов погоды. Однако имеющиеся ресурсы позволяют вести расчеты лишь с очень большим шагом - десятки и сотни километров. Ясно, что к предсказанию смерчей такой прогноз не имеет никакого отношения.

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

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

Так, по данным компании Ford, для выполнения crash-тестов, при которых реальные автомобили разбиваются о бетонную стену с одновременным замером необходимых параметров, со съемкой и последующей обработкой результатов, ей понадобилось бы от 10 до 150 прототипов для каждой новой модели. При этом общие затраты составили бы от 4 до 60 миллионов долларов. Использование суперкомпьютеров позволило сократить число прототипов на одну треть.

Известной фирме DuPont суперкомпьютеры помогли синтезировать материал, заменяющий хлорофлюорокарбон. Нужно было найти материал, имеющий те же положительные качества: невоспламеняемость, стойкость к коррозии и низкую токсичность, но без вредного воздействия на озоновый слой Земли. За одну неделю были проведены необходимые расчеты на суперкомпьютере с общими затратами около 5 тысяч долларов. По оценкам специалистов DuPont, использование традиционных экспериментальных методов исследований потребовало бы 50 тысяч долларов и около трех месяцев работы - и это без учета времени, необходимого на синтез и очистку требуемого количества вещества.

ПОЧЕМУ СУПЕРКОМПЬЮТЕРЫ СЧИТАЮТ ТАК БЫСТРО?

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

Попробуем разобраться, какой из этих факторов оказывается решающим для достижения рекордной производительности. Обратимся к известным историческим фактам. На одном из первых компьютеров мира EDSAC, появившемся в 1949 году в Кембридже и имевшем время такта 2 микросекунды (2·10 -6 секунды), можно было выполнить 2n арифметических операций за 18n миллисекунд, то есть в среднем 100 арифметических операций в секунду. Сравним с одним вычислительным узлом современного суперкомпьютера Hewlett-Packard V2600: время такта приблизительно 1,8 наносекунды (1,8·10 -9 секунды), а пиковая производительность - около 77 миллиардов арифметических операций в секунду.

Что же получается? За полвека производительность компьютеров выросла более чем в семьсот миллионов раз. При этом выигрыш в быстродействии, связанный с уменьшением времени такта с 2 микросекунд до 1,8 наносекунды, составляет лишь около 1000 раз. Откуда же взялось остальное? Ответ очевиден - за счет использования новых решений в архитектуре компьютеров. Основное место среди них занимает принцип параллельной обработки данных, воплощающий идею одновременного (параллельного) выполнения нескольких действий.

Различают два способа параллельной обработки: собственно параллельную и конвейерную. Оба способа интуитивно абсолютно понятны, поэтому сделаем лишь небольшие пояснения.

Параллельная обработка

Предположим для простоты, что некое устройство выполняет одну операцию за один такт. В этом случае тысячу операций такое устройство выполнит за тысячу тактов. Если имеется пять таких же независимых устройств, способных работать одновременно, то ту же тысячу операций система из пяти устройств может выполнить уже не за тысячу, а за двести тактов. Аналогично система из N устройств ту же работу выполнит за 1000/N тактов. Подобные примеры можно найти и в жизни: если один солдат выкопает траншею за 10 часов, то рота солдат из пятидесяти человек с такими же способностями, работая одновременно, справится с той же работой за 12 минут- принцип параллельности в действии!

Кстати, пионером в параллельной обработке потоков данных был академик А. А. Самарский, выполнявший в начале 50-х годов расчеты, необходимые для моделирования ядерных взрывов. Самарский решил эту задачу методом сеток, посадив несколько десятков барышень с арифмометрами за столы (узлы сетки). Барышни передавали данные одна другой просто на словах и откладывали необходимые цифры на арифмометрах. Таким образом, в частности, была рассчитана эволюция взрывной волны. Работы было много, барышни уставали, а Александр Андреевич ходил между ними и подбадривал. Так создали, можно сказать, первую параллельную систему. Хотя расчеты водородной бомбы провели мастерски, точность их оказалась очень низкой, потому что узлов в используемой сетке было мало, а время счета получалось слишком большим.

Конвейерная обработка

Что необходимо для сложения двух вещественных чисел, представленных в форме с плавающей запятой? Целое множество мелких операций, таких, как сравнение порядков, выравнивание порядков, сложение мантисс, нормализация и т.п. Процессоры первых компьютеров выполняли все эти "микрооперации" для каждой пары слагаемых последовательно, одну за другой, до тех пор, пока не доходили до окончательного результата, и лишь после этого переходили к обработке следующей пары слагаемых.

Идея конвейерной обработки заключается в расчленении операции на отдельные этапы, или, как это принято называть, ступени конвейера. Каждая ступень, выполнив свою работу, передает результат следующей ступени, одновременно принимая новую порцию входных данных. Получается очевидный выигрыш в скорости обработки. В самом деле, предположим, что в операции сложения можно выделить пять микроопераций, каждая из которых выполняется за один такт работы компьютера. Если есть одно неделимое последовательное устройство сложения, то 100 пар аргументов оно обработает за 500 тактов. Если теперь каждую микрооперацию преобразовать в отдельную ступень конвейерного устройства, то на пятом такте на разной стадии обработки будут находиться первые пять пар аргументов, и далее конвейерное устройство будет выдавать результат очередного сложения каждый такт. Очевидно, что весь набор из ста пар слагаемых будет обработан за 104 единицы времени - ускорение по сравнению с последовательным устройством почти в пять раз (по числу ступеней конвейера).

Идеи параллельной обработки появились очень давно. Изначально они внедрялись в самых передовых, а потому единичных компьютерах своего времени. Затем после должной отработки технологии и удешевления производства они спускались в компьютеры среднего класса, и наконец сегодня все это в полном объеме воплощается в рабочих станциях и персональных компьютерах. Все современные микропроцессоры, будь то Pentium III или РА-8600, Е2К или Power2 SuperChip, используют тот или иной вид параллельной обработки.

Для того чтобы лишний раз убедиться, что все новое - это хорошо забытое старое, достаточно лишь нескольких примеров. Уже в 1961 году создается компьютер IBM STRETCH, имеющий две принципиально важные особенности: опережающий просмотр вперед для выборки команд (при котором одновременно с текущей считываются команды, выполняемые позднее) и расслоение памяти на два банка - реализация параллелизма при работе с памятью. В 1963 году в Манчестерском университете разработан компьютер ATLAS, использующий конвейерный принцип выполнения команд. Выполнение команд разбито на четыре стадии: выборка команды, вычисление адреса операнда, выборка операнда и выполнение операции. Это позволило уменьшить время выполнения команд в среднем с 6 до 1,6 микросекунды. В1969 году Control Data Corporation выпускает компьютер CDC-7600 с восемью независимыми конвейерными функциональными устройствами.

СОВРЕМЕННЫЕ СУПЕРКОМПЬЮТЕРЫ

А что же сейчас используют в мире? По каким направлениям идет развитие высокопроизводительной вычислительной техники? Таких направлений четыре.

Векторно-конвейерные компьютеры

Две главные особенности таких машин: наличие конвейерных функциональных устройств и набора векторных команд. В отличие от обычных команд векторные оперируют целыми массивами независимых данных, то есть команда вида А=В+С может означать сложение двух массивов, а не двух чисел. Характерный представитель данного направления - семейство векторно-конвейерных компьютеров CRAY, куда входят, например, CRAY EL, CRAY J90, CRAY T90 (в марте этого года американская компания TERA перекупила подразделение CRAY у компании Silicon Graphics, Inc.).

Массивно-параллельные компьютеры с распределенной памятью

Идея построения компьютеров этого класса тривиальна: серийные микропроцессоры соединяются с помощью сетевого оборудования - вот и все. Достоинств у такой архитектуры масса: если нужна высокая производительность, то можно добавить процессоры, а если ограничены финансы или заранее известна требуемая вычислительная мощность, то легко подобрать оптимальную конфигурацию. К этому же классу можно отнести и простые сети компьютеров, которые сегодня все чаще рассматриваются как дешевая альтернатива крайне дорогим суперкомпьютерам. (Правда, написать эффективную параллельную программу для таких сетей довольно сложно, а в некоторых случаях просто невозможно). К массивно-параллельным можно отнести компьютеры Intel Paragon, ASCI RED, IBM SP1, Parsytec, в какой-то степени IBM SP2 и CRAY T3D/T3E.

Параллельные компьютеры с общей памятью

Вся оперативная память в таких компьютерах разделяется несколькими одинаковыми процессорами, обращающимися к общей дисковой памяти. Проблем с обменом данными между процессорами и синхронизацией их работы практически не возникает. Вместе с тем главный недостаток такой архитектуры состоит в том, что по чисто техническим причинам число процессоров, имеющих доступ к общей памяти, нельзя сделать большим. В данное направление суперкомпьютеров входят многие современные SMP-компьютеры (Symmetric Multi Processing), например сервер НР9000 N-class или Sun Ultra Enterprise 5000.

Кластерные компьютеры

Этот класс суперкомпьютеров, строго говоря, нельзя назвать самостоятельным, скорее, он представляет собой комбинации предыдущих трех. Из нескольких процессоров, традиционных или векторно-конвейерных, и общей для них памяти формируется вычислительный узел. Если мощности одного узла недостаточно, создается кластер из нескольких узлов, объединенных высокоскоростными каналами. По такому принципу построены CRAY SV1, HP Exemplar, Sun StarFire, NEC SX-5, последние модели IBM SP2 и другие. В настоящее время именно это направление считается наиболее перспективным.

Два раза в год составляется список пятисот самых мощных вычислительных установок мира (его можно посмотреть в Интернете по адресу http://parallel.ru/top500.html). Согласно последней редакции списка top500, вышедшей в ноябре прошлого года, первое место занимает массивно-параллельный компьютер Intel ASCI Red. На второй позиции стоит компьютер ASCI Blue-Pacific от IBM, объединяющий 5808 процессоров PowerPC 604e/332MHz. Оба эти суперкомпьютера созданы в рамках американской национальной программы Advanced Strategic Computing Initiative, аббревиатура которой и присутствует в названии. Производительность компьютера, стоящего на последнем, 500-м, месте в списке самых мощных, составляет 33,4 миллиарда операций в секунду.

Если мощность существующих компьютеров поражает, то что говорить о планах. В декабре 1999 года корпорация IBM сообщила о новом исследовательском проекте общей стоимостью около 100 миллионов долларов, цель которого - построение суперкомпьютера, в 500 раз превосходящего по производительности самые мощные компьютеры сегодняшнего дня. Компьютер, имеющий условное название Blue Gene, будет иметь производительность порядка 1 PETAFLOPS (10 15 операций в секунду) и использоваться для изучения свойств белковых молекул. Предполагается, что каждый отдельный процессор Blue Gene будет иметь производительность порядка 1 GFLOPS (10 9 операций в секунду). 32 подобных процессора будут помещены на одну микросхему. Компактная плата размером 2x2 фута будет вмещать 64 микросхемы, что по производительности не уступает упоминавшимся ранее суперкомпьютерам ASCI, занимающим площадь 8000 квадратных метров. Более того, 8 таких плат будут помещены в 6-футовую стойку, а вся система будет состоять из 64 стоек с суммарной производительностью 1 PFLOPS. Фантастика!

Вычислительный кластер Московского государственного университета им. М. В. Ломоносова - минимальная стоимость, суперкомпьютерная производительность. В настоящий момент это самая мощная вычислительная система, установленная в вузе России.

СУПЕРКОМПЬЮТЕРЫ В РОССИИ

Идеи построения собственных суперкомпьютерных систем существовали в России всегда. Еще в 1966 году М.А.Карцев выдвинул идею создания многомашинного вычислительного комплекса М-9 производительностью около миллиарда операций в секунду. В то время ни одна из машин мира не работала с такой скоростью. Однако, несмотря на положительную оценку министерства, комплекс М-9 промышленного освоения не получил.

Работы по созданию суперкомпьютерных систем и суперкомпьютерных центров ведутся в России и сейчас. Наиболее известна линия отечественных суперкомпьютеров МВС-1000, создаваемая в кооперации научно-исследовательских институтов Российской академии наук и промышленности. Супер-ЭВМ линии МВС-1000 - это мультипроцессорный массив, объединенный с внешней дисковой памятью, устройствами ввода/вывода информации и управляющим компьютером. Компьютеры МВС-1000 используют микропроцессоры Alpha 21164 (разработка фирмы DEC-Compaq) с производительностью до 1-2 миллиардов операций в секунду и оперативной памятью объемом 0,1-2 Гбайта.

Спектр научных и практических задач, решаемых на таком компьютере, может быть очень велик: расчет трехмерных нестационарных течений вязкосжимаемого газа, расчеты течений с локальными тепловыми неоднородностями в потоке, моделирование структурообразования и динамики молекулярных и биомолекулярных систем, решение задач линейных дифференциальных игр, расчет деформаций твердых тел с учетом процессов разрушения и многие другие. Одна из самых мощных систем линии МВС-1000, установленная в Межведомственном суперкомпьютерном центре, содержит 96 процессоров.

В последнее время в России, также как и во всем мире, активно используется кластерный подход к построению суперкомпьютеров. Покупаются стандартные компьютеры и рабочие станции, которые с помощью стандартных сетевых средств объединяются в параллельную вычислительную систему. По такому пути пошел, и, надо сказать, успешно, Научно-исследовательский вычислительный центр Московского государственного университета им. М.В.Ломоносова, создавший кластер из 12 двухпроцессорных серверов "Эксимер" на базе Intel Pentium III/500MHz (в сумме 24 процессора, более 3 Гбайт оперативной памяти, 66 Гбайт дисковой памяти). Сегодня это крупнейшая вычислительная установка в вузе России, предназначенная для поддержки фундаментальных научных исследований и образования. При минимальной стоимости вычислительный кластер НИВЦ МГУ показывает производительность 5,7 миллиарда операций в секунду при решении системы линейных алгебраических уравнений с плотной матрицей размером 16000x16000! В будущем планируется значительно увеличить мощность кластера как за счет добавления новых процессоров, так и за счет модернизации вычислительных узлов.

ВМЕСТО ЗАКЛЮЧЕНИЯ

К сожалению, чудеса в нашей жизни случаются редко. Гигантская производительность параллельных компьютеров и супер-ЭВМ с лихвой компенсируется сложностью их использования. Да что там использование, иногда даже вопросы, возникающие вокруг суперкомпьютеров, ставят в тупик. Как вы думаете, верно ли утверждение: чем мощнее компьютер, тем быстрее на нем можно решить данную задачу? Ну, конечно же, нет... Простой бытовой пример. Если один землекоп выкопает яму за 1 час, то два землекопа справятся с задачей за 30 мин - в это еще можно поверить. А за сколько времени эту работу сделают 60 землекопов? Неужели за 1 минуту? Конечно же, нет! Начиная с некоторого момента они будут просто мешать друг другу, не ускоряя, а замедляя процесс. Так же и в компьютерах: если задача слишком мала, то мы будем дольше заниматься распределением работы, синхронизацией процессов, сборкой результатов и т. п., чем непосредственно полезной деятельностью.

Но все вопросы, сопровождающие суперкомпьютер, конечно же, решаются. Да, использовать суперкомпьютеры сложнее, чем персоналку: нужны дополнительные знания и технологии, высококвалифицированные специалисты, более сложная информационная инфраструктура. Написать эффективную параллельную программу намного сложнее, чем последовательную, да и вообще создание программного обеспечения для параллельных компьютеров - это центральная проблема суперкомпьютерных вычислений. Но без супер-ЭВМ сегодня не обойтись, и отрадно, что в нашей стране есть понимание необходимости развития этих технологий. Так, в ноябре прошлого года в Президиуме Российской академии наук состоялось открытие межведомственного суперкомпьютерного центра. В процессе становления суперкомпьютерные центры в Дубне, Черноголовке, Институте прикладной математики РАН им. М. В. Келдыша, Институте математического моделирования РАН, Московском государственном университете им. М. В. Ломоносова. Создана и развивается линия отечественных суперкомпьютеров МВС-1000. Активно разворачивает свою деятельность Информационно-аналитический центр по параллельным вычислениям в сети Интернет WWW.PARALLEL.RU, осуществляющий информационную поддержку многих российских проектов. А иначе и нельзя. Параллельные вычисления и параллельные компьютеры - это реальность, и это уже навсегда.

ПОДРОБНОСТИ ДЛЯ ЛЮБОЗНАТЕЛЬНЫХ

ЗАКОН АМДАЛА

Представьте себе ситуацию: у вас есть программа и доступ, скажем, к 256-процессорному суперкомпьютеру. Вы, вероятно, ожидаете, что программа будет выполняться в 256 раз быстрее, чем на одном процессоре? А вот этого, скорее всего, и не произойдет.

Предположим, что в вашей программе доля операций, которые нужно выполнять последовательно, равна f, причем 0 ≤ f ≤ 1 (эта доля определяется не по числу строк кода, а по числу операций в процессе выполнения). Крайние случаи в значениях f соответствуют полностью параллельным (f=0) и полностью последовательным (f=1) программам. Так вот, для того, чтобы оценить, какое ускорение S можно получить на компьютере, состоящем из р процессоров, при данном значении f, воспользуемся законом Амдала:

S ≤ 1/{f+(1- f)/p}.

Если вдуматься как следует, то закон на самом деле страшный. Предположим, что в вашей программе лишь 10% последовательных операций, т.е. f=0,1. В этом случае закон утверждает: сколько бы процессоров вы ни использовали, ускорения работы программы более чем в десять раз никак не получите. Да и то десять - это теоретическая оценка сверху самого лучшего случая, когда никаких других отрицательных факторов нет...

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

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

Этот алгоритм строго последовательный, так как на i-той итерации цикла требуется результат (i-1)-вой, и все итерации выполняются одна за другой. В данном случае f=1, и, стало быть, никакого эффекта от использования параллельных компьютеров для выполнения этого алгоритма мы не получим. Вместе с тем выход очевиден. Поскольку в большинстве реальных случаев нет существенной разницы, в каком порядке складывать числа, выберем иную схему сложения. Сначала найдем сумму пар соседних элементов: а(1)+а(2), а(3)+а(4), а(5)+а(6) и т. д. Заметим, что при такой схеме все пары можно складывать одновременно. На следующих шагах будем действовать аналогично, получив вариант параллельного алгоритма.

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

http://parallel.ru/vvv/.

РАСПРЕДЕЛЕНИЕ ПЯТИСОТ САМЫХ МОЩНЫХ КОМПЬЮТЕРОВ МИРА ПО СТРАНАМ, ГДЕ ОНИ РАСПОЛОЖЕНЫ, И ФИРМАМ-ПРОИЗВОДИТЕЛЯМ

2 15 10 10 2 57
США-Канада Европа Япония Остальные ВСЕГО
IBM 67 67 2 5 141
SGI/CRAY 92 27 12 2 133
SUN 76 29 4 4 113
Hewlett-Packard 33 10 45
Fujitsu 1 9 1 26
NEC 2 7 2 21
Hitachi 1 11
Остальные 6 2 10
ВСЕГО 277 152 14 500

Суперкомпьютеры: прошлое, настоящее и будущее

Впервые термин "суперЭВМ" был использован в начале 60-х годов, когда группа специалистов Иллинойского университета (США) под руководством доктора Д. Слотника предложила идею реализации первой в мире параллельной вычислительной системы. Проект, получивший название SOLOMON, базировался на принципе векторной обработки, который был сформулирован еще Дж. фон Нейманом, и концепции матричной параллельной архитектуры, предложенной С. Унгером в начале 50-х годов.

Дело в том, что большинство суперкомпьютеров демонстрирует поражающую воображение производительность благодаря именно этому (векторному) виду параллелизма. Любой программист, разрабатывая программы на привычных языках высокого уровня, наверняка неоднократно сталкивался с так называемыми циклами DO. Но мало кто задумывался, какой потенциал увеличения производительности заключается в этих часто используемых операторах. Известный специалист в области систем программирования Д.Кнут показал, что циклы DO занимают менее 4% кода программ на языке FORTRAN, но требуют более половины счетного времени задачи.

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

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

Первой суперЭВМ, использующей преимущества векторной обработки, была ILLIAC IV (SIMD архитектура). В начале 60-х годов группа все того же Слотника, объединенная в Центр передовых вычислительных технологий при Иллинойском университете, приступила к практической реализации проекта векторной суперЭВМ с матричной структурой. Изготовление машины взяла на себя фирма Burroughs Corp. Техническая сторона проекта до сих пор поражает своей масштабностью: система должна была состоять из четырех квадрантов, каждый из которых включал в себя 64 процессорных элемента (ПЭ) и 64 модуля памяти, объединенных коммутатором на базе сети типа гиперкуб. Все ПЭ квадранта обрабатывают векторную инструкцию, которую им направляет процессор команд, причем каждый выполняет одну элементарную операцию вектора, данные для которой сохраняются в связанном с этим ПЭ модуле памяти. Таким образом, один квадрант ILLIAC IV способен одновременно обработать 64 элемента вектора, а вся система из четырех квадрантов - 256 элементов. В 1972 г. первая система ILLIAC IV была установлена в исследовательском центре NASA в Эймсе. Результаты ее эксплуатации в этой организации получили неоднозначную оценку. С одной стороны, использование суперкомпьютера позволило решить ряд сложнейших задач аэродинамики, с которыми не могли справиться другие ЭВМ. Даже самая скоростная ЭВМ для научных исследований того времени - Control Data CDC 7600, которую, к слову сказать, проектировал "патриарх суперЭВМ" Сеймур Крей, могла обеспечить производительность не более 5 MFLOPS, тогда как ILLIAC IV демонстрировала среднюю производительность примерно в 20 MFLOPS. С другой стороны, ILLIAC IV так и не была доведена до полной конфигурации из 256 ПЭ; практически разработчики ограничились лишь одним квадрантом. Причинами явились не столько технические сложности в наращивании числа процессорных элементов системы, сколько проблемы, связанные с программированием обмена данными между процессорными элементами через коммутатор модулей памяти. Все попытки решить эту задачу с помощью системного программного обеспечения потерпели неудачу, в результате каждое приложение требовало ручного программирования передач коммутатора, что и породило неудовлетворительные отзывы пользователей.

Если бы разработчикам ILLIAC IV удалось преодолеть проблемы программирования матрицы процессорных элементов, то, вероятно, развитие вычислительной техники пошло бы совершенно другим путем и сегодня доминировали бы компьютеры с матричной архитектурой. Однако ни в 60-х годах, ни позднее удовлетворительное и универсальное решение двух таких принципиальных проблем, как программирование параллельной работы нескольких сотен процессоров и при этом обеспечение минимума затрат счетного времени на обмен данными между ними, так и не было найдено. Потребовалось еще примерно 15 лет усилий различных фирм по реализации суперЭВМ с матричной архитектурой, чтобы поставить окончательный диагноз: компьютеры данного типа не в состоянии удовлетворить широкий круг пользователей и имеют весьма ограниченную область применения, часто в рамках одного или нескольких видов задач.

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

Операндов и запись результата. Например, если конвейер, выполняющий одну элементарную операцию за пять тактов, заменить на четыре таких же конвейера, то при длине векторов в 100 элементов векторная команда ускоряется всего в 3,69, а не в 4 раза. Эффект "отставания" роста производительности от увеличения числа конвейеров особенно заметен, когда процессор затрачивает значительное время на обмен данными между конвейером и памятью. Это обстоятельство не было должным образом оценено при разработке CYBER-205, и в результате архитектура "память-память" данной модели настолько ухудшила динамические параметры четырех конвейеров ее векторного процессора, что для достижения производительности, близкой к 200 MFLOPS, потребовалась очень высокая степень векторизации программ (порядка 1 тыс. элементов в векторе), т.е. потенциально самая мощная суперЭВМ 70-х годов реально могла эффективно обрабатывать только ограниченный класс задач. Конечно, подобный просчет негативно отразился на рыночной судьбе CYBER-205 и на всей программе суперЭВМ компании Control Data. После CYBER-205 фирма CDC прекратила попытки освоения рынка суперЭВМ.

Использование в суперкомпьютерах NEC SX архитектуры "регистр-регистр" позволило нейтрализовать недостатки многоконвейерной обработки, и модель NEC SX-2 с 16 векторными конвейерами стала первой суперЭВМ, преодолевшей рубеж в миллиард операций с плавающей точкой за секунду - ее пиковая производительность составила 1,3 GFLOPS. Фирма Hitachi пошла по другому пути. В суперкомпьютерах серии S-810 ставка была сделана на параллельное выполнение сразу шести векторных команд. Далее Hitachi, продолжает линию этого семейства моделями S-810/60 и S-810/80; последняя занимает достойное третье место по результатам тестирования производительности на пакете LINPACK, уступая только грандам из CRAY и NEC. Относительную коммерческую стабильность суперкомпьютеров Hitachi можно объяснить тем, что они, как и суперЭВМ фирмы Fujitsu, полностью совместимы с системой IBM/370 по скалярным операциям. Это позволяет применять программы, созданные на IBM VS FORTRAN и в стандарте ANSI X3.9 (FORTRAN 77), а также использовать стандартную операционную среду MVS TSO/SPF и большинство системных расширений IBM, включая управление вводом/выводом для IBM-совместимых дисковых и ленточных накопителей. Другими словами, японские суперЭВМ фирм Hitachi и Fujitsu первыми в мире суперкомпьютеров использовали дружественный интерфейс для пользователей наиболее распространенной в то время вычислительной системы - IBM/370.

Натиск японских производителей был впечатляющим, но тут С. Крей наносит своевременный контрудар - в 1982 г. на рынке появилась первая модель семейства суперкомпьютеров CRAY X-MP, а двумя годами позже в Ливерморской национальной физической лаборатории им. Лоуренса был установлен первый экземпляр суперЭВМ CRAY-2. Машины от Cray Research опередили конкурентов в главном - они ознаменовали зарождение нового поколения ЭВМ сверхвысокой производительности, в которых векторно-конвейерный параллелизм дополнялся мультипроцессорной обработкой. Крей применил в своих компьютерах неординарные решения проблемы увеличения производительности. Сохранив в CRAY-2 и CRAY X-MP архитектуру и структурные наработки CRAY- 1, он сокрушил конкурентов сразу на двух фронтах: достиг рекордно малой длительности машинного цикла (4,1 нс) и расширил параллелизм системы за счет мультипроцессорной обработки. В итоге Cray Research сохранила за собой звание абсолютного чемпиона по производительности: CRAY-2 продемонстрировала пиковую производительность 2 GFLOPS, обогнав NEC SX-2 - самую быструю японскую суперЭВМ - в полтора раза. Для решения проблемы оптимизации машинного цикла Крей пошел дальше японцев, которые уже владели технологией ECL-БИС, позволившей в Fujitsu VP достичь длительности машинного цикла в 7,5 нс. Помимо того что в CRAY-2 были использованы быстродействующие ECL-схемы, конструктивное решение блоков ЦП обеспечивало максимальную плотность монтажа компонентов. Для охлаждения такой уникальной системы, которая выделяла ни много ни мало 195 кВт, была использована технология погружения модулей в карбид фтора - специальный жидкий хладагент производства американской фирмы 3M.

Второе революционное решение, реализованное в суперкомпьютере CRAY- 2, заключалось в том, что объем оперативной памяти был доведен до 2 Гбайт. С.Крею удалось выполнить критерий балансировки производительности и емкости оперативной памяти по Флинну: "Каждому миллиону операций производительности процессора должно соответствовать не менее 1 Мбайт емкости оперативной памяти". Суть проблемы заключается в том, что типичные задачи гидро- и аэродинамики, ядерной физики, геологии, метеорологии и других дисциплин, решаемые с помощью суперЭВМ, требуют обработки значительного объема данных для получения результатов приемлемой точности. Eстественно, при таких объемах вычислений относительно малая емкость оперативной памяти вызывает интенсивный обмен с дисковой памятью, что в полном соответствии с законом Амдала ведет к резкому снижению производительность системы.

Все-таки новый качественный уровень суперкомпьютера CRAY-2 определялся не столько сверхмалой длительностью машинного цикла и сверхбольшой емкостью оперативной памяти, сколько мультипроцессорной архитектурой, заимствованной у другой разработки Cray Research - семейства многопроцессорных суперЭВМ CRAY X-MP. Его три базовые модели - X-MP/1, X-MP/2 и X-MP/4 - предлагали пользователям одно-, двух- или четырехпроцессорную конфигурацию системы с производительностью 410 MFLOPS на процессор. Спектр доступных вариантов расширялся за счет возможности установки памяти разного объема (от 32 до 128 Мбайт на систему). Такой ориентированный на рынок подход к построению суперкомпьютера впоследствии принес фирме Cray Research ощутимый коммерческий эффект. Мультипроцессорная архитектура суперкомпьютеров производства CRAY была разработана с учетом достижений и недостатков многопроцессорных мэйнфреймов, в первую очередь фирмы IBM. В отличие от "классических" операционных систем IBM, которые используют для взаимодействия процессов механизм глобальных переменных и семафоров в общей памяти, мультипроцессорная архитектура CRAY предполагает обмен данными между процессорами через специальные кластерные регистры, кроме того, для обслуживания взаимодействия процессов в архитектуре CRAY предусмотрены аппаратно-реализованные семафорные флажки, которые устанавливаются, сбрасываются и анализируются с помощью специальных команд, что также ускоряет межпроцессорный обмен и в итоге увеличивает системную производительность. В результате этих новшеств коэффициент ускорения двухпроцессорной суперЭВМ CRAY X-MP/2 по отношению к однопроцессорной CRAY X-MP/1 составляет не менее 1,86.

В отличие от семейства CRAY X-MP, модели которого работают под управлением операционной системы COS (Cray Operating System), CRAY-2 комплектовалась новой операционной системой CX-COS, созданной фирмой Cray Research на базе Unix System V.

Во второй половине 80-х годов Control Data, "сошедшая с дистанции" после неудачи с моделью CYBER-205 вновь появляется на рынке сперЭВМ. Строго говоря, за разработку новой восьмипроцессорной суперЭВМ взялась ETA Systems - дочерняя фирма CDC, - однако в этом проекте был задействован практически весь потенциал Control Data. Вначале проект под названием ETA-10, получивший поддержку правительства через контракты и дотации потенциальным пользователям вызвал оживление среди специалистов по сверхскоростной обработке. Ведь новая суперЭВМ должна была достичь производительности в 10 GFLOPS, т.е. в пять раз превзойти CRAY-2 по скорости вычислений. Первый образец ETA-10 с одним процессором производительностью 750 MFLOPS был продемонстрирован в 1988 г., однако дальше дела пошли хуже. Во втором квартале 1989 г. Control Data объявила о свертывании деятельности компании ETA Systems из-за нерентабельности производства.

Не остался в стороне от проблем сверхвысокой производительности и гигант компьютерного мира - фирма IBM. Не желая уступать своих пользователей конкурентам из Cray Research, компания приступила к программе выпуска старших моделей семейства IBM 3090 со средствами векторной обработки (Vector Facility). Самая мощная модель этой серии - IBM 3090/VF-600S оснащена шестью векторными процессорами и оперативной памятью емкостью 512 Мбайт. В дальнейшем эта линия была продолжена такими машинами архитектуры ESA, как IBM ES/9000-700 VF и ES/9000-900 VF, производительность которых в максимальной конфигурации достигла 450 MFLOPS.

Еще одна известная в компьютерном мире фирма - Digital Equipment Corp. - в октябре 1989 г. анонсировала новую серию мэйнфреймов с векторными средствами обработки. Старшая модель VAX 9000/440 оснащена четырьмя векторными процессорами, повышающими производительность ЭВМ до 500 MFLOPS.

Высокая стоимость суперЭВМ и векторных мэйнфреймов оказалась не по карману достаточно широкому кругу заказчиков, потенциально готовых воспользоваться компьютерными технологиями параллельных вычислений. К их числу относятся мелкие и средние научные центры и университеты, а также производственные компании, которые нуждаются в высокопроизводительной, но сравнительно недорогой вычислительной технике.

С другой стороны, такие крупнейшие производители суперЭВМ, как Cray Research, Fujitsu, Hitachi и NEC, явно недооценили потребности "средних" пользователей, сосредоточившись на достижении рекордных показателей производительности и, к сожалению, еще более рекордной стоимости своих изделий. Весьма гибкой оказалась стратегия Control Data, которая после неудачи с CYBER-205 основное внимание уделила выпуску научных компьютеров среднего класса. На конец 1988 г. производство машин типа CYBER-932 вдвое превысило выпуск старших моделей серии CYBER-900 и суперЭВМ с маркой CDC. Основным конкурентом Control Data на рынке малогабаритных параллельных компьютеров, которые получили общее название "мини-суперЭВМ", стала будущий лидер в мире мини-суперкомпьютеров фирма Convex Computer. В своих разработках Convex первой реализовала векторную архитектуру с помощью сверхбольших интегральных схем (СБИС) по технологии КМОП. В результате пользователи получили серию относительно недорогих компьютеров по цене менее 1 млн. долл., обладающих производительностью от 20 до 80 MFLOPS. Спрос на эти машины превзошел все ожидания. Явно рискованные инвестиции в программу Convex обернулись быстрым и солидным доходом от ее реализации. История развития суперкомпьютеров однозначно показывает, что в этой сложнейшей области инвестирование высоких технологий, как правило, дает положительный результат - надо только, чтобы проект был адресован достаточно широкому кругу пользователей и не содержал слишком рискованных технических решений. Convex, которая, получив такое преимущество на старте, стала успешно развиваться. Сначала она выпустила на рынок семейство Convex C-3200, старшая модель которого C-3240 имеет производительность 200 MFLOPS, а затем - семейство Convex C-3800, состоящее из четырех базовых моделей в одно-, двух- , четырех- и восьмипроцессорной конфигурации. Самая мощная машина этой серии Convex C-3880 имеет производительность, достойную "настоящей" суперЭВМ 80-х годов, и при тестировании на пакете LINPACK обогнала по скорости вычислений такие системы, как IBM ES/9000-900 VF, ETA-10P и даже CRAY-1S. Отметим, что Cray Research, выпускает мини-суперЭВМ CRAY Y-EL, также реализованную на технологии КМОП-СБИС. Этот компьютер может поставляться в одно-, двух- или четырехпроцессорной конфигурации и обеспечивает производительность 133 MFLOPS на процессор. Объем оперативной памяти изменяется в зависимости от пожеланий заказчика в диапазоне 256-1024 Мбайт.

Доминирование векторных суперкомпьютеров в государственных программах и устойчивое положение "царя горы", занятое Cray Research, явно не устраивало сторонников MIMD-параллелизма. Первоначально в этот класс были включены многопроцессорные мэйнфреймы, а впоследствии к ним добавились суперЭВМ третьего поколения с мультипроцессорной структурой. И те и другие основаны на сформулированном фон Нейманом принципе управления вычислительным процессом по командам программы, или управления потоком команд (Instruction Flow). Однако примерно с середины 60-х годов математики стали обсуждать проблему разбиения задачи на большое число параллельных процессов, каждый из которых может обрабатываться независимо от других, а управление выполнением всей задачи осуществляется путем передачи данных от одного процесса к другому. Этот принцип, известный как управление потоком данных (Data Flow), в теории выглядит очень многообещающим. Теоретики DataFlow-параллелизма предполагали, что систему можно будет организовать из небольших и потому дешевых однотипных процессоров. Достижение сверхвысокой производительности целиком возлагалось на компилятор, осуществляющий распараллеливание вычислительного процесса, и ОС, координирующую функционирование процессоров. Внешняя простота принципа MIMD-параллелизма вызвала к жизни множество проектов.

Из наиболее известных разработок систем класса MIMD стоит упомянуть IBM RP3 (512 процессоров, 800 MFLOPS), Cedar (256 процессоров, 3,2 GFLOPS; компьютер одноименной фирмы), nCUBE/10 (1024 процессора, 500 MFLOPS) и FPS-T (4096 процессоров, 65 GFLOPS). К сожалению, ни один из этих проектов не завершился полным успехом и ни одна из упомянутых систем не показала объявленной производительности. Дело в том, что, как и в случае с матричными SIMD-суперкомпьютерами, слишком много технических и программных проблем было связано с организацией коммутатора, обеспечивающего обмен данными между процессорами. Кроме того, процессоры, составляющие MIMD- систему, оказались на практике не столь уж маленькими и дешевыми. Как следствие, наращивание их числа приводило к такому увеличению габаритов системы и удлинению межпроцессорных связей, что стало совершенно очевидно: при существовавшем в конце 80-х годов уровне элементной базы реализация MIMD-архитектуры не может привести к появлению систем, способных конкурировать с векторными суперкомпьютерами.

Неординарное решение проблемы коммутационной сети процессоров MIMD- системы предложила мало кому известная фирма Denelcor, которая выполнила разработку многопроцессорной модели HEP-1. Этот суперкомпьютер был задуман как MIMD-система, содержащая от 1 до 16 исполнительных процессорных элементов и до 128 банков памяти данных по 8 Мбайт каждый. Система из 16 процессоров должна была обладать максимальной производительностью 160 MFLOPS при параллельной обработке 1024 процессов (по 64 процесса в каждом из 16 ПЭ). Любопытной архитектурной особенностью HEP-1 было то, что MIMD-обработка множества процессов выполнялась без использования коммутационной сети, которую заменила так называемая "вертушка Флинна".

Напомним, что идея "вертушки Флинна" заключается в организации мультипроцессора как нелинейной системы, состоящей из группы процессоров команд (ПрК), каждый из которых "ведет" свой поток команд, и общего для всех ПрК набора арифметических устройств, циклически подключаемых к каждому из ПрК для выполнения их команд. Нетрудно заметить, что эффект "вертушки Флинна" состоит в сокращении объема, занимаемого арифметическими устройствами в многопроцессорной системе, поскольку на "арифметику" может приходиться до 60% аппаратных ресурсов центрального процессора.

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

Похожие рефераты:

Классификации архитектур вычислительных систем. Организация компьютерных систем. Устройство центрального процессора. Принципы разработки современных компьютеров. Эволюция микропроцессорных систем. Увеличение числа и состава функциональных устройств.

Абстрактные модели и способы параллельной обработки данных, допустимая погрешность вычислений. Понятие параллельного процесса, их синхронизация и гранулы распараллеливания, определение закона Амдаля. Архитектура многопроцессорных вычислительных систем.

Классификация параллельных ВС. Системы с общей и распределенной памятью. Конвейеры операций. Производительность идеального конвейера. Суперскалярные архитектуры. VLIW-архитектура. Предсказание переходов. Матричные процессоры. Законы Амдала и Густафсона.

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

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РФ ЮЖНО-РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ (Новочеркасский политехнический институт) Факультет: Информационных Технологий и Управления

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

Классификация ЭВМ. Классификация ЭВМ по принципу действия. Классификация ЭВМ по этапам создания. Классификация ЭВМ по назначению. Классификация ЭВМ по размерам и функциональным возможностям. Основные виды ЭВМ.

Суперкомпьютеры: прошлое, настоящее и будущее

Впервые термин "суперЭВМ" был использован в начале 60-х годов, когда группа специалистов Иллинойского университета (США) под руководством доктора Д. Слотника предложила идею реализации первой в мире параллельной вычислительной системы. Проект, получивший название SOLOMON, базировался на принципе векторной обработки, который был сформулирован еще Дж. фон Нейманом, и концепции матричной параллельной архитектуры, предложенной С. Унгером в начале 50-х годов.

Дело в том, что большинство суперкомпьютеров демонстрирует поражающую воображение производительность благодаря именно этому (векторному) виду параллелизма. Любой программист, разрабатывая программы на привычных языках высокого уровня, наверняка неоднократно сталкивался с так называемыми циклами DO. Но мало кто задумывался, какой потенциал увеличения производительности заключается в этих часто используемых операторах. Известный специалист в области систем программирования Д.Кнут показал, что циклы DO занимают менее 4% кода программ на языке FORTRAN, но требуют более половины счетного времени задачи.

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

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

Первой суперЭВМ, использующей преимущества векторной обработки, была ILLIAC IV (SIMD архитектура). В начале 60-х годов группа все того же Слотника, объединенная в Центр передовых вычислительных технологий при Иллинойском университете, приступила к практической реализации проекта векторной суперЭВМ с матричной структурой. Изготовление машины взяла на себя фирма Burroughs Corp. Техническая сторона проекта до сих пор поражает своей масштабностью: система должна была состоять из четырех квадрантов, каждый из которых включал в себя 64 процессорных элемента (ПЭ) и 64 модуля памяти, объединенных коммутатором на базе сети типа гиперкуб. Все ПЭ квадранта обрабатывают векторную инструкцию, которую им направляет процессор команд, причем каждый выполняет одну элементарную операцию вектора, данные для которой сохраняются в связанном с этим ПЭ модуле памяти. Таким образом, один квадрант ILLIAC IV способен одновременно обработать 64 элемента вектора, а вся система из четырех квадрантов - 256 элементов. В 1972 г. первая система ILLIAC IV была установлена в исследовательском центре NASA в Эймсе. Результаты ее эксплуатации в этой организации получили неоднозначную оценку. С одной стороны, использование суперкомпьютера позволило решить ряд сложнейших задач аэродинамики, с которыми не могли справиться другие ЭВМ. Даже самая скоростная ЭВМ для научных исследований того времени - Control Data CDC 7600, которую, к слову сказать, проектировал "патриарх суперЭВМ" Сеймур Крей, могла обеспечить производительность не более 5 MFLOPS, тогда как ILLIAC IV демонстрировала среднюю производительность примерно в 20 MFLOPS. С другой стороны, ILLIAC IV так и не была доведена до полной конфигурации из 256 ПЭ; практически разработчики ограничились лишь одним квадрантом. Причинами явились не столько технические сложности в наращивании числа процессорных элементов системы, сколько проблемы, связанные с программированием обмена данными между процессорными элементами через коммутатор модулей памяти. Все попытки решить эту задачу с помощью системного программного обеспечения потерпели неудачу, в результате каждое приложение требовало ручного программирования передач коммутатора, что и породило неудовлетворительные отзывы пользователей.

Если бы разработчикам ILLIAC IV удалось преодолеть проблемы программирования матрицы процессорных элементов, то, вероятно, развитие вычислительной техники пошло бы совершенно другим путем и сегодня доминировали бы компьютеры с матричной архитектурой. Однако ни в 60-х годах, ни позднее удовлетворительное и универсальное решение двух таких принципиальных проблем, как программирование параллельной работы нескольких сотен процессоров и при этом обеспечение минимума затрат счетного времени на обмен данными между ними, так и не было найдено. Потребовалось еще примерно 15 лет усилий различных фирм по реализации суперЭВМ с матричной архитектурой, чтобы поставить окончательный диагноз: компьютеры данного типа не в состоянии удовлетворить широкий круг пользователей и имеют весьма ограниченную область применения, часто в рамках одного или нескольких видов задач.







2024 © gtavrl.ru.