ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ
УДК 681.31
Анализ направлений развития высокопроизводительных многопроцессорных вычислительных систем
Ледянкин И.А., Смирнов А.Е., Кошелев И.В.
Аннотация. Постановка задачи: в статье проведен анализ направлений развития многопроцессорных вычислительных систем. Целью работы является обоснование целесообразности применения кластеров вычислительных систем в целях повышения производительности многопроцессорных вычислительных систем. Используемые методы: в статье использованы методы системного анализа и общей теории вычислительных систем. Новизна: заключается в актуализации сведений о существующих и перспективных кластерных технологиях построения вычислительных систем нового поколения. Практическая значимость состоит в том, что проведенный анализ может быть использован в совершенствовании научно-методического аппарата проектирования перспективных вычислительных систем, функционирующих в режиме реального времени.
Ключевые слова: вычислительная система, параллельная вычислительная архитектура, масштабирование, кластеризация.
Актуальность
В реалиях современного развития средств вычислительной техники, задача повышения оперативности выполнения вычислительных задач, за счет наращивания производительности существующих вычислительных систем в процессе их эксплуатации, представляется актуальной. Проведя анализ состояния развития и совершенствования современных средств вычислительной техники, наибольший интерес заслуживают вопросы применения кластеров и многопроцессорных вычислительных систем.
В данной статье проведен анализ направлений развития масштабируемых архитектур вычислительных систем, раскрыты достоинства и недостатки кластерной организации вычислительных систем.
Постановка задачи
Одним из перспективных направлений создания высокопроизводительных вычислительных систем является направление проектирования перспективных высокопроизводительных вычислительных систем с использованием кластерных технологий. Анализ кластерных технологий выявил, что самой сложной и наиболее востребованной в процессе проектирования высокопроизводительных вычислительных систем является архитектура ссNUMА. Для эффективного применения вычислительных систем, использующих достоинства архитектуры ссNUMА, необходимо совершенствовать существующие алгоритмы распараллеливания и распределения вычислительных задач с учетом имеющихся ресурсных ограничений вычислительных систем.
Таким образом, возникает противоречие, заключающееся в необходимости повышения оперативности выполнения вычислительных задач современными вычислительными системами и не совершенством существующего научно-методического аппарата для достижения этой цели.
Проанализировав существующую структуру и задачи, решаемые многопроцессорными вычислительными системами, функционирующими в режиме реального времени, пришли к выводу, что основными направлениями совершенствования таких систем являются [1]:
- изменение методологии проектирования структур перспективных кластерных вычислительных систем реального времени;
- проектирование вычислительных система ссЫПМЛ архитектуры на основе кластеров с общей оперативной памятью;
- разработка информационных моделей функционирования кластерных вычислительных систем реального времени;
- выработка практических рекомендаций по применению кластерных вычислительных систем реального времени, в целях расширения функциональных возможностей перспективных вычислительных систем.
Одним из путей достижения этих целей является применение технологий распределено-параллельной обработки информации, разработка которых обусловливает наличие специальных задач, например, задачи разработки научно-методического аппарата выделения фрагментов программы, параллельное исполнение которых возможно. В рамках решения подобной задачи необходимо более внимательно изучить методы анализа вычислительных сценариев, выявления связности вычислительных операций, построения вычислительных кластеров и способов формирования множества их параллельных структур.
Существующие масштабируемые архитектуры вычислительных систем и направления их совершенствования
В настоящее время эффективное решение вычислительных задач в реальном времени осуществляется на основе реализации достижений в области современной элементной базы в совокупности с достижениями, полученными в процессе совершенствования архитектур построения вычислительных систем и эффективно функционирующим программным обеспечением (ПО).
Согласно классификации вычислительных систем (ВС), по Флину можно выделить следующие основные классы параллельных вычислительных архитектур: М1МБ -множественный поток команд и множественный поток данных; М81МБ - один поток команд и множественный поток данных.
Наибольший интерес представляют вычислительные системы на основе М1МБ архитектуры. В системах такой архитектуры, независимо выполняется несколько программных ветвей, обменивающихся данными. Такие системы являются многопроцессорными [2].
Классифицируя современные параллельные вычислительные системы, принадлежащие классу М1МБ по Флину, чаще всего основываются на анализе используемых в них способах организации оперативной памяти (рис. 1).
Рис. 1. Классификация современных параллельных вычислительных систем класса М1МВ с точки зрения организации оперативной памяти
Типы систем на рис. 1 - масштабируемые, т. е. имеющие возможность повышения производительности пропорционально увеличению вычислительных ресурсов.
Масштабируемость можно оценить через отношение прироста производительности системы к приросту используемых ресурсов [3]. В системе с плохой масштабируемостью добавление ресурсов приводит лишь к незначительному повышению производительности, а с некоторого «порогового» момента добавление ресурсов не даёт никакого полезного эффекта.
Различают два способа масштабирования: вертикальное и горизонтальное. Вертикальное масштабирование - увеличение производительности каждого компонента системы с целью повышения общей производительности. Данный способ является самым простым, так как не требует изменений в прикладных программах, однако вычислительная система быстро достигает своего предела при наращивании мощности узлов. Горизонтальное масштабирование - подразумевает рост производительности приложения за счет увеличения числа узлов. Данный способ масштабирования требует внесение изменений в программы, разбиения служб на сегменты и модули, чтобы программы смогли воспользоваться дополнительным количеством ресурсов.
Построение масштабируемой архитектуры вычислительной системы реального времени целесообразно организовывать согласно структуре, приведенной на рис. 2.
Рис. 2. Структура масштабированной вычислительной системы
Из приведенной структуры видно, что масштабирование вычислительной системы удовлетворяющей вышеуказанным условиям, достигается путем сочетания, определенным образом, архитектур специализированных многопроцессорных вычислительных комплексов (СМВК), входящих в рассматриваемую вычислительную систему.
При этом масштабирование архитектур ВС возможно несколькими способами [4]: - увеличение количества процессоров на одном узле с общей памятью (БМР-архитектура);
- укрупнение узлов за счет объединения процессорных модулей SMP-архитектуры в систему с распределенной разделяемой памятью с высокоскоростным доступом к ней (ccNUMA);
- создание кластера на базе ccNUMA, SMP архитектур СМВК, представляющего собой масштабируемую вычислительную систему, реализующую распределено-параллельные вычисления.
Типовая SMP система содержит от 2 до 32 процессоров (рис. 3). Каждый процессор снабжен локальной кэш-памятью, состоящей из кэш-памяти 1-го (Li) и второго (L2) уровней. Проблема когерентности решается путем использования общей кэш-памяти, что эффективно при количестве процессоров не более четырех. Применение общей кэш-памяти (рис. 4) ведет к увеличению стоимости и снижением быстродействия [5].
Рис. 3. Симметричные мультипроцессоры SMP
Наиболее важной особенностью архитектуры симметричных мультипроцессоров является способ взаимодействия процессоров с общими ресурсами (памятью и системой ввода/вывода).
В отличие от слабо связанных мультипроцессорных систем (кластеров), где в качестве физической единицы обмена информацией выступает сообщение или полный файл, в SMP допустимо взаимодействие на уровне отдельного элемента данных. Благодаря этому достигается высокий уровень связности между процессами. Хотя технически SМР-системы симметричны, в их работе присутствует небольшой фактор перекоса, который вносит программное обеспечение. На время загрузки системы один из процессоров получает статус ведущего. Это не означает, что позже во время работы какие-то процессоры будут ведомыми, - все они в SMP-системе равноправны. Термин «ведущий» относится к тому процессору, который по умолчанию будет руководить первоначальной загрузкой вычислительной системы.
Операционная система планирует процессы или нити процессов сразу по всем процессорам, скрывая при этом от пользователя многопроцессорный характер SMP архитектуры.
По сравнению с однопроцессорными схемами SMP-системы имеют преимущество по показателям производительности, готовности и масштабируемости.
Одно из самых современных направлений в области создания вычислительных систем - кластеризация. По производительности и коэффициенту готовности кластеризация представляет собой альтернативу симметричным мультипроцессорным системам.
Кластерная организация вычислительных систем представлена на рис. 4.
Рис. 4. Кластерная организация вычислительных систем
Вычислительный кластер - это М1МР-система (мультикомпьютер), состоящая из множества отдельных компьютеров (узлов вычислительного кластера), объединенных единой коммуникационной средой.
В качестве узла кластера может выступать как однопроцессорная ВМ, так и ВС типа SMP или МРР. Каждый узел в состоянии функционировать самостоятельно и отдельно от кластера.
Архитектура кластерных вычислений сводится к объединению нескольких узлов высокоскоростной сетью. Наряду с термином «кластерные вычисления», часто применяются такие названия, как кластер рабочих станций (workstation cluster), гипервычисления (hypercomputing), параллельные вычисления на базе сети (network-based concurrent computing).
Перед кластерами ставятся две задачи:
- достижение высокой вычислительной мощности;
- обеспечение повышенной надежности ВС.
Преимущества, достигаемые с помощью кластеризации:
- абсолютная масштабируемость. Возможно создание больших кластеров, превосходящих по вычислительной мощности даже самые производительные одиночные ВМ;
- наращиваемая масштабируемость. Кластер изначально проектируется с потенциальной возможностью наращивания узлов;
- высокий коэффициент готовности. Так как отдельные узлы кластера являются ВМ или ВС, то отказ одного из узлов не приведет к потере работоспособности кластера;
- соотношение производительность/стоимость. За счет объединения нескольких ВМ есть возможность создать кластер любой производительности. При этом его стоимость будет ниже, чем у одиночной ВМ с эквивалентной вычислительной мощностью.
Влияние производительности коммуникационной среды на общую производительность кластерной системы зависит от характера выполняемой задачи. Если задача требует частого обмена данными между подзадачами, которые решаются на разных
узлах вычислительного кластера, то быстродействию коммуникационной среды следует уделить максимум внимания. Соответственно, чем меньше взаимодействуют части задачи между собою, тем меньше внимания можно уделить быстродействию коммуникационной среды.
CC-NUMA (cache coherent NUMA) - система с кэш-когерентным доступом к неоднородной памяти. В отличие от классической архитектуры NUMA, при использовании кэш-когерентного доступа к неоднородной памяти все процессоры объединены в один узел, причем первый уровень иерархии памяти образует кэш-память процессоров. Архитектура ccNUMA поддерживает когерентность кэш памяти внутри узла аппаратно. Аппаратная когерентность кэш-памяти означает, что не требуется никакого программного обеспечения для поддержки актуальности множества копий данных.
В системе сс-NUMA физически распределенная память объединяется, как в любой другой ¿MP-архитектуре, в единый массив. Не происходит никакого копирования страниц или данных между ячейками памяти. Нет никакой программно-реализованной передачи сообщений. Существует просто одна карта памяти, с частями, физически связанными медным кабелем, и очень умные (в большей степени, чем объединительная плата) аппаратные средства. Аппаратно-реализованная кэш-когерентность означает, что не требуется какого-либо программного обеспечения для сохранения множества копий, обновленных данных или для передачи их между множеством экземпляров операционной системы и приложений. Со всем этим справляется аппаратный уровень точно так же, как в любом SMP-узле, с одной копией операционной системы и несколькими процессорами.
При использовании большого числа кэшей возникает та же проблема что и в архитектуре UMA: необходимо поддерживать актуальность кэшированных данных. Практически это означает, что изменение любой ячейки памяти, копия которой находится в некотором кэше, должно быть повторено для всех её копий. Учитывая, что число копий может быть велико, это становится сложной технической задачей.
Технология œNUMA основана на кэш-когерентном доступе к неоднородной памяти (рис. 5).
В сущности, когерентность поддерживается в большей части программным обеспечением, что ведет к снижению производительности, как и в кластерах. NUMА-архитектура - это множество отдельных узлов, каждый из которых может представлять собой SMP-систему.
В узле есть и основная память, общая для всех процессоров этого узла, но рассматриваемая как часть глобальной основной памяти системы. В архитектуре ссNUMА узел выступает основным строительным блоком. Согласно технологии NUMА, каждый узел в системе владеет собственной основной памятью, но с точки зрения процессоров имеет место глобальная адресуемая память, где каждая ячейка любой локальной основной памяти имеет уникальный системный адрес.
Основным недостатком подобной конфигурации является когерентность кэш. Как показано выше наиболее сложной архитектурой является ссNUMА, в которой каждый узел представляет собой отдельный элемент (в том числе и c SMP-архитектурой).
Для наиболее результативного использования подобных вычислительных систем необходимо использование специальных алгоритмов, направленных на решение задач распараллеливания и распределения вычислительных задач и ресурсов для их решения.
Исходя из предположения о том, что на обработку одной единицы информации используется п циклов некоторой программы обработки Д можно сделать вывод о том, что количество обработанных заявок в единицу времени C зависит от длительности выполнения Tg программы, реализующей алгоритм обработки и количества циклов его выполнения, т. е. [6]:
C = f(n,XT)) • (!)
Рис. 5. Организация вычислительных систем по технологии ccNUMA
Таким образом, задача определения длительности выполнения программы, реализующей алгоритм вычислительной задачи обработки информации, имеет особую актуальность, так как позволяет уже на этапе разработки программного обеспечения определить возможный выигрыш в количестве обработанных заявок в единицу времени.
Показателем, определяющим выполнение данного требования, является вероятность Pg превышения времени обработки поступающей информации [7].
Определим абстрактную вычислительную систему S :
S(п, т, К(q, с), tfetch, trec, а) , (2)
где n - количество вычислительных узлов, объединённых коммуникационной средой К (первый уровень);
m - количество вычислительных модулей, входящих в состав вычислительного узла, объединённых общей шиной (второй уровень);
q - объём буфера коммутатора сети;
c - пропускная способность коммутатора;
tfetch - длительность выборки значений из оперативного запоминающего устройства (ОЗУ) вычислительного модуля;
treq - длительность формирования запроса на получение значений переменных из общей памяти вычислительного модуля (ВМ);
a - длительность цикла сравнения значений переменных.
Информационная структура программы, реализующей алгоритм обработки, задан в форме параллельно-ярусной форме, как ациклический, направленный мультиграф [8]:
G(V (t, h),U (k), r, g):
(3)
где V = {у0,ур...,у;},г е Ъ - множество характеристик выполняемых операций выполняемых в алгоритме, причём каждой операции ставится в соответствие длительность её выполнения и номер яруса Ь{, на котором она находится, т.е.:
(4)
и = {и - множество информационных обменов между операциями,
причём каждому информационному обмену и] ставится в соответствие объём передаваемых данных к], т. е.:
и] = и (к]), (5)
где г - количество значений переменных в справочнике переменных, используемых программой;
g - размер запроса на получение значения переменной из общей памяти ВМ;
Л - интенсивность потока входящей для обработки информации.
Необходимо определить длительность выполнения Т программы О на
вычислительной системе 5 с учётом длительности информационного обмена между вычислительными узлами, а также вероятность Р потери информации при её обслуживании
[9].
При заданной рабочей нагрузке, чем больше коэффициенты загрузки процессоров, тем выше эффективность использования вычислительной системы в целом. С равномерным увеличением интенсивности нагрузки по всем задачам всех типов, при достижении коэффициента загрузки значения единицы, хотя бы для одного из процессоров, производительность всей системы становиться максимально возможной для задач тех типов, которые используют данный процессор. Наиболее загруженное устройство является «узким» местом в вычислительной системе, из-за которого не в полной мере используются возможности других процессоров. Близость коэффициентов загрузки используемых процессоров свидетельствует о сбалансированности системы с рабочей нагрузкой [10].
Основные подходы к обоснованию требований к вычислительным средствам и создания на их базе объектовых масштабируемых вычислительных комплексов с самого начала и до сегодняшнего дня определялись дефицитом вычислительной мощности существующих образцов вычислительной техники.
Таким образом, одним из важнейших направлений повышения производительности многопроцессорных, кластерных вычислительных систем в целом является применение эффективных моделей распараллеливания и распределения вычислительной нагрузки в вычислительной системе.
Выводы
Проанализировав текущее состояние в сфере развития и совершенствования средств вычислительной техники, наибольший интерес и актуальность в данной предметной области заслуживают вопросы применения кластеров и многопроцессорных вычислительных систем реального времени.
В данной статье проведен анализ направлений развития масштабируемых архитектур высокопроизводительных вычислительных систем реального времени в целях повышения производительности многопроцессорных, кластерных вычислительных систем.
Таким образом, исходя из проведенного анализа, можно сделать вывод, что добиться сокращения времени выполнения параллельной вычислительной задачи возможно путём рационального распределения операций между вычислительными модулями, с целью предотвращения излишних обращений вычислительных модулей к коммуникационной среде
для информационного обмена. Однако существующие методы распараллеливания не всегда позволяют учесть особенности построения вычислительных средств, что приводит к рассогласованию между информационной структурой вычислительной задачи и архитектурой построения вычислительного комплекса.
Литература
1. Карпов В.Е. Введение в распараллеливание алгоритмов и программ // Компьютерные исследования и моделирование. 2010. Т. 2. №2 3. С. 231-272.
2. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. СПб.: «БХВ-Петербург». 2004. 400 с.
3. Гергель В.П., Стронгин Р.Г. Основы параллельных вычислений для многопроцессорных вычислительных систем. Нижний Новгород.: Изд-во НГУ. 2003. 154 с.
4. Топорков В.В Модели распределенных вычислений. М.: ФИЗМАТЛИТ. 2004. 320 с.
5. Хорошевский В.Г. Архитектура вычислительных систем. М.: Изд-во МГТУ им. Н.Э. Баумана. 2008. 520 с.
6. Алиев Т.И. Основы моделирования дискретных систем. СПб.: СПбГУ ИТМО, 2009. 363
с.
7. Шеннон Р. Имитационное моделирование систем - искусство и наука. М.: Мир, 1978.
318 с.
8. Клейнрок Л. Теория массового обслуживания. М.: Машиностроение, 1979. 432 с.
9. Бусленко Н.П. Моделирование сложных систем. М.: Наука. 1978. 353 c.
10. Феррари Д. Оценка производительности вычислительных систем. М.: Машиностроение. 1989. 248 с.
References
1. Karpov V.E. Introduction to paralleling algorithms and programs. Computer-based research and modeling. 2010. V. 2. No. 3. Pp. 231-272 (in Russian).
2. Voevodin V.V., Voevodin V.V. Parallel computing. St. Petersburg: "BHV-Petersburg". 2004. 400 s. (in Russian).
3. Gergel V.P., Strongin R.G. Fundamentals of parallel computing for multiprocessor computing systems. Nizhny Novgorod.: Publishing house of NSU. 2003. 154 s. (in Russian).
4. Toporkov V.In the Model of distributed computing. Moscow. Fizmatlit. 2004. 320 s. (in Russian).
5. Khoroshevsky V.G. Architecture of computing systems. Moscow. Publishing House of Bauman Moscow State Technical University. 2008. 520 s. (in Russian).
6. Aliyev T.I. Basics of modeling discrete systems. St. Petersburg. State University of ITMO, 2009. 363 s. (in Russian).
7. Shannon R. Simulation modeling of systems - art and science. Moscow. Mir, 1978. 318 s. (in Russian).
8. Kleinrock L. Mass service theory. Moscow. Engineering, 1979. 432 s. (in Russian).
9. Buslenko N.P. Modeling of complex systems. Moscow. Nauka. 1978. 353 s. (in Russian).
10. Ferrari D. Evaluation of the performance of computer systems. Moscow. Mechanical Engineering. 1989. 248 s. (in Russian).
Статья поступила 30 ноября 2021 г.
Информация об авторах
Ледянкин Иван Александрович - Кандидат технических наук. Старший преподаватель кафедры технологий и средств технического обеспечения и эксплуатации автоматизированных систем управления (войсками) Военно-космической академии имени А.Ф. Можайского. Область научных интересов: методы и алгоритмы обработки информации в высокопроизводительных
вычислительных системах специального назначения. Тел. +7 904 330-25-51. E-mail: lion16_8@mail.ru.
Смирнов Алексей Евгеньевич - Курсант Военно-космической академии имени А.Ф. Можайского. Область научных интересов: алгоритмы обработки информации в высокопроизводительных вычислительных системах специального назначения. Тел. +7 904-330-25-51. E-mail: lion16_8@mail.ru.
Кошелев Илья Витальевич - Курсант Военно-космической академии имени А.Ф. Можайского. Область научных интересов: алгоритмы обработки информации в высокопроизводительных вычислительных системах специального назначения. Тел. +7 904-330-25-51. E-mail: lion16_8@mail.ru.
Адрес: 197198, Россия, г. Санкт-Петербург, ул. Ждановская, д. 13.
Analysis of the directions of development of high-performance multiprocessor
computing systems
I.A. Ledyankin, A.E. Smirnov, I.V. Koshelev
Annotation. Setting the task: the article analyses the development directions of multiprocessor computing systems. The purpose of the work is to justify the feasibility of using clusters of computing systems in order to increase the performance of multiprocessor computing systems. Methods used: the article uses methods of system analysis and general theory of computing systems. Novelty: It consists in updating information about existing and promising cluster technologies for building new generation computing systems. The practical significance is that the analysis can be used to improve the scientific and methodological apparatus for designing promising computing systems operating in real time.
Keywords: computing system, parallel computing architecture, scaling, clustering.
Information about Authors
Ivan Aleksandrovich Ledyankin - Candidate of Technical Sciences, senior teacher of chair of technologies and means of technical providing and operation of automated control systems (armies) of the Military Space Academy of Mozhaisky. Phone: +7 904 330 25 51. E-mail: lion16_8@mail.ru.
Alexey Evgen'evich Smirnov - Cadet of the Military Space Academy of Mozhaisky. Research interests: algorithms of information processing in high-performance computing systems for special purposes. Phone: +7 904 330 25 51. E-mail: lion16_8@mail.ru.
Ilya Vital'evich Koshelev - Cadet of the Military Space Academy of Mozhaisky. Research interests: algorithms of information processing in high-performance computing systems for special purposes. Phone: +7 904 330 25 51. E-mail: lion16_8@mail.ru.
Address: 197198, Russia, г. Saint-Petersburg, Zhdanovskaya st., 13.
Для цитирования: Ледянкин И.А., Смирнов А.Е., Кошелев И.В. Анализ направлений развития высокопроизводительных многопроцессорных вычислительных систем // Техника средств связи. 2021. № 4 (156). С. 51-60.
For citation: Ledyankin I.A., Smirnov A.E., Koshelev I.V. Analysis of the directions of development of high-performance multiprocessor computing systems. Means of communication equipment. 2021. No 4 (156). Pp. 51-60 (in Russian).