Современные информационные технологии / 1.Компьютерная инженерия.
Абылхасенова Д.К.
Костанайский инженерно-экономический
университет им. М.Дулатова, Казахстан
Проблемы связи процессоров в кластерной
системе.
Архитектура кластерной системы (способ
соединения процессоров друг с другом) в большей степени определяет ее
производительность, чем тип используемых в ней процессоров. Критическим
параметром, влияющим на величину производительности такой системы, является
расстояние между процессорами. Так, соединив вместе 10 персональных
компьютеров, мы получим систему для проведения высокопроизводительных
вычислений, проблема, однако, будет состоять в нахождении наиболее эффективного
способа соединения стандартных средств друг с другом, поскольку при увеличении
производительности каждого процессора в 10 раз производительность системы в
целом в 10 раз не увеличится. Рассмотрим для примера задачу построения
симметричной 16-ти процессорной системы, в которой все процессоры были бы
равноправны. Наиболее естественным представляется соединение в виде плоской
решетки (Рис.1), где внешние концы используются для подсоединения внешних
устройств.
Рис.1.
Схема соединения процессоров в виде плоской решетки
При таком типе
соединения максимальное расстояние между процессорами окажется равным 6
(количество связей между процессорами, отделяющих самый ближний процессор от
самого дальнего). Теория же показывает, что если в системе максимальное
расстояние между процессорами больше 4, то такая система не может работать
эффективно. Поэтому, при соединении 16 процессоров друг с другом плоская схема
является не эффективной. Для получения более компактной конфигурации необходимо
решить задачу о нахождении фигуры, имеющей максимальный объем при минимальной
площади поверхности. В трехмерном пространстве таким свойством обладает шар. Но
поскольку нам необходимо построить узловую систему, то вместо шара приходится
использовать куб (если число процессоров равно 8) или гиперкуб, если число
процессоров больше 8. Размерность гиперкуба будет определяться в зависимости от
числа процессоров, которые необходимо соединить. Так, для соединения 16
процессоров потребуется 4-х мерный гиперкуб. Для его построения следует взять
обычный 3-х мерный куб, сдвинуть в еще одном направлении и, соединив вершины,
получить гиперкуб размером 4.
Архитектура гиперкуба
является второй по эффективности, но самой наглядной. Используются и другие
топологии сетей связи: трехмерный тор, "кольцо", "звезда" и
другие.
Наиболее эффективной
является архитектура с топологией "толстого дерева" (fat-tree).
Архитектура "fat-tree" (hypertree) предложена Лейзерсоном (Charles E.
Leiserson) в 1985 году. Процессоры локализованы в листьях дерева, в то время как
внутренние узлы дерева скомпонованы во внутреннюю сеть. Поддеревья могут
общаться между собой, не затрагивая более высоких уровней сети.
Работа любой
кластерной системы определяется двумя главными компонентами: высокоскоростным
механизмом связи процессоров между собой и системным программным обеспечением,
которое обеспечивает клиентам прозрачный доступ к системному сервису. В
настоящее время широкое распространение получила также технология параллельных
баз данных. Эта технология позволяет множеству процессоров разделять доступ к
единственной базе данных. Распределение заданий по множеству процессорных
ресурсов и параллельное их выполнение позволяет достичь более высокого уровня
пропускной способности транзакций, поддерживать большее число одновременно
работающих пользователей и ускорить выполнение сложных запросов. Существуют три
различных типа архитектуры, которые поддерживают параллельные базы данных:
·
Симметричная
многопроцессорная архитектура с общей памятью (Shared Memory
SMP Architecture).
Эта архитектура поддерживает единую базу данных, работающую на
многопроцессорном сервере под управлением одной операционной системы.
Увеличение производительности таких систем обеспечивается наращиванием числа
процессоров, устройств оперативной и внешней памяти.
·
Архитектура с общими
(разделяемыми) дисками (Shared Disk Architecture). Это типичный случай
построения кластерной системы. Эта архитектура поддерживает единую базу данных
при работе с несколькими компьютерами, объединенными в кластер (обычно такие
компьютеры называются узлами кластера), каждый из которых работает под
управлением своей копии операционной системы. В таких системах все узлы
разделяют доступ к общим дискам, на которых собственно и располагается единая
база данных. Производительность таких систем может увеличиваться как путем
наращивания числа процессоров и объемов оперативной памяти в каждом узле
кластера, так и посредством увеличения количества самих узлов.
·
Архитектура без
разделения ресурсов (Shared Nothing Architecture). Как и в архитектуре с общими
дисками, в этой архитектуре поддерживается единый образ базы данных при работе
с несколькими компьютерами, работающими под управлением своих копий
операционной системы. Однако в этой архитектуре каждый узел системы имеет
собственную оперативную память и собственные диски, которые не разделяются
между отдельными узлами системы. Практически в таких системах разделяется
только общий коммуникационный канал между узлами системы. Производительность
таких систем может увеличиваться путем добавления процессоров, объемов
оперативной и внешней (дисковой) памяти в каждом узле, а также путем
наращивания количества таких узлов.
Таким образом, среда
для работы параллельной базы данных обладает двумя важными свойствами: высокой
готовностью и высокой производительностью. В случае кластерной организации
несколько компьютеров или узлов кластера работают с единой базой данных. В
случае отказа одного из таких узлов, оставшиеся узлы могут взять на себя
задания, выполнявшиеся на отказавшем узле, не останавливая общий процесс работы
с базой данных. Поскольку логически в каждом узле системы имеется образ базы
данных, доступ к базе данных будет обеспечиваться до тех пор, пока в системе
имеется по крайней мере один исправный узел. Производительность системы легко
масштабируется, т.е. добавление дополнительных процессоров, объемов оперативной
и дисковой памяти, и новых узлов в системе может выполняться в любое время,
когда это действительно требуется.
Параллельные базы
данных находят широкое применение в системах обработки транзакций в режиме
on-line, системах поддержки принятия решений и часто используются при работе с
критически важными для работы предприятий и организаций приложениями, которые
эксплуатируются по 24 часа в сутки.