- •Учебное пособие
- •Глава 2 Характеристики и классификация эвм и систем
- •2.1 Основные технические характеристики эвм . . . . . . . . . . 17
- •Глава 3. Организация систем памяти
- •Глава 4. Организация процессоров
- •Глава 5 Организация систем ввода-вывода.
- •Глава 6 Параллельные вычислительные системы
- •1 Принципы организации эвм.
- •1.1 Факторы, определяющие принципы организации эвм
- •1.2 Области применения вт и основные типы эвм
- •1.2.1 Эвм общего назначения
- •1.2.2 Малые эвм
- •1.2.3. Микропроцессоры и микро-эвм
- •1.3. Понятие об архитектуре и структуре эвм
- •1.4. Принцип действия эвм
- •1.5. Аппаратные и программные средства реализации алгоритмов
- •2.1 Основные технические характеристики эвм
- •2.2 Общая классификация вычислительных машин
- •1. По способу представления информации :
- •2. По назначению (степени специализации):
- •4. По количеству вычислительных устройств и степени распределенности:
- •2.3 Основные пути повышения производительности эвм
- •3.2. Организация адресной памяти
- •3.3. Безадресная стековая память
- •3.4. Ассоциативная память
- •3.5. Системы памяти с расслоением
- •3.6. Понятие о виртуальной памяти
- •4.1. Назначение и классификация процессоров
- •4.2. Логическая организация процессора общего назначения
- •4.3. Операционные устройства процессоров
- •4.3.1. Операционные устройства процедурного типа и с жесткой структурой. Понятие об I-процессорах и m-процессорах
- •4.3.2. Блочные операционные устройства
- •4.3.3. Конвейерные операционные устройства
- •4.4 Архитектура системы команд. Risc и cisc процессоры
- •4.5. Устройства управления процессоров
- •4.5.1 Назначение и классификация устройств управления
- •4.5.3 Конвейер команд
- •1. Структурные или ресурсные.
- •3. Выделяют несколько вариантов конфликтов по данным:
- •4.5.4 Суперскалярные архитектуры
- •4.5.5 Процессоры с длинным командным словом (vliw).
- •4.6 Обзор архитектур процессоров Intel
- •5.1 Назначение и состав системы ввода-вывода.
- •5.2. Структуры систем ввода-вывода.
- •5.3 Основные режимы ввода-вывода.
- •5.4 Основные принципы организации передачи информации в вычислительных системах.
- •6.1. Классификация параллельных вс
- •1. По взаимодействию потоков команд (инструкций) и потоков данных.
- •2. По управляющему потоку
- •3. По использованию памяти :
- •4. По способу обмена между процессорами:
- •5. По используемому типу параллелизма :
- •6.3 Понятие о систолических структурах и алгоритмах
- •6.4 Масштабируемые параллельные системы мкмд.
- •6.5 Потоковые вычислительные системы
6.4 Масштабируемые параллельные системы мкмд.
Современные параллельные вычислительные системы, включая аппаратные и программные средства, называются масштабируемыми (scalable), если их ресурс может быть изменен в зависимости от требований производительности/стоимости. Это понятие включает в себя следующие составляющие:
Функциональность и производительность. Масштабируемая система должна повышать (понижать) свою производительность пропорционально повышению (понижению) своих ресурсов. В идеале эта зависимость должна быть линейной.
Стоимость. Стоимость системы при масштабировании должна меняться пропорционально (но не быстрее, чем линейно).
Совместимость. Одни и те же компоненты системы, включая аппаратные и программные средства, должны использоваться после масштабирования без больших изменений.
В простейшем случае масштабируемость системы может быть достигнута за счет изменения количества модулей - процессоров или вычислительных машин, входящих в нее. Масштабируемость характеризуется своим размером-максимальным количеством вычислительных модулей, которое может быть включено в нее без нарушения ее работоспособности. Например, Симметричная мультипроцессорная Система (SMP, 1997) имеет предел до 64 процессоров, а система IBM SP2 (1997) - до 512 процессоров.
В настоящее время наибольшее распространение получили пять вариантов МКМД систем:
Системы с массовым параллелизмом;
Симметричные мультипроцессорные системы (SMP);
Кластеры рабочих станций (cluster of workstations-COW);
Системы с распределенной памятью;
Систолические структуры.
Системы с массовой параллельной обработкой (MPP) включают тысячи, десятки, иногда - сотни тысяч процессорных элементов. Подобные системы могут иметь различную организацию. Одни системы относят к категории SIMD с мелкозернистым параллелизмом. Они работают под управлением специальных управляющих ЭВМ, раздающих задания процессорам и контролирующих их коммутацию и обмен. Сами процессорные элементы могут быть достаточно простыми и иметь невысокую производительность. В частности, в одной из первых ЭВМ такого типа - Connection Machines - 1 (CM-1) использовались однобитные АЛУ в которых 32-битовое сложение выполнялось за 24мкс! АЛУ объединялись в ПЭ, состоявший из 16 таких ОУ и 4 блоков локальной памяти. Производительность 1 ПЭ - около 2MIPS. Количество процессорных элементов достигало 64 тысяч, разделенных на 4 блока, каждый блок управлялся ЭВМ-секвенсором, отвечавшей за обмен между блоками, а управление всей системой осуществляла фронтальная ЭВМ, транслировавшая высокоуровневый поток команд в поток инструкций для ПЭ. Одна фронтальная ЭВМ могла управлять до 2 млн. процессорных элементов ! Система CM-1 достигала производительности в 100 Gflops (1984 г), а система Connection Machines - 5 c 256 тыс. процессоров -уже до 1 TFlops (1991 г).
В других системах с массовой параллельной обработкой процессорные элементы представляют собой достаточно мощные и автономные вычислительные устройства (например, высокопроизводительные процессоры общего назначения), выполняющие собственные программы вычислений. В таких системах может использоваться кластерная организация.
Важную роль в эффективной реализации вычислений в таких системах (как и в параллельных вычислительных системах вообще) играют организация обмена информацией между процессорными элементами, организация памяти и, конечно, программное обеспечение.
Наиболее естественным кажется использовать для обмена общую память (shared memory). При этом адресное пространство памяти доступно всем процессорам, которые помещают результаты своей работы, а также - считывают исходную информацию из общедоступного ресурса (в зависимости от характера и объемов обрабатываемой информации она может храниться в оперативной памяти, либо - во внешней). Как уже отмечалось ранее, общая память может быть физически распределенной (Non-UMA), либо - с одинаковым временем доступа (UMA). Проблемы возникают при синхронизации работы с общими областями памяти (здесь задействуются механизмы семафоров, транзакций, атомарных операций и т.д.), при организации виртуальной памяти, при ускорении доступа к памяти в физически распределенной системе памяти и так далее. Дополнительную сложность представляет синхронизация работы разделяемой оперативной памяти и локальной кэш-памяти процессоров (проблема когерентности кэш-памяти). Синхронизация достигается применением нетривиальных алгоритмов, например, MESI. Для упрощения синхронизации памяти и для ускорения обмена в целом предпочтительнее обмен крупными блоками данных, выполняемый реже, по сравнению с частым обменом мелкими порциями данных. К другим способам ускорения обмена с памятью в многопроцессорных системах можно отнести коммутацию типа «точка-точка», при которой память разбивается на банки, каждый из которых связан с каждым процессором через интеллектуальный коммутатор.
При использовании логически распределенной между процессорами памяти каждый процессор работает со своим адресным пространством, а обмен информации происходит путем передачи сообщений между процессорами. При этом аппаратная организация параллельной системы упрощается, для построения мультипроцессорных систем подойдут даже стандартные телекоммуникационные средства, например, аппаратура и протоколы локальных сетей. С другой стороны, программирование таких систем усложняется, поскольку синхронизация сообщений, управления, потоков данных выполняется в основном программными средствами. В настоящее время используются в основном два базовых программных интерфейса параллельных систем с передачей сообщений : PVM (Parallel Virtual Machine) и MPI (Message Processing Interface). В целом можно отметить, что степень «зернистости» при разбиении задачи в мультипроцессорных системах может варьироваться из соображений затрат на собственно вычисления и обмен между вычислителями. В некоторых случаях потенциально высокая степень параллелизма, диктующая мелкозернистость, входит в противоречие с большими накладными расходами на организацию такой мелкозернистости, связанными с обменом между процессорами, и тогда меньшее дробление задачи оказывается более предпочтительным.
Среди мультипроцессорных систем большое распространение получили архитектуры, называемые кластерными.
Термин «кластерная архитектура» трактуется в настоящее время достаточно широко. Ключевым является понятие кластера как группы каких-то относительно самостоятельных, но тесно взаимодействующих устройств. С этой точки зрения под кластерами понимают, во-первых, вычислительные системы, построенные по иерархическому принципу, использующие кластерную коммутацию, во-вторых - группы автономных вычислительных машин, работающих под управлением общих вычислительных программ (вычислительные кластеры, в том числе - на базе сегментов локальных сетей), в-третьих - серверные системы высокой готовности, включающие несколько (по крайней мере - 2 ) автономных подсистем и т.д.
Кластеры реализуются как системы с передачей сообщений. Кластеризация позволяет упростить организацию обмена и в целом повысить эффективность системы за счет разумной иерархии и оптимального разделения задач по группам вычислителей.
С точки зрения вычислительной мощности простейшие кластеры как вычислительные комплексы на базе автономных ВМ (в том числе - ПК) могут составлять конкуренцию дорогим вычислительным системам, при этом обладая существенным преимуществом - они намного дешевле. Здесь на первый план выходит эффективное программное обеспечение для параллельной обработки. Чаще всего подобные вычислительные кластеры строятся на базе систем, работающих под управлением ОС UNIX.
Анализ списка 500 самых производительных вычислительных машин, который публикуется каждые 3 месяца в Интернете (адрес:http://www.top500.org), показывает, что верхние строчки списка, как правило, занимают мультипроцессорные MIMD - системы. Например, это компьютеры, строящиеся в рамках программы ASCI (Advanced Strategic Computer Initiative -Стратегическая компьютерная инициатива). Они включают, обычно, десятки тысяч процессоров (общего назначения, либо - специализированных), объединенных в группы, с развитой иерархической системой коммутации. Управляются такие машины специализированным программным обеспечением для поддержки параллельных вычислений.
