Архитектура Вычислительных Систем», Университет «Дубна» лекция

Вид материалаЛекция

Содержание


Примеры из литературы (конец 90х начало 2000х)
Параллельная обработка данных
Конвейерная обработка данных
Краткая история появления параллелизма в архитектуре ЭВМ
IBM 709 (1958): независимые процессоры ввода/вывода
Ibm stretch
Atlas (1963)
Illiac iv (1974)
Стрела, 60е годы – «групповые операции» - 1я реализация векторных ФУ. Позднее – ACS, STAR 100. CRAY 1
Массивно-параллельные компьютеры с распределенной памятью
Параллельные компьютеры с общей памятью
Подобный материал:
Курс «Архитектура Вычислительных Систем»,

Университет «Дубна»

Лекция 1.

Особенности архитектуры высокопроизводительных

вычислительных систем



-Актуальность

-Примеры

-История развития параллелизма в архитектуре ЭВМ

-Основные направления развития параллелизма


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

Автомобилестроение

Нефте- и газодобыча

Фармакология, биология, биофизика, биохимия

Сейсморазведка, метеорология, климатология

Синтез новых материалов, химия, нанотехнологии

Обработка больших объемов эксп. данных в ЯФ и ФВЭ

Примеры



(1) Модели молекулярной динамики – для каждой частицы (молекулы) в кластере формулируются уравнения движения (три составляющих скорости и три составляющих импульса). Исследуется зависимость от параметров модели, многократные запуски для разных начальных состояний системы.

Моделирование ДНК и РНК, напыление тонких пленок (японцы) и т.д.


(2) Квантовая молекулярная динамика - обобщение данного подхода на случай взаимодействия ядер и частиц. До миллиона событий со случайным начальным расположением частиц.


(3) Полунатурное моделирование в ракето- и самолетостроении – альтернатива реальных испытаний, позволяет сэкономить деньги и время - даже при скромных возможностях вычислительной техники начала 80х годов.


Примеры из литературы (конец 90х начало 2000х)


(1) crash-тесты компании Ford – от 4 до 60 млн долл, от 10 до 150 образцов новых моделей. Моделирование с использованием суперкомпьютеров позволило сократить расходы на треть


(2) 1995: благодаря компьютерному моделированию с использованием Cray были найдены слабые точки кузова Nissan Maxima и наиболее эффективные способы их удаления. Корпус в результате удалось сделать на 10% прочнее.


(3) Дюпон – искали замену хлорофлюорокарбону в связи с принятием международных документов о защите озонового слоя в атмосфере. За неделю были проведены расчеты ценой 5тыс дол, чтобы найти материал с теми же положительными качествами (стойкость к коррозии, невоспламеняемость, низкая токсичность) но нейтральный к озону. По оценкам – использование традиционных экспериментов потребовало бы около 3 месяцев и 50 тыс дол.


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


NB. Под суперкомпьютерами понимают компьютеры, имеющие не только высокое на данный момент времени быстродействие, но и максимальный объем оперативной и дисковой памяти и требующие – как правило – специального программного обеспечения (про это будем говорить на следующих лекциях).


Быстрое развитие компьютерной индустрии определяет относительность понятия суперЭВМ - то, что 10 лет назад можно было назвать суперкомпьютером, сегодня под это определение уже не попадает. Например, производительность персональных компьютеров, использующих Pentium-III/500MHz, сравнима с производительностью суперкомпьютеров начала 70-х годов, однако по сегодняшним меркам суперкомпьютерами не являются ни те, ни другие.

  1. ESCAD Кембридж, время такта 2 мксек, 100 оп\сек.



  1. НР 2600 - время такта 1.8е-9 сек, 77млрд оп\сек.


2000 ASCI WHITE -1е место в списке топ-500 в 2000, объединяет 8192 процессора Power 3 с общей оперативной памятью 4 терабайта и производительностью 12триллионов оп-й в сек.


2007 1е место в топ-500 IBM - 212992 процессора, 500 трл оп\сек.


Наш НР – на 33 месте – 3760 процессоров, 45 трл оп\сек.


Ускорение идет как за счет увеличения тактовой частоты, так и за счет использования идей параллелизма в архитектуре ЭВМ.


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


В современных процессорах Pentium 4 – до 126 микрокоманд могут выполняться одновременно в каждом ядре многоядерного процессора.


Итак, два основных пути развития:
    1. развитие элементной базы
    2. использование новых решений в архитектуре компьютеров.


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


