СКИПОДы конспект лекций (1127769), страница 9
Текст из файла (страница 9)
Дешевизна подобных систем оборачивается большими накладными расходами навзаимодействие параллельных процессов между собой, что сильно сужает потенциальный класс решаемыхзадач.1928. Симметричные мультипроцессорные системы.Системы данного класса: SMP (Scalable Parallel Processor) состоят из нескольких однородных процессоров имассива общей памяти (разделяемой памяти – shared memory): любой процессор может обращаться клюбому элементу памяти. По этой схеме построены 2,4 процессорные SMP сервера на базе процессоровIntel, НР и т.
д., причем процессоры подключены к памяти с помощью общей шины. Системы с большимчислом процессоров (но не более 32) подключаются к общей памяти, разделенной на блоки, через неблокирующийся полный коммутатор: crossbar. Любой процессор системы получает данноепопроизвольному адресу памяти за одинаковое время, такая структура памяти называется: UMA - UniformMemory Access (Architecture). Пример:НР-9000. Дальнейшее масштабирование (увеличение числапроцессоров системы) SMP систем обеспечивается переходом к архитектуре памяти: NUMA - Nоn UniformMemory Access.
По схеме, называемой, этой иногда, кластеризацией SMP, соответствующие блоки памятидвух (или более) серверов соединяются кольцевой связью, обычно по GCI интерфейсу. При запроседанного, расположенного вне локального с сервере диапазона адресов, это данное по кольцевой связипереписывается дублируется в соответствующий блок локальной памяти, ту часть его, которая специальноотводится для буферизации глобальных данных и из этого буфера поставляется потребителю.
Этабуферизация прозрачна (невидима) пользователю, для которого вся память кластера имеет сквознуюнумерацию, и время выборки данных, не локальных в сервере, будет равно времени выборки локальныхданных при повторных обращениях к глобальному данному, когда оно уже переписано в буфер. Данныйаппарат буферизации есть типичная схема кэш памяти. Так как к данным возможно обращение из любогопроцессора кластера, то буферизация, размножение данных требует обеспечение их когерентности.Когерентность данных состоит в том, что при изменении данного все его потребители должны получать этозначение. Проблема когерентности усложняется дублированием данных еще и в процессорных кэшахсистемы.
Системы, в которых обеспечена когерентность данных, буферизуемых в кэшах, называются кэшкогерентными (cc-cache coherent), а архитектура памяти описываемого кластера: cc- NUMA (cache coherentNоn Uniform Memory Access). Классической архитектурой принято считать систему SPP1000.Другой источник:Архитектура Система состоит из нескольких однородных процессоров и массива общей памяти (обычно изнескольких независимых блоков).
Все процессоры имеют доступ к любой точке памяти с одинаковойскоростью. Процессоры подключены к памяти либо с помощью общей шины (базовые 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-систем существуют сравнительно эффективные средства автоматического распараллеливания.29. Матричные мультипроцессорные системы.Архитектура Система состоит из однородных вычислительных узлов (объединенных в матрицы илигиперкубы), включающих: один или несколько центральных процессоров (обычно RISC), локальную память (прямой доступ к памяти других узлов невозможен), коммуникационный процессор или сетевой адаптер иногда - жесткие диски (как в SP) и/или другие устройства В/ВК системе могут быть добавлены специальные узлы ввода-вывода и управляющие узлы.
Узлы связаны черезнекоторую коммуникационную среду (высокоскоростная сеть, коммутатор и т.п.)ПримерыIBM RS/6000 SP2, Intel PARAGON/ASCI Red, CRAY T3E, Hitachi SR8000, транспьютерныесистемы Parsytec.МасштабируемостьОбщее число процессоров в реальных системах достигает нескольких тысяч (ASCIRed, Blue Mountain).Операционная система Существуют два основных варианта: Полноценная ОС работает только на управляющей машине (front-end), на каждом узле работаетсильно урезанный вариант ОС, обеспечивающие только работу расположенной в нем ветвипараллельного приложения. Пример: Cray T3E. На каждом узле работает полноценная UNIX-подобная ОС (вариант, близкий к кластерному подходу,однако скорость выше, чем в кластере). Пример: IBM RS/6000 SP + ОС AIX, устанавливаемаяотдельно на каждом узле.20Модель программирования Программирование в рамках модели передачи сообщений (MPI, PVM, BSPlib)30.
Классификации вычислителей по Флинну.Исходная схема: АЛУ + УУ <кд.....кд......кд> ОЗУДанная классификация иллюстрируется схемами повышения производительности классическогопроцессора путем увеличения количества функциональных устройств.Увеличив число АЛУ, получим схему:АЛУ + УУ <кд.....кд......кд> ОЗУАЛУ<д.....д......д> ОЗУПо такой схеме создавалась система Эллиак 4 (отечественный аналог - ПС-2000), суперскалярныемикропроцессоры.Увеличив число УУ , то получим следующую схему:АЛУ + УУ <кд.....кд......кд> ОЗУУУ<к.....к......к> ОЗУНекоторые исследователи отказывают данной схеме в праве на существование, другие, в качестве примераданной схемы приводят конвейерные АЛУ.
(Например, сложение вещественных чисел можно реализоватьпоследовательностью команд: выровнять мантиссы, сложить мантиссы, провести нормализациюрезультата.)Наконец, можно просто умножать исходную схему:АЛУ + УУ <кд.....кд......кд> ОЗУАЛУ + УУ <кд.....кд......кд> ОЗУПо такой схеме реализуются все современные суперЭВМКроме функционального различия, схемы отличаются характером нагрузки на ОЗУ- плотностью потоковкоманд и данных. По Флинну эта особенность и является главной чертой и она характеризует архитектурыЭВМ по структуре используемых потоков (Stream) команд (Instruction) и данных (Data), каждый из которыхможет быть одиночным и множественным.
Множественный поток определяется как возможностьодновременной обработки сразу нескольких элементов соответствующего потока. Комбинация признаковдает четыре вида архитектур.ОКОД одиночный поток команд, одиночный поток данных,ОКМД одиночный поток команд, множественный поток данных,МКОД множественный поток команд, одиночный поток данных,МКМД множественный поток команд, множественный поток данных31.
Масштабируемость мультипроцессорных вычислителей.См. Вопросы 28-30. Если память не общая, то масштабируемость очень высокая. Для MPP- общее число процессоров вреальных системах достигает нескольких тысяч (ASCI Red, Blue Mountain). Для кластеров и темболее гетерогенных вычислительных систем и тем более для GRID-систем масштабируемость оченьвысокая. Для систем с общем памятью все сложнее: если UMA, то масштабируемость низкая (не более 32процессоров), если же сделать NUMA, то масштабируемость также становится высокой, однакониже, чем в системах с локальной памятью, так как сложность организации когерентности (ccNUMA) данных возрастает.32.
Управление памятью в мультипроцессорных системах.UMA, NUMA, cc-NUMA. Подробнее см. Вопрос 28.33. Когерентность данных.Когерентность данных состоит в том, что при изменении данного все его потребители должны получать этозначение. Проблема когерентности усложняется дублированием данных еще и в процессорных кэшахсистемы. Системы, в которых обеспечена когерентность данных, буферизуемых в кэшах, называются кэшкогерентными (cc-cache coherent), а архитектура памяти описываемого кластера: cc- NUMA (cache coherentNоn Uniform Memory Access). Классической архитектурой принято считать систему SPP1000. Подробнеесм.
Вопрос 28Другой источник:Для обеспечения целостности данных, имеющих несколько копий в разных процессорах и в памятях разныхуровней иерархии, разрабатываются спецификации протоколов когерентности.Существуют несколько классов таких протоколов:1. Протоколы на основе справочника (directory based). Информация о состоянии блока физической памятисодержится только в одном месте, называемом справочником (физически справочник может бытьраспределѐн по узлам системы).212. Протоколы наблюдения (snooping). Каждый кэш, который содержит копию данных некоторой частифизической памяти, имеет также соответствующую копию служебной информации (биты состояния).Контроллеры кэш-памятей обмениваются между собой служебной информацией о состоянии блока данных.Задачей протокола когерентности кэш-памяти является координация доступа к разделяемым блокам памяти.Кэш-памяти процессоров обмениваются информацией для того, чтобы определить какой процессор внастоящий момент является собственником данных.
Одним из наиболее полных протоколов являетсяпротокол MOESI (Modified, Owned, Exclusive, Shared, Invalid), в котором доступ процессора к блоку данныхопределяется состоянием этого блока и типом запроса. Работа данного протокола описывается поведениемконечного автомата с 5 состояниями. На верхнем уровне абстракции проверка правильности работысводится к моделированию поведения автомата и контролю корректности его состояний и не представляетсущественной сложности.