Файл: Системы с распределенной разделяемой памятью (Классификация архитектур вычислительных систем).pdf
Добавлен: 03.07.2023
Просмотров: 426
Скачиваний: 6
СОДЕРЖАНИЕ
1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ И КЛАССИФИКАЦИЯ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ
1.1 Классификация архитектур вычислительных систем
1.2 Понятие и сущность вычислительной системы с распределенной памятью (distributed memory)
2. АНАЛИЗ СПОСОБОВ ПОСТРОЕНИЯ МИКРОПРОЦЕССОРОВ NUMA
2.2 Мультипроцессоры NC-NUMA с координатными коммутаторами
2.3 Мультипроцессор Stanford DASH
ВВЕДЕНИЕ
Актуальность темы исследования. В существующих условиях весьма широкое распространение имеют многопроцессорные вычислительные системы. При решении задач, связанных с увеличение производительности подобных систем можно использовать два подхода.
В первом из них повышают тактовую частоту процессоров, во втором ориентируются на то, что параллельным образом выполняют программы. При осуществлении процессов компиляции для исходных последовательных программ для многопроцессорных систем активным образом применяют процедуры выявления информационно-независимых операторов при их дальнейшем распараллеливании.
Многопроцессорная техника развивается, что определяет возрастание числа процессоров в подобных системах, что ведет к необходимости того, чтобы происходила загрузка каждого из процессоров на основе информационно независимых задачам и требуется, чтобы происходило распараллеливание последовательных программ для того, чтобы они выполнялись одновременным образом на нескольких процессорах.
Действующие способы и алгоритмы, которые направлены на выявление информационно-независимых участков в программах большей частью – программные, и проблемы, связанные с распараллеливанием циклических участков по последовательным программам с точки зрения использования в системах высокой готовности рассмотрены в них в недостаточно.
Цель исследования – рассмотреть и проанализировать системы с распределенной разделяемой памятью.
В соответствии с поставленными целями решались следующие основные задачи:
- рассмотреть классификацию архитектур вычислительных систем;
- дать понятие и выявить сущность вычислительной системы с распределенной памятью (distributed memory);
- рассмотреть мультипроцессоры CC-NUMA;
- дать характеристику мультипроцессорам NC-NUMA с координатными коммутаторами;
- изучить особенности мультипроцессор Stanford DASH;
- рассмотреть мультипроцессор Sequent NUMA-Q;
- выявить особенности мультипроцессора СОМА.Методы исследования:
-обработка, анализ научных источников;
-анализ научной литературы, учебников и пособий по исследуемой проблеме.
Объект исследования – системы с распределенной разделяемой памятью
Предмет исследования – архитектура и способы построения систем с распределенной разделяемой памятью
Теоретическую основу курсовой работы составляют труды таких авторов, Бос Х., Вялова Е.П., Данилова А.В., Карташевский И.В., Лавлинская О.Ю., Лукашенко В. В., Малахов С.В., Преображенский А.П., Романчук В.А., Ручкин В.Н., Савельев В.А., Таненбаум Э., Фулин В.А., Хюбнер М., Цилькер Б.Я., Штейнберг Б.Я., Яцутин С.В. , Ящук А.М.
Одним из самых надежных источников является Цилькер Б.Я. Организация ЭВМ и систем. Учебник посвящен систематическому изложению вопросов организации структуры и функционирования вычислительных машин и систем, при этом большое внимание уделяется вопросам эффективности традиционных и перспективных решений в области компьютерной техники. Рассмотрены структура и функционирование классических фон-неймановских машин, принципы организации шин, внутренней и внешней памяти, операционных устройств и устройств управления, систем ввода-вывода. Изложены основные тенденции в архитектуре современных процессоров. Значительная часть материала посвящена идеологии построения и функционирования параллельных и распределенных вычислительных систем самых разнообразных классов. Показаны наиболее перспективные направления в области организации и архитектуры вычислительных машин и систем
Курсовая работа состоит из введения, двух глав, заключения и списка использованных источников.
1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ И КЛАССИФИКАЦИЯ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ
1.1 Классификация архитектур вычислительных систем
Бурное развитие микропроцессорных технологий в конце 20-го века привело к колоссальному росту производительности настольных вычислительных систем. Это породило ожидания, что большие вычислительные системы скоро навсегда уйдут в прошлое. Однако, этого не произошло. Персональные компьютеры, ставшие незаменимыми помощниками в повседневной деятельности громадного числа людей, не смогли заменить большие вычислительные системы в той сфере деятельности, для которой компьютеры изначально и создавались, а именно, для решения сложных вычислительных задач.
Потребности развития науки и технологий постоянно диктуют необходимость создания вычислительных систем в тысячи раз превосходящие возможности персональных компьютеров. Такие вычислительные системы называют суперкомпьютерами, а развитие суперкомпьютерных технологий объявлено приоритетным направлением во всех ведущих странах мира. В настоящее время, без применения суперкомпьютеров невозможно проведение исследований ни в фундаментальных, ни в прикладных науках. [3, с. 18].
Большое разнообразие многопроцессорных вычислительных систем породило естественное желание ввести для них какую-то классификацию. Эта классификация должна однозначно относить ту или иную вычислительную систему к определенному классу. С другой стороны, принадлежность вычислительной системы к некоторому классу должна достаточно определенно и полно характеризовать ее. Одна из первых классификаций была предложена Флинном еще в конце 60-х годов. [23, с. 1901] На нее до сих пор наиболее часто ссылаются в литературе. Она базируется на понятии двух потоков: потока команд и потока данных.
В классической вычислительной системе единственный центральный процессор через шину памяти имеет прямой доступ ко всей оперативной памяти. В современных компьютерах частота, на которой работает оперативная память и, соответственно, шина памяти существенно отстала от частоты работы процессора. В самом деле, частота работы процессора составляет сегодня порядка 3 Ггц, а частота шины памяти едва превысила 1 Ггц. [1, с. 105]
Для преодоления этого разрыва современные микропроцессоры снабжаются скоростной кэш-памятью, работающей на частоте процессора. Поскольку увеличение частоты работы оперативной памяти поддается с большим трудом, то увеличение объема кэш-памяти стало одним из основных резервов увеличения скорости работы вычислительной системы в целом. За последние два десятилетия объем кэш-памяти вырос от нескольких килобайт до нескольких мегабайт. [6, с. 59]. Таким образом, схема современной однопроцессорной вычислительной системы выглядит следующим образом (Рис. 1.1.).
Рис.1.1. Архитектура традиционной вычислительной системы
Задача, связанная с распараллеливанием в многопроцессорных системах, когда ее решают программным способом, выполняется при помощи хост–процессора, который решает множество задач: маршрутизацию, проведение назначения и перераспределения задач, проведение реконфигурации и исполнение функций, которые требуются для того, чтобы управлять системой, что ведет к дополнительной нагрузке на хост-процессор.
Есть процессоры, в которых существуют встроенные дополнительные устройства по распараллеливанию, дающие возможности для повышения эффективности вычислительной системы, это ведет к тому, что будет функциональная разгрузка хост-процессора. [12, с. 96].
Но, процессы распараллеливания в таких системах выполняются лишь для уровня команд, в то время как проведение распараллеливания на уровне данных или участков программ дает возможности для увеличения быстродействия всей системы. [6, с. 109].
Так как в программах большая часть времени при их выполнении относится к циклам, то проведение их распараллеливания ведет к тому, что будет увеличение быстродействия в системе. Весьма заметно это будет для циклов, имеющих большое количество итераций, когда происходит распараллеливание для систем высокой готовности. Важная роль принадлежит использованию соответствующих алгоритмов управления компьютерной сетью.
В любой вычислительной системе можно выделить два важнейших компонента - центральный процессор, выполняющий вычисления, и оперативную память, в которой хранится выполняемая программа совместно с обрабатываемыми данными. В классической однопроцессорной вычислительной системе единый поток инструкций, генерируемый программой, обрабатывает единый поток данных.
Сейчас среди способов, связанных с классификацией ЭВМ довольно большое распространение имеет систематика Флинна. [23, с. 1903] В таком методе классификации систем основное внимание уделяют подходам, описывающим взаимодействие потоков команд и потоков данных. Указанная классификация выделяет такие типы систем:
SISD (Single Instruction, Single Data) – системы, имеющие одиночный поток команд и одиночный поток данных. К этому классу относят обычные последовательные ЭВМ. [16, с. 205].
SIMD (Single Instruction, Multiple Data) – системы, имеющие одиночный поток команд и множественный поток данных. В качестве примера можно привести многопроцессорные системы, имеющие единое устройство управления (ILLIAC IV, CM-1). SIMD системы (Single Instruction stream - Multiple Data stream) позволяют организовать выполнение на всех процессорах одной и той же команды над различными данными. При этом в классических SIMD архитектурах выполнение каждой команды программы во всех процессорах осуществляется синхронно под управлением единого блока интерпретации команд единственного экземпляра программы, что избавляет от необходимости использования специальных средств синхронизации программ для обеспечения одновременности выполнения команд межпроцессорных коммуникаций. Поэтому SIMD системы часто называют также системами с синхронным параллелизмом. [20, с. 544].
MISD (Multiple Instruction, Single Data) – системы, имеющие множественный поток команд и одиночный поток данных. В качестве примера можно привести систолические вычислительные системы или системы, в которых происходит конвейерная обработка данных; [6, с. 85].
Более общим случаем, являются MIMD системы (Multiple Instruction stream - Multiple Data stream), в которых каждый процессор может выполнять свой поток инструкций над отдельным потоком данных. MIMD (Multiple Instruction, Multiple Data) – системы, имеющие классу относятся большинство из параллельных многопроцессорных вычислительных систем. Отметим, что для программирования многопроцессорных систем с архитектурой типа MIMD может использоваться принцип программирования SPMD (Single Program - Multiple Data), реализуемый путем клонирования экземпляров одной программы во все процессоры системы с архитектурой типа MIMD. При этом, однако, выполнение различных экземпляров такой программы в различных процессорах осуществляется асинхронно и, поэтому, выполнение межпроцессорных коммуникаций должно синхронизироваться с использованием соответствующих средств. Как правило, многопроцессорные системы с архитектурой типа MIMD и развитым системным программным обеспечением кроме режима MIMD (который без всякого изменения смысла может быть назван MPMD) поддерживают также режим SPMD выполнения параллельной программы. Например, оба режима работы поддерживала многопроцессорная вычислительная система nCUBE 2S. [1, с. 125]
Хотя классификация Флинна вплоть до настоящего времени является самой упоминаемой при характеристике того или иного компьютера, однако она уже плохо отражает состояние развития суперкомпьютерных технологий. На сегодняшний день классические системы SIMD архитектуры (ILLIAC IV, ICL DAP и др.) остались в прошлом, а класс MIMD оказался перегруженным, поскольку к нему можно отнести любую современную многопроцессорную систему. Теоретически возможная архитектура MISD (Multiple Instruction stream - Single Data stream) так и не получила ни какого реального воплощения. [22, с. 10].
Даже при широком распространении систематики Флинна, которая позволяет проводить классификацию вычислительных систем, в ней отмечают один существенный недостаток. В этой классификации к группе MIMD относят почти все параллельные вычислительные системы, хотя при этом они являются весьма разнородными. [20, с. 546].
В этой связи для MIMD систем есть предложения по своей отдельной классификации. При этом многопроцессорные системы подразделяют по тому, как организована оперативная память в таких системах. Классификацию многопроцессорных вычислительных систем можем увидеть на рисунке 1.2
Рис.1.2. Проведение классификации по многопроцессорным вычислительным системам
В этой классификации происходит выделение двух основных классов многопроцессорных вычислительных систем – мультипроцессоров (говорят о системах с общей памятью) и мультикомпьютеров (говорят о системах с распределенной памятью).
Происходит подразделение мультипроцессоров, в свою очередь, по способам организации общей памяти: рассматривают системы, имеющие однородную общую память (uniform memory access, UMA) и системы, имеющие неоднородную общую память (non-uniform memory access, NUMA). [10].
Системы, имеющие однородную общую память, рассматриваются в качестве основы для того, чтобы строить векторные параллельные процессоры (PVP) и симметричные мультипроцессоры (SMP). Векторный параллельный процессор – это суперкомпьютер Cray T90, симметричный - HP Superdome, IBM eServer и другие. [3, с. 105]
Первые мультипроцессорные вычислительные системы были получены из однопроцессорных систем подключением к шине памяти одного или нескольких дополнительных процессоров без радикального изменения базовой архитектуры. В самом деле, если у 2-х процессорной системы оставить только один процессор, то компьютер будет работать как обычная однопроцессорная система, если же установить оба процессора, то получится мультипроцессорная вычислительная система с общей памятью, поскольку оба процессора имеют равноправный доступ к общей шине памяти. Поэтому системы с общей памятью еще называют симметричными мультипроцессорными системам (Symmetric MultiProcessing - SMP). [1, с. 139]