Министерство образования Российской Федерации
НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Кафедра Автоматики и Вычислительной Техники
Реферат на тему: "Современные суперЭВМ"
Факультет: АВТ Преподаватель: ……………………….
Группа: АП-318
Студент: Цырендылыков Батор
Новосибирск,
2003 г.
Содержание:
Суперкомпьютеры - что это? 3
Суперкомпьютеры - зачем это? 5
Суперкомпьютеры - как это? 7
Все новое - это хорошо забытое старое 9
А что же сейчас используют в мире? 12
Если где-то прибудет, то где-то обязательно уменьшится 14
Приложения 16
Первые 25 суперкомпьютеров из списка Top500 (ноябрь 2003): 16
Сверхсложные вычислительные задачи, решаемые на суперкомпьютерах. 18
Классификация архитектур вычислительных систем (Классификация Флинна)
19
Наиболее распространенные сегодня суперкомпьютеры: 21
Список использованной литературы: 23
Суперкомпьютеры - что это?
О том, что где-то существуют некие мистические "очень мощные"
компьютеры слышал, наверное, каждый. В самом деле, не так давно было много
разговоров о поставке в Гидрометеоцентр России могучих компьютеров фирмы
Cray Research. В прессе регулярно проходят сообщения о нелегальных
поставках вычислительной техники, попадающей под эмбарго американского
правительства. Опять же, если компьютер с именем Deep Blue самого Гарри
Каспарова, то он, согласитесь - и здесь интуиция Вас не подвела, ну никак
не может быть простой персоналкой.
Для многих подобные компьютеры так и остаются тайной за семью печатями,
некой TERRA INCOGNITA, с которой ассоциации всегда связаны с чем-то
большим: огромные размеры, большие задачи, крупные фирмы и компании,
невероятные скорости работы или что-то иное, но обязательно это будет "на
грани", для чего "обычного" явно мало, а подойдет только "супер",
суперкомпьютер или супер-ЭВМ. В этом интуитивном восприятии есть изрядная
доля истины, поскольку к классу супер-ЭВМ принадлежат лишь те компьютеры,
которые имеют максимальную производительность в настоящее время. Быстрое
развитие компьютерной индустрии определяет относительность данного понятия
- то, что десять лет назад можно было назвать суперкомпьютером, сегодня под
это определение уже не попадает. Например, производительность персональных
компьютеров, использующих Pentium-II/300MHz, сравнима с производительностью
суперкомпьютеров начала 70-х годов, однако по сегодняшним меркам
суперкомпьютерами не являются ни те, ни другие.
В любом компьютере все основные параметры тесно связаны. Трудно себе представить универсальный компьютер, имеющий высокое быстродействие и мизерную оперативную память, либо огромную оперативную память и небольшой объем дисков. Следуя логике, делаем вывод: супер-ЭВМ это компьютеры, имеющие в настоящее время не только максимальную производительность, но и максимальный объем оперативной и дисковой памяти, а также специализированное ПО, с помощью которого можно эффективно всем этим воспользоваться.
Определений суперкомпьютерам пытались давать много, иногда серьезных, иногда ироничных. В частности, лет пять назад, когда эта тема поднималась в конференции comp.parallel, Кен Батчер (Ken Batcher) предложил такой вариант: суперкомпьютер - это устройство, сводящее проблему вычислений к проблеме ввода/вывода. Все верно, в каждой шутке есть доля шутки: что раньше долго вычислялось, временами сбрасывая нечто на диск, на супер-ЭВМ может выполниться мгновенно, переводя стрелки неэффективности на относительно медленные устройства ввода/вывода.
Так о чем же речь, и какие суперкомпьютеры существуют в настоящее время в мире? Вот несколько примеров, показывающих основные параметры машин этого класса.
CRAY T932, векторно-конвейерный компьютер фирмы CRAY Research Inc. (в
настоящее время это подразделение Silicon Graphics Inc.), впервые
выпущенный в 1996 году. Максимальная производительность одного процессора
равна почти 2 млрд. операций в секунду, оперативная память наращивается до
8Гб (Гига это в тысячу раз больше, чем Мега), дисковое пространство до
256000Гб (т.е. 256Тб, Тера это в тысячу раз больше, чем Гига). Компьютер в
максимальной конфигурации содержит 32 подобных процессора, работающих над
единой общей памятью, поэтому максимальная производительность всей
вычислительной системы составляет более 60 млрд. операций в секунду.
IBM SP2, массивно-параллельный компьютер фирмы IBM (иногда такие
компьютеры называют компьютерами с массовым параллелизмом). В настоящее
время строится на основе стандартных микропроцессоров PowerPC 604e или
POWER2 SC, соединенных между собой через высокоскоростной коммутатор,
причем каждый имеет свою локальную оперативную память и дисковую
подсистему. Характеристики этих микропроцессоров известны и особых
удивлений не вызывают, однако в рамках одной SP системы их может быть
объединено очень много. В частности, максимальная система, установленная в
Pacific Northwest National Laboratoriy (Richland, USA), содержит 512
процессоров. Исходя из числа процессоров, можно представить суммарную
мощность всей вычислительной системы...
HP Exemplar, компьютер с кластерной архитектурой от Hewlett-Packard
Inc. В частности, модель V2250 (класс V) построена на основе
микропроцессора PA-8200, работающего с тактовой частотой 240MHz. До 16
процессоров можно объединить в рамках одного узла с общей оперативной
памятью до 16Гб. В свою очередь узлы в рамках одной вычислительной системы
соединяются между собой через высокоскоростные каналы передачи данных.
ASCI RED, детище программы Accelerated Strategic Computing Initiative,
- это самый мощный на настоящий момент компьютер. Построенный по заказу
Министерства энергетики США, он объединяет 9152 (!) процессоров Pentium
Pro, имеет 600Гб суммарной оперативной памяти и общую производительность
1800 миллиардов операций в секунду. Человеку потребовалось бы 57000 лет,
чтобы даже с калькулятором выполнить все те операции, которые этот
компьютер делает за 1 секунду!
Простые расчеты показывают, что даже умеренные конфигурации таких
компьютеров могут стоить не один миллион долларов США - ради интереса
прикиньте, сколько стоят, скажем, лишь 600 Гбайт оперативной памяти?
Возникает целый ряд естественных вопросов:
Какие задачи настолько важны, что требуются компьютеры стоимостью несколько миллионов долларов?
Или, какие задачи настолько сложны, что хорошего Pentium-IV не достаточно?
Суперкомпьютеры - зачем это?
Для того, чтобы оценить сложность решаемых на практике задач, возьмем
конкретную предметную область, например, оптимизацию процесса добычи нефти.
Имеем подземный нефтяной резервуар с каким-то число пробуренных скважин -
по одним на поверхность откачивается нефть, по другим обратно закачивается
вода. Нужно смоделировать ситуацию в данном резервуаре, чтобы оценить
запасы нефти или понять необходимость в дополнительных скважинах.
Примем упрощенную схему, при которой моделируемая область отображается
в куб, однако и ее будет достаточно для оценки числа необходимых
арифметических операций. Разумные размеры куба, при которых можно получать
правдоподобные результаты - это 100*100*100 точек. В каждой точке куба надо
вычислить от 5 до 20 функций: три компоненты скорости, давление,
температуру, концентрацию компонент (вода, газ и нефть - это минимальный
набор компонент, в более реалистичных моделях рассматривают, например,
различные фракции нефти). Далее, значения функций находятся как решение
нелинейных уравнений, что требует от 200 до 1000 арифметических операций. И
наконец, если исследуется нестационарный процесс, т.е. нужно понять, как
эта система ведет себя во времени, то делается 100-1000 шагов по времени.
Что получилось:
106(точек сетки)*10(функций)*500(операций)*500(шагов по времени) =
2.5*1012
2500 миллиардов арифметических операций для выполнения одного лишь расчета! А изменение параметров модели? А отслеживание текущей ситуации при изменении входных данных? Подобные расчеты необходимо делать много раз, что накладывает очень жесткие требования на производительность используемых вычислительных систем.
Примеры использования суперкомпьютеров можно найти не только в нефтедобывающей промышленности (см. Приложение).
По данным Марка Миллера (Mark Miller, Ford Motor Company), для
выполнения crash-тестов, при которых реальные автомобили разбиваются о
бетонную стену с одновременным замером необходимых параметров, съемкой и
последующей обработкой результатов, компании Форд понадобилось бы от 10 до
150 прототипов новых моделей при общих затратах от 4 до 60 миллионов
долларов. Использование суперкомпьютеров позволило сократить число
прототипов на одну треть.
В 1995 году корпус автомобиля Nissan Maxima удалось сделать на 10%
прочнее благодаря использованию суперкомпьютера фирмы Cray (The Atlanta
Journal, 28 мая, 1995г). С помощью него были найдены не только слабые точки
кузова, но и наиболее эффективный способ их удаления. Совсем свежий пример
- это развитие одной из крупнейших мировых систем резервирования Amadeus,
используемой тысячами агентств со 180000 терминалов в более чем ста
странах. Установка двух серверов Hewlett-Packard T600 по 12 процессоров в
каждом позволила довести степень оперативной доступности центральной
системы до 99.85% при текущей загрузке около 60 миллионов запросов в сутки.
И подобные примеры можно найти повсюду. В свое время исследователи
фирмы DuPont искали замену хлорофлюорокарбону. Нужно было найти материал,
имеющий те же положительные качества: невоспламеняемость, стойкость к
коррозии и низкую токсичность, но без вредного воздействия на озоновый слой
Земли. За одну неделю были проведены необходимые расчеты на суперкомпьютере
с общими затратами около 5 тысяч долларов. По оценкам специалистов DuPont,
использование традиционных экспериментальных методов исследований
потребовало бы около трех месяцев и 50 тысяч долларов и это без учета
времени, необходимого на синтез и очистку необходимого количества вещества.
Суперкомпьютеры - как это?
Ну что, похоже, суперкомпьютеры и в самом деле имеют право на существование. Теперь нужно прояснить, по всей видимости, основной вертящийся на языке вопрос - почему они считают так быстро? Вариантов ответа может быть несколько, среди которых два имеют явное преимущество: развитие элементной базы и использование новых решений в архитектуре компьютеров.
Попробуем разобраться, какой из факторов является решающим в достижении
современных фантастических показателей производительности. Для разрешения
этого вопроса обратимся к историческим фактам. Известно, что на компьютере
EDSAC (1949 г.), имевшего время такта 2мкс, можно было выполнить 2*n
арифметических операций за 18*n мс, то есть в среднем 100 арифметических
операций в секунду. Сравним с современным суперкомпьютером CRAY C90: время
такта приблизительно 4нс, а пиковая производительность около 1 миллиарда
арифметических операций в секунду.
Что же получается? Производительность компьютеров за этот период
выросла приблизительно в десять миллионов раз. Уменьшение времени такта
является прямым способом увеличением производительности, однако эта
составляющая (с 2мкс до 4нс) в общем объеме дает вклад лишь в 500 раз.
Откуда же взялось остальное? Ответ очевиден - использование новых решений в
архитектуре компьютеров, среди которых основное место занимает принцип
параллельной обработки данных.
Данный принцип, воплощая идею одновременного выполнения нескольких действий, имеет две разновидности: конвейерность и собственно параллельность. Оба вида параллельной обработки интуитивно понятны, поэтому сделаем лишь небольшие пояснения.
Параллельная обработка. Если некое устройство выполняет одну операцию
за единицу времени, то тысячу операций оно выполнит за тысячу единиц. Если
предположить, что есть пять таких же независимых устройств, способных
работать одновременно, то ту же тысячу операций система из пяти устройств
может выполнить уже не за тысячу, а за двести единиц времени. Аналогично
система из N устройств ту же работу выполнит за 1000/N единиц времени.
Подобные аналогии можно найти и в жизни: если один солдат вскопает огород
за 10 часов, то рота солдат из пятидесяти человек с такими же
способностями, работая одновременно, справятся с той же работой за 12 минут
- принцип параллельности в действии!
Конвейерная обработка. Что необходимо для сложения двух вещественных чисел, представленных в форме с плавающей запятой? Целое множество мелких операций таких, как сравнение порядков, выравнивание порядков, сложение мантисс, нормализация и т.п. Процессоры первых компьютеров выполняли все эти "микрооперации" для каждой пары аргументов последовательно одна за одной до тех пор, пока не доходили до окончательного результата, и лишь после этого переходили к обработке следующей пары слагаемых.
Идея конвейерной обработки заключается в выделении отдельных этапов выполнения общей операции, причем каждый этап, выполнив свою работу, передавал бы результат следующему, одновременно принимая новую порцию входных данных. Получаем очевидный выигрыш в скорости обработки за счет совмещения прежде разнесенных во времени операций. Предположим, что в операции можно выделить пять микроопераций, каждая из которых выполняется за одну единицу времени. Если есть одно неделимое последовательное устройство, то 100 пар аргументов оно обработает за 500 единиц. Если каждую микрооперацию выделить в отдельный этап (или иначе говорят - ступень) конвейерного устройства, то на пятой единице времени на разной стадии обработки такого устройства будут находится первые пять пар аргументов, а весь набор из ста пар будет обработан за 5+99=104 единицы времени - ускорение по сравнению с последовательным устройством почти в пять раз (по числу ступеней конвейера).
Казалось бы, конвейерную обработку можно с успехом заменить обычным
параллелизмом, для чего продублировать основное устройство столько раз,
сколько ступеней конвейера предполагается выделить. В самом деле, пять
устройств предыдущего примера обработают 100 пар аргументов за 100 единиц
времени, что быстрее времени работы конвейерного устройства! В чем же дело?
Ответ прост, увеличив в пять раз число устройств, мы значительно
увеличиваем как объем аппаратуры, так и ее стоимость. Представьте себе, что
на автозаводе решили убрать конвейер, сохранив темпы выпуска автомобилей.
Если раньше на конвейере одновременно находилась тысяча автомобилей, то,
действуя по аналогии с предыдущим примером надо набрать тысячу бригад,
каждая из которых (1) в состоянии полностью собрать автомобиль от начала до
конца, выполнив сотни разного рода операций, и (2) сделать это за то же
время, что машина прежде находилась на конвейере. Представьте себестоимость
такого автомобиля. Разве что Ламборгини приходит на ум, но потому и
возникла конвейерная обработка...
Сегодня параллелизмом в архитектуре компьютеров уже мало кого удивишь.
Все современные микропроцессоры, будь то Pentium IV или PA-8200, MIPS
R10000 или Power2 SuperChip используют тот или иной вид параллельной
обработки. На презентациях новых чипов и в пресс-релизах корпораций это
преподносится как последнее слово техники и передовой край науки, и это
действительно так, если рассматривать реализацию этих принципов именно в
рамках одного кристалла.
Вместе с тем, сами эти идеи появились очень давно. Изначально они внедрялись в самых передовых, а потому единичных, компьютерах своего времени. Затем после должной отработки технологии и удешевления производства они спускались в компьютеры среднего класса, и, наконец, сегодня все это в полном объеме воплощается в рабочих станциях и персональных компьютерах.
Все новое - это хорошо забытое старое
Для того чтобы убедиться, что все основные нововведения в архитектуре
современных процессоров на самом деле использовались еще со времен, когда
ни микропроцессоров, ни понятия суперкомпьютеров еще не было, совершим
маленький экскурс в историю, начав практически с момента рождения первых
ЭВМ.
Все самые первые компьютеры, например, EDSAC, EDVAC, UNIVAC, сначала считывали данные последовательно бит за битом из памяти, а затем их аналогично обрабатывали в арифметическом устройстве.
1953 г. Первым коммерчески доступным компьютером, использующим разрядно- параллельную память (на CRT) и разрядно-параллельную арифметику, стал компьютер IBM 701. К слову будет сказано, наибольшую популярность в то время получила модель IBM 704 (1955 г.), проданной в количестве 150 экземпляров (!), в которой, помимо упомянутых особенностей, была впервые применена память на ферритовых сердечниках и аппаратное арифметическое устройство с плавающей точкой.
1958г. Процессоры первых компьютеров сами управляли вводом/выводом.
Однако скорость работы самого быстрого внешнего устройства, а по тем
временам это магнитная лента, была в 1000 раз меньше скорости процессора,
поэтому во время операций ввода/вывода процессор фактически простаивал. В
1958г. к компьютеру IBM 704 присоединили 6 независимых процессоров
ввода/вывода, которые после получения команд могли работать параллельно с
основным процессором, а сам компьютер переименовали в IBM 709. Данная
модель получилась удивительно удачной, так как вместе с модификациями было
продано около 400 экземпляров, причем последний был выключен в 1975 году -
20 лет существования!
1961г. Создается компьютер IBM STRETCH, имеющий две принципиально важные особенности: опережающий просмотр вперед для выборки команд и расслоение памяти на два банка для согласования низкой скорости выборки из памяти и скорости выполнения операций.
1963г. В Манчестерском университете разработан компьютер ATLAS, использующий конвейерный принцип выполнения команд. Выполнение команд разбито на 4 стадии: выборка команды, вычисление адреса операнда, выборка операнда и выполнение операции, позволившие уменьшить время выполнения команд в среднем с 6 мкс до 1,6 мкс. Справедливости ради надо отметить, что данный компьютер вообще оставил заметный след в истории развития вычислительной техники: помимо сказанного, в нем впервые была использована мультипрограммная операционная система, основанная на использовании виртуальной памяти и системы прерываний.
1964г. Фирма Control Data Corporation (CDC) при непосредственном участии одного из ее основателей, Сеймура Р.Крэя (Seymour R.Cray) выпускает компьютер CDC-6600 - первый компьютер, в котором использовалось несколько независимых функциональных устройств. Для сравнения с сегодняшним днем приведем некоторые параметры компьютера: время такта 100нс, производительность 2-3 млн. операций в секунду, оперативная память разбита на 32 банка по 4096 60-ти разрядных слов, цикл памяти 1мкс, 10 независимых функциональных устройств. Машина имела громадный успех на научном рынке, активно вытесняя машины фирмы IBM.
1969г. CDC выпускает компьютер CDC-7600 с восемью независимыми конвейерными функциональными устройствами - сочетание параллельной и конвейерной обработки.
В 1967 году были начаты работы над проектом ILLIAC IV, первым матричным
процессором, объединяющим 256 синхронно работающих процессорных элементов.
К концу 1971 года изготовлена система из 64-х процессоров, в 1974г. она
введена в эксплуатацию, однако доводка шла до 1975 года. Несмотря на то,
что построили в 4 раза меньше задуманного, да и то лишь в одном экземпляре,
а денег в результате затратили в 4 раза больше, данный проект оказал
огромное влияние на архитектуру последующих машин подобного класса таких,
как PEPE, BSP, ICL DAP и ряда других.
В 1972 году С.Крэй покидает CDC и основывает свою компанию Cray
Research, которая в 1976г. выпускает первый векторно-конвейерный компьютер
CRAY-1: время такта 12.5нс, 12 конвейерных функциональных устройств,
пиковая производительность 160 миллионов операций в секунду, оперативная
память до 1Мслова (слово - 64 разряда), цикл памяти 50нс. Главным
новшеством является введение векторных команд, работающих с целыми
массивами независимых данных и позволяющих эффективно использовать
конвейерные функциональные устройства.
На этом означенный экскурс в историю можно смело закончить, поскольку роль параллелизма и его влияние на развитие архитектуры компьютеров уже очевидна.
Попутно стоит заметить, что параллелизм это не только передовая
технология, используемая во всех современных суперкомпьютерах, но и
довольно страшная сила. Очередной пример тому появился совсем недавно. По
сообщению Electronic Frontier Foundation, Джон Гилмор (John Gilmore) и Поль
Кочер (Paul Kocher) смогли взломать 56-битный код, используемый банками и
некоторыми военными организациями США, с помощью собранной в домашних
условиях параллельной вычислительной системы.
Раскрытый алгоритм шифрования, известный как DES (Data Encryption
Standard), использует 56-битные ключи, и это при том, что сейчас в реальных
ситуациях во многих случаях используются лишь 40-битные. До настоящего
момента правительственные органы США утверждали, что ни террористы, ни
какие-либо другие криминальные структуры не в состоянии сделать компьютер,
взламывающий DES.
Вся работа по расшифровке была проделана за 56 часов на компьютере,
состоящем из более чем 1000 процессоров: 27 плат по 64 процессора в каждой.
Каждая плата была подсоединена к обычной персоналке, которая и управляла
всем процессом. Гилмор назвал свою систему Deep Crack - мягкий намек на
шахматный компьютер Deep Blue от IBM. Вечером 17 июля этого года после
проверки 17,902,806,669,197,312 ключей компьютер определил, что
зашифрованным предложением было: "It's time for those 128-, 192-, and 256-
bit keys."
А что же сейчас используют в мире?
По каким направлениям идет развитие высокопроизводительной вычислительной техники в настоящее время? Таких направлений четыре.
1. Векторно-конвейерные компьютеры. Особенностью таких машин являются, во-первых, конвейерные функциональные устройства и, во-вторых, набор векторных инструкций в системе команд. В отличие от традиционного подхода, векторные команды оперируют целыми массивами независимых данных, что позволяет эффективно загружать доступные конвейеры. Типичным представителем данного направления является линия векторно-конвейерных компьютеров CRAY компании Cray Research.
2. Массивно-параллельные компьютеры с распределенной памятью. Идея
построения компьютеров этого класса тривиальна: возьмем серийные
микропроцессоры, снабдим каждый своей локальной памятью, соединим
посредством некоторой коммуникационной среды, например, сетью - вот и все.
Достоинств у такой архитектуры масса: если нужна высокая
производительность, то можно добавить еще процессоров, а если ограничены
финансы или заранее известна требуемая вычислительная мощность, то легко
подобрать оптимальную конфигурацию.
Однако есть и решающий "минус", сводящий многие "плюсы" на нет. Дело в
том, что межпроцессорное взаимодействие в компьютерах этого класса идет
намного медленнее, чем происходит локальная обработка данных самими
процессорами. Именно поэтому написать эффективную программу для таких
компьютеров очень сложно, а для некоторых алгоритмов иногда просто
невозможно. К данному классу можно отнести компьютеры Intel Paragon, IBM
SP1, Parsytec, в какой-то степени IBM SP2 и CRAY T3D/T3E, хотя в этих
компьютерах влияние указанного минуса значительно ослаблено. К этому же
классу можно отнести и сети компьютеров, которые все чаще рассматривают как
дешевую альтернативу крайне дорогим суперкомпьютерам.
3. Параллельные компьютеры с общей памятью. Вся оперативная память
таких компьютеров разделяется несколькими одинаковыми процессорами. Это
снимает проблемы предыдущего класса, но добавляет новые - число
процессоров, имеющих доступ к общей памяти по чисто техническим причинам
нельзя сделать большим. В данное направление входят многие современные
многопроцессорные SMP-компьютеры, например, сервер HP T600 или Sun Ultra
Enterprise 5000.
4. Кластеры. Последнее направление, строго говоря, не является самостоятельным, а скорее представляет собой комбинации предыдущих трех. Из нескольких процессоров, традиционных или векторно-конвейерных, и общей для них памяти сформируем вычислительный узел. Если вычислительной мощности полученного узла не достаточно, то объединим несколько узлов высокоскоростными каналами. Подобную архитектуру называют кластерной, и по такому принципу построены CRAY SV1, HP Exemplar, Sun StarFire, NEC SX-5, последние модели IBM SP2 и другие. Именно это направление является наиболее перспективным в настоящее время.
Два раза в год собираются данные для формирования списка пятисот самых
мощных вычислительных установок мира (Top500). Последняя редакция списка
вышла в ноябре этого года, согласно которой первое место занимает компьютер
Earth-Simulator, а на второй позиции стоит компьютер ASCI Q - AlphaServer
от Hewlett-Packard, объединяющий 8192 процессора Sc45.
Если где-то прибудет, то где-то обязательно уменьшится
К сожалению, чудеса в жизни редко случаются. Гигантская
производительность параллельных компьютеров и супер-ЭВМ с лихвой
компенсируется сложностями их использования. Начнем с самых простых вещей.
У вас есть программа и доступ, скажем, к 256-процессорному компьютеру. Что
вы ожидаете? Да ясно что: вы вполне законно ожидаете, что программа будет
выполняться в 256 раз быстрее, чем на одном процессоре. А вот как раз
этого, скорее всего, и не будет.
Предположим, что в вашей программе доля операций, которые нужно выполнять последовательно, равна f, где 0