Тема 7_2010 Классификации архитектур ВС (987277), страница 3
Текст из файла (страница 3)
Пример: IBM RS/6000 SP + ОС AIX,устанавливаемая отдельно на каждом узле.Модель программирования: Программирование в рамках моделипередачи сообщений ( MPI, PVM, BSPlib)Распределенность памяти означает, что каждый процессор имеетнепосредственный доступ только к своей локальной памяти, а доступ кданным, расположенным в памяти других процессоров, выполняетсядругими способами.8Чтобы переслать информацию от процессора к процессору, необходиммеханизм передачи сообщений по сети, связывающей вычислительные узлы.Дляабстрагированияотподробностейфункционированиякоммуникационной аппаратуры и программирования на высоком уровне,используются библиотеки передачи сообщений.
Несмотря на существенныеразличия средств межпроцессорного взаимодействия в разных системах поскоростным параметрам и по способу аппаратной реализации, библиотекиобмена сообщениями выполняют приблизительно одни и те же функции.Выбор топологии машины часто определяет способ решенияприкладной задачи. Надо заметить, что оптимизация алгоритмов дляпараллельных архитектур существенно отличается от той же работы дляпоследовательных систем. Если переход с одного скалярного процессора надругой практически никогда не требует пересмотра алгоритма, то алгоритм,идеально приспособленный для одной параллельной архитектуры, на другоймашине (с тем же числом процессоров того же типа) может работатьнеприемлемо медленно.
Для оценки производительности распределеннойсистемы, кроме топологии связей, необходимо знать скорость выполненияарифметических операций, время инициализации канала связи и времяпередачи единицы объема информации. Если топология системы нетривиальна, то в состав операционной системы или пакета передачисообщений приходится включать процедуры маршрутизации сообщений,работающие на каждом узле и обеспечивающие пересылку транзитныхсообщений. Они также вызывают задержку при передаче информации междуузлами, не имеющими прямого канала связиТаким образом, применение дешевых процессоров позволяет сделатьотносительно недорогой суперкомпьютер.
Однако распространениюподобных машин препятствует в основном практически полное отсутствиепараллельных программ, полностью использующих их возможности.Симметричные мультипроцессорные системы (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 в реальных системах. Для построения9масштабируемых систем на базе SMP используются кластерные или NUMAархитектуры.Операционная система: Вся система работает под управлениемединой ОС (обычно UNIX-подобной, но для Intel-платформ поддерживаетсяWindows NT).
ОС автоматически (в процессе работы) распределяетпроцессы/нити по процессорам (scheduling), но иногда возможна и явнаяпривязка.Модель программирования: Программирование в модели общейпамяти. (POSIX threads, OpenMP). Для SMP-систем существуютсравнительно эффективные средства автоматического распараллеливания.SMP - это один компьютер с несколькими равноправнымипроцессорами, но с одной памятью, подсистемой ввода/вывода и одной ОС.Каждый процессор имеет доступ ко всей памяти, может выполнять любуюоперацию ввода/вывода, прерывать другие процессоры и т.д., но этопредставление справедливо только на уровне программного обеспечения. Насамом же деле в SMP имеется несколько устройств памяти.Каждый процессор имеет по крайней мере одну собственную кэшпамять, что необходимо для достижения хорошей производительности,поскольку основная память работает слишком медленно по сравнению соскоростью процессоров (и это соотношение все больше ухудшается), а кэшработает со скоростью процессора, но дорог, и поэтому устройства кэшпамяти обладают относительно небольшой емкостью.
Из-за этого в кэшпомещается лишь оперативная информация, остальное же хранится восновной памяти. Отсюда возникает проблема когерентности кэшей получение процессором значения, находящегося в кэш-память другогопроцессора. Это решается при помощи отправки широковещательногозапроса всем устройствам кэш-памяти, основной памяти и даже подсистемеввода/вывода, если она работает с основной памятью напрямую, с цельюполучения актуальной информации.Имеется еще одно следствие, связанное с параллелизмом.
Неявнопроизводимая аппаратурой SMP пересылка данных между кэшами являетсянаиболее быстрым и самым дешевым средством коммуникации в любойпараллельной архитектуре общего назначения. Поэтому при наличиибольшого числа коротких транзакций (свойственных, например, банковскимприложениям), когда приходится часто синхронизовать доступ к общимданным, архитектура SMP является наилучшим выбором; любая другаяархитектура работает хуже.Тем не менее, архитектуры с разделяемой общей памятью не считаютсяперспективными.Основнаяпричинадовольнопроста.Ростпроизводительности в параллельных системах обеспечивается наращиваниемчисла процессоров, что приводит к тому, что узким местом становитсядоступ к памяти.
Увеличение локальной кэш-памяти не способно полностьюрешить проблему: задача поддержания согласованного состояния несколькихбанков кэш-памяти столь же трудна. Как правило, на основе общей памяти не10создают систем с числом процессоров более 32, при необходимостиобъединяя их в кластерные или NUMA-архитектуры.Системы с неоднородным доступом к памяти (NUMA)Архитектура: Система состоит из однородных базовых модулей(плат), состоящих из небольшого числа процессоров и блока памяти. Модулиобъединены с помощью высокоскоростного коммутатора. Поддерживаетсяединое адресное пространство, аппаратно поддерживается доступ кудаленной памяти, т.е.
к памяти других модулей. При этом доступ клокальной памяти в несколько раз быстрее, чем к удаленной.В случае, если аппаратно поддерживается когерентность кэшей во всейсистеме (обычно это так), говорят об архитектуре cc-NUMA (cache-coherentNUMA)Примеры: HP 9000 V-class в SCA-конфигурациях, SGI Origin2000, SunHPC 10000, IBM/Sequent NUMA-Q 2000, SNI RM600 и др.Масштабируемость:Масштабируемость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), которая решает проблему когерентности кэшей,обеспечивая получение актуальной информации от других узлов.Понятно, что этот процесс длится несколько дольше, чем если бытребуемое значение находилось в частной памяти того же узла.
Отсюда и11происходит словосочетание "неоднородный доступ к памяти". В отличие отSMP, время выборки значения зависит от адреса и от того, от какогопроцессора исходит запрос (если, конечно, требуемое значение несодержится в кэше).Поэтому ключевым вопросом является степень "неоднородности"NUMA. Например, если для взятия значения из другого узла требуетсятолько на 10% большее время, то это никого не задевает. В этом случае всебудут относиться к системе как к SMP, и разработанные для SMP программыбудут выполняться достаточно хорошо.Однако в текущем поколении NUMA-систем для соединения узловиспользуется сеть. Это позволяет включать в систему большее число узлов,до 64 узлов с общим числом процессоров 128 в некоторых системах.
Врезультате, современные NUMA-системы не выдерживают правила 10% лучшие образцы замедление 200-300% и даже более. При такой разнице вскорости доступа к памяти для обеспечения должной эффективности следуетпозаботиться о правильном расположении требуемых данных. Чтобы этогодобиться, можно соответствующим образом модифицировать операционнуюсистему (и это сделали поставщики систем в архитектуре NUMA). Например,такая операционная система при запросе из программы блока памятивыделяет память в узле, в котором выполняется эта программа, так что когдапроцессор ищет соответствующие данные, то находит их в своемсобственном узле. Аналогичным образом должны быть измененыподсистемы (включая СУБД), осуществляющие собственное планирование ираспределение памяти (что и сделали 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 и др.Модельпрограммирования:Эффективноепрограммированиеподразумевает векторизацию циклов (для достижения разумной12производительности одного процессора) и их распараллеливание (дляодновременной загрузки нескольких процессоров одним приложением).Кластерные системыАрхитектура: Набор рабочих станций (или даже ПК) общего назначения,используется в качестве дешевого варианта массивно-параллельногокомпьютера.