Файл: Устройства и принцип работы мультипроцессора.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 13.05.2023

Просмотров: 328

Скачиваний: 4

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

2.2 Классификация многопроцессорных ЭВМ

Одним из наиболее сраспространенных способов классификации ЭВМ является ссистематика Флинна, в рамках которой основное свнимание уделяется способам свзаимодействия последовательностей (потоков) выполняемыхс команд и обрабатываемых данных. При таком сподходе различают следующие основныес типы многопроцессорных (мультипроцессорных) систем[16]:

SIMD (Single Instruction, Multiple Data) – системы с содиночным потоком команд и множественнымс потоком данных. Подобный класс составляют смногопроцессорные вычислительные системы, в скоторых в каждый момент свремени может выполняться одна и та же скоманда для обработки нескольких синформационных элементов; такой архитектурой обладают, снапример, мультипроцессор с единым сустройством управления. Этот подход сшироко использовался в предшествующие годы (системы ILLIAC IV или CM-1 компаниис Thinking Machines), в последнее время его сприменение ограничено, в основном, ссозданием специализированных систем[17];

MISD (Multiple Instruction, Single Data) – ссистемы, в которых существует смножественный поток команд и одиночный споток данных. Относительно этого типа ссистем нет единого мнения: ряд специалистов считает, что спримеров конкретных ЭВМ, соответствующих сданному типу вычислительных систем, не ссуществует и введение подобного класса спредпринимается для полноты классификации; другие же сотносят к данному типу, например, ссистолические вычислительные системы или системы с сконвейерной обработкой данных[18];

MIMD (Multiple Instruction, Multiple Data) – системы с смножественным потоком команд и смножественным потоком данных. К подобному классу относится сбольшинство параллельных мультипроцессорных систем.

Рисунок 4 - Классификация многопроцессорных систем

Следует отметить, что хотя ссистематика Флинна широко используется при конкретизациис типов компьютерных систем, такая склассификация приводит к тому, что практическис все виды параллельных систем (несмотря на их ссущественную разнородность) оказываются отнесены к содной группе MIMD. Как результат, смногими исследователями предпринимались неоднократные попыткис детализации систематики Флинна. Так, например, для класса MIMD спредложена практически общепризнанная сструктурная схема, в которой дальнейшее сразделение типов многопроцессорных систем основывается на сиспользуемых способах организации оперативнойс памяти в этих системах (рисунок 4). Такой подход спозволяет различать два важных типа многопроцессорных ссистем – multiprocessors (мультипроцессоры или системы с общей разделяемой спамятью) и multicomputers (мультикомпьютеры или системы с сраспределенной памятью)[19].


2.3 Мультипроцессоры

Параллельный компьютер, в скотором все процессоры совместно используют общую сфизическую память, называется смультипроцессором, или системой с общей памятью (рисунок 5, а). Все процессы, сработающие в мультипроцессоре совместно, могут симеть единое виртуальное адресное пространство, сотображенное на общую память. Любой процесс с спомощью команд LOAD и STORE может ссчитать слово из памяти или записать сслово в память[20]. Больше ничего не стребуется. Два процесса имеют свозможность легко обмениваться информациейс - для этого один из них просто сзаписывает данные в общую память, а сдругой их считывает.

Рисунок 5 - Мультипроцессор из 16 процессоровс, имеющих общую память (а); изображение, сразделенное на 16 секций, каждую из скоторых анализирует отдельный процессор (б)

Благодаря возможности свзаимодействия двух и более процессов мультипроцессоры весьма спопулярны. Данная модель спонятна программистам и позволяет срешать широкий круг задач. Для примера рассмотрим программу, скоторая анализирует битовое отображение и ссоставляет список всех его объектов. Одна копия сизображения хранится в памяти, как показано на срисунок 5, б[21]. Каждый из 16 процессоров запускает содин процесс, призванный анализировать однус из 16 секций. Если процесс обнаруживает, что один из его собъектов переходит через границу ссекции, этот процесс просто спереходит вслед за объектом в следующую ссекцию, считывая слова этой секции. В нашем примере снекоторые объекты обрабатываются несколькими спроцессами, поэтому в конце спотребуется некоторая координация, чтобы определитьс количество домов, деревьев и самолетов[22].

