2.Архитектура ЭВМ АПП.ppt
- Количество слайдов: 137
Вычислительные системы, сети и телекоммуникации Тема 2. Архитектура ЭВМ
Архитектура компьютера n Архитектурой компьютера считается его представление на некотором общем уровне, включающее описание пользовательских возможностей программирования, системы команд, системы адресации, организации памяти и т. д. n Архитектура определяет принципы действия, информационные связи и взаимное соединение основных логических узлов компьютера: процессора, оперативного запоминающего устройства (ОЗУ, ОП), внешних ЗУ и периферийных устройств. n Общность архитектуры разных компьютеров обеспечивает их совместимость с точки зрения пользователя.
Принципы фон Неймана n В основу архитектуры большинства компьютеров положены следующие общие принципы, сформулированные в 1945 г. американским ученым Джоном фон Нейманом в отчете по ЭВМ EDVAC: 1) программного управления. 2) однородности памяти 3) адресности.
Принцип программного управления. n n n Принцип программного управления. Из него следует, что программа состоит из набора команд, которые выполняются процессором автоматически друг за другом в определенной последовательности. Выборка программы из памяти осуществляется с помощью счетчика команд (СК). Этот регистр процессора последовательно увеличивает хранимый в нем адрес очередной команды. Если, после выполнения команды, следует перейти не к следующей, а к какой-то другой, используются команды условного или безусловного переходов, которые заносят в счетчик команд номер ячейки памяти, содержащей следующую команду;
Принцип программного управления. Принцип однородности памяти — программы и данные хранятся в одной и той же памяти. Компьютер не различает, что хранится в данной ячейке памяти — число, текст или команда. n Над командами можно выполнять такие же действия, как и над данными. n Например, программа в процессе своего выполнения также может подвергаться переработке, что позволяет задавать в самой программе правила получения некоторых ее частей (так в программе организуется выполнение циклов и подпрограмм);
Принцип программного управления. n n n Принцип адресности. Структурно основная память состоит из перенумерованных ячеек; Процессору в произвольный момент времени доступна любая ячейка. Отсюда следует возможность давать имена областям памяти так, чтобы к запомненным в них значениям можно было впоследствии обращаться или менять их в процессе выполнения программ с использованием присвоенных имен.
Ассоциативные компьютеры n n Компьютеры, построенные на этих принципах, относятся к типу фон-неймановских. Существуют и другие классы компьютеров, принципиально отличающиеся от них, — нефон-неймановские. Например, в ассоциативных компьютерах может не выполняться принцип программного управления, поскольку каждая команда здесь содержит адрес следующей (т. е. они могут работать без счетчика команд, указывающего на выполняемую команду программы).
Функциональные блоки ЭВМ (агрегаты, устройства) n n n В то время как логические элементы и узлы во многом универсальны и могут использоваться в самых различных сочетаниях для решения разнообразных задач, Блоки (агрегаты) ЭВМ представляют собой комплексы элементов (узлов), ориентированные на узкий круг задач (операций). Такие агрегаты, как АЛУ, процессор, банк памяти, внешние устройства (НГМД и пр. ), обязательно включают в свой состав логические элементы и узлы, используемые для хранения информации, ее обработки и управления этими процессами.
Центральное устройство n Центральное устройство (ЦУ) представляет основную компоненту ЭВМ и, в свою очередь, включает ЦП — центральный процессор (central processing unit — CPU) и ОП — оперативную (главную) память или оперативное n запоминающее устройство — ОЗУ (синонимы — Main Storage, Core Storage, Random Access Memory — RAM). Процессор непосредственно реализует операции обработки информации и управления вычислительным процессом, осуществляя выборку машинных команд и данных из оперативной памяти, их выполнение и запись результатов в ОП, включение и отключение ВУ.
Центральное процессорное устройство Основными блоками процессора являются: • устройство управления (УУ) с интерфейсом процессора (системой сопряжения и связи процессора с другими узлами машины); • арифметико-логическое устройство (АЛУ); • процессорная память (внутренний кэш).
Арифметико-логическое устройство (АЛУ). n n Арифметико-логическое устройство (АЛУ). Arithmetic and Logical Unit (ALU) — часть процессора, выполняющая арифметические и логические операции над данными. АЛУ реализует набор простых операций. Арифметической операцией называют процедуру обработки числовых данных (сложение, вычитание, умножение, деление). Логической операцией именуют процедуру, осуществляющую построение сложного высказывания (операции и, или, НЕ). АЛУ состоит из регистров, сумматора с соответствующими логическими схемами и блока управления выполняемым процессом. Устройство работает в соответствии с сообщаемыми ему кодами операций, которые должны быть выполнены над переменными, помещаемыми в регистры.
Внешние устройства (ВУ). n Внешние устройства (ВУ). ВУ обеспечивают эффективное взаимодействие компьютера с окружающей средой — пользователями, объектами управления, другими машинами. n В специализированных управляющих ЭВМ (технологические процессы, связь, ракеты и пр. ) внешними устройствами ввода являются датчики (температуры, давления, расстояния и пр. ), устройствами вывода — манипуляторы (гидро-, пневмо-, сервоприводы рулей, вентилей и др. ). n В универсальных ЭВМ (человеко-машинная обработка информации) в качестве ВУ выступают: терминалы, принтеры и др. устройства.
Интерфейсы (каналы связи) n n Интерфейсы (каналы связи) служат для сопряжения центральных узлов машины с ее внешними устройствами. Однотипные ЦУ и устройства хранения данных могут использоваться в различных типах машин. Известны примеры того, как фирмы, начавшие свою деятельность с производства управляющих машин, совершенствуя свою продукцию, перешли к выпуску систем, которые в зависимости от конфигурации ВУ могут исполнять роль как универсальных, так и управляющих машин (машины Hewlett-Packard — HP и Digital Equipment Corporation — DEC).
Абстрактное центральное устройство n Команда, инструкция (instruction) — описание операции, которую нужно выполнить. Каждая команда характеризуется форматом, который определяет ее структуру. Типичная команда содержит: Код операции (КОП), характеризующий тип выполняемого действия; ¨ Адресную часть (АЧ), которая в общем случае включает: 1) номера (адреса) индексного (ИР) и базисного (БР) регистров; 2) адреса операндов — A 1, A 2 и т. д. ¨ n n Цикл процессора — период времени, за который осуществляется выполнение команды исходной программы в машинном виде; состоит из нескольких тактов. Такт работы процессора — промежуток времени между соседними импульсами (tick of the internal clock) генератора тактовых импульсов, частота которых есть тактовая частота процессора.
Абстрактное центральное устройство n Команда, инструкция (instruction) — описание операции, которую нужно выполнить. Каждая команда характеризуется форматом, который определяет ее структуру. Типичная команда содержит: Код операции (КОП), характеризующий тип выполняемого действия; ¨ Адресную часть (АЧ), которая в общем случае включает: 1) номера (адреса) индексного (ИР) и базисного (БР) регистров; 2) адреса операндов — A 1, A 2 и т. д. ¨
Абстрактное центральное устройство n n n Регистры общего назначения — РОН, регистры сверхоперативной памяти или регистровый файл — РФ (General Purpose Registers) — общее название для регистров, которые временно содержат данные, передаваемые в память или принимаемые из нее. Регистр команды (РК, Instruction Register— IR) служит для размещения текущей команды, которая находится в нем в течение текущего цикла процессора. Регистр (РАК), счетчик (СК) адреса команды (program counter — PC) — регистр, содержащий адрес текущей команды. Регистр адреса (числа) — РА — содержит адрес одного из операндов выполняемой команды (регистров может быть несколько). Регистр числа (РЧ) содержит операнд выполняемой команды, этих регистров также несколько. Регистр результата (РР) предназначается для хранения результата выполнения команды.
Абстрактное центральное устройство n Сумматор — регистр, осуществляющий операции сложения (логического и арифметического двоичного) чисел или битовых строк, представленных в прямом или обратном коде. n Регистр, хранящий промежуточные данные, часто именуют регистром - аккумулятором. n Существуют и другие регистры, не отмеченные на схеме, например регистр состояния — Status Register (SR) или регистр флагов. Типичным содержанием SR является информация об особых результатах завершения команды (ноль, переполнение, деление на ноль, перенос и пр. ). n
Прочие архитектуры классических ЭВМ
Архитектура «звезда» . n n n Процессор (ЦУ) соединен непосредственно с ВУ и управляет их работой (ранние модели машин). Этот тип также именуется классическая архитектура (фон Неймана) — одно арифметико-логическое устройство (АЛУ), через которое проходит поток данных, и одно устройство управления (УУ), через которое проходит поток команд — программа. Это однопроцессорный компьютер.
Принстонская и гарвардская архитектуры n Архитектура фон Неймана часто ассоциируется с принстонской архитектурой, которая характеризуется использованием общей оперативной памяти для хранения программ и данных. n Гарвардская архитектура- альтернативная (название связано с компьютером «Марк-1» (1950 г. ), в котором использовалась отдельная память для команд) характеризуется физическим разделением памяти команд (программ) и памяти данных. n Каждая память соединяется с процессором отдельной шиной, что позволяет одновременно с чтением-записью данных при выполнении текущей команды производить выборку и декодирование следующей команды. n Гарвардская архитектура появляется в современных процессорах, когда в кэш-памяти ЦП выделяется память команд (I-Cache) и память данных (D-Cache).
Иерархическая архитектура n ЦУ соединено с периферийными процессорами (вспомогательными процессорами, каналами, канальными процессорами), управляющими в свою очередь контроллерами, к которым подключены группы ВУ (системы IBM 360 -375, ЕС ЭВМ);
Магистральная структура (шина - unibas). n n n Процессор (процессоры) и блоки памяти (ОП) взаимодействуют между собой и с ВУ (контроллерами ВУ) через внутренний канал, общий для всех устройств (машины DEC, IBM PC-совместимые ПЭВМ). Физически магистраль представляет собой многопроводную линию с гнездами для подключения электронных схем. Совокупность линий магистрали разделяется на отдельные группы — шину адреса, шину данных и шину управления.
Магистральная структура (шина - unibas). n архитектура персонального компьютера (ПК).
Классы и архитектуры суперкомпьютеров
Супер-ЭВМ и сверхвысокая производительность: зачем? n n Конфигурации подобных систем могут стоить не один миллион долларов США - ради интереса прикиньте, сколько стоят, скажем, лишь 4 Тбайта оперативной памяти? Возникает целый ряд естественных вопросов: какие задачи настолько важны, что требуются компьютеры стоимостью несколько миллионов долларов? n Или, какие задачи настолько сложны, что хорошего «Пентиума» не достаточно? n На эти и подобные им вопросы хотелось бы найти разумные ответы.
Супер-ЭВМ и сверхвысокая производительность: зачем? n n Для того, чтобы оценить сложность решаемых на практике задач, возьмем конкретную предметную область, например, оптимизацию процесса добычи нефти. Имеем подземный нефтяной резервуар с каким-то число пробуренных скважин: по одним на поверхность откачивается нефть, по другим обратно закачивается вода. Нужно смоделировать ситуацию в данном резервуаре, чтобы оценить запасы нефти или понять необходимость в дополнительных скважинах. Примем упрощенную схему, при которой моделируемая область отображается в куб. Разумные размеры куба, при которых можно получать правдоподобные результаты - это 100*100 точек.
Супер-ЭВМ и сверхвысокая производительность: зачем? В каждой точке куба надо вычислить от 5 до 20 функций: три компоненты Скорости, Давление, Температуру, Концентрацию компонент (вода, газ и нефть - это минимальный набор компонент, в более реалистичных моделях рассматривают, например, различные фракции нефти). n Далее, значения функций находятся как решение нелинейных уравнений, что требует от 200 до 1000 арифметических операций. И наконец, если исследуется нестационарный процесс, т. е. нужно понять, как эта система ведет себя во времени, то делается 100 -1000 шагов по времени. Что получилось: n 1000000(точек сетки)*10(функций)*500(операций)*500(шагов по времени) = 2. 5*000 000 =2, 5 E +12 n 2500 миллиардов арифметических операций для выполнения одного лишь расчета! А изменение параметров модели? А отслеживание текущей ситуации при изменении входных данных? Подобные расчеты необходимо делать много раз, что накладывает очень жесткие требования на производительность используемых вычислительных систем. n
А почему суперкомпьютеры считают так быстро? n Вариантов ответа может быть несколько, среди которых два имеют явное преимущество: 1) развитие элементной базы 2) использование новых решений в архитектуре компьютеров.
Быстро, ещё быстрее ? n n n Попробуем разобраться, какой из факторов оказывается решающим для достижения рекордной производительности. На одном из первых компьютеров мира - EDSAC, появившемся в 1949 году в Кембридже и имевшем время такта 2 микросекунды (2*10 -6 секунды), можно было выполнить 2*n арифметических операций за 18*n миллисекунд, то есть в среднем 100 арифметических операций в секунду. Сравним с одним вычислительным узлом современного суперкомпьютера Hewlett-Packard V 2600: время такта приблизительно 1. 8 наносекунды (1. 8*10 -9 секунд), а пиковая производительность около 77 миллиардов арифметических операций в секунду.
Быстро, ещё быстрее ? Что же получается? n За полвека производительность компьютеров выросла более, чем в семьсот миллионов раз. n При этом выигрыш в быстродействии, связанный с уменьшением времени такта с 2 микросекунд до 1. 8 наносекунд, составляет лишь около 1000 раз. Откуда же взялось остальное? n Ответ очевиден - использование новых решений в архитектуре компьютеров. n Основное место среди них занимает принцип параллельной обработки данных, воплощающий идею одновременного (параллельного) выполнения нескольких действий.
Параллельные вычислительные системы (П_ВС). n ПВС - физические компьютерные, а также программные системы, реализующие тем или иным способом параллельную обработку данных на многих вычислительных узлах. n Идея распараллеливания вычислений базируется на том, что большинство задач может быть разделено на набор меньших задач, которые могут быть решены одновременно. n Обычно параллельные вычисления требуют координации действий.
Параллельные вычислительные системы (П_ВС). n Параллельные вычисления существуют в нескольких формах: ¨ ¨ ¨ параллелизм на уровне битов, параллелизм на уровне инструкций, параллелизм данных, параллелизм задач. n Параллельные вычисления использовались много лет в основном в высокопроизводительных вычислениях, но в последнее время к ним возрос интерес вследствие существования физических ограничений на рост тактовой частоты процессоров. n Параллельные вычисления стали доминирующей парадигмой в архитектуре компьютеров, в основном в форме многоядерных процессоров.
Быстро, ещё быстрее ? В 1995 году корпус автомобиля Nissan Maxima удалось сделать на 10% прочнее благодаря использованию суперкомпьютера фирмы Cray (The Atlanta Journal, 28 мая, 1995 г). С помощью него были найдены не только слабые точки кузова, но и наиболее эффективный способ их удаления. По данным Марка Миллера (Mark Miller, Ford Motor Company), для выполнения crash-тестов, при которых реальные автомобили разбиваются о бетонную стену с одновременным замером необходимых параметров, съемкой и последующей обработкой результатов, компании Форд понадобилось бы от 10 до 150 прототипов новых моделей при общих затратах от 4 до 60 миллионов долларов. Использование суперкомпьютеров позволило сократить число прототипов на одну треть. Совсем недавний пример - это развитие одной из крупнейших мировых систем резервирования Amadeus, используемой тысячами агенств со 180000 терминалов в более чем ста странах. Установка двух серверов Hewlett-Packard T 600 по 12 процессоров в каждом позволила довести степень оперативной доступности центральной системы до 99. 85% при текущей загрузке около 60 миллионов запросов в сутки.
Вычислительная система (ВС) n Вычислительная система (ВС) — совокупность взаимосвязанных и взаимодействующих процессоров или ЭВМ, периферийного оборудования и программного обеспечения, предназначенная для сбора, хранения, обработки информации. Создание ВС преследует следующие основные цели: • повышение производительности системы за счет ускорения процессов обработки данных; • повышение надежности и достоверности вычислений; • предоставление пользователям дополнительных сервисных услуг и т. д.
Вычислительная система (ВС) n Отличительной особенностью ВС по отношению к классическим ЭВМ является наличие в ней нескольких вычислителей, реализующих параллельную обработку. n Если не вдаваться в подробности, ВС прежде всего можно разделить на: • многомашинные; • многопроцессорные.
Вычислительная система (ВС)
Вычислительная система (ВС)
Многомашинная вычислительная система. n Несколько процессоров, входящих в вычислительную систему, не имеют общей оперативной памяти, а имеют каждый свою (локальную). n Каждый компьютер в многомашинной системе имеет классическую архитектуру, однако эффект от применения такой вычислительной системы может быть получен только при решении задач, имеющих специальную структуру: она должна разбиваться на столько слабо связанных подзадач, сколько компьютеров в системе.
Многопроцессорная архитектура. n n Наличие в компьютере нескольких процессоров означает, что параллельно может быть организовано много потоков данных и много потоков команд. Таким образом, параллельно могут выполняться несколько фрагментов одной задачи. Преимущество в быстродействии многопроцессорных и многомашинных вычислительных систем перед однопроцессорными очевидно.
Архитектура с параллельными процессорами. n n n Здесь несколько АЛУ работают под управлением одного УУ. Это означает, что множество данных может обрабатываться по одной программе, т. е. по одному потоку команд. Высокое быстродействие такой архитектуры можно получить только на задачах, в которых одинаковые вычислительные операции выполняются одновременно на различных однотипных наборах данных.
Способы комплексирования частей ВС n Сочетание различных уровней и методов обмена данными между модулями ВС наиболее полно представлено в универсальных супер. ЭВМ и больших ЭВМ, в которых сбалансировано использовались основные методы достижения высокой производительности. 1) прямого управления (процессор—процессор); 2) общей оперативной памяти; 3) комплексируемых каналов ввода-вывода; 4) устройств управления внешними устройствами (УВУ); 5) общих внешних устройств.
Способы комплексирования
n n n Первый: Уровень прямого управления - служит для передачи коротких однобайтовых сообщений. Последовательность взаимодействия процессоров сводится к следующему. Процессор-инициатор обмена по интерфейсу прямого управления (ИПУ) передает в блок прямого управления байт-сообщение и подает команду «прямая запись» . У другого процессора эта команда вызывает прерывание, относящееся к классу внешних. В ответ, он вырабатывает команду «прямое чтение» и записывает передаваемый байт в свою память. Затем принятая информация расшифровывается и по ней принимается решение. После завершения передачи прерывания снимаются, и оба процессора продолжают вычисления по собственным программам. Уровень прямого управления не может использоваться для передачи больших массивов данных, однако оперативное взаимодействие отдельными сигналами широко используется в управлении вычислениями. У ЭВМ типа IBM PC этому уровню соответствует комплексирование процессоров, подключаемых к системной шине.
n Второй : Уровень общей оперативной памяти (ООП) - является наиболее предпочтительным для оперативного взаимодействия процессоров. ООП эффективно работает при небольшом числе обслуживаемых абонентов. n n Третий: Уровень комплексируемых каналов ввода-вывода предназначается для передачи больших объемов информации между блоками оперативной памяти, объединяемых в ВС. Обмен данными между ЭВМ осуществляется с помощью адаптера «канал—канал» (АКК) и команд «чтение» и «запись» . В ПЭВМ данному уровню взаимодействия соответствует подключение периферийной аппаратуры через контроллеры и адаптеры.
Уровень устройств управления внешними устройствами (УВУ) n Четвёртый : Уровень устройств управления внешними устройствами (УВУ) предполагает использование встроенного в УВУ двухканального переключателя и команд «зарезервировать» и «освободить» . n Двухканальный переключатель позволяет подключать УВУ одной машины к селекторным каналам различных ЭВМ. n По команде «зарезервировать» канал — инициатор обмена имеет доступ через УВУ. n Обмен канала с накопителями продолжается до полного завершения работ и получения команды «освободить» .
Уровень устройств управления внешними устройствами (УВУ) n На четвертом уровне с помощью аппаратуры передачи данных (АПД) (мультиплексоры, сетевые адаптеры, модемы и др. ) имеется возможность сопряжения с каналами связи. Эта аппаратура позволяет создавать сети ЭВМ. n Пятый уровень предполагает использование общих внешних устройств. Для подключения отдельных устройств используется автономный двухканальный переключатель
Проблема масштабируемости многопроцессорных ВС. n Следует отметить, что при использовании многопроцессорных систем возникает проблема масштабируемости — использование нескольких процессоров обычно не приводит к пропорциональному приросту производительности. n Зако н Амдала (также Закон Амдаля-Уэра) иллюстрирует ограничение роста производительности вычислительной системы с увеличением количества вычислителей.
Закон Амдаля-Уэра n n n Зако н Амдала (также Закон Амдаля-Уэра) иллюстрирует ограничение роста производительности вычислительной системы с увеличением количества вычислителей Предположим, что необходимо решить некоторую вычислительную задачу. Алгоритм решения задачи таков, что доля α от общего объёма вычислений может быть получена только последовательными расчётами, а, соответственно, доля 1 − α может быть распараллелена идеально (т. е. время вычисления будет обратно пропорционально числу задействованных узлов p). Ускорение, которое может быть получено на вычислительной системе из p процессоров, по сравнению с однопроцессорным решением не будет превышать величины
Закон Амдаля-Уэра n Зако н Амдала (также Закон Амдаля-Уэра) иллюстрирует ограничение роста производительности вычислительной системы с увеличением количества вычислителей
Закон Амдаля-Уэра n n Отсюда очевидно, что при доле последовательных вычислений α общий прирост производительности не может превысить 1 / α. Так, если половина кода — последовательная, то общий прирост никогда не превысит двух. Закон Амдала показывает, что прирост эффективности вычислений зависит от алгоритма задачи и ограничен сверху для любой задачи. Не для всякой задачи имеет смысл наращивание числа процессоров в вычислительной системе. Более того, если учесть время, необходимое для передачи данных между узлами вычислительной системы, то зависимость времени вычислений от числа узлов будет иметь максимум. Это накладывает ограничение на масштабируемость вычислительной системы, т. е. означает, что с определенного момента добавление новых узлов в систему будет увеличивать время расчёта задачи.
Закон Амдаля-Уэра α p 0 10 100 1000 10% 5. 263 9. 174 9. 910 25% 3. 077 3. 883 3. 988 40% n 10 2. 174 2. 463 2. 496 Таблица показывает, во сколько раз быстрее выполнится программа с долей последовательных вычислений α при использовании процессоров.
Время на передачу данных между узлами системы n По сути, закон означает, что с определенного момента добавление новых узлов в систему будет увеличивать время расчёта задачи. n Если, например, одиночный процессор (1 х П) простаивает 20 % своего времени, ожидая данные из оперативной памяти, то 2 х П будет простаивать 33 % времени, а 4 х П — 50 %. В пересчете на общую производительность, если 1 х П-система работает со скоростью 100 %, то 2 х П-система — со скоростью 167 % (вместо ожидаемых 200 %), а 4 х П-система — со скоростью 250 % (вместо 400 %).
Классификация архитектур вычислительных систем с параллельной обработкой данных (М. Флинн, 1966 г. ) n n В 1966 г. М. Флинном (Flynn) была предложена классификация архитектур ЭВМ и вычислительных систем, в основу которой положено понятие потока, или последовательности элементов (команд или данных), обрабатываемых процессором. Соответствующая система классификации, основанная на рассмотрении числа потоков команд и потоков данных, приводит к четырем базовым классам: ОКОД – один поток команд один поток данных , ОКМД – один поток команд много потоков данных , МКОД – много потоков команд один поток данных , МКМД – много потоков команд много потоков данных.
Архитектура ОКОД n n охватывает все однопроцессорные и одномашинные варианты систем — все ЭВМ классической структуры. Параллелизм вычислений обеспечивается путем конвейеризации и распараллеливания потока микрокоманд между исполнительными устройствами.
Архитектура ОКМД n n n Системы этого типа обычно строятся как однородные, т. е. процессорные элементы, входящие в систему, идентичны. Все они управляются одной и той же последовательностью команд. Однако каждый процессор обрабатывает свой поток данных. Предполагает создание структур векторной или матричной обработки. Под эту схему хорошо подходят задачи обработки матриц или векторов (массивов), задачи решения систем линейных и нелинейных, алгебраических и дифференциальных уравнений, задачи теории поля и др.
Архитектура МКОД n n n В ВС этого типа конвейеры должны образовывать группы процессоров. предполагает построение своеобразного процессорного конвейера, в котором результаты обработки передаются от одного процессора к другому по цепочке. В современных ЭВМ по этому принципу реализована схема совмещения операций, в которой параллельно работают различные функциональные блоки, и каждый из них делает свою часть в общем цикле обработки команды.
Архитектура МКМД n n предполагает, что все процессоры системы работают по своим программам с собственным потоком команд. В простейшем случае они могут быть автономны и независимы. Такая схема использования ВС часто применяется во многих крупных вычислительных центрах для увеличения пропускной способности центра.
Классификация архитектур ЭВМ Джонсона n Наличие большого разнообразия систем, образующих класс МКМД (MIMD), делает классификацию Флинна не полностью адекватной. Действительно и 4 -процессорный SX-5 компании NEC и 1000 -процессорный Cray T 3 E попадают в класс МКМД. Это заставляет искать другие основания классификации. n Е. Джонсон предложил проводить классификацию МКМД -архитектур на основе структуры памяти и реализации механизма взаимодействия и синхронизации между процессорами.
Классификация архитектур ЭВМ Джонсона n По структуре оперативной памяти, существующие вычислительные системы делятся на две большие группы: ¨ системы с общей памятью, прямо доступной всем памятью процессорам, ¨ системы с распределенной памятью, каждая часть которой памятью доступна только одному процессору. n Одновременно с этим и для межпроцессорного взаимодействия существуют две альтернативы — через разделяемые переменные или с помощью механизма передачи сообщений. переменные сообщений. n Исходя из таких предположений, можно получить четыре класса МКМД (MIMD)-архитектур, уточняющих систематику Флинна.
Классификация Джонсона для систем MIMD по Флинну Обмен данными Общие данные Передача данных Память Общая Распределенная GMSV — General Memory. Shared variables (Общая память — разделяемые переменные) Класс 1. «Системы с разделяемой памятью» DMSV — Distributed Memory, Shared variables (Распределенная память — разделяемые переменные) Класс 2. «Гибридная архитектура» GMMP — General Memory, Message propagation (Общая память — передача сообщений) DMMP — Distributed Memory, Message propagation (Распределенная память — передача сообщений) Класс 3. «Архитектуры с передачей сообщений»
Классификация архитектур ЭВМ Джонсона n вычислительные системы, использующие общую разделяемую память для межпроцессорного взаимодействия и синхронизации, он называет системами с разделяемой памятью, например CRAY 5 -MP (по его классификации это класс 1); n системы, в которых память распределена по процессорам, а для взаимодействия и синхронизации используется механизм передачи сообщений, называются архитектурами с передачей сообщений, например NCube (класс 3); n системы с распределенной памятью и синхронизацией через разделяемые переменные, как в BBN Butterfly, называются гибридными архитектурами (класс 2).
Классификация архитектур ЭВМ А. Базу (A. Basu) n По мнению А. Базу (A. Basu), любую параллельную вычислительную систему можно однозначно описать последовательностью решений, принятых на этапе ее проектирования, а сам процесс проектирования представить в виде Дерева. n Корень дерева — это вычислительная система и последующие ярусы дерева, фиксируя уровень параллелизма, метод реализации алгоритма, параллелизм инструкций и способ Управления, последовательно дополняют друга, формируя описание системы.
Архитектуры ЭВМ А. Базу (A. Basu),
Классификация Базу – 1 уровень n n На первом этапе определяется, какой уровень параллелизма использует вычислительная система. Выделяют несколько разновидностей параллелизма: параллелизм на уровне данных (обозначено Data)- одна и та же операция может одновременно выполняться над целым набором данных ¨ параллелизме на уровне команд (Оperation) - Способность выполнять более одной операции одновременно ¨ параллелизме на уровне задач (Task). - возможен если компьютер спроектирован так, что целые последовательности команд могут быть выполнены одновременно ¨
Классификация Базу – 1 уровень n n n Второй уровень в классификационном дереве фиксирует метод реализации алгоритма. С появлением сверхбольших интегральных схем (СБИС) стало возможным реализовывать аппаратно не только простые арифметические операции, но и алгоритмы целиком. Например, быстрое преобразование Фурье, перемножение матриц и другие относятся к классу тех алгоритмов, которые могут быть эффективно реализованы в СБИС. Данный уровень классификации разделяет: системы с аппаратной реализацией алгоритмов (С) системы программной реализации (Рrogramm).
Параллелизм на уровне команд : n n n Классический пример 5 -ти ступенчатого конвейера на RISC машине (IF = Выборка инструкции, ID = Декодирование инструкции, EX = Выполнение, MEM = Доступ к памяти, WB = Запись результата в регистры) Компьютерная программа — это, по существу, поток инструкций выполняемых процессором. Но можно изменить порядок этих инструкций, распределить их по группам, которые будут выполняться параллельно, без изменения результата работы всей программы. Данный приём известен как параллелизм на уровне инструкций.
Параллелизм на уровне команд : n n Современные процессоры имеют многоступенчатый конвейер команд. Каждой ступени конвейера соответствует определённое действие, выполняемое процессором в этой инструкции на этом этапе. Другими словами, процессор с N ступенями конвейера может иметь одновременно до N различных инструкций на разном уровне законченности. Классический пример процессора с конвейером — это RISC процессор с 5 -ю ступенями: выборка инструкции из памяти (IF), декодирование инструкции (ID), доступ к памяти (MEM), выполнение инструкции (EX), запись результата (WB). Процессор Pentium 4 имеет 35 -ти ступенчатый конвейер.
Параллелизм на уровне команд : n n n Современные процессоры имеют многоступенчатый конвейер команд. Каждой ступени конвейера соответствует определённое действие, выполняемое процессором в этой инструкции на этом этапе. Другими словами, процессор с N ступенями конвейера может иметь одновременно до N различных инструкций на разном уровне законченности. Классический пример процессора с конвейером — это RISC процессор с 5 -ю ступенями: выборка инструкции из памяти (IF), декодирование инструкции (ID), доступ к памяти (MEM), выполнение инструкции (EX), запись результата (WB). Процессор Pentium 4 имеет 35 -ти ступенчатый конвейер. Пятиступенчатый конвейер суперскалярного процессора, способен выполнять две инструкции за цикл. Может иметь по две инструкции на каждой ступени конвейера, максимум 10 инструкций могут выполнять одновременно.
Параллелизм на уровне команд : n Некоторые процессоры дополнительно к использованию конвейеров, обладают возможностью выполнять несколько инструкций одновременно, что даёт дополнительный параллелизм на уровне инструкций. n Возможна реализация данного метода при помощи суперскалярности, когда инструкции могут быть сгруппированы вместе для параллельного выполнения (если в них нет зависимости между данными). n Также возможны реализации с использованием явного параллелизма на уровне инструкций: VLIW и EPIC.
Параллелизм на уровне команд : n n Суперскалярность — архитектура вычислительного ядра, использующая несколько декодеров команд, которые могут нагружать работой множество исполнительных блоков. Планирование исполнения потока команд является динамическим и осуществляется самим вычислительным ядром. 5 – ступенчатый конвейер команд суперскалярного процессора
Параллелизм данных: n Основная идея подхода, основанного на параллелизме данных, заключается в том, что одна операция выполняется сразу над всеми элементами массива данных. n Различные фрагменты такого массива обрабатываются на векторном процессоре или на разных процессорах параллельной машины. Распределением данных между процессорами занимается программа. Векторизация или распараллеливание в этом случае чаще всего выполняется уже на этапе компиляции – перевода исходного текста программы в машинные команды. n n n Роль программиста в этом случае обычно сводится к заданию опций векторной или параллельной оптимизации компилятору, директив параллельной компиляции, использованию специализированных языков для параллельных вычислений.
Параллелизм задач: n Стиль программирования, основанный на параллелизме задач подразумевает, что вычислительная задача разбивается на несколько относительно самостоятельных подзадач и каждый процессор загружается своей собственной подзадачей.
Классификация Базу – 2 уровень n Второй уровень в классификационном дереве фиксирует метод реализации алгоритма. n Системы с аппаратной реализацией алгоритмов (С) и системы, использующие традиционный способ программной реализации (Р). n С появлением сверхбольших интегральных схем (СБИС) стало возможным реализовывать аппаратно не только простые арифметические операции, но и алгоритмы целиком. Например, быстрое преобразование Фурье, перемножение матриц и другие относятся к классу тех алгоритмов, которые могут быть эффективно реализованы в СБИС.
Классификация Базу – 3 уровень n Третий уровень конкретизирует тип параллелизма, используемого для обработки инструкций машины, — конвейеризация инструкций (Pi) или их независимое (параллельное) выполнение (Pa). n В большей степени этот выбор относится к компьютерам с программной реализацией алгоритмов, так как аппаратная реализация всегда предполагает параллельное исполнение команд. n Отметим, что в случае конвейерного исполнения имеется в виду лишь конвейеризация самих команд, разбивающая весь цикл обработки на выборку команды, дешифрацию, вычисление адресов и т. д. (возможная конвейеризация вычислений на данном уровне не принимается во внимание).
Классификация Базу – 4 уровень n Последний уровень данной классификации определяет способ управления, принятый в вычислительной системе: синхронный (S) или асинхронный (А). n Если выполнение команд происходит в строгом порядке, определяемом только сигналами таймера и счетчиком команд, то говорят о синхронном способе управления. n Если же для инициации команды определяющими являются такие факторы, как, например, готовность данных, то машина попадает в класс с асинхронным управлением.
Классификация ВС Дункана n n Р. Дункан определяет набор требований, на который может опираться классификация следующим образом. Из класса параллельных машин должны быть исключены те, в которых параллелизм заложен лишь на самом низком уровне, включая: конвейеризацию на этапе подготовки и выполнения команды (instruction pipelining), т. е. частичное перекрытие таких этапов, как дешифрация команды, вычисление адресов операндов, выборка операндов, выполнение команды и сохранение результата; наличие в архитектуре нескольких функциональных устройств, работающих независимо, в частности, возможность параллельного выполнения логических и арифметических операций; наличие отдельных процессоров ввода-вывода, работающих независимо и параллельно с основными процессорами.
Классификация ВС Дункана
Классификация параллельных ВС Дункана n n Параллельная архитектура — это такой способ организации вычислительной системы, при котором допускается, чтобы множество процессоров (простых или сложных) могло бы работать одновременно, взаимодействуя по мере надобности друг с другом. Процессоры системы работают либо синхронно, либо независимо друг от друга, либо в архитектуру системы заложена та или иная модификация идеи MIMD.
Классификация ВС Дункана n n n Систолические архитектуры (их чаще называют систолическими массивами) представляют собой множество процессоров, объединенных регулярным образом (например, система WARP). Обращение к памяти может осуществляться только через определенные процессоры на границе массива. Выборка операндов из памяти и передача данных по массиву осуществляется в одном и том же темпе. Направление передачи данных между процессорами фиксировано. Каждый процессор за интервал времени выполняет небольшую инвариантную последовательность действий.
Классификация ВС Дункана n Гибридные MIMD/SIMD-архитектуры, вычислительные системы dataflow, reduction и wavefront осуществляют параллельную обработку информации на основе асинхронного управления, как и MIMDсистемы. n Но они выделены в отдельную группу, поскольку все имеют ряд специфических особенностей, которыми не обладают системы, традиционно относящиеся к MIMD.
Классификация ВС Дункана n Dataflow-машины используют модель, в которой команда может выполняться сразу же, как только вычислены необходимые операнды. n Таким образом, последовательность выполнения команд определяется зависимостью по данным, которая может быть выражена, например, в форме графа.
Классификация ВС Дункана n n Модель вычислений, применяемая в reductionмашинах, иная и состоит в следующем: команда становится доступной для выполнения тогда и только тогда, когда результат ее работы требуется другой, доступной для выполнения команде в качестве операнда. Архитектура wavefront array объединяет в себе идею систолической обработки данных и модель вычислений, используемую в Dataflow машинах. В данной архитектуре процессоры объединяется в модули и связи, по которым процессоры могут взаимодействовать друг с другом, фиксируются. Однако, в противоположность ритмичной работе систолических массивов, данная архитектура использует асинхронный механизм связи с подтверждением (handshaking), из-за этого «фронт волны» вычислений может менять свою форму по мере перемещения по всему множеству процессоров.
Классификация ВС Кришнамарфи n Е. Кришнамарфи для классификации параллельных вычислительных систем предлагает использовать четыре характеристики, похожие на характеристики классификации А. Базу : • • степень гранулярности; способ реализации параллелизма; топологию и природу связи процессоров; способ управления процессорами.
Классификация ВС Кришнамарфи
Классификация ВС Кришнамарфи n Векторно-конвейерные компьютеры: • гранулярность — на уровне данных; • реализация параллелизма — аппаратная; • связь процессоров — простая топология со средней связностью; • n способ управления — синхронный. Классические мультипроцессоры: • гранулярность — на уровне задач • реализация параллелизма — комбинированная; • связь процессоров — простая топология со слабой связностью и использованием разделяемых переменных; • способ управления — асинхронный.
Классификация ВС Кришнамарфи n • • Матричные процессоры: гранулярность — на уровне данных; реализация параллелизма — аппаратная; связь процессоров — двумерные массивы с сильной связностью; способ управления — синхронный. Систолические массивы: гранулярность — на уровне данных; реализация параллелизма — аппаратная; связь процессоров — сложная топология с сильной связностью; способ управления — синхронный.
Классификация ВС Кришнамарфи n • • Архитектура типа wavefront: гранулярность — на уровне данных; реализация параллелизма — аппаратная; связь процессоров — двумерная топология с сильной связностью; способ управления — dataflow. Архитектура типа dataflow: • гранулярность — на уровне команд; • реализация параллелизма — комбинированная; n • связь процессоров — простая топология с сильной либо средней связностью и использованием принципа dataflow; • способ управления — асинхронно-dataflow.
Основные архитектуры современных вычислительных систем. n Рассмотрим далее примеры конкретных архитектур, а именно: • симметричную многопроцессорную; • асимметричную многопроцессорную (мультипроцессорную); • массивно-параллельную; • гибридную с неоднородным доступом к памяти; • параллельную с векторными процессорами; • кластерную.
Симметричная мультипроцессорная обработка Symmetric Multiprocessing (SMP). n n SMP — архитектура суперкомпьютера, в которой группа процессоров работает с общей оперативной памятью. Память является способом передачи сообщений между процессорами, при этом все вычислительные устройства при обращении к ней имеют равные права и одну и ту же адресацию для всех ячеек памяти.
Симметричная мультипроцессорная обработка Symmetric Multiprocessing (SMP). 1) Работой управляет единственная копия операционной системы. 2) Для ускорения обработки каждый процессор может также иметь собственную кэш-память. 3) Задания между процессами распределяются непосредственно при выполнении прикладного процесса. 4) Нагрузка между процессорами динамически выравнивается, а обмен данными между ними происходит с большой скоростью.
Симметричная мультипроцессорная обработка Symmetric Multiprocessing (SMP). n n n Достоинство этого подхода состоит в том, что каждый процессор видит всю решаемую задачу в целом. Но поскольку для взаимодействия используется лишь одна шина, то возникают повышенные требования к ее пропускной способности. Соединение посредством шины применяется при небольшом (4— 8) числе процессоров. SMP системы позволяют любому процессору работать над любой задачей независимо от того, где в памяти хранятся данные для этой задачи; с должной поддержкой операционной системы, SMP системы могут легко перемещать задачи между процессорами эффективно распределяя нагрузку. С другой стороны, память гораздо медленнее процессоров, которые к ней обращаются, даже однопроцессорным машинам приходится тратить значительное время на получение данных из памяти. В SMP ситуация ещё более усугубляется, так как только один процессор может обращаться к памяти в данный момент времени. Поддержка SMP должна быть встроена в операционную систему. Иначе дополнительные процессоры будут оставаться не загруженными и система будет работать как однопроцессорная.
Симметричная мультипроцессорная обработка Symmetric Multiprocessing (SMP). Проблемы SMP: В SMP подобных системах возникает проблема организации когерентности многоуровневой иерархической памяти. n Когерентность кэшей означает, что все процессоры получают одинаковые значения одних и тех же переменных в любой момент времени. Действительно, поскольку кэш-память принадлежит отдельному компьютеру, а не всей многопроцессорной системе в целом, данные, попадающие в кэш одного компьютера, могут быть недоступны другому. Чтобы избежать этого, следует провести синхронизацию информации, хранящейся в кэш-памяти процессоров. n Проблема, о которой идет речь, возникает из-за того, что значение элемента данных в памяти, хранящееся в двух разных процессорах, доступно этим процессорам только через их индивидуальные кэши. Если процессор изменит значение элемента данных в своем кэше, то при попытке вывода данных из памяти, будет получено старое значение. Наоборот, если подсистема ввода/вывода вводит в ячейку основной памяти новое значение, в кэш памяти процессора по прежнему остается старое значение.
Симметричная мультипроцессорная обработка Symmetric Multiprocessing (SMP). n n Ограничение на количество процессоров при увеличении числа процессоров заметно увеличивается требование к полосе пропускания шины памяти. Это накладывает ограничение на количество процессоров в SMP архитектуре. Современные конструкции позволяют разместить до четырех процессоров на одной системной плате. ОС: Вся система работает под управлением единой ОС (обычно UNIX-подобной, но для Intel-платформ поддерживается Windows NT). ОС автоматически (в процессе работы) распределяет процессы/нити по процессорам (scheduling), но иногда возможна и явная привязка.
Симметричная мультипроцессорная обработка Symmetric Multiprocessing (SMP). n Модель программирования: Программирование в модели общей памяти. (POSIX threads, Open. MP). Для SMP-систем существуют сравнительно эффективные средства автоматического распараллеливания. n Масштабируемость: Наличие общей памяти сильно упрощает взаимодействие процессоров между собой, однако накладывает сильные ограничения на их число - не более 32 в реальных системах. Для построения масштабируемых систем на базе SMP используются кластерные или NUMA-архитектуры n Примеры SMP систем: HP 9000 V-class, N-class; SMP-cервера и рабочие станции на базе процессоров Intel (IBM, HP, Compaq, Dell, ALR, Unisys, DG, Fujitsu и др. ).
Асимметричная мультипроцессорная обработка ASymmetric Multiprocessing (ASMP) n ASMP — архитектура суперкомпьютера, в которой каждый процессор имеет свою оперативную память. n В ASMP в любом случае процессоры взаимодействуют между собой, передавая другу сообщения, т. е. как бы образуя скоростную локальную сеть. Передача сообщений может осуществляться через общую шину, либо благодаря межпроцессорным связям. В последнем случае процессоры связаны либо непосредственно, либо через друга. Непосредственные связи используются при небольшом числе процессоров. n n
Асимметричная мультипроцессорная обработка ASymmetric Multiprocessing (ASMP)
Массивно-параллельная архитектура massive parallel processing (МРР). n Вычислительная система строится из отдельных модулей, каждый из которых содержит: 1. • процессор; • локальный банк оперативной памяти (ОП); • два коммуникационных процессора (маршрутизатора, рутера — router): один — для передачи команд, другой — для передачи данных (или сетевой адаптер); • жесткие диски и/или другие устройства ввода-вывода. 2. 3. 4. n n По своей сути, такие модули представляют собой полнофункциональные компьютеры. Доступ к банку ОП из данного модуля имеют только процессоры из этого же модуля. Модули соединяются специальными коммуникационными каналами. Пользователь может определить логический номер процессора, к которому он подключен, и организовать обмен сообщениями с другими процессорами.
Массивно-параллельная архитектура massive parallel processing (МРР). n Особенность архитектуры состоит в том, что память физически разделена. n Используются два варианта работы операционной системы на машинах MPP-архитектуры. В одном полноценная операционная система работает только на управляющей машине (front-end), на каждом отдельном модуле функционирует сильно урезанный вариант ОС, обеспечивающий работу только расположенной в нем ветви параллельного приложения. Во втором варианте на каждом модуле работает полноценная UNIX-подобная ОС, устанавливаемая отдельно.
Гибридная архитектура nonuniform memory access (NUMA). n n Главная особенность гибридной архитектуры NUMA (nonuniform memory access) — неоднородный доступ к памяти. Гибридная архитектура воплощает в себе удобства систем с общей памятью и относительную дешевизну систем с раздельной памятью. Суть этой архитектуры — в методе организации памяти, а именно: память является физически распределенной по различным частям системы, но логически разделяемой, так что пользователь видит единое адресное пространство. Система состоит из однородных базовых модулей (плат), состоящих из небольшого числа процессоров и блока памяти. Модули объединены с помощью высокоскоростного коммутатора. Поддерживается единое адресное пространство, аппаратно поддерживается доступ к удаленной памяти, т. е. к памяти других модулей. При этом доступ к локальной памяти осуществляется в несколько раз быстрее, чем к удаленной. По существу архитектура NUMA является МРР-архитектурой (массивно-параллельной), где в качестве отдельных вычислительных элементов берутся SMP-узлы.
Гибридная архитектура nonuniform memory access (NUMA). n n Пример структурной схемы компьютера с гибридной сетью: четыре процессора связываются между собой с помощью кроссбара в рамках одного SMP-узла. Узлы связаны сетью типа «бабочка» (Butterfly).
Гибридная архитектура nonuniform memory access (NUMA). n Известны также гибридные структуры с коммутатором. Здесь каждый процессор работает со своей памятью, но модули устройств памяти связаны друг с другом с помощью коммутатора. Коммутаторы могут включаться также между группами процессоров (ПР) и модулей памяти (П). Здесь сообщения между процессорами и памятью передаются через несколько узлов.
Гибридная архитектура nonuniform memory access (NUMA). n Масштабируемость: Масштабируемость NUMAсистем ограничивается объемом адресного пространства, возможностями аппаратуры поддежки когерентности кэшей и возможностями операционной системы по управлению большим числом процессоров. На настоящий момент, максимальное число процессоров в NUMA-системах составляет 256 (Origin 2000). n ОС: Обычно вся система работает под управлением единой ОС, как в SMP. Но возможны также варианты динамического "подразделения" системы, когда отдельные "разделы" системы работают под управлением разных ОС (например, Windows NT и UNIX в NUMA-Q 2000).
Гибридная архитектура nonuniform memory access (NUMA). n n Примеры NUMA систем: HP HP 9000 V-class в SCAконфигурациях, SGI Origin 2000, Sun HPC 10000, IBM/Sequent NUMA-Q 2000, SNI RM 600. Наиболее известными системами архитектуры cc-NUMA являются: HP 9000 V-class в SCAконфигурациях, SGI Origin 3000, Sun HPC 15000, IBM/Sequent NUMA-Q 2000. На настоящий момент максимальное число процессоров в cc. NUMA-системах может превышать 1000 (серия Origin 3000). Обычно вся система работает под управлением единой ОС, как в SMP. Возможны также варианты динамического "подразделения" системы, когда отдельные "разделы" системы работают под управлением разных ОС. При работе NUMA-системами, также как с SMP, используют так называемую парадигму программирования с общей памятью (shared memory paradigm).
Параллельная архитектура с векторными процессорами Parallel Vector Process (PVP) n n n Основным признаком PVP-систем является наличие векторноконвейерных процессоров, в которых предусмотрены команды однотипной обработки векторов независимых данных, эффективно выполняющиеся на конвейерных функциональных устройствах. Как правило, несколько таких процессоров (1 — 16) работают одновременно с общей памятью (аналогично SMP) в рамках многопроцессорных конфигураций. Несколько таких узлов могут быть объединены с помощью коммутатора (аналогично МРР).
Параллельная архитектура с векторными процессорами Parallel Vector Process (PVP) n n Векторный процессор — это процессор, в котором процессор операндами некоторых команд могут выступать упорядоченные массивы данных — векторы. Отличается от скалярных процессоров, которые могут работать только с одним операндом в единицу времени. Абсолютное большинство процессоров являются скалярными или близкими к ним. Векторные процессоры были распространены в сфере научных вычислений, где они являлись основой большинства суперкомпьютеров начиная с 1980 -х до 1990 -х. Но резкое увеличение производительности и активная разработка новых процессоров привели к вытеснению векторных процессоров со сферы повседневных процессоров
Параллельная архитектура с векторными процессорами Parallel Vector Process (PVP) n Векторный процессор — это процессор, в котором операндами некоторых команд могут выступать упорядоченные массивы данных — векторы. Отличается от скалярных процессоров, которые могут работать только с одним операндом в единицу времени. Абсолютное большинство процессоров являются скалярными или близкими к ним. Векторные процессоры были распространены в сфере научных вычислений, где они являлись основой большинства суперкомпьютеров начиная с 1980 -х до 1990 -х. Но резкое увеличение производительности и активная разработка новых процессоров привели к вытеснению векторных процессоров со сферы повседневных процессоров
Параллельная архитектура с векторными процессорами Parallel Vector Process (PVP) n n n В большинстве современных микропроцессоров имеются векторные расширения (см. SSE), кроме того современные видеокарты и физические ускорители можно рассматривать как векторные сопроцессоры. Длина одновременно обрабатываемых векторов в современных векторных компьютерах составляет, как правило, 128 или 256 элементов. Очевидно, что векторные процессоры должны иметь гораздо более сложную структуру и по сути дела содержать множество арифметических устройств. Основное назначение векторных операций состоит в распараллеливании выполнения операторов цикла, в которых в основном и сосредоточена большая часть вычислительной работы. Для этого циклы подвергаются процедуре векторизации с тем, чтобы они могли реализовываться с использованием векторных команд. Как правило, это выполняется автоматически компиляторами при изготовлении ими исполнимого кода программы. Поэтому векторно-конвейерные компьютеры не требовали какой-то специальной технологии программирования, что и явилось решающим фактором в их успехе на компьютерном рынке. Тем не менее, требовалось соблюдение некоторых правил при написании циклов с тем, чтобы компилятор мог их эффективно векторизовать.
Параллельная архитектура с векторными процессорами Parallel Vector Process (PVP) n n n Исторически это были первые компьютеры, к которым в полной мере было применимо понятие суперкомпьютер. Как правило, несколько векторноконвейерных процессоров (2 -16) работают в режиме с общей памятью (SMP), образуя вычислительный узел, а несколько таких узлов объединяются с помощью коммутаторов, образуя либо NUMA, либо MPP систему. Типичными представителями такой архитектуры являются компьютеры CRAY J 90/T 90, CRAY SV 1, NEC SX-4/SX-5. Наиболее популярны 3 машины PVP архитектуры: CRAY SV-2, SMP архитектура. Пиковая производительность системы в стандартной конфигурации может составлять десятки терафлопс. NEC SX-6, NUMA архитектура. Пиковая производительность системы может достигать 8 Тфлопс, производительность 1 процессора составляет 8 Гфлопс. Система масштабируется до 128 узлов. Fujitsu-VPP 5000 (vector parallel processing) ), MPP архитектура. Производительность 1 процессора составляет 9. 6 Гфлопс, пиковая производительность системы может достигать 1249 Гфлопс, максимальная емкость памяти - 8 Тб. Система масштабируется до 512 узлов.
Параллельная архитектура с векторными процессорами Parallel Vector Process (PVP) n Парадигма программирования на PVP системах предусматривает векторизацию циклов (для достижения разумной производительности одного процессора) и их распараллеливание (для одновременной загрузки нескольких процессоров одним приложением). n Модель программирования: Эффективное программирование подразумевает векторизацию циклов (для достижения разумной производительности одного процессора) и их распараллеливание (для одновременной загрузки нескольких процессоров одним приложением). n
Кластерная архитектура ВС. n n Для чего нужны кластеры? Поставщики традиционных коммерческих суперкомпьютеров (SMP, MPP, параллельных векторных) достаточно быстро улучшают производительность, надежность и простоту использования своих продуктов. Однако у этих компьютеров есть один большой недостаток – цена. Следует иметь в виду, что производительность персональных компьютеров на базе процессоров Intel в последние годы также значительно выросла. Такие компьютеры стали создавать серьезную конкуренцию рабочим станциям на базе RISC, особенно по показателю цена/производительность. Одновременно стала приобретать все большую популярность ОС Linux - бесплатно распространяемая версия UNIX. Возникла идея создавать параллельные вычислительные системы (кластеры) из общедоступных компьютеров на базе Intel и недорогих Ethernet-сетей, устанавливая на эти компьютеры Linux и одну из бесплатно распространяемых коммуникационных библиотек (PVM, а затем MPI). Оказалось, что на многих классах задач и при достаточном числе узлов такие системы дают производительность, сравнимую с суперкомпьютерной.
Кластерная архитектура ВС. n n Кластеризация может быть осуществлена на разных уровнях компьютерной системы, включая аппаратное обеспечение, операционные системы, программы-утилиты, системы управления и приложения. Чем больше уровней системы объединены кластерной технологией, тем выше надежность, масштабируемость и управляемость кластера.
Кластерная архитектура ВС. n • • Кластер, как правило, состоит из двух или более узлов, которые связаны интерфейсами. Распределенные данные, которые доступны кластеру, находятся в накопителях информации. Каждый узел кластера содержит следующие основные компоненты: центральный процессор (ПЦ — основное звено обработки информации), обменивающийся данными с оперативной памятью; оперативную память (ОП), как и обычно, предназначенную для хранения программ и данных; интерфейсы, обеспечивающие связь узлов; накопители данных (диски, ленты и пр. ).
Кластерная архитектура ВС. n n n n В любой кластерной архитектуре ЦП используется более или менее одинаковым образом, однако методы конфигурирования компонентов — узлов, памяти и интерфейсов — существенно различаются. В качестве узлов кластера могут выступать серверы, рабочие станции или обычные персональные компьютеры. Преимущество кластеризации для повышения работоспособности становится очевидным в случае сбоя какого-либо узла; при этом другой узел кластера может взять на себя нагрузку неисправного узла, и пользователи не заметят прерывания в доступе. Возможности масштабируемости кластеров позволяют многократно увеличивать производительность приложений для большего числа пользователей. Набор рабочих станций (или даже ПК) общего назначения, используется в качестве дешевого варианта массивно-параллельного компьютера. Для связи узлов используется одна из стандартных сетевых технологий (Fast/Gigabit Ethernet, Myrinet) на базе шинной архитектуры или коммутатора. При объединении в кластер компьютеров разной мощности или разной архитектуры, говорят о гетерогенных (неоднородных) кластерах. Узлы кластера могут одновременно использоваться в качестве пользовательских рабочих станций. В случае, когда это не нужно, узлы могут быть существенно облегчены и/или установлены в стойку.
Кластерная архитектура ВС. Типы кластеров: n Условное деление на классы предложено Язеком Радаевским и Дугласом Эдлайном: n Тип I. Машина строится целиком из стандартных деталей, которые продают многие продавцы компьютерных компонентов (низкие цены, простое обслуживание, аппаратные компоненты доступны из различных источников). n Тип II. Система включает эксклюзивные или не широко распространенные детали. Этим можно достичь очень хорошей производительности, однако, при более высокой стоимости. Как уже указывалось выше, кластеры могут существовать в различных конфигурациях
Кластерная архитектура ВС. Типы кластеров: n Наиболее употребляемыми типами кластеров являются: • Системы высокой надежности. • Системы для высокопроизводительных вычислений. • Многопоточные системы. n Отметим, что границы между этими типами кластеров до некоторой степени размыты, и часто существующий кластер может иметь такие свойства или функции, которые выходят за рамки перечисленных типов. Более того, при конфигурировании большого кластера, используемого как система общего назначения, приходится выделять блоки, выполняющие все перечисленные функции.
Кластерная архитектура ВС. Типы кластеров: n Кластеры для высокопроизводительных вычислений предназначены для параллельных расчётов. Эти кластеры обычно собраны из большого числа компьютеров. Разработка таких кластеров является сложным процессом, требующим на каждом шаге аккуратных согласований таких вопросов как инсталляция, эксплуатация и одновременное управление большим числом компьютеров, технические требования параллельного и высокопроизводительного доступа к одному и тому же системному файлу (или файлам) и межпроцессорная связь между узлами и координация работы в параллельном режиме. Эти проблемы проще всего решаются при обеспечении единого образа операционной системы для всего кластера. Однако реализовать подобную схему удаётся далеко не всегда и обычно она обычно применяется лишь для не слишком больших систем.
Кластерная архитектура ВС. Типы кластеров: n n Многопоточные системы используются для обеспечения единого интерфейса к ряду ресурсов, которые могут со временем произвольно наращиваться (или сокращаться) в размере. Наиболее общий пример этого представляет собой группа Вебсерверов. В 1994 году Томас Стерлинг (Sterling) и Дон Беккер (Becker) создали 16 -и узловой кластер из процессоров Intel DX 4, соединенных сетью 10 Мбит/с Ethernet с дублированием каналов. Они назвали его «Beowulf» по названию старинной эпической поэмы. Кластер возник в центре NASA Goddard Space Flight Center для поддержки необходимыми вычислительными ресурсами проекта Earth and Space Sciences. Проектно-конструкторские работы над кластером быстро превратились в то, что известно сейчас под названием проект Beowulf. Проект стал основой общего подхода к построению параллельных кластерных компьютеров и описывает многопроцессорную архитектуру, которая может с успехом использоваться для параллельных вычислений.
Связь процессоров в кластерной системе: n n Архитектура кластерной системы (способ соединения процессоров друг с другом) определяет ее производительность в большей степени, чем тип используемых в ней процессоров. Критическим параметром, влияющим на величину производительности такой системы, является расстояние между процессорами. Так, соединив вместе 10 персональных компьютеров, можно получить систему для проведения высокопроизводительных вычислений. Проблема, однако, будет состоять в нахождении наиболее эффективного способа соединения стандартных средств друг с другом, поскольку при увеличении производительности каждого процессора в 10 раз производительность системы в целом в 10 раз не увеличится.
Связь процессоров в кластерной системе: n n n Рассмотрим пример построения симметричной 16 -процессорной системы, в которой все процессоры равноправны. Наиболее естественным представляется соединение в виде плоской решетки, где внешние концы могут использоваться для подсоединения внешних устройств. При таком типе соединения максимальное расстояние между процессорами окажется равным 6 (количество связей между процессорами, отделяющих самый ближний процессор от самого дальнего). Однако, оказывается, что если в системе максимальное расстояние между процессорами больше 4, то такая система не может работать эффективно.
Связь процессоров в кластерной системе: n Поэтому, при соединении 16 процессоров друг с другом плоская схема является неэффективной. Для получения более компактной конфигурации необходимо использовать фигуры, имеющие максимальный объем при минимальной площади поверхности. n В трехмерном пространстве таким свойством обладает шар. Но поскольку необходимо построить узловую систему, то вместо шара приходится использовать куб (если число процессоров равно 8, или гиперкуб, если число процессоров больше 8.
Связь процессоров в кластерной системе: n Архитектура гиперкуба является второй по эффективности, но самой наглядной. Используются и другие топологии сетей связи: трехмерный тор, "кольцо", "звезда" и другие. n Архитектура кольца с полной связью по хордам (Chordal Ring)
Связь процессоров в кластерной системе: n Эффективной считается архитектура с топологией «толстого дерева» (fat-tree). Процессоры локализованы в листьях дерева, в то время как внутренние узлы дерева скомпонованы во внутреннюю сеть. Поддеревья могут общаться между собой, не затрагивая более высоких уровней сети.
Связь процессоров в кластерной системе: n n Поскольку способ соединения процессоров друг с другом больше влияет на производительность кластера, чем тип используемых в ней процессоров, то может оказаться более рентабельным создать систему из большего числа дешевых компьютеров, чем из меньшего числа дорогих. В кластерах, как правило, используются операционные системы, стандартные для рабочих станций, чаще всего свободно распространяемые — Linux, Free BSD вместе со специальными средствами поддержки параллельного программирования и балансировки нагрузки. При работе с кластерами, также как и с MPP системами, используют так называемую Massive Passing Programming Paradigm - парадигму программирования с передачей данных (чаще всего - MPI). Дешевизна подобных систем оборачивается большими накладными расходами на взаимодействие параллельных процессов между собой, что сильно сужает потенциальный класс решаемых задач.
Доступ к внешней памяти (накопителям) в кластерных структурах. n n Кластерные архитектуры используют различные методы доступа к накопителям информации, каждый из которых использует специфическую схему распределения ресурсов, наилучшую для решаемых задач. Тип доступа к внешней памяти может быть независимым от использования ОП, например, кластер типа SMP может быть снабжен как однородным, так и неоднородным доступом к дисковой памяти.
Доступ к внешней памяти (накопителям) в кластерных структурах. n • • n n Преимущества UDA: высокая доступность данных; даже если некоторые узлы выходят из строя, доступ к данным не нарушается; хорошая масштабируемость. Однородный доступ к дисковой памяти (Uniform Disk Memory Access — UDMA). При UDMA , затраты на доступ к дискам одинаковы для различных узлов. Кластер на рис. а состоит из нескольких SMP-узлов. Совместно используемая дисковая система такого типа часто применяется при организации соединения по каналам SCSI или Fibre Channel с большим количеством дисков.
Доступ к внешней памяти (накопителям) в кластерных структурах. n • • n Преимущества неоднородного доступа к дискам: количество узлов не ограничено возможностями системы коммуникации с дисками; общий объем дисковой памяти может быть неограниченно увеличен путем добавления узлов. Неоднородный доступ к дискам (Non-Uniform Disk. Memory Access — NUDMA). В таких системах дисковая память подсоединяется непосредственно к узлам, и для каждого узла такой диск является локальным. Для всех других узлов доступ к «чужому» диску должен быть обслужен программными средствами поддержки виртуальных дисков через каналы связи между узлами. Это означает, что затраты на такой доступ возрастают, как в связи с пониженным приоритетом «чужого» процессора, так и за счет задержек коммутации и перегрузки каналов связи.
Доступ к внешней памяти (накопителям) в кластерных структурах. n n n Объём памяти кластера - 98304 Гб. . . Примеры: NT-кластер в NCSA, Beowulf-кластеры. Изначательно термин "Beowulf" возник как собственное имя Linux-кластера в GSFC. Затем он стал применяться ко всем аналогичным кластерным системам (Beowulf-кластер, кластер "а-ля" Beowulf).
Доступ к внешней памяти (накопителям) в кластерных структурах. n n ОС: Используются стандартные для рабочих станций ОС, чаще всего, свободно распространяемые - Linux/Free. BSD, вместе со специальными средствами поддержки параллельного программирования и распределения нагрузки. Программирование: Программирование, как правило, в рамках модели передачи сообщений (чаще всего - MPI). Дешевизна подобных систем оборачивается большими накладными расходами на взаимодействие параллельных процессов между собой, что сильно сужает потенциальный класс решаемых задач.
Архитектура ВС. Созвездия. n n Для определенных кластерных конфигураций в последнее время был предложен термин созвездие (constellation). Каждый узел (node) кластера есть независимый компьютер с одним или более (N) процессоров. Если в системе всего М узлов, причем численность узла меньше этого количества (N < М), то имеет место кластерная конфигурация, в противном случае (N > М) имеем дело с созвездием
Архитектура ВС. Транспьютеры и транспьютероподобные системы. n n n Транспьютер — это микроэлектронный прибор, объединяющий на одном кристалле микропроцессор, быструю память, интерфейс внешней памяти и каналы ввода-вывода (порты шин, «линки» ), предназначенные для подключения аналогичных приборов, что интегрирует вычислительную и коммутационно-коммуникационную функции. Прибор спроектирован таким образом, чтобы максимально облегчить построение параллельных вычислительных систем. Термин транспьютер происходит от слов trans-put-er - тот, кто передаёт, указывает на присутствие встроенных скоростных устройств ввода/вывода для обмена с соседними процессорами. При соединении транспьютерных элементов между собой требуется минимальное число дополнительных интегральных схем. Связь между транспьютерами осуществляется путем непосредственного соединения порта одного прибора с портом другого. Это позволяет создавать сети с различными топологиями с большим числом элементов.
Архитектура ВС. Транспьютеры и транспьютероподобные системы. n • • Транспьютер представляет собой микропроцессор, в состав которого входят: ЦПУ с сокращенным набором команд (RISC); 64 -разрядный сопроцессор (FPU) плавающей арифметики с высокой пиковой производительностью, работающий параллельно с ЦПУ; внутрикристальное ОЗУ; 32 -разрядная шина памяти; четыре последовательные двунаправленные линии связи (link), обеспечивающие взаимодействие транспьютера с внешним миром, работающих параллельно; таймер; генераторы системных управляющих сигналов «инициализация» , «анализ» , «ошибка» , управляющие загрузкой и анализом состояния транспьютера, сигнализирующие об ошибках; интерфейс внешних событий (event), обеспечивающий асинхронную связь внутреннего процесса и внешнего события.
Архитектура ВС. Транспьютеры и транспьютероподобные системы. n 1. 2. 3. 4. 5. 6. 7. 8. Транспьютер представляет собой микропроцессор, в состав которого входят: ЦПУ с сокращенным набором команд (RISC); 64 -разрядный сопроцессор (FPU) плавающей арифметики с высокой пиковой производительностью, работающий параллельно с ЦПУ; внутрикристальное ОЗУ; 32 -разрядная шина памяти; четыре последовательные двунаправленные линии связи (link), обеспечивающие взаимодействие транспьютера с внешним миром, работающих параллельно; таймер; генераторы системных управляющих сигналов «инициализация» , «анализ» , «ошибка» , управляющие загрузкой и анализом состояния транспьютера, сигнализирующие об ошибках; интерфейс внешних событий (event), обеспечивающий асинхронную связь внутреннего процесса и внешнего события.
32 битный транспьютерный чип IMST 414 B (1989)
Архитектура ВС. Транспьютеры и транспьютероподобные системы. n n Транспьютеры размещаются на транспьютерных модулях (TRAM или ТРАМ) — дочерних платах, содержащих транспьютер, ОЗУ, переключатели для выбора режимов и интерфейс, включающий гнезда/штекеры питания, четыре линии связи, линии внешних событий и системных управляющих сигналов. В зависимости от состава ТРАМ может иметь разные физические размеры, которые стандартизованы и пронумерованы. Так, наименьший по размеру ТРАМ имеет номер 1, следующий — 2 и т. д. ТРАМы в свою очередь размещаются на объединительных платах, которые либо непосредственно включаются в некоторый компьютер, либо соединенные вместе составляют сетевой компьютер.
Архитектура ВС. Транспьютеры и транспьютероподобные системы. n Известно два типа объединительных плат, подключаемых к компьютеру (вычислительные транспьютерные платы): 1. 2. n загружаемые по линии связи платы общего назначения, начальная загрузка которых осуществляется программой главного компьютера по линии связи, соединяющей главный компьютер и транспьютер (корневой транспьютер), специально выделенный для взаимодействия с главным компьютером; загружаемые из ПЗУ платы, предназначенные для автономных, встроенных систем. Изначально транспьютеры производила фирма Inmos. В настоящее время ряд зарубежных фирм пошел по пути создания транспьютероподобных микропроцессоров, имеющих гораздо большую вычислительную мощность, чем транспьютер фирмы Inmos (например, фирма Texas Instruments выпустила сигнальный процессор TMS 320 C 40 с производительностью 50 Mflops).
Архитектура ВС. Транспьютеры и транспьютероподобные системы. n n n Возникновение высокопроизводительных параллельных вычислительных систем на базе транспьютеров и транспьютероподобных микропроцессоров в свое время потребовало создания новых эффективных операционных систем. Такие системы можно проектировать и программировать на языке Occam, основанном на концепции взаимодействующих процессов, или на других языках (например, Concurrent C, Concurrent Fortran), имеющих соответствующие средства. Язык программирования Occam был разработан компанией INMOS на основе теории Хоара (англ. C. A. R. Hoare) о взаимодействии процессов. Occam является алголо-подобным языком высокого уровня; при этом язык оптимизирован с точки зрения эффективности его трансляции в систему команд транспьютера. Первоначально INMOS даже предлагала воспринимать Occam в качестве транспьютерного ассемблера, но позже выпустила пакет низкоуровневых средств для разработчиков компиляторов, а так же включила в Occam предписание GUY, позволяющее вставлять код на уровне процессора.
Архитектура ВС. Транспьютеры и транспьютероподобные системы. n Транспьютеры успешно использовались в различных областях — от встроенных систем до супер. ЭВМ. В настоящее время транспьютеры не производятся, будучи вытесненными похожими разработками конкурентов, особенно Texas Instruments (TMS 320) и Intel (80860). Принято считать, что концепция транспьютеров оказала заметное влияние на развитие микропроцессорной техники 80/90 -х годов. Так, термин линк (link) - физический канал связи между параллельно работающими процессорами - пришёл из транспьютеров, а протокол транспьютерного линка стал стандартом IEEE.


