Файл: Понятие концепций аппаратных решений.pdf

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

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

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

Добавлен: 27.06.2023

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

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

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

Хотя системы с некогерентным доступом к NUMA проще проектировать и создавать, становится предельно сложно создавать программы в классической модели архитектуры фон Неймана. В результате, все продаваемые NUMA-компьютеры используют специальные аппаратные решения для достижения когерентности кеша, и классифицируются как кеш-когерентные системы с распределенной разделяемой памятью, или ccNUMA[11].

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

Примером многопроцессорных машин с архитектурой ccNUMA может являться серия машин компании Silicon Graphics SGI Origin 2000. Суперкомпьютер ASCI Blue Mountain — один из самых мощных суперкомпьютеров 1999 года — представлял собой массово-параллельный кластер из 48 машин SGI Origin 2000 по 128 процессоров в каждой[12]

ASCI Blue Mountain — суперкомпьютер, установленный в Лос-Аламосской национальной лаборатории в 1998 году в рамках программы Accelerated Strategic Computing Initiative — программе Правительства США по развитию суперкомпьютерных технологий, призванных следить за состоянием ядерного арсенала США после объявления в октябре 1992 года моратория на проведение ядерных испытаний.

Остановлен 8 ноября 2004 года и заменен на суперкомпьютер ASCI Q.

ASCI Blue Mountain являлся одним из двух компьютеров «ASCI Blue», которые должны были стать вторым этапом в программе ASCI, в котором требовалось достичь вычислительной мощности в 3 Тфлопс. Контракт на создание ASCI Blue Mountain для Лос-Аламосской лаборатории был отдан компании Silicon Graphics в мае 1996 года, которая незадолго до этого поглотила суперкомпьютерную компанию Cray Research. Система была полностью собрана и запущена в Лаборатории в октябре 1998 года и показала на тесте LINPACK производительность в 1.6 Тфлопс, что позволило суперкомпьютеру занять второе место в списке TOP500 в июне 1999 года[13]

ASCI Blue Mountain был построен на основе вычислительного комплекса SGI Origin 2000. 48 комплексов содержали 6.144 RISC-процессора MIPS R10000 с тактовой частотой 250 МГц. Каждый комплекс состоял из 8 стоек и содержал 128 процессоров. Комплекс использовал архитектуру ccNUMA, в которой каждый процессор суперкомпьютера видел всю распределенную память как единое адресное пространство. Вычислительные узлы занимали 384 стоек, плюс к ним дополнительно 48 стоек — для проприетарных роутеров сети передачи данных HIPPI, связывавших 8 стоек каждого комплекса в единый кластер с топологией fat hypercube.


Предполагаемые характеристики компьютера:

Объем оперативной памяти: 1.5 Тб

Объем дисковых накопителей: 75 Тб

Операционная система: Irix

Общее энергопотребление: 1,6 МВт

Теоретическая производительность суперкомпьютера составляла 3,072 Тфлопс[14]

Мультикомпьютеры

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

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

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

Под кластером обычно понимается множество отдельных компьютеров, объединенных в сеть, для которых при помощи специальных аппаратно-программных средств обеспечивается возможность унифицированного управления (single system image), надежного функционирования (availability) и эффективного использования (performance)[16].

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


Тем самым, для параллельного выполнения в алгоритмах решения вычислительных задач достаточно выделять только крупные независимые части расчетов (coarse granularity), что, в свою очередь, снижает сложность построения параллельных методов вычислений и уменьшает потоки передаваемых данных между компьютерами кластера. Вместе с этим следует отметить, что организация взаимодействия вычислительных узлов кластера при помощи передачи сообщений обычно приводит к значительным временным задержкам, и это накладывает дополнительные ограничения на тип разрабатываемых параллельных алгоритмов и программ[17].

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

Мультикомпьютеры представляют собой машины для передачи сообщений, которые применяют метод пакетной коммутации для обмена данными. При этом каждый процессор имеет собственную память, но не имеет глобального адресного пространства, то есть процессор не может получить доступ только к своей локальной памяти. Таким образом, связь не является прозрачной: здесь программисты должны поместить явные примитивы связи в коде[18].

