Серверы и суперкомпьютеры, как правило, являются векторными или многопроцессорными вычислительными системами. По классификации вычислительных систем, предложенной Флинном, это системы типов SIMD или MIMD.
Компьютеры типа SIMD подразделяются на классы SM-SIMD и DM-SIMD.Типичный SM-SIMD компьютер — это векторный компьютер, включающий в свой состав скалярный процессор целочисленной арифметики, функциональные блоки для операций сложения и умножения чисел с плавающей точкой, векторный процессор и общую память. Векторный процессор имеет конвейерную архитектуру — состоит из нескольких функциональных блоков. Примеры векторных компьютеров — NEC SX-8B, CDC Cyber 205, ETA-10.
Рис. 1. Архитектура SM-SIMD компьютера
Многопроцессорная вычислительная система состоит из одного или более узлов. В свою очередь, узел определяется как вычислительная система, работающая под управлением одной операционной системы и состоящая из одного или нескольких процессоров, оперативной памяти и системы ввода-вывода.
Многопроцессорные системы класса DM-SIMD называют также матричными (processor-array machines). Процессоры в этих компьютерах образуют некоторую 2D или 3D сеточную структуру. Один из процессоров (control processor) выполняет управляющие функции. Поскольку все процессоры одновременно должны выполнять одну и ту же операцию, не любой вычислительный процесс может быть эффективно реализован на компьютере этого класса. Поэтому системы DM-SIMD, как правило, являются специализированными, примерами могут быть сигнальные процессоры, компьютеры для статистических расчетов по методу Монте-Карло и т.п.
Рис. 2. Архитектура DM-SIMD компьютера
Компьютеры типа MIMD параллельно выполняют несколько потоков команд над несколькими потоками данных. К классу компьютеров SM-MIMD, называемых мультипроцессорами, относятся многопроцессорные векторные компьютеры PVP (Parallel Vector Processing) и симметричные многопроцессорные системы SMP (Symmetric multiproccssor). Один узел SMP-систем содержит два или более одинаковых процессоров, разделяющих одно и то же адресное пространство и имеющих равноправный доступ к другим ресурсам узла. Так как с увеличением числа процессоров существенно возрастают сложности обеспечения их связи между собой и с общей памятью, архитектура SMP имеет ограничения по числу используемых процессоров — узел обычно включает не более 32 процессоров.
Рис. 3. Узел SMP
В системах SMP-архитектуры одни и те же данные могут разделяться несколькими процессорами, а несколько копий одной и той же величины могут находиться в разных видах памяти. В этих условиях необходимо обеспечивать целостность данных или, другими словами, когерентность данных, означающую что все процессоры, если им необходимо в одно и то же время использовать одну и ту же переменную, то эта переменная для всех процессоров будет иметь одно и то же значение. А это означает, что изменения одной и той же величины в разных процессорах должны выполняться только последовательно.
В узлах современных компьютеров SMP-архитектуры когерентность реализуется аппаратными средствами. Для этого имеется специальная шина слежения (snoopy bus), через которую происходит передача значений данных, обновляемых некоторым процессором, на другие процессоры, запрашивающие эти данные. Идентификация одних и тех же данных в разных кэшах происходит по их отношению к одной и той же части оперативной памяти. Например, в архитектуре Cray SuperServer 6400 SMP используются четыре шины. Для поддержки когерентности все процессоры подсоединяются к каждой из четырех шин и реализуют протокол следящей шины.
Архитектуры с поддержкой когерентности данных получили название архитектур с неоднородным доступом к памяти — NUMA (Non-Uniform Memory Access). Имеется ряд разновидностей NUMA архитектур. В архитектуре CC-NUMA для SMP компьютеров поддерживается когерентность кэшей внутри каждого узла. Комбинация элементов SMP и MPP имеет место в архитектуре NUMA-Q, предложенной компанией Sequent Corp., ныне входящей в IBM.
В NUMA-Q вычислительные модули (quads) включают каждый четыре процессора, связанных высокоскоростной шиной. Множество таких модулей используются в качестве строительных блоков для формирования одного узла NUMA-Q, управляемого единой операционной системой. Модули одного узла соединены с общей оперативной памятью с помощью моста и внутренних для модулей шин. Используется протокол SCI (Scalable Coherent Interface). Такая конфигурация обеспечивает гораздо более короткий путь для сигналов обращения к памяти, чем общепринятая архитектура общей шины, которая требует, чтобы сигнал прошел весь путь по шине. Подавляющее большинство обращений к памяти при выполнении любой транзакции происходит внутри одного модуля.
С помощью NUMA систем наиболее успешно решаются задачи, имеющие малое пересечение данных, либо при пересечении все процессы могут быть исполнены в рамках одного модуля. Поэтому требуется программное обеспечение, организующее вычислительный процесс в соответствии с принципами NUMA так, чтобы связанные по данным процессы находились в одном модуле.
В архитектурах DM-MIMD проблемы когерентности решаются на программном уровне, поэтому число узлов может быть заметно большим, чем в системах SM-MIMD. В частности, в узлах компьютеров MPP-архитектуры используются свои копии ОС и свое адресное пространство, поэтому не требуется аппаратная поддержка когерентности, она поддерживается программными средствами. Узлы в MPP обычно состоят из одного процессора, небольшой памяти и нескольких устройств ввода-вывода. Настройка производительности MPP-систем включает распределение данных для того, чтобы минимизировать трафик между узлами.
Таким образом, практически все виды параллельных систем по классификации Флинна относятся к одной группе MIMD. Многие специалисты придерживаются классификации MIMD, представленной на рис. 4 [1], где DM-MIMD названы мультикомпьютерами, а SM-MIMD - мультипроцессорами:
Рис. 4. Типы компьютеров MIMD
Данный поход позволяет различать два важных типа многопроцессорных систем – multiprocessors (мультипроцессоры или системы с общей разделяемой памятью) и multicomputers (мультикомпьютеры или системы с распределенной памятью).
Список литературы
1. Классификация вычислительных систем. - http://winhpc.ru/?id=36
2. В.Н. Дацюк, А.А. Букатов, А.И. Жегуло/ МЕТОДИЧЕСКОЕ ПОСОБИЕ по курсу "Многопроцессорные системы и параллельное программирование". -http://rsusu1.rnd.runnet.ru/tutor/method/m1/content.html
Примеры серверов
Серверы подразделяются по выполняемым функциям на серверы файловые, баз данных, приложений и т.п., по масштабом сети, в которой они используются, на серверы локальные (для подсетей подразделений или отделов предприятия) и корпоративные, по производительности — на серверы высокого (hi-end), среднего и младшего уровней.
Для серверов характерны следующие особенности:
· повышенные требования к производительности, поддерживаемые применением многопроцессорности и многоядерности, развитием технологий ввода/вывода данных, увеличением пропускной способности шин;
· повышенные требования к отказоустойчивости, реализуемые, в частности, с помощью технологии дисковых массивов RAID;
· возможность удаленного управления.
Для серверов типично (по состоянию на конец 2006 г.) применение архитектуры SMP, двух- и четырехядерных процессоров, интерфейсов Gigabit Ethernet, шин PCI Express и Infiniband.
С помощью Infiniband удается строить так называемые серверы-лезвия (blade servers), отличительной особенностью которых является специфическое конструктивное исполнение. На платах серверов, размещаемых в корпусе высотой в несколько "юнитов" ("юнит" или величина равна 1,75 дюйма), располагается несколько процессоров и оперативная память. Эта плата вставляется в отдельный паз в корпусе, в котором умещаются еще десятки подобных плат. В одну стойку устанавливается несколько серверов, что обеспечивает существенное увеличение вычислительной мощности на сравнительно малой площади В отличие от традиционных систем, построенных по принципу "один корпус — одна системная плата", в серверах-лезвиях несколько системных плат совместно используют общий корпус, блок питания, общие вентиляторы и кабельные соединения.
Совместное использование компонентов — корпуса, соединительной платы, источника питания и вентиляторов — обеспечивает значительную экономическую эффективность аппаратного обеспечения. Меньшее число компонентов обеспечивает повышенную надежность серверов, а плотность их расположения позволяет значительно упростить их обслуживание.
Для связи серверов друг с другом и с внешними устройствами, в том числе с внешней памятью, вместо общей шины используется коммутирующая матрица и последовательный интерфейс Infiniband. В результате получается компактная конструкция из серверных плат с конструктивно отделенными дисковой памятью, устройствами ввода/вывода, источниками питания, достигается уменьшение потребления электроэнергии, тепловыделения, расстояний между серверными платами по сравнению с аналогичными характеристиками обычных кластеров.
Как правило, серверы корпоративного уровня работают под управлением операционных систем UNIX, Linux, а среднего уровня - также Microsoft Windows Server.
Пример сервера корпоративного уровня — IBM System p5 590 поддерживает до 32 процессоров POWER5+ с тактовой частотой 2,1 ГГц, оперативную память объемом до 1 Tбайт и может оснащаться дисковой подсистемой емкостью 18,7 Tбайт.
Примерами серверов среднего уровня могут служить серверы:
· IBM System x3755 (на процессорах AMD Opteron) и System x3950 (на процессорах Intel Xeon) с емкостью оперативной памяти в 128 Гбайт;
· HP ProLiant DL380 G5 с установкой двух четырехъядерных процессоров Intel Xeon, емкостью ОЗУ 32 Гбайт и дисковой памяти 576 Гбайт;
· Sun Fire E2900 на базе двухъядерных 64-разрядных процессоров Sun UltraSPARC IV+, имеет 192 Гбайт оперативной и 292 Гбайт дисковой памяти;
· Dell PowerEdge 6800 на четырех двухъядерных процессорах Xeon MP.