Классификация вычислительных кластеров по типу узловых процессоров.
Если в качестве
узлов вычислительного кластера используются
персональные ЭВМ или
рабочие станции, то обычной является ситуация, когда во время решения задачи на
кластере на узлах этого кластера продолжают выполняться последовательные задания пользователей. В результате относительная
производительность узлов кластера меняется случайным образом и в широких пределах. Решением проблемы было бы написание самоадаптирующейся пользовательской программы. Однако эффективное решение этой задачи представляется весьма проблематичным. Ситуация усугубляется, если среди узловых
компьютеров вычислительного кластера имеются файловые
серверы. При этом во время решения задачи на кластере в широких пределах может меняться загрузка коммуникационной среды, что делает непредсказуемыми коммуникационные расходы задачи.
Рис. 1. Классификация узлов вычислительных кластеров.
Классификация вычислительных кластеров по однородности узлов.
Обычно, когда говорят о
вычислительных кластерах, подразумевают
однородные вычислительные кластеры. Однако часто при наращивании
кластера приходится использовать
процессоры, отличающиеся не только по
производительности, но и по архитектуре, от узловых процессоров кластера. Поэтому постепенно однородный вычислительный кластер может стать неоднородным. Эта неоднородность создает следующие проблемы. Различие в производительности процессоров усложняет задачу распределения работ между процессорами. Различие в архитектуре процессоров требует подготовки разных выполняемых
файлов для разных узлов, а в случае различий в представлении данных, может потребовать и преобразования их форматов при передаче сообщений между узлами.
Классификация вычислительных кластеров по функциональности узлов.
Для создания высокопроизводительных
вычислительных кластеров системные блоки узловых
компьютеров делают значительно более простыми, чем в первом случае (не полнофункциональными). Здесь нет необходимости снабжать компьютеры узлов
графическими картами,
мониторами, дисковыми накопителями и другим периферийным оборудованием. Периферийное оборудование устанавливается только на одном или немногих управляющих компьютерах (HOST-компьютерах). Такой поход позволяет значительно уменьшить стоимость системы.
При классификации
кластеров используется и ряд других классификационных признаков. Рассмотрим два из них (см. рис. 2.):
- классификация по стандартности комплектующих;
- классификация по функциональной направленности.
Рис. 2. Классификация вычислительных кластеров.
Классификация вычислительных кластеров по стандартности комплектующих.
С точки зрения стандартности комплектующих можно выделить два класса
кластерных систем:
- вычислительный кластер строится целиком из стандартных комплектующих;
- при построении кластера используются эксклюзивные или нешироко распространенные комплектующие.
Вычислительные кластеры первого класса имеют низкие цены и простое обслуживание. Широкое распространение кластерные технологии получили как средство создания именно относительно дешевых систем суперкомпьютерного класса из составных частей массового производства.
Классификация вычислительных кластеров по их функциональной направленности.
Высокоскоростные кластеры. Производительность вычислительного кластера, очевидно, зависти от производительности его узлов. С другой стороны, производительность
кластера, как и сякой
системы с распределенной памятью, сильно зависит от производительности коммуникационной среды. Обычно при построении вычислительных кластеров используют достаточно дешевые коммуникационные среды. Такие среды обеспечивают производительность на один – два порядка более низкую, чем производительность коммуникационных сред
суперкомпьютеров. Поэтому находится не так много задач, которые могут достаточно эффективно решаться на больших кластерных системах.
Влияние
производительности коммуникационной среды на общую производительность
кластерной системы зависит от характера выполняемой задачи. Если задача требует частого обмена данными между подзадачами, которые решаются на разных
узлах вычислительного кластера, то
быстродействию коммуникационной среды следует уделить максимум внимания. Соответственно, чем меньше взаимодействуют части задачи между собою, тем меньше внимания можно уделить быстродействию коммуникационной среды.
Разработано множество технологий соединения
компьютеров в
кластер. Эти технологии будут рассмотрены в следующей главе.
Место
HP-кластеров среди современных высокопроизводительных систем иллюстрирует следующий пример: в списке 500 самых высокопроизводительных
компьютеров мира «Top500»
вычислительные кластеры из недорогих узлов занимают примерно половину списка.
В России крупнейший заказчик
HP-кластеров — нефтегазовая отрасль, в котрой
кластеры все более широко используются для обработки трехмерных сейсмических данных, получаемых в процессе геологоразведки.
Кластеры высокой готовности. Среди многообразия типов современных вычислительных систем высокой готовности
HA-кластеры обеспечивают высокий уровень отказоустойчивости при самой низкой стоимости.
Вообще говоря, для того, чтобы вычислительная система обладала высокими показателями готовности, необходимо, чтобы ее компоненты были максимально надежными, чтобы система была отказоустойчивой, а так же чтобы была возможной «горячая» замена компонентов (без останова системы). Благодаря кластеризации при отказе одного из
компьютеров системы, задачи могут быть автоматически (операционной системой) перераспределены между другими (исправными)
узлами вычислительного кластера. Таким образом, отказоустойчивость
кластера обеспечивается дублированием всех жизненно важных компонент
вычислительной системы. Самыми популярными коммерческими отказоустойчивыми системами в настоящее время являются двухузловые кластеры.
Вычислительные сети.
Разработка параллельных программ для
вычислительных сетей усложняется из-за следующих проблем. Ресурсы (количество узлов, их архитектура,
производительность), которые выделяются задаче, определяется только в момент обработки сетью заказа на выполнение это задачи. Поэтому программист не имеет возможности разработать программу для конкретной конфигурации вычислительной сети. Программу приходится разрабатывать так, чтобы она могла динамически (без перекомпиляции) самонастраиваться на выделенную конфигурацию сети. Кроме того, к неоднородности коммуникационной среды добавляется изменчивость ее характеристик, вызываемая изменениями загрузки сети. В лучшем случае программа должна разрабатываться с учетом этой неоднородности коммуникационной среды, что представляет собой весьма непростую задачу. Как мы отмечали выше, подобная проблема имеет место и для
вычислительных кластеров, построенных на основе
персональных компьютеров или
рабочих станций.
Эффективная
производительность кластерных вычислительных систем (real applications performance – RAP) оценивается как 5–15% от их пиковой производительности (Peak Advertised Performance, PAP). Для сравнения: у лучших малопроцессорных систем из векторных
процессоров это соотношение оценивается как 30–50%.