Отсутсвие глобально доступной памяти является недостатком мультикомпьютеров. Эту проблему можно решить с помощью следующих двух схем:

  • Виртуальная Совместно используемая память (VSM)
  • Общая виртуальная память (SVM)

В этих схемах предлагается большая общая память, которая адресуется по всему миру.

Виртуальная Совместно используемая память (VSM)

VSM реализуется аппаратно. Таким образом, системы виртуальной памяти операционной системы прозрачно реализованы в VSM. Таким образом, операционная система считает, что работает на машине с общей памятью[19].

Общая виртуальная память (SVM)

SVM реализуется программно на уровне операционной системы с аппаратной поддержкой со стороны блока управления памятью (MMU) процессора. При этом блок разделения работает на страницах памяти системы.


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

Поколения мультикомпьютеров:

Первое поколение

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

Что касается схемы межсоединений, мультикомпьютеры обладают сообщениями согласно схеме точка-точка. Для стратегии управления избираются асинхронные операции MIMD, MPMD и SMPD. Caltech Космический Куб (Seitz, 1983) является первым из первого поколения мультикомпьютеров.

Поколение настоящего и будущего

Компьютеры следующего поколения эволюционировали от средних. Мультикомпьютеры с использованием глобальной общей виртуальной памяти. Второе поколение мультикомпьютеров все еще используется в настоящее время. Несмотря на это, разработки продолжаются.

ЭВМ третьего поколения являются следующим поколением компьютеров, где будут использоваться VLSI реализованные узлы[21].

Система Intel Paragon

Ранее однородные узлы были использованы для изготовления гиперкуба Мультикомпьютеров, так как все функции были переданы хозяину. Таким образом, это ограничивает пропускную способность ввода/вывода. Таким образом, чтобы эффективно или с высокой пропускной способностью решать крупномасштабные задачи, эти компьютеры не могут применяться. The Intel Paragon System была разработана, чтобы преодолеть эту трудность. Он превратил мультикомпьютер в сервер приложений с многопользовательским доступом в сетевой среде[22].


Гомогенные мультикомпьютерные системы

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

Сначала мы рассмотрим гомогенные мультикомпьютерные системы. В этих системах, известных под названием системных сетей (System Area Networks, SAN), узлы монтируются в большой стойке и соединяются единой, обычно высокоскоростной сетью. Как и в предыдущем случае, нам придется выбирать между системами на основе шинной архитектуры и системами на основе коммутации.

В мультикомпьютерных системах с шинной архитектурой процессоры соединяются при помощи разделяемой сети множественного доступа, например FastEthernet. Скорость передачи данных в сети обычно равна 100 Мбит/с. Как и в случае мультипроцессоров с шинной архитектурой, мультикомпьютерные системы с шинной архитектурой имеют ограниченную масштабируемость. В зависимости от того, сколько узлов в действительности нуждаются в обмене данными, обычно не следует ожидать высокой производительности при превышении системой предела в 25—100 узлов.

В коммутируемых мультикомпьютерных системах сообщения, передаваемые от процессора к процессору, маршрутизируются в соединительной сети в отличие от принятых в шинной архитектуре широковещательных рассылок. Было предложено и построено множество различных топологий. Две популярные топологии — квадратные решетки и гиперкубы — представлены на рисунке 4. Решетки просты для понимания и удобны для разработки на их основе печатных плат. Они прекрасно подходят для решения двухмерных задач, например задач теории графов или компьютерного зрения (глаза робота, анализ фотографий).

Рисунок 4 Решетка. Гиперкуб

Гиперкуб (hypercube) представляет собой куб размерности n. Гиперкуб, показанный на рис. 1.7, б, четырехмерен. Его можно представить в виде двух обычных кубов, с 8 вершинами и 12 ребрами каждый. Каждая вершина — это процессор. Каждое ребро — это связь между двумя процессорами. Соответствующие вершины обоих кубов соединены между собой. Для расширения гиперкуба в пятое измерение мы должны добавить к этой фигуре еще один комплект из двух связанных кубов, соединив соответствующие вершины двух половинок фигуры. Таким же образом можно создать шестимерный куб, семимерный и т. д[23].