Многопроцессорные системы всегда строились на базе одного из двух подходов. Слабосвязанные архитектуры предполагали наличие у каждого процессорного элемента "своей" памяти и "своего" ввода/вывода. Наибольшее распространение такие архитектуры получили в виде кластеров, когда несколько вполне самостоятельных компьютеров (естественно, со своей памятью, вводом/выводом и прочими дисками) объединялись посредством быстрых линий связи в единую вычислительную систему. Такой же подход применяется и при построении отказоустойчивых решений.
Преимущества понятны - при наличии достаточно быстрой линии связи и хорошего менеджера задач, такая система может расширяться практически безгранично. Интегральная производительность линий связи в такой системе может быть весьма значительной и наращиваться вместе с производительностью системы. Недостатки - необходимость иметь копию исполняемого программного обеспечения у каждого процессора, недоступность "чужого" ввода/вывода для каждого процессора и дробление памяти на сегменты, также недоступные "чужим".
Другой способ построения, получивший название сильносвязанной архитектуры, широко применяется в системах с симметричной многопроцессорностью. Здесь несколько процессоров объединены посредством общей шины с памятью и системами ввода/вывода. Отказоустойчивые системы не побрезговали и этим подходом.
Преимущества и недостатки тут понятны и практически зеркальны системам со слабой связью. С одной стороны, производительность общей шины - величина фиксированная, и, будучи не в состоянии увеличиваться с наращиванием системы, она становится узким местом. С другой стороны, единое поле памяти позволяет иметь лишь одну копию кодов программного обеспечения, а максимально возможный сегмент определяется общим объемом памяти. Ввод и вывод доступны всем процессорам одновременно.
Преимущества и недостатки каждого из подходов не являются решающими, оба способа организации архитектуры существуют на равных. Среди последних архитектурных веяний - системы с неунифицированным доступом к памяти (Non-Uniform Memory Access - NUMA) - некое смешение двух традиционных подходов. На базе архитектуры NUMA предлагают свои решения IBM, Sun, Data General. Первым же поставщиком, предложившим компьютер с NUMA-архитектурой на базе процессоров Intel, стал Sequent, традиционный производитель SMP-компьютеров, основанных на процессорах этой фирмы.
NUMA по версии Sequent
Проект по созданию архитектуры, способной масштабироваться от настольной системы до системы класса предприятия, причем на основе стандартных процессорных модулей, был развернут фирмой Sequent в 1992 году. В результате сегодня появилась уникальная архитектура NUMA-Q, сочетающая в себе преимущества сильносвязанной SMP-модели и слабосвязанных архитетур. Главным строительным модулем системы стала ячейка - "quad" (квад, четверка) - содержащая четыре процессора PentiumPro, которые объединялись в единую систему с помощью высокоскоростной линии связи IQ-Link.
Кирпичики новой архитектуры
Вычислительным сердцем квада являются четыре PentiumPro, объединенные общей шиной с производительностью 500 Мбайт/с в SMP-ячейку с общей памятью и системами ввода/вывода. Кроме того, в ячейку введены дополнительные средства, обеспечивающие взаимодействие квадов в больших многопроцессорных и высококритичных системах. Архитектура квада является преемницей хорошо отлаженной архитектуры Symmetry 5000 и обеспечивает совместимость приложений с более ранними системами Sequent.
Для организаци ввода/вывода на каждом кваде имеются две независимые шины PCI суммарной производительностью 266 Мбит/с. Суммарная мощность ввода/вывода для 252-процессорной системы может достигать 16 Гбайт/с, что дает возможность обслуживать самые критичные приложения.
IQ-Link - цемент для системы
Для того чтобы из отдельных квадов можно было построить единую высокопроизводительную систему, необходима специальная линия связи, способная обеспечить обмен между модулями с нужной скоростью. IQ-Link специально разработана для этого. С ее помощью можно объединить несколько квадов в вычислительный кластер или SMP-систему, в зависимости от конкретных потребностей.
Если необходимо реализовать сетевую распределенную модель, IQ-Link выступает в виде высокоскоростной магистрали с малым временем задержки, позволяя организовать кластер на основе квадов.
Если требуются ресурсы, сосредоточенные в одном узле, IQ-Link может взять на себя функцию объединения памяти, рассредоточенной по разным квадам в едином поле памяти. IQ-Link опрашивет процессоры на предмет потребности доступа к данным, находящимся в удаленной области памяти (в другом кваде). Если необходимые данные оказываются в кэше самой IQ-Link, они передаются процессору; если нет, запрашиваются в нужном кваде.
Естественно, эффективность масштабирования зависит от того, насколько часто программное обеспечение запрашивает данные из других квадов. Если эти запросы поступают нечасто, а объемы данных невелики, система масштабируется легко если же запросы частые, а массивы данных значительные, в полной мере вступают в силу ограничения, накладываемые общей шиной.
Физически IQ-Link обеспечивает скорости обмена до 1 Гбайт/с и представляет собой систему линков типа точка-точка. При ограниченности длины каждой конкретной линии связи размер системы масштабируется весьма существенно.