Операционные системы 2011 (1114689), страница 21
Текст из файла (страница 21)
Существуютразличные точки зрения о существовании каких-либо систем данного класса, и еслитаковые имеются, то какие именно. В некотором смысле сюда можно отнестиспециализированные системы обработки видео- и аудиоинформации (DSPпроцессоры), а также конвейерные системы.МКМД (множественный поток команд, множественный поток данных, или MIMD —multiple instruction, multiple data stream) — это системы, которые содержат не менеедвух устройств управления (это может быть один сложный процессор с множествомустройств управления). Множество процессоров одновременно выполняют различныепоследовательности команд над своими данными.
Это наиболее распространённаякатегория архитектур. На сегодняшний день данная категория во многом определяетсвойства и характеристики многопроцессорных и параллельных вычислительныхсистем.Среди систем МКМД можно выделить два подкласса: системы с общейоперативной памятью и системы с распределенной памятью (Рис.
59). Для системпервого типа характерно то, что любой процессор имеет непосредственный доступ клюбой ячейке этой общей оперативной памяти. Слово «непосредственно» означает, чтолюбой адрес может появляться в произвольной команде в любом из устройствуправления. Системы с распределенной памятью представляют собою обычнообъединение компьютерных узлов. Под узлом понимается самостоятельный процессор сосвоей локальной оперативной памятью. В данных системах любой процессор не можетпроизвольно обращаться к памяти другого процессора. Указанные системыиллюстрируют противоположные подходы – на практике обычно встречаютсяпромежуточные решения.71MIMDСистемы с общейоперативной памятьюUMA — система соднородным доступом впамять (uniform memoryaccess)Системы с распределеннойоперативной памятьюNUMA — система снеоднородным доступом впамять (non-uniform memoryaccess)ccNUMA — Cache CoherentNUMASMP — симметричнаямультипроцессорная система(symmetric multiprocessor)MPP (Massively ParallelProcessors — процессоры смассовым параллелизмом)COW (Cluster of workstations —кластер рабочих станций)Рис.
59. Классификация МКМД.Рассмотрение систем с общей оперативной памятью начнем с UMA. UMA(uniform memory access) — система с однородным доступом к памяти. В данной моделипроизвольный процессорный элемент имеет доступ к произвольной точке оперативнойпамяти (доступ с одинаковым временем). То есть характеристики доступа любогопроцессорного элемента в любую точку ОЗУ не зависят от конкретного элемента и адреса(Все процессоры равноценны относительно доступа к памяти).
Подвидом UMA-системявляется модель SMP (symmetric multiprocessor — симметричная мультипроцессорнаясистема). В этой модели (Рис. 60) к общей системной шине, или магистрали,подсоединяются несколько процессоров и блок общей оперативной памяти. У данногорешения можно отметить следующие недостатки. Во-первых, это централизованнаясистема, и общая шина в ней является «узким горлом», поэтому данная модельнакладывает существенные ограничения на количество подключаемых процессорныхэлементов (обычно 2, 4, 8, вплоть до 32). Во-вторых, возникают дополнительныепроблемы синхронизации КЭШей первого уровня каждого процессора.
Решений тут какминимум два: либо не использовать КЭШ, либо реализовать КЭШ-память со слежением.В последнем случае каждый КЭШ слушает шину и реагирует на ситуацию в системе.Различные ситуации поведения кэш-памяти с отслеживанием при чтении/записиприведены в следующей таблице:72При промахе при чтении в локальный КЭШ происходит запись соответствующегоблока; эта операция проходит через общую магистраль, которую слушают другие КЭШи;никаких действий КЭШи других процессоров не производят. При попадании при чтениимы используем КЭШ, и эта операция не даёт никакой нагрузки на общую шину.
Припромахе при записи осуществляется запись в память; все другие КЭШи информацию озаписи слушают и проверяют наличие соответствующего блока у себя – если блок есть, тоони удаляют его из своих КЭШей. То есть при промахе по записи производится толькообновление памяти, т.к. реализуется стратегия, ориентированная на преимущественноечтение. При попадании при записи ситуация аналогичная, только запись осуществляетсяещё и в локальный КЭШ.Рис. 60. Схема SMP-системы.Иной подход к реализации систем с общей оперативной памятью предлагаетархитектура NUMA (non-uniform memory access — система с неоднородным доступом кпамяти). Степень параллелизма в NUMA-системах выше, чем в SMP. Для NUMA-систем(Рис. 61) характерны следующие свойства:процессорные элементы работают на общем адресном пространстве;характеристики доступа процессора к области оперативной памяти зависят от того, ккаким областям идет обращение (к локальной или нелокальной памяти).Контроллерпамятипозволяетосуществлятьвзаимодействиемеждувычислительными узлами.
Доступ процессора к своей ОП осуществляется через свойконтроллер, к чужой – через два контроллера. При обращении не к своей памятиконтроллер выбрасывает запрос на общую шину, целевой контроллер его принимает ивозвращает результат.В NUMA-системах остаётся проблема синхронизации КЭШа.
Существуетнесколько способов её решения:использовать процессоры без КЭШа (использовать только Cache L2);использовать модель ccNUMA (Cache coherent NUMA) – это NUMA-система скогерентными КЭШами.CcNUMA-системы позволяют отслеживать соответствие локальных КЭШей другдругу и состояние всей системы в целом. CcNUMA-системы подключают несколько сотенпроцессоров, но остаются ограничения, связанные с централизацией – использованиемсистемной шины, а также возникают ограничения, связанные с cc-архитектурой:появляются системные потоки служебной информации, что ведет к дополнительнымнакладным расходам – загрузке общей шины служебной информацией.Рис.
61. Схема NUMA-системы73Теперь рассмотрим системы с распределенной оперативной памятью. Этисистемы представляются как объединение вычислительных узлов, каждый из которыхсостоит из процессора и ОЗУ, непосредственный доступ к которой имеет только «свой»процессорный элемент. Данный класс систем является наиболее перспективным с точкизрения их массового распространения и использования. Среди них можно выделить дваосновных класса: MPP (Massively Parallel Processors — процессоры с массовымпараллелизмом) и COW (Cluster of Workstations — кластеры рабочих станций).Преимуществом MPP-систем является высокая эффективность при решенииопределённого класса задач. Однако MPP обычно являются дорогостоящимиузкоспециализированными многопроцессорными системами, поэтому не находятмассового применения.
Системы данного класса имеют разнообразные топологииархитектур (Рис. 62): это могут быть макроконвейерные архитектуры, кубы и гиперкубы.Рис. 62. Примеры топологий MPP-систем.Что касается COW, то это многомашинные системы, состоящие из множестваузлов, каждый из которых может быть обыкновенным компьютером. В качествеминимального узла может выступать процессор со своей локальной оперативной памятьюи аппаратурой сопряжения с другими вычислительными узлами. Для сопряжениявычислительных узлов в кластере используются специализированные компьютерные сети.Кластеры могут использоваться для достижения следующих основных целей:построение кластера, обеспечивающего надежность.
Создаются программноаппаратные комплексы для обеспечения устойчивого функционирования системы.Данный тип кластеров строится для решения конкретной прикладной задачи(например, сервер базы данных авиабилетов), при этом выход из строя некоторыхузлов не означает отказ всей системы: система продолжает функционировать, пусть исо сниженной производительностью;построение кластера как высокопроизводительной вычислительной системы, т.е.вычислительного кластера (критерием эффективности выступает скорость обработкиинформации).
Это многопроцессорная система, состоящая из вычислительных узлов.Каждый вычислительный узел – это компьютер традиционной архитектуры. Все узлысвязаны друг с другом через специальные высокоскоростные сети, и вся система вцелом используется для достижения максимальной производительности.Для построения вычислительных кластеров зачастую используют Unix-системы, адля кластеров надежности — Windows-системы. На сегодняшний день кластеры — этоспециализированные системы с соответствующей архитектурой (например, alphaсистемы), при этом речь идет о супервычислительных кластерах, включающих в себясотни – тысячи узлов.