Параллельная обработка данных – объединение нескольких однотипных независимых устройств, способных выполнять одну и ту же работу. 1 устройство выполнит 100 оп-й за время Х, а 5 устройств – за Х/5, т.е. в 5 раз быстрее.


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


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

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

Пример – автомобильный конвейер.

Для сложения двух вещественных чисел, представленных в форме с плавающей запятой, необходимо целое множество мелких операций: (1) сравнение порядков, (2) выравнивание порядков, (3) сложение мантисс, (4) нормализация и т.п. Процессоры первых компьютеров выполняли все эти "микрооперации" для каждой пары аргументов последовательно, одна за одной, до тех пор, пока не доходили до окончательного результата, и лишь после этого переходили к обработке следующей пары слагаемых.

Пусть в операции можно выделить пять микроопераций, каждая из которых выполняется за одну единицу времени. Если есть одно неделимое последовательное устройство, то 100 пар аргументов оно обработает за 500 единиц. Если каждую микрооперацию выделить в отдельный этап (или иначе говорят - ступень) конвейерного устройства, то на пятой единице времени на разной стадии обработки такого устройства будут находиться первые пять пар аргументов, а весь набор из ста пар будет обработан за 5+99=104 единицы времени - ускорение по сравнению с последовательным устройством почти в пять раз (по числу ступеней конвейера).

В общем случае - n операций будут выполнены на l-ступенчатом конвейере за l+n-1 тактов (единиц времени), а последовательно – за l*n единиц времени.

Казалось бы конвейерную обработку можно с успехом заменить обычным параллелизмом, для чего продублировать основное устройство столько раз, сколько ступеней конвейера предполагается выделить. Действительно, 5 устройств из предыдущего примера обработают 100 пар аргументов за 100 единиц времени, что быстрее времени работы конвейерного устройства! Однако! В чем же дело? Ответ прост, увеличив в 5 раз число устройств, мы значительно увеличиваем как объем аппаратуры, так и ее стоимость. Представьте себе, что на автозаводе решили убрать конвейер, сохранив темпы выпуска автомобилей. Если раньше на конвейере одновременно находилась 1000 автомобилей, то действуя по аналогии с предыдущим примером надо набрать 1000 бригад, каждая из которых (1) в состоянии полностью собрать автомобиль от начала до конца, выполнив сотни разного рода операций, и (2) сделать это за то же время, что машина прежде находилась на конвейере. Представили себестоимость такого автомобиля?

Краткая история появления параллелизма в архитектуре ЭВМ


Идеи параллелизма появились очень давно.

Самарский в начале 50х провел расчет эволюции взрывной волны водородной бомбы – несколько десятков барышень с арифмометрами. Одна из первых реализаций принципа параллелизма

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

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

IBM 701 (1953), IBM 704 (1955):

разрядно-параллельная память, разрядно-параллельная арифметика.

Все самые первые компьютеры (EDSAC, EDVAC, UNIVAC) имели разрядно-последовательную память, из которой слова считывались последовательно бит за битом. Первым коммерчески доступным компьютером, использующим разрядно-параллельную память (на CRT) и разрядно-параллельную арифметику, стал IBM 701, а наибольшую популярность получила модель IBM 704 (продано 150 экз.), в которой, помимо сказанного, была впервые применена память на ферритовых сердечниках и аппаратное АУ с плавающей точкой.




IBM 709 (1958): независимые процессоры ввода/вывода.

Процессоры первых компьютеров сами управляли вводом/выводом. Однако скорость работы самого быстрого внешнего устройства, а по тем временам это магнитная лента, была в 1000 раз меньше скорости процессора, поэтому во время операций ввода/вывода процессор фактически простаивал. В 1958г. к компьютеру IBM 704 присоединили 6 независимых процессоров ввода/вывода, которые после получения команд могли работать параллельно с основным процессором, а сам компьютер переименовали в IBM 709. Данная модель получилась удивительно удачной, так как вместе с модификациями было продано около 400 экземпляров, причем последний был выключен в 1975 году - 20 лет существования!




IBM STRETCH (1961):

опережающий просмотр вперед, расслоение памяти.

В 1956 году IBM подписывает контракт с Лос-Аламосской научной лабораторией на разработку компьютера STRETCH, имеющего две принципиально важные особенности: (1) опережающий просмотр для считывания команд, вычисления адресов и выборки операндов; то есть реализовано совмещение различных этапов выполнения нескольких команд; (2) расслоение памяти на два банка для согласования низкой скорости выборки из памяти и более высокой скорости выполнения операций. Каждый банк независимо может передавать данные а АЛУ.




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


ATLAS (1963): конвейер команд.