Поскольку все процессорыс в мультипроцессоре используют единое адресное спространство, функционирует только одна копия соперационной системы. Соответственно, имеется столько одна карта страниц памяти и одна таблица спроцессов. Когда процесс блокируется, его спроцессор сохраняет свое состояние в таблицах соперационной системы, а затем спросматривает эти таблицы в поисках другого спроцесса, который нужно запустить. Именно такая сорганизация, в основе которой лежит единая ссистема, и отличает мультипроцессор от мультикомпьютера[23].


Мультипроцессорс, как и все компьютеры, должен ссодержать устройства ввода-вывода (диски, ссетевые адаптеры и т. п.). В одних мультипроцессорных ссистемах только определенные процессоры сполучают доступ к устройствам сввода-вывода и, следовательно, обладают сспециальными средствами ввода-вывода. В других смультипроцессорных системах каждый процессор сможет получить доступ к любому сустройству ввода-вывода. Если все процессорыс имеют равный доступ ко всем модулям памяти и всем устройствамс ввода-вывода, и между процессорами свозможна полная взаимозаменяемость, такой смультипроцессор называется симметричным (Symmetrie Multiprocessor, SMP)[24].

3. Мультипроцессоры и их архитектура

Для систематики смультипроцессоров учитывается способ спостроения общей памяти. Первый возможныйс вариант – использование единой собщей памяти (рисунок 6 а). Такой подход собеспечивает однородный доступ к памяти (UMA) и сслужит основой для построения векторных спараллельных процессоров (PVP) и симметричных смультипроцессоров (SMP). Среди примеров первой сгруппы - суперкомпьютер Cray T90, ко второй сгруппе относятся IBM eServer, Sun StarFireс, HP Superdome, SGI Origin и прочее[25].

Рисунок 6 - Архитектура многопроцессорныхс систем с общей (разделяемой) памятью: ссистемы с однородным (а) и неоднородным (б) доступом к памяти[26]

Одной из сосновных проблем, которые возникают при сорганизации параллельных свычислений на такого типа системах, является сдоступ с разных процессоров к собщим данным и обеспечение, в связи с этим, однозначности ссодержимого разных кэшей. Дело в том, что при сналичии общих данных копии сзначений одних и тех же переменных могут соказаться в кэшах разных процессоров. Если в такой сситуации один из процессоров выполнит сизменение значения разделяемой переменной, то сзначения копий в кэшах других спроцессоров окажутся не ссоответствующими действительности и их использованиес приведет к некорректности вычислений[27]. Обеспечение соднозначности кэшей обычно реализуется на аппаратномс уровне – для этого после изменения сзначения общей переменной все копии этой спеременной в кэшах отмечаются как недействительныес и последующий доступ к переменной спотребует обязательного обращенияс к основной памяти. Следует отметить, что необходимость собеспечения когерентности приводит к снекоторому снижению скорости свычислений и затрудняет создание систем с сдостаточно большим количеством процессоров.


Наличие общих сданных при параллельных вычислениях приводит к снеобходимости синхронизации взаимодействия содновременно выполняемых потоков команд. Так, например, если сизменение общих данных требует для ссвоего выполнения некоторой споследовательности действий, то необходимо обеспечить свзаимоисключение, чтобы эти изменения в любой смомент времени мог выполнять только один скомандный поток. Задачи взаимоисключения и ссинхронизации относятся к числу склассических проблем, и их рассмотрение при сразработке параллельных программ сявляется одним из основных свопросов параллельного программирования[28].

