Тема 1_2010 Классификации архитектур ВС (542578), страница 3
Текст из файла (страница 3)
Если топология системы нетривиальна, то в состав операционной системы или пакета передачисообщений приходится включать процедуры маршрутизации сообщений,работающие на каждом узле и обеспечивающие пересылку транзитныхсообщений. Они также вызывают задержку при передаче информации междуузлами, не имеющими прямого канала связиТаким образом, применение дешевых процессоров позволяет сделатьотносительно недорогой суперкомпьютер. Широкому распространениюподобных архитектур препятствует в основном отсутствие эффективныхпараллельных программ, полностью использующих их возможности.Симметричные мультипроцессорные системы (SMP)Архитектура: Система состоит из нескольких однородныхпроцессоров и массива общей памяти (обычно из нескольких независимыхблоков).
Все процессоры имеют доступ к любой точке памяти с одинаковойскоростью. Процессоры подключены к памяти либо с помощью общей шины(базовые 2-4 процессорные SMP-сервера), либо с помощью crossbarкоммутатора (HP 9000). Аппаратно поддерживается когерентность кэшей.Примеры: HP 9000 V-class, N-class; SMP-cервера и рабочие станции набазе процессоров Intel (IBM, HP, Compaq, Dell, ALR, Unisys, DG, Fujitsu идр.).Масштабируемость: Наличие общей памяти сильно упрощаетвзаимодействие процессоров между собой, однако накладывает сильныеограничения на их число - не более 32 в реальных системах. Для построениямасштабируемых систем на базе SMP используются кластерные или NUMAархитектуры.Операционная система: Вся система работает под управлениемединой ОС (обычно UNIX-подобной, но для Intel-платформ поддерживаетсяWindows NT). ОС автоматически (в процессе работы) распределяетпроцессы/нити по процессорам (scheduling), но иногда возможна и явнаяпривязка.Модель программирования: Программирование в модели общейпамяти.
(POSIX threads, OpenMP). Для SMP-систем существуютсравнительно эффективные средства автоматического распараллеливания.SMP - это один компьютер с несколькими равноправнымипроцессорами, но с одной памятью, подсистемой ввода/вывода и одной ОС.Каждый процессор имеет доступ ко всей памяти, может выполнять любуюоперацию ввода/вывода, прерывать другие процессоры и т.д., но этопредставление справедливо только на уровне программного обеспечения. Насамом же деле в SMP имеется несколько устройств памяти.11Каждый процессор имеет по крайней мере одну собственную кэшпамять, что необходимо для достижения хорошей производительности,поскольку основная память работает слишком медленно по сравнению соскоростью процессоров (и это соотношение все больше ухудшается), а кэшработает со скоростью процессора, но дорог, и поэтому устройства кэшпамяти обладают относительно небольшой емкостью.
Из-за этого в кэшпомещается лишь оперативная информация, остальное же хранится восновной памяти. Отсюда возникает проблема когерентности кэшей получение процессором значения, находящегося в кэш-память другогопроцессора. Это решается при помощи отправки широковещательногозапроса всем устройствам кэш-памяти, основной памяти и даже подсистемеввода/вывода, если она работает с основной памятью напрямую, с цельюполучения актуальной информации.Имеется еще одно следствие, связанное с параллелизмом. Неявнопроизводимая аппаратурой SMP пересылка данных между кэшами являетсянаиболее быстрым и самым дешевым средством коммуникации в любойпараллельной архитектуре общего назначения.
Поэтому при наличиибольшого числа коротких транзакций (свойственных, например, банковскимприложениям), когда приходится часто синхронизовать доступ к общимданным, архитектура SMP является наилучшим выбором; любая другаяархитектура работает хуже.Тем не менее, архитектуры с разделяемой общей памятью не считаютсяперспективными.Основнаяпричинадовольнопроста.Ростпроизводительности в параллельных системах обеспечивается наращиваниемчисла процессоров, что приводит к тому, что узким местом становитсядоступ к памяти.
Увеличение локальной кэш-памяти не способно полностьюрешить проблему: задача поддержания согласованного состояния несколькихбанков кэш-памяти столь же трудна. Как правило, на основе общей памяти несоздают систем с числом процессоров более 32, при необходимостиобъединяя их в кластерные или NUMA-архитектуры.Системы с неоднородным доступом к памяти (NUMA)Архитектура: Система состоит из однородных базовых модулей(плат), состоящих из небольшого числа процессоров и блока памяти. Модулиобъединены с помощью высокоскоростного коммутатора. Поддерживаетсяединое адресное пространство, аппаратно поддерживается доступ кудаленной памяти, т.е. к памяти других модулей.
При этом доступ клокальной памяти в несколько раз быстрее, чем к удаленной.В случае, если аппаратно поддерживается когерентность кэшей во всейсистеме (обычно это так), говорят об архитектуре cc-NUMA (cache-coherentNUMA)Примеры: HP 9000 V-class в SCA-конфигурациях, SGI Origin2000, SunHPC 10000, IBM/Sequent NUMA-Q 2000, SNI RM600 и др.12Масштабируемость:МасштабируемостьNUMA-системограничиваетсяобъемомадресногопространства, возможностямиаппаратуры поддержкикогерентности кэшей и возможностямиоперационной системы по управлению большим числом процессоров.
Нанастоящий момент, максимальное число процессоров в NUMA-системахсоставляет 256 (Origin2000).Операционная система: Обычно вся система работает подуправлением единой ОС, как в SMP. Но возможны также вариантыдинамического "подразделения" системы, когда отдельные "разделы"системы работают под управлением разных ОС (например, Windows NT иUNIX в NUMA-Q 2000).Модель программирования: Аналогично SMP.По сути своей NUMA представляет собой большую SMP, разбитую нанабор более мелких и простых SMP.
Аппаратура позволяет работать со всемиотдельными устройствами основной памяти составных частей системы(называемых обычно узлами) как с единой гигантской памятью. Этот подходпорождает ряд следствий. Во-первых, в системе имеется одно адресноепространство, распространяемое на все узлы. Реальный (не виртуальный)адрес 0 для каждого процессора в любом узле соответствует адресу 0 вчастной памяти узла 0; реальный адрес 1 для всей машины - это адрес 1 вузле 0 и т.д., пока не будет использована вся память узла 0. Затем происходитпереход к памяти узла 1, затем узла 2 и т.д.
Для реализации этого единогоадресного пространства каждый узел NUMA включает специальнуюаппаратуру (Dir), которая решает проблему когерентности кэшей,обеспечивая получение актуальной информации от других узлов.Понятно, что этот процесс длится несколько дольше, чем если бытребуемое значение находилось в частной памяти того же узла. Отсюда ипроисходит словосочетание "неоднородный доступ к памяти". В отличие отSMP, время выборки значения зависит от адреса и от того, от какогопроцессора исходит запрос (если, конечно, требуемое значение несодержится в кэше).Поэтому ключевым вопросом является степень "неоднородности"NUMA.
Например, если для взятия значения из другого узла требуетсятолько на 10% большее время, то это никого не задевает. В этом случае всебудут относиться к системе как к SMP, и разработанные для SMP программыбудут выполняться достаточно хорошо.Однако в текущем поколении NUMA-систем для соединения узловиспользуется сеть.
Это позволяет включать в систему большее число узлов,до 64 узлов с общим числом процессоров 128 в некоторых системах. Врезультате, современные NUMA-системы не выдерживают правила 10% лучшие образцы замедление 200-300% и даже более.
При такой разнице вскорости доступа к памяти для обеспечения должной эффективности следуетпозаботиться о правильном расположении требуемых данных. Чтобы этогодобиться, можно соответствующим образом модифицировать операционнуюсистему (и это сделали поставщики систем в архитектуре NUMA). Например,13такая операционная система при запросе из программы блока памятивыделяет память в узле, в котором выполняется эта программа, так что когдапроцессор ищет соответствующие данные, то находит их в своемсобственном узле. Аналогичным образом должны быть измененыподсистемы (включая СУБД), осуществляющие собственное планирование ираспределение памяти (что и сделали Oracle и Informix).
Как утверждаеткомпания Silicon Graphics, такие изменения позволяют эффективновыполнять в системах с архитектурой NUMA приложения, разработанныедля SMP, без потребности изменения кода.Параллельные векторные системы (PVP)Архитектура: Основным признаком PVP-систем является наличиеспециальных векторно-конвейерных процессоров, в которых предусмотреныкоманды однотипной обработки векторов независимых данных, эффективновыполняющиеся на конвейерных функциональных устройствах.Как правило, несколько таких процессоров (1-16) работаютодновременно над общей памятью (аналогично SMP) в рамкахмногопроцессорных конфигураций.
Несколько таких узлов могут бытьобъединены с помощью коммутатора (аналогично MPP).Примеры: NEC SX-4/SX-5, линия векторно-конвейерных компьютеровCRAY: от CRAY-1, CRAY J90/T90, CRAY SV1, серия Fujitsu VPP и др.Модельпрограммирования:Эффективноепрограммированиеподразумевает векторизацию циклов (для достижения разумнойпроизводительности одного процессора) и их распараллеливание (дляодновременной загрузки нескольких процессоров одним приложением).Кластерные системыАрхитектура: Набор рабочих станций (или даже ПК) общего назначения,используется в качестве дешевого варианта массивно-параллельногокомпьютера.
Для связи узлов используется одна из стандартных сетевыхтехнологий (Fast/Gigabit Ethernet, Myrinet и др.) на базе шинной архитектурыили коммутатора.При объединении в кластер компьютеров разной мощности или разнойархитектуры, говорят о гетерогенных (неоднородных) кластерах.Узлы кластера могут одновременно использоваться в качествепользовательских рабочих станций. В случае, когда это не нужно, узлы могутбыть существенно облегчены и/или установлены в стойку.Примеры: NT-кластер в NCSA, Beowulf-кластеры, кластеры МГУ иСПбГУ и др.Операционная система: Используются стандартные для рабочихстанций ОС, чаще всего, свободно распространяемые - Linux/FreeBSD,14вместе соспециальными средствами поддержки параллельногопрограммирования и распределения нагрузки.Модель программирования: Программирование, как правило, в рамкахмодели передачи сообщений (чаще всего - MPI).Излагаемый ниже материал см.
в аудиторных лекциях.Организация схем коммутации в МВС с общей памятью•••Типовая архитектура МВС с общей памятьюОсобенности организации средств коммутации. ПримерыОрганизация средств коммутации в архитектуре “Butterfly”Организация схем коммутации в МВС с распределеннойпамятью•••••Типовая архитектураАрхитектура со связями через общую шинуАрхитектура со связями через несколько шинАрхитектура со связями через многоступенчатый переключательСтруктура типа гиперкубАрхитектура систем со смешенной организацией памятиПример типовой архитектуры15.