Смекни!
smekni.com

Развитие суперкомпьютеров (стр. 1 из 5)

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

Впервые термин "суперЭВМ" был использован в начале 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 лет усилий различных фирм по реализации суперЭВМ с матричной архитектурой, чтобы поставить окончательный диагноз: компьютеры данного типа не в состоянии удовлетворить широкий круг пользователей и имеют весьма ограниченную область применения, часто в рамках одного или нескольких видов задач.

По мере освоения средств сверхскоростной обработки данных разрыв между совершенствованием методов векторизации программ, т.е. автоматического преобразования в процессе компиляции последовательных языковых конструкций в векторную форму, и чрезвычайной сложностью программирования коммутации и распределения данных между процессорными элементами привел к достаточно жесткой реакции пользователей в отношении матричных суперЭВМ - широкому кругу программистов требовалась более простая и "прозрачная" архитектура векторной обработки с возможностью использования стандартных языков высокого уровня типа FORTRAN. Решение было найдено в конце 60-х годов, когда фирма Control Data, с которой в то время сотрудничал Крей, представила машину STAR-100, основанную на векторно-конвейерном принципе обработки данных. Отличие векторно-конвейерной технологии от архитектуры матричных ЭВМ заключается в том, что вместо множества процессорных элементов, выполняющих одну и ту же команду над разными элементами вектора, применяется единственный конвейер операций, принцип действия которого полностью соответствует классическому конвейеру автомобильных заводов Форда. Даже такая архаичная по современным понятиям суперЭВМ, как STAR-100, показала предельную производительность на уровне 50 MFLOPS. При этом существенно, что векторно-конвейерные суперЭВМ значительно дешевле своих матричных "родственников". К примеру, разработка и производство ILLIAC IV обошлись в 40 млн. долл. при расходах на эксплуатацию порядка 2 млн. долл. в год, тогда как рыночная стоимость первых суперкомпьютеров фирм CRAY и Control Data находилась в пределах 10 - 15 млн. долл., в зависимости от объема памяти, состава периферийных устройств и других особенностей конфигурации системы.

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

Следующий удар по позициям суперЭВМ с матричной архитектурой нанесли две машины фирмы Control Data Corp. - CYBER-203 и CYBER-205. Пиковая производительность первой составила 100, а второй - уже 400 MFLOPS.

CRAY-1 совершает переворот Векторно-конвейерный суперкомпьютер STAR-100 и машины серии CYBER- 200, образно говоря, явились только "нокдауном" для матричной архитектуры. Нокаутирующий удар был нанесен в 1974 г., когда Крей, к тому времени покинувший корпорацию CDC и основавший собственную фирму Cray Research, объявил о выпуске CRAY-1 - векторно-конвейерной суперЭВМ, ставшей эпохальным событием в мире вычислительной техники. Эта малогабаритная машина (ее высота немного превосходит средний человеческий рост, а занимаемая процессором площадь чуть больше 2,5 кв.м), имела производительность 160 MFLOPS и емкость оперативной памяти 64 Мбайт. После непродолжительной пробной эксплуатации в Лос-Аламосской лаборатории, где новинка получила самые высокие отзывы программистов и математиков, Cray Research наладила серийный выпуск машин CRAY-1, которые активно раскупались в США. Любопытно, что администрация США в должной степени оценила стратегическую ценность CRAY-1 и контролировала поставки этого компьютера даже в дружественные государства. Появление CRAY-1 вызвало интерес не только у пользователей, нуждающихся в средствах сверхскоростной обработки данных, но и у специалистов по архитектуре суперкомпьютеров. Для многих неожиданным (а для разработчиков CYBER-205 даже неприятным) стал тот факт, что с большинством задач маленький компьютер CRAY-1 справлялся быстрее, чем значительно превосходящий его по габаритам и пиковой производительности CYBER-205. Так, при тестировании на пакете решения линейных уравнений LINPACK Джек Донгарра из Национальной лаборатории в Аргонне оценил производительность CRAY-1S в пределах 12 - 23 MFLOPS в зависимости от способа программирования, тогда как CYBER-205 показал производительность лишь 8,4 MFLOPS. Объяснение нашлось, как только вспомнили о законе Амдала (G.Amdahl), который известный архитектор системы IBM/360 сформулировал в 1967 г. в виде следующего постулата: "Производительность вычислительной системы определяется самым медленным ее компонентом". Применительно к векторным суперЭВМ парадокс Амдала преломляется следующим образом. Любая задача, выполняемая в суперЭВМ, состоит из двух взаимосвязанных частей - векторных команд, сгенерированных компилятором при векторизации исходной программы, и скалярных операций, которые компилятор не сумел перевести в векторную форму. Если представить себе суперкомпьютер, который умеет одинаково быстро производить скалярные и векторные операции, то парадокс Амдала "не срабатывает" и такая система с равной скоростью будет выполнять задачи любой степени векторизации. Но само собой, что скалярная обработка занимает больше времени, плюс ко всему CRAY-1 при цикле 12,5 нс обладает большим быстродействием скалярной обработки по сравнению с компьютером CYBER-205, у которого цикл равен 20 нс.