Общий доступ к сданным может быть обеспечен и при сфизически распределенной памяти (при этом, сестественно, длительность доступа уже не будет одинаковойс для всех элементов памяти) (рисунок 6 б). Такой подход именуетсяс неоднородным доступом к памяти (NUMA). сСреди систем с таким типом памятис выделяют[29]:

  • системы, в которых для спредставления данных используется только локальнаяс кэш-память имеющихся процессоров (COMA или cache-only memory architecture); примерами являются DDM и KSR-1;
  • системы, в которых собеспечивается когерентность локальных кэшей разных спроцессоров (CC-NUMA или cache-coherent NUMA); среди таких систем: Sun HPC 10000, SGI Origin 2000, IBM/Sequentс NUMA-Q 2000;
  • системы, в которых собеспечивается общий доступ к слокальной памяти разных процессоровс без поддержки на аппаратном суровне когерентности кэша (NCC-NUMA или non-cache coherent NUMA); например, система Cray T3E[30].

Использование сраспределенной общей памяти (DSM) упрощает проблемы ссоздания мультипроцессоров, однако возникающие спри этом проблемы эффективного сиспользования распределенной памяти (время доступа к слокальной и удаленной памяти может различатьсяс на несколько порядков) приводятс к существенному повышению сложности спараллельного программирования.

Мультикомпьютеры (многопроцессорные (мультипроцессорные) ссистемы с распределенной памятью) уже не собеспечивают общего доступа ко всей имеющейся в ссистемах памяти (NORMA или no-remote memory access) (рисунок 7)[31]. При всей схожести подобнойс архитектуры с системами с распределенной общей памятью (рисунок 6 б), мультикомпьютеры имеют принципиальное отличие: скаждый процессор системы может использовать толькос свою локальную память, в то время как для сдоступа к данным, располагаемым на других спроцессорах, необходимо явно свыполнить операции передачи ссообщений. Данный подход применяется при построениис двух важных типов многопроцессорных свычислительных систем (рисунок 7) - массивно-параллельных систем (MPP) и скластеров. Среди представителей спервого типа систем — IBM RS/6000 SP2, Intel PARAGON, ASCI Red, транспьютерныес системы Parsytec и др.; спримерами кластеров являются, снапример, системы NCSA NT Supercluster и AC3 Velocity[32].


Рисунок 7 - Архитектура многопроцессорных систем с распределенной памятью[33]

Следует отметить счрезвычайно быстрое развитие смногопроцессорных вычислительных систем кластерного стипа. Под кластером обычно понимается множествос отдельных компьютеров, объединенных в ссеть, для которых при помощи сспециальных аппаратно-программных средств обеспечивается свозможность унифицированного управления, снадежного функционирования и эффективногос использования. Кластеры могут быть образованыс на базе уже существующих у потребителей сотдельных компьютеров либо же ссконструированы из типовых компьютерных элементов, что собычно не требует значительных финансовыхс затрат. Применение кластеров может стакже в некоторой степени устранить проблемы, ссвязанные с разработкой параллельных алгоритмовс и программ, поскольку повышение свычислительной мощности отдельных спроцессоров позволяет строить кластеры из ссравнительно небольшого количества (несколько десятков) сотдельных компьютеров[34]. Тем самым, для параллельного свыполнения в алгоритмах решения вычислительныхс задач достаточно выделять толькос крупные независимые части расчетов, что, в свою очередь, сснижает сложность построения параллельныхс методов вычислений и уменьшает спотоки передаваемых данных между компьютерамис кластера. Вместе с этим следует отметитьс, что организация взаимодействия вычислительныхс узлов кластера при помощи передачи сообщенийс обычно приводит к значительным временнымс задержкам, и это накладывает сдополнительные ограничения на тип сразрабатываемых параллельных алгоритмов и программ.

Отдельные сисследователи обращают особое внимание на сотличие понятия кластера от сети скомпьютеров (NOW). Для построения слокальной компьютерной сети, как справило, используют более простые ссети передачи данных (порядка 100 Мбит/сек). сКомпьютеры сети обычно более рассредоточены, и спользователи могут применять их для свыполнения каких-либо дополнительных работ[35].

3.1 Архитектура мультипроцессорных систем

Чтобы дать более сполное представление о многопроцессорных системах, помимо свысокой производительности необходимо сназвать и другие отличительные особенности. Прежде свсего, это необычные архитектурные решения, снаправленные на повышение производительности (работа с векторнымис операциями, организация быстрого собмена сообщениями между процессорамис или организация глобальной памяти в многопроцессорных ссистемах и др.)[36].