Системы с массовым параллелизмом

 

Архитектура систем с массовым параллелизмом (Mass-Parallel Processing, MPP)

 

Адресное пространство всей системы состоит из отдельных адресных пространств, которые логически не связаны и, доступ к которым не может быть осуществлён аппаратно другим процессором. Распределение памяти между отдельными узлами системы имеет два главных преимущества:

1) эффективный с точки зрения стоимости способ увеличения пропускной способности памяти;

2) уменьшается задержка обращения к локальной памяти из-за отсутствия конфликтов при доступе к ней.

Появились системы промежуточного класса, объединяющие системы обоих классов. В таких системах память распределена по вычислительным узлами одновременно является доступной для всех процессоров. Сокращённо такие системы называются DSM-системами, Distributed Shared Memory. Второе название таких систем – NUMA (Non-Uniform Memory Access). Хотя структурно DSM и MPP структуры сходны, однако технически они реализуются по-разному.

Организация коммуникационной среды в системах с распределенной памятью

Трехмерная n-кубическая сеть.

n log2n

Можно представить в виде x2 x1 x0, а второй процессор в виде y2 y1 y0.

Если биты равны между собой то данные не передаются, если биты отличаются между собой то данные передаются по каналу который в данный момент обозначен цифрой один. За три этапа можно передать данные от любого процессора любому другому процессору в рамках нарисованной схемы.

На первой ступени к переключателям подсоединены процессора у которых номера отличаются битами в первом разряде. На второй ступени к переключателям подсоединены процессора у которых номера отличаются битами во втором разряде. На третей ступени к переключателям подсоединены процессора у которых номера отличаются битами в третьем разряде.

Необходимость передачи определяется, если биты отличаются друг от друга то устанавливается режим диагональной связи, если биты не отличаются то устанавливается режим прямой связи.

В таких устройствах возможны конфликты. Для того чтобы решить конфликт данные которые нужно передать заносятся в буфер и потом обслуживаются в порядке очереди.

Когерентность КЭШ памяти в СМП системах

Проблема когерентности КЭШ памяти возникает тогда когда каждый из процессоров имеет свой КЭШ. Значение одной и той же переменной в разных КЭШе и основной памяти представлялась одинаково для всех процессоров.

Данную проблему часто называют протоколом когерентности КЭШ памяти.

 

Протоколы когерентности КЭШ памяти

Существует два класса таких протоколов:

1. протокол на основе справочника – в данных протоколах информация о состоянии блока физической памяти содержится только в одном месте называемом справочником.

2. протокол наблюдения – каждый КЭШ который содержит копию данных некоторого блока физической памяти имеет так же соответствующую копию служебной информации о его состоянии. В этом случае централизованная система записи отсутствует. Кэши расположены на общей шине и контроллеры всех кэшей наблюдают за шиной для определения того не содержат ли они копию блока который передается по шине.

Требования(свойства):

1. Если операция чтения в ячейке памяти одним процессором следует за операцией записи в ту же ячейку памяти другим процессором, то она получит записанное значение если операции чтения и записи достаточно отделены друг от друга по времени.

2. Операции записи в одну и ту же ячейку памяти выполняется строго последовательно. Это свойство означает что две подряд идущие операции записи в одну и ту же ячейку записи будут наблюдаться другими процессорами именно в том порядке в котором они появляются в программе процессора выполняющего эти записи.

 

 

Организация беспроцессорного обмена

Системы с разделяемой памятью

 

n – вычислительные модули, m – модули оперативной памяти

n ВМi i=1,n

m МОПj j=1,m

 

 

Функции шинного интерфейса:

1) управление занятием-освобождением общей шины,

2) управление обменом между вычислительным модулем и общей памятью.

3) Распознавание собственного адреса, выставленного на шину контроллером разделяемой памяти или другим устройством.

4) Организация внешних прерываний от запросов из системного контроллера прерываний.

5) Буферизация передаваемых данных.

 

Каждому вычислительному модулю присваивают уникальный номер, который называется адресом. Протоколом обмена предусматривается распознавание собственного адреса когда сообщение передаётся из вне в данный вычислительный модуль. Для этого шинный интерфейс постоянно отслеживает код присвоенного ему адреса. Как только он обнаружит собственный адрес, производится коммутация вычислительного модуля на общую шину и осуществляется приём данных с общей шины в приёмный буфер интерфейса или процессора.

Если обмен производится без буферизации, то используется обычный машинный цикл чтения или записи в память. По окончании цикла шины память освобождается и может быть передана в распоряжение другому вычислительному модулю. При данном способе обмена (если нет буферизации) в системе можно иметь только один модуль общей памяти. Это не позволяет достичь высокой степени параллельности из-за частых конфликтов, которые будут возникать между вычислительными модулями в борьбе за доступ к общей памяти. Чтобы обеспечить параллельность работы модулей памяти, необходимо увеличить пропускную способность общей шины и общей разделяемой памяти. Увеличение пропускной способности общей шины достигается за счёт введения буферов. Передаваемые сообщения буферизируются в быстрых регистрах шинного интерфейса. В режиме записи процессор начинающий обмен передаёт буферную память шинного интерфейса, управляющую информацию и данные. Контроллер шинного интерфейса самостоятельно после получения доступа к общей шине передаёт всю информацию в буфер общей памяти. Для этих целей контроллер разделяемой памяти также, как и устройство шинного интерфейса, включает быстродействующий буфер небольшого объёма.