Впервые конвейерный принцип выполнения команд был использован в машине ATLAS, разработанной в Манчестерском университете. Выполнение команд разбито на 4 стадии: выборка команды, вычисление адреса операнда, выборка операнда и выполнение операции. Конвейеризация позволила уменьшить время выполнения команд с 6 мкс до 1,6 мкс. (2 тыс оп\сек!) Данный компьютер оказал огромное влияние, как на архитектуру ЭВМ, так и на программное обеспечение: в нем впервые использована мультипрограммная ОС, основанная на использовании виртуальной памяти и системы прерываний.


CDC 6600 (1964): независимые функциональные устройства.

Фирма Control Data Corporation (CDC) при непосредственном участии одного из ее основателей, Сеймура Р.Крэя (Seymour R.Cray) выпускает компьютер CDC-6600 - первый компьютер, в котором использовалось несколько независимых функциональных устройств. Для сравнения с сегодняшним днем приведем некоторые параметры компьютера:
  • время такта 100нс,
  • производительность 2-3 млн. операций в секунду,
  • оперативная память разбита на 32 банка по 4096 60-ти разрядных слов,
  • цикл памяти 1мкс,
  • 10 независимых функциональных устройств. Впервые параллелизм в явном виде!

Машина имела громадный успех на научном рынке, активно вытесняя машины фирмы IBM.


CDC 7600 (1969) конвейерные независимые функциональные устройства.

CDC выпускает компьютер CDC-7600 с восемью независимыми конвейерными функциональными устройствами - сочетание параллельной и конвейерной обработки. Основные параметры:
  • такт 27,5 нс,
  • 10-15 млн. опер/сек.,
  • 8 конвейерных ФУ,
  • 2-х уровневая память.



ILLIAC IV (1974): матричные процессоры.

Ключевая идея – матрица синхронно работающих процессоров. Проект - 256 процессорных элементов (ПЭ) = 4 квадранта по 64ПЭ, возможность реконфигурации: 2 квадранта по 128ПЭ или 1 квадрант из 256ПЭ, такт 40нс, производительность 1Гфлоп. Реальность - работы начаты в 1967 году, к концу 1971 изготовлен 1 квадрант, в 1974г. введен в эксплуатацию, доводка велась до 1975 года; центральная часть системы: устройство управления (УУ) + матрица из 64 ПЭ.

Работал до 1982г, затем сдан в музей.

  • УУ это простая ЭВМ с небольшой производительностью, управляющая матрицей ПЭ; все ПЭ матрицы работали в синхронном режиме, выполняя в каждый момент времени одну и ту же команду, поступившую от УУ, но над своими данными;
  • ПЭ имел собственное АЛУ с полным набором команд, ОП - 2Кслова по 64 разряда, цикл памяти 350нс, каждый ПЭ имел непосредственный доступ только к своей ОП;
  • сеть пересылки данных: двумерный тор со сдвигом на 1 по границе по горизонтали


В сравнении с проектом стоимость в 4 раза выше, сделан лишь 1 квадрант, такт 80нс, реальная произв-ть до 50Мфлоп. Проект опередил свое время, но оказал огромное влияние на архитектуру последующих машин.


Идеи параллельных компилляторов - IVTRAN.


Стрела, 60е годы – «групповые операции» - 1я реализация векторных ФУ.

Позднее – ACS, STAR 100.


CRAY 1 (1976): векторно-конвейерные процессоры – классика жанра

В 1972 году С.Крэй покидает CDC и основывает свою компанию Cray Research, которая в 1976г. выпускает первый векторно-конвейерный компьютер CRAY-1: время такта 12.5нс, 12 конвейерных функциональных устройств, пиковая производительность 160 миллионов операций в секунду, оперативная память до 1 Мслова (слово - 64 разряда), цикл памяти 50нс. Главным новшеством является введение векторных команд, работающих с целыми массивами независимых данных и позволяющих эффективно использовать конвейерные функциональные устройства.




Основные направления развития вычислительной техники

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

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

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

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

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

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

  1. Кластеры.

Комбинация из трех указанных направлений. Из нескольких процессоров (можно в\к) и общей для них памяти формируется вычислительные узлы, объединенные высоко­скоростными каналами. Именно это направление является в настоящее время наиболее перспективным для конструирования высокопроизводительных компьютеров.


Заделы на будущее.


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


Квантовый компьютинг (стадия теоретических разработок и экспериментов)

Идея состоит на использовании в качестве элементной базы (битов) объектов квантовой физики (спины, электроны, и др), принимающих два состояния, которые можно положить 0 или 1.