К ВОПРОСУ ПОВЫШЕНИЯ ПРОИЗВОДИТЕЛЬНОСТИ МНОГОПРОЦЕССОРНЫХ КЛАСТЕРНЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ
Ледянкин И.А., к.т.н., Военно-космическая академия имени А.Ф. Можайского, [email protected]
Ключевые слова:
вычислительная система, параллельная вычислительная архитектура, масштабирование, кластеризация.
АННОТАЦИЯ
На современном этапе развития средств вычислительной техники, проблема повышения оперативности решения вычислительных задач, за счет увеличения производительности отдельной электронно-вычислительной машины представляется не актуальной. Проанализировав текущее состояние в сфере развития и совершенствования средств вычислительной техники, наибольший интерес и актуальность в данной предметной области заслуживают вопросы применения кластеров и многопроцессорных электронно-вычислительных машин для повышения производительности и эффективности функционирования вычислительных систем. В данной статье проведен анализ существующих и перспективных масштабируемых архитектур вычислительных систем, раскрыты достоинства и недостатки кластерной организации вычислительных систем.
Одним из перспективных направлений создания высокопроизводительных вычислительных систем является направление проектирования и создания вычислительных систем на основе кластерных технологий. Анализ топологии кластерных пар выявил, что самой сложной и наиболее востребованной в процессе синтеза высокопроизводительных вычислительных систем является архитектура ссNUMА. Для эффективного использования таких вычислительных систем, необходимы соответствующие алгоритмы, способные распараллеливать и распределять вычислительные задачи и позволяющие эффективно использовать доступные ресурсы вычислительных систем.
В связи с развитием параллельных архитектур появилась проблема обеспечения равномерной, сбалан-сированной загрузки узлов вычислительных систем. На основе выбора качественных показателей и критериев эффективности функционирования вычислительных систем, функционирующих в режиме реального времени, предлагается постановка задачи балансировки нагрузки в масштабируемых архитектурах высокопроизводительных вычислительных систем, обеспечивающих функционирование вычислительных систем специального назначения с требуемыми показателями качества.
Таким образом, имеет место противоречие, заключающееся в необходимости повышения оперативности выполнения определенного рода вычислительных задач, на основе применения современных средств вычислительной техники и недостаточной проработкой вопросов создания научно-методического аппарата для достижения этой цели.
Сделан вывод о том, что одним из важнейших направлений повышения производительности многопроцессорных, кластерных вычислительных систем в целом является применение эффективных моделей распараллеливания и распределения вычислительной нагрузки в вычислительной системе.
US
RESEARCH
В настоящее время имеет место широкомасштабное применение научных достижений для получения наибольшего эффекта в применении элементов сложных технических систем специального назначения.
Рассматривая перспективную структуру и задачи, решаемые такими системами, актуальным вопросом является повышение эффективности функционирования и расширение функциональных возможностей их систем управления, за счет перехода к новым методам проектирования на основе информационных моделей, отображаемых в структуре современных кластерных средств вычислительной техники.
Основные направления работы в данном направлении можно сформулировать следующим образом [1]:
— кардинальное изменение методологии проектирования автоматизированных систем управления (АСУ) реального времени за счет перехода к разработке полнофункциональных информационных моделей для их отображения в структуре перспективных кластерных СВТ;
— переход от проектирования локальных вычислительных сетей к вычислительным системам ссЫиМЛ архитектуры на основе кластеров, работающих с общим пространством оперативной памяти;
— разработка методов рационального отображения информационной модели АСУ сложных технических систем специального назначения в структуре перспектив-ных средств кластерной архитектуры;
— рекомендации по использованию возможностей, предоставляемых новой методологией, для расширения функциональных возможностей систем управления.
На наш взгляд, для достижения этих целей представляется целесообразным применение технологий распределе-но-параллельной обработки информации.
Разработка предлагаемой технологии, предполагает наличие ряда задач, одной из которых является задача создания механизмов выделения параллельных участков программы, с целью их независимого выполнения на разных процессорах. В рамках указанной задачи, особое внимание следует уделить объединению методов анализа структуры вычислительных задач, методов выявления степени связности вычислительных блоков (операций), методов построения кластеров (условно-независимых, независимых участков вычислительной задачи) и способов формирования множества параллельных структур.
Очевидно, что время выполнения программ в рассматриваемом случае, напрямую зависит от эффективности механизмов создания параллельной структуры программы.
Таким образом, одним из основных вопросов, связанных с организацией распределено-параллельной обработки является разработка алгоритма анализа конфигурации вычислительных задач и формирования множества их параллельных структур.
Существующие масштабируемые архитектуры
вычислительных систем и перспективы
их совершенствования
На сегодняшний день, достижение эффективного решения вычислительных задач в режиме реального времени,
реализуется за счет применения современной элементной базы, архитектуры построения и эффективно работающего программного обеспечения (ПО). Элементная база определяет быстродействие системной логики и рассеиваемую мощность, а архитектурные варианты построения вычислительных систем, направлены на достижения оптимального сочетания производительности и надежности. Такое сочетание может быть достигнуто с применением технологии распределено-параллельной обработки данных. Данная технология обеспечивает возможность планирования, параллельного выполнения и организации взаимодействия независимых (слабосвязанных по данным) процессов в распределенной вычислительной среде. Согласно структурно-функциональной классификации вычислительных систем (ВС) по Флину существуют два основных класса параллельных вычислительных архитектур (рис.1).
Рис. 1. Структурно-функциональная классификация по Флину
Одним из них является М1МБ - множественный поток команд и множественный поток данных (второй - МБМБ). В системах такой архитектуры, независимо выполняется несколько программных ветвей, обменивающихся данными. Такие системы являются многопроцессорными.
В свою очередь архитектура М1МБ подразделяется на системы с разделяемой памятью, распределенной и рас-пределено-разделяемой памятью (рис. 2).
7 \
S MP Cluster ММР Cluster
ccNUMA, NUMA
Рис. 2. Структура архитектуры MIMD
Вычислительные системы, приведенные на рис. 2, являются масштабируемыми [6]. Основные характеристики указанных систем приведены в таблице 1.
Построим масштабируемую архитектуру единой вычислительной системы реального времени, предназначенную для организации технологии распределено-па-раллельных вычислений с оптимальным соотношением производительности и надежности, исходя из сведений, приведённых в таблице 1.
Масштабируемость является одним из важнейших требований к вычислительным системам и характеризует воз-
ш
RESEARCH
Характеристики вычислительных систем
Таблица 1
Характеристика Тип вычислительной системы
Мультикомпьютер Кластер SMP, DSM ММР
Порядок числа 10-1000 до 100 10-100 100-1000
N узлов
Сложность узла В широком Компьютер, ра- Один или От процессорного
диапазоне: от компь- бочая станция несколько элемента до
ютера и выше процессоров компьютера
Взаимодействие Разделяемые файлы, Обмен Общая разделя- Обмен сообщени-
узлов удаленный вызов сообщениями емая (SMP) или ями или разделе-
процедуры, обмен сообщениями, распределенная (DSM) память ние переменных распределенной
уровень процессов памяти
Планирование Независимые очере- Множество Одна очередь Одна очередь
вычислении ди процессов скоординированных очередей на хост-узле
Поддержка об- Частично Да Да (SMP) или Частично
раза единои си- иногда (NUMA)
стемы
Тип и наличие N копий распреде- N копий или N 1 монолитная N микроядер
копии ленной операцион- разных ОС или (SMP), от 1 до монолитной ОС
операционной ной системы (ОС) микроядер N в DSM или N копий
системы распределенной ОС
Адресное про- Множественное Множественное Единое Множественное
странство или единое или единое (DSM)
можность ВС по наращиванию количества процессоров, объемов памяти и независимость пропускной способности коммуникационной подсистемы от числа узлов участвующих в вычислительном процессе [2].
Построение масштабируемой архитектуры единой вычислительной системы реального времени целесообразно организовать согласно структуре, приведенной на рис. 3.
Из приведенной структуры видно, что масштабирование вычислительной системы удовлетворяющей вышеуказанным условиям, достигается путем сочетания, определенным образом, архитектур специализированных многопроцессорных вычислительных комплексов (СМВК), входящих в рассматриваемую вычислительную систему.
Масштабирование архитектур ВС осуществляется по следующим направлениям [3]:
увеличение числа процессоров на одном процессорном узле с общей памятью - симметричная многопроцессорная архитектура (SMP);
— объединение процессорных модулей SMP-архитектуры в единую систему с распределенной разделяемой памятью - через скоростные каналы обмена данными (ccNUMA);
— создание кластерного решения на основе ccNUMA, SMP архитектур СМВК, представляющего собой, масштабируемую вычислительную систему с реализацией технологии распределено-параллельных вычислений.
Рассмотрим кратко особенности архитектур SMP, Cluster, ccNUMA.
Типовая SMP система содержит от 2 до 32 процессоров. Каждый процессор снабжен локальной кэш-памятью,
Рис. 3. Структура масштабированой системы распределено-параллельных вычислений
Рис. 4. Система с общей кэш-памятью
H&ES
RESEARCH
Без разделения ресурсов
С разделением ресурсов
Рис. 5. Кластерная организация вычислительных систем
состоящей из кэш-памяти 1-го (L1) и второго (L2) уровней. Проблема когерентности снимается за счет применения общей кэш-памяти, но этот прием оправдан при количестве процессоров не больше 4-х. Применение об-щей кэшпамяти (рис. 4), сопровождается повышением стоимости и снижением ее быстродействия [4].
Важным аспектом архитектуры симметричных мультипроцессоров является способ взаимодействия процессоров с общими ресурсами (памятью и системой ввода/ вывода).
С этих позиций можно выделить следующие виды архитектур SMP-систем:
— с общей шиной и временным разделением;
— с коммутатором типа кроссбар;
— с многопортовой памятью;
— с централизованным устройством управления.
Общая шина позволяет легко расширять систему, путем подключения к себе большего числа процессоров. Кроме того, шина — это пассивная среда и отказ одного из процессоров не влечет отказа всей системы.
Основной недостаток SMP на базе общей шины — невысокая производительность. Скорость системы ограничена временем цикла шины.
Коммутатор обеспечивает множественность путей между процессорами и банками памяти, причем топология связей может быть, как двух, так и трехмерной. Выигрыш в производительности, достигается лишь, когда разные процессоры обращаются к разным банкам памяти.
Многопортовая организация запоминающего устройства обеспечивает любому процессору и модулю ввода/ вывода прямой и непосредственный доступ к банкам основной памяти (рис. 5), что требует приданию основной памяти дополнительной, достаточно сложной логики.
Преимущество многопортовой организации - возможность назначить отдельные модули памяти в качестве локальной памяти отдельного процессора, что позволяет улучшить защиту данных от несанкционированного доступа со стороны других процессоров.
Централизованное устройство управления (ЦУУ) сводит вместе отдельные потоки данных между независимыми модулями. ЦУУ может буферизировать запросы, выполнять синхронизацию и арбитраж.
Недостаток такой организации заключается в сложности ЦУУ, что становится потенциально узким местом в плане производительности. По производительности и коэффициенту готовности, кластеризация представляет собой альтернативу симметричным мультипроцессорным системам.
Существуют четыре преимущества, достигаемые с помощью кластеризации:
— абсолютная масштабируемость (кластер в состоянии содержать десятки узлов, каждый из которых представляет собой мультипроцессор);
— наращиваемая масштабируемость (кластер строится так, что его можно наращивать, добавляя новые узлы по мере необходимости);
— высокий коэффициент готовности (отказ одного из узлов не приводит к потере работоспособности кластера);
— соотношение цена/производительность (стоимость любого кластера ниже, чем одиночной ЭВМ эквивалентной производительности).
Классификация архитектур кластерных систем:
— пассивное резервирование - вторичный сервер при отказе первичного берет управление на себя;
— резервирование с активным вторичным сервером - вторичный сервер, как и первичный, используется при решении задач;
— самостоятельные серверы - самостоятельны серверы имеют собственные диски, а данные постоянно копируются с первичного сервера на вторичный;
— серверы с подключением ко всем дискам - серверы подключены к одним и тем же дискам, но каждый сервер владеет своей их частью (если один из серверов отказывает, то управление на себя берет другой сервер);
— серверы с совместно используемыми дисками - множество серверов работают в режиме коллективного доступа к дискам.
Топология кластерных пар.
Узлы группируются попарно.
Дисковые массивы присоединяются к обоим узлам пары, причем каждый узел имеет доступ ко всем дисковым массивам своей пары. Один из узлов является резервным для другого. Обе кластерные пары с точки зрения администрирования и настройки рассматриваются как единое целое.
Эта топология подходит для организации кластеров с высокой готовностью данных, но отказоустойчивость реализуется только в пределах пары, так как принадлежащие ей устройства хранения информации не имеют физического соединения с другой парой.
Топология N + 1.
Каждый дисковый массив подключается только к двум узлам кластера.
Один сервер имеет соединение со всеми дисковыми массивами и служит в качестве резервного для всех остальных узлов. Топология не позволяет реализовать глобальную отказоустойчивость, поскольку основные узлы кластера и их системы хранения информации не связаны друг с другом.
Топология N+N.
Только в этой топологии все узлы кластера имеют доступ ко всем дисковым массивам. Прекрасная масштабируемость, каскадная система отказоустойчивости. Технология ссЫиМЛ базируется на кэш-когерентном доступе к неоднородной памяти (рис. 6).
В сущности, когерентность поддерживается не столько аппаратурой, сколько программным обеспечением, что не лучшим образом сказывается на производительности - так было в кластерных технологиях. ЫиМА-архитектура представляет собой множество независимых узлов, каждый из которых может представлять собой, например БМР-систему.
Таким образом, узел содержит множество процессоров, у каждого из которых присутствуют локальные кэш первого (Ь1) и второго (Ь2) уровней. В узле есть и основная память, общая для всех процессоров этого узла, но рассматриваемая как часть глобальной основной памяти системы. В архитектуре ссЫиМА узел выступает
основным строительным блоком. Согласно технологии NUMA каждый узел в системе владеет собственной основной памятью, но с точки зрения процессоров имеет место глобальная адресуемая память, где каждая ячейка любой локальной основной памяти имеет уникальный системный адрес. Когда процессор инициирует доступ к памяти и нужная ячейка отсутствует в его локальной кэш-памяти, кэш-память второго уровня (L2) процессора организует операцию выборки, если ячейка находиться в локальной основной памяти, то выборка производиться с использованием локальной шины.
Если же требуемая ячейка храниться в удаленной секции глобальной памяти, то автоматически формируется запрос, посылаемый по сети в соединении на нужную локальную шину, и уже по ней к подключенному к данной локальной шине кэш. Все эти действия выполняются автоматически и прозрачны для процессора и его кэшпамяти. Главная проблема такой конфигурации - когерентность кэш.
Как видно, из вышеприведенных сведений, самой сложной архитектурой является œNUMA, где основным элементом является отдельный узел, в свою очередь который, может представлять собой SMP архитектуру.
Для эффективного использования таких вычислительных систем, необходимы соответствующие алгоритмы, способные распараллеливать и распределять вычислительные задачи и позволяющие эффективно использовать доступные ресурсы ВС.
В связи с развитием отечественных параллельных ВС, предназначенных для решения трудоемких, критичных ко времени своего выполнения вычислительных задач, появилась научно-техническая задача обеспечения равномерной сбалансированной загрузки узлов ВС [5].
Рис. 6. Организация вычислительных систем по технологии ссЫиМЛ
US
RESEARCH
В связи с развитием отечественных параллельных ВС, предназначенных для решения трудоемких, критичных ко времени своего выполнения вычислительных задач, появилась научно-техническая задача обеспечения равномерной сбалансированной загрузки узлов ВС [5].
Формально задача обеспечения равномерной сбалансированной загрузки процессоров в многопроцессорной вычислительной системе может быть сформулирована следующим образом:
тах[К (•)]
при условиях
0 < K < 1 Tf < Тд
доп
В идеализированном случае:
N
к = , о < к < !,
(1)
с учетом загрузки каждого процессора в вычислительной системе
T . cj
j = 1т
Л)
Tf * P = 1P,
t \
t . yj у
, 0 < K < 1,
(2)
Tf = max{T }, J = 1,..,P,
Г
W
P j (t j )
(4)
Тогда, задача балансировки нагрузки состоит в максимизации значения К на отрезке времени Т^ при
заданном числе р процессоров.
Из выражения (2) видно, что оптимальное распределение полезной вычислительной нагрузки между процессорами системы, с целью полного и эффективного использования их ресурсов, приводит к увеличению реальной производительности системы в целом [6].
В общем виде эффективность работы вычислительной системы может быть выражена следующим образом
=
R
R
peak
0 < Uff < 1,
(5)
где
Rmax , Rp
где Nтах — наибольший размер задач, при котором соответствующая программа еще помещается в оперативную память. Дальнейшее увеличение ^^ приведет
к свопингу и обращению к диску для подкачки страниц, что сразу снижает производительность; Ncpu — количество процессоров в системе; данная характеристика показывает, как часть задачи приходится на каждый процессор;
К — является сложной характеристикой, так как на нее прямо или косвенно оказывают влияние много факторов: объем памяти на каждом процессоре, сбалансированность скорости работы процессоров и памяти, быстродействие процессора, качество коммуникационной сети.
Выражение (2) может быть сформулировано следующим образом:
I- й зависимый процесс реализует свой объем вычислений за время Т .
Время выполнения параллельной программы находится как
(3)
уреей реальная и пиковая производительности соответственно.
Реальной производительностью системы устройств является количество операций, реально выполненных в среднем за единицу времени; пиковой производительностью является максимальное количество операций, которое может быть выполнено той же системой за единицу времени при отсутствии связей между устройствами [7]. Эти определения являются следствием первого закона Амдала - производительность вычислительной системы, состоящей из связанных между собой устройств, в общем случае определяется самым непроизводительным ее устройством.
Реальная Ятах и пиковая производительности
РреЛ, рассчитываемые для многопроцессорной вычислительной системы, связанны между собой следующим выражением
я.
: Rpeak * Q ,
П
Q = *а*р,
j=1
R
а
peak.
п
* R
*а
j=1
1, а > 0.
(6)
(7)
(8)
peakj
J=1
где Р — число процессоров;
время Т включает в себя время ТС , затрачиваемое на
время вычисления, а также некоторое время на обмен данными с основным процессом.
Время Ты определяется объемом вычислений Wi и
производительностью pi ^ ) процессора, зависящей от
степени загруженности системы в момент времени ti
где Q, — общая загрузка вычислительной системы; pi — загрузка I -го процессора вычислительной системы;
— весовой коэффициент ¿-го процессора в вычислительной системе;
Rpeaki — значение пиковой производительности ¿-го процессора.
Из выражений (7, 8) видно, что для того чтобы загруженность системы устройств была равна 1, необхо-
*
димо и достаточно, чтобы равны 1 загруженности каждого из устройств вычислительной системы. В этом случае выполняется равенство
^-тах—Креак , (9)
которое свидетельствует о том, что мы имеем дело с вычислительной системой с идеализированными характеристиками.
В существующих и перспективных высокопроизводительных вычислительных системах величина Ятах ^ Яреак, но Ятах ^ Яреак. Этот факт можно обос-новать следующим.
При заданной рабочей нагрузке, чем больше коэффициенты загрузки процессоров, тем выше эффективность использования вычислительной системы в целом. С равномерным увеличением интенсивности нагрузки по всем задачам всех типов, при достижении коэффициента загрузки значения единицы, хотя бы для одного из процессоров, производительность всей системы становиться максимально возможной для задач тех типов, которые используют данный процессор. Наиболее загруженное устройство является «узким» местом в вычислительной системе, из-за которого не в полной мере используются возможности других процессоров. Близость коэффициентов загрузки используемых процессоров свидетельствует о сбалансированности системы с рабочей нагрузкой.
Основные подходы к обоснованию требований к вычислительным средствам и создания на их базе объектовых масштабируемых вычислительных комплексов с
самого начала и до сегодняшнего дня определялись дефицитом вычислительной мощности существующих образцов вычислительной техники.
Таким образом, одним из важнейших направлений повышения производительности многопроцессорных, кластерных вычислительных систем в целом является применение эффективных моделей распараллеливания и распределения вычислительной нагрузки в вычислительной системе.
Литература
1. Бусленко Н.П. Моделирование сложных систем. М.: Наука. 1978.- 353 с.
2. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. СПб.: «БХВ-Петербург». 2004.- 400 с.
3. Гергель В.П., Стронгин Р.Г. Основы параллельных вычислений для много-процессорных вычислительных систем. Нижний Новгород.: Изд-во НГУ. 2003. - 154 с.
4. Топорков В.В Модели распределенных вычислений. М.: ФИЗМАТЛИТ. 2004. - 320 с.
5. Феррари Д. Оценка производительности вычислительных систем. М.: Ма-шиностроение. 1989. - 248 с.
6. Хорошевский В.Г. Архитектура вычислительных систем. М.: Изд-во МГТУ им. Н.Э. Баумана. 2008. - 520 с.
7. Шеннон Р. Имитационное моделирование систем - искусство и наука. М.: Мир, 1978. - 318 с.
TO A QUESTION OF INCREASE OF PRODUCTIVITY THE MULTIPROCESSOR CLUSTER COMPUTING SYSTEMS
Ledyankin I., Ph.D, Military Space Academy, [email protected]
Abstract
At the present stage of development of computer aids, the problem of increase of efficiency of the solution of computing tasks, at the expense of increase in productivity of the separate electronic computer is represented not actual. Having analysed current state in the sphere of development and improvement of the computer aids, the greatest interest and an urgency in this subject domain deserve questions of application of clusters and multiprocessing electronic computers for increase of productivity and efficiency of functioning of computing systems. In this article the analysis of existing and perspective scaled architecture of computing systems is carried out, merits and demerits of the klasterny organization of computing systems are opened. One of the perspective directions of creation of high-efficiency computing systems is the direction of design and creation of computing systems on the basis of klasterny technologies. The analysis of topology of klasterny pairs revealed that the high-efficiency computing systems most difficult and most demanded in the course of synthesis the architecture ccNUMA is. For effective use of such computing systems, the corresponding algorithms capable распараллеливать are necessary and to distribute computing tasks and allowing effectively to use available resources of computing systems. Due to the development of parallel architecture there was a problem of ensuring the uniform, balanced loading of knots of computing systems. On the basis of a choice of quality indicators and criteria of efficiency of functioning of the com-
puting systems functioning in real time, statement of a problem of balancing of loading in scaled architecture of the high-efficiency computing systems providing functioning of computing systems of a special purpose with demanded indicators of quality is offered. Thus, the contradiction consisting in need of increase of efficiency of performance of a certain sort of computing tasks, on the basis of application of modern computer aids and insufficient study of questions of creation of the scientific and methodical device for achievement of this purpose takes place. The conclusion that one of the most important directions of increase of productivity of multiprocessing, klasterny computing systems as a whole is application of effective models of a rasparallelivaniye and distribution of computing loading in the computing system is drawn.
Keywords: computing system, parallel computing architecture, scaling, clustering.
References
1. Buslenko N.P. Modeling of difficult systems. M.: Science. 1978. - p. 353.
2. Voyevodin V.V., Voyevodin Vl.V. Parallel calculations. SPb.: "BHV-St. Petersburg". 2004. - p. 400.
3. Gergel V.P., Strongin R.G. Bases of parallel calculations for the multiprocessor com-puting systems. Nizhny Novgorod.: Publishing house of NSU. 2003. - p. 154.
4. Toporkov V.V. Model of the distributed calculations. M.: FIZMATLIT. 2004. - p. 320.
5. Ferrari D. Assessment of productivity of computing systems. M.: Mechanical engi-neering. 1989. - p. 248.
6. Horoshevsky V.G. Arkhitektura of computing systems. M.: Publishing house of MGTU of N.E. Bauman. 2008. - p. 520.
7. Shannon R. Imitating modeling of systems - art and science. M.: World, 1978. - p. 318.