Способ диспетчеризации распределения нагрузки процессоров в вычислительной системе Российский патент 2020 года по МПК G06F9/50 

Описание патента на изобретение RU2715284C1

Изобретение относится к вычислительной технике и может быть использовано для построения мультипроцессорных супер-ЭВМ.

Известно устройство для распределения заданий между ЭВМ в многомашинной вычислительной системе [АС СССР №1163325 A, G06F 9/00, 23.06.1985], содержащее группу элементов ИЛИ и элемент И, реверсивный счетчик минимального числа заданий, два элемента И, два элемента ИЛИ, элемент задержки, п схем сравнения (где п - количество ЭВМ в системе), п реверсивных счетчиков количества заданий, первую группу из п блоков элементов И, вторую группу из (п-1). блоков элементов И, причем группа входов первого блока элементов И первой группы соединена с группой входов кодов заданий устройства и с входами первого элемента ИЛИ, выход которого соединен с первым входом второго элемента ИЛИ, второй вход которого соединен с выходом третьего элемента ИЛИ и с вычитающим входом реверсивного счетчика минимального числа заданий, суммирующий вход которого соединен с выходом первого элемента И, первый вход которого через элемент задержки соединен с выходом второго элемента ИЛИ, а второй вход первого элемента И соединен с выходом второго элемента И, входы которого соединены с первыми входами соответствующих схем сравнения, второй выход каждой из- которых соединен с входом соответствующего блока элементов И первой группы, группа выходов', блоков элементов И второй группы соединена с соответствующей группой выходов устройства и с группой входов соответствующего элемента ИЛИ группы, выход которого соединен с суммирующим входом соответствующего реверсивного счетчика количества заданий, вычитающий вход которого соединен с соответствующим ответным входом устройства и с соответствующим входом третьего элемента ИЛИ устройства, а группа выходов каждого реверсивного

счетчика количества заданий соединена с первой группой входов соответствующей схемы сравнения, вторая группа входов которой соединена с выходом реверсивного счетчика минимального числа заданий, при этом группа входов каждого i-го (где i=1,…,п-1) блока элементов И второй группы соединена с группой входов i-го блока элементов И первой группы, а вход i-го блока элементов И второй группы соединен с вторым выходом i-й схемы сравнения, причем группа выходов каждого i-го (i=1, …,п-1) блока элементов И первой группы соединена с группой входов (i+1)-го блока элементов И первой группы.

Недостатком устройства является то, что оно может использоваться только в многомашинных вычислительных системах, работающих в режиме мультипрограммирования и имеет низкое быстродействие.

Наиболее близким к заявляемому является «Способ распределения нагрузки между серверами сети доставки контента (CDN)» [РФ №2454711 C1, G06F 17/00, 27.06.2012], при котором принимают запрос на услугу от, по меньшей мере, одного терминала пользователя на, по меньшей мере, одном сервере, определяют адрес пользователя, приводят в соответствие адресу пользователя адрес CDN-сервера, выбранный из множества адресов CDN-серверов и выбирают маршрут для связи пользователя с соответствующим CDN-сервером, приведение в соответствие осуществляют посредством, по меньшей мере, одной базы данных маршрутов-кандидатов, сформированной на, по меньшей мере, одном сервере, при этом выбор маршрута осуществляют на основании, по меньшей мере, одной метрики маршрута, выбранной из группы: задержки, вариации задержки, нагрузки, процента (или числа) потери пакетов, количества хопов, количества автономных систем, Q-критерия, при этом дополнительно предусматривают интервал допустимых значений для каждой метрики маршрута и, в случае, если метрика маршрута не входит в указанный интервал, исключают соответствующий маршрут из соответствующей базы данных маршрутов-кандидатов и,

кроме того, производят мониторинг активности всех CDN-серверов в режиме реального времени при помощи средства обнаружения отказов, соединенного с, по меньшей мере, одним сервером, при этом в случае обнаружения условия отказа CDN-сервера, информацию о статусе и адресе такого CDN-сервера заносят в соответствующую базу данных, по меньшей мере, одного сервера и далее не учитывают при выборе маршрута.

Недостатком данного устройства является то, что он относится только к области сетей CDN (сетей доставки контента), а более конкретно, к способу распределения нагрузки между серверами только в таких сетях.

Техническим результатом является обеспечение распределения нагрузки между процессорами в вычислительной системе.

Технический результат достигается тем, что в «Способе диспетчеризации распределения нагрузки процессоров в вычислительной системе», при котором производиться постоянный мониторинг всех процессоров системы для определения их активности посредством обнаружения отказов и процессор лишается статуса активного, если он удовлетворяет условию отказа: недоступен, или же перегружен, дополнительно введены следующие действия: каждый процессор, входящий в состав вычислительной системы, выполняет независимую программу, все характеристики вычислительного процесса каждого процессора через определенные фиксированные промежутки времени поступают на вход диспетчера, диспетчер, в качестве которого может использоваться более мощный процессор или сервер, отслеживает их работу, в диспетчере периодически запускается диагностическая (контрольная) программа, предназначенная для определения состояния каждого процессора: степени загрузки, время выполнения программы и другие состояния, при этом каждый процессор формирует внутренние сигналы соответствия или несоответствия правильной работы, которые передаются диспетчеру, при поступлении сигнала несоответствия диспетчер определяет от какого

процессора пришел сигнал и какому состоянию он соответствует: неисправность, аварийный останов, превышено заданное время выполнения программы, сбой в работе или недостаточность памяти, после поступления сигнала несоответствия диспетчер определяет какой процессор менее загружен и возможность перераспределения нагрузки между другими процессорами, кроме того диспетчер через определенный промежуток времени производит поочередный опрос всех процессоров на предмет загруженности, процессор лишается статуса активного, если он удовлетворяет условию отказа: недоступен, или же перегружен, эта информация вносится в базу данных диспетчера, при этом в ходе работы системы в каждом процессоре через определенные заданные промежутки времени выполняется подпрограмма сохранения промежуточных результатов выполнения программы, результаты выполнения программы на данный момент времени каждого процессора запоминаются и поступают в память диспетчера;

при возникновении неисправности в результате сбоев последние сохраненные промежуточные результаты выполнения программы, которые были записаны в базе промежуточных результатов для данного процессора, передаются другому менее загруженному процессору системы или, если все процессоры загружены, дополнительному резервному процессору, который может быть предусмотрен в системе;

при этом если резервный процессор не занят выполнением программы, то процесс выполнения программы неисправного процессора продолжится в резервном;

если резервный процессор окажется занятым выполнением программы, то процесс выполнения программы неисправного процессора продолжится в диспетчере;

после устранения сигнала несоответствия, поступившего от соответствующего процессора, диспетчер переводит его в статус активного и работа системы продолжается.

Способ содержит следующие действия.

Каждый процессор, входящий в состав вычислительной системы, выполняет независимую программу, все характеристики вычислительного процесса каждого процессора через определенные фиксированные промежутки времени поступают на вход диспетчера, диспетчер, в качестве которого может использоваться более мощный процессор или сервер, отслеживает их работу, в диспетчере периодически запускается диагностическая (контрольная) программы, предназначенная для определения состояния каждого процессора: степени загрузки, время выполнения программы и другие состояния, при этом каждый процессор формирует внутренние сигналы соответствия или несоответствия правильной работы, которые передаются диспетчеру, при поступлении сигнала несоответствия диспетчер определяет от какого процессора пришел сигнал и какому состоянию он соответствует: неисправность, аварийный останов, превышено заданное время выполнения программы, сбой в работе или недостаточность памяти, после поступления сигнала несоответствия диспетчер определяет какой процессор менее загружен и возможность перераспределения нагрузки между другими процессорами, кроме того диспетчер через определенный промежуток времени производит поочередный опрос всех процессоров на предмет загруженности, процессор лишается статуса активного, если он удовлетворяет условию отказа: недоступен, или же перегружен, эта информация вносится в базу данных диспетчера, при этом в ходе работы системы в каждом процессоре через определенные заданные промежутки времени выполняется подпрограмма сохранения промежуточных результатов выполнения программы, результаты выполнения программы на данный момент времени каждого процессора запоминаются и поступают в память диспетчера;

при возникновении неисправности в результате сбоев последние сохраненные промежуточные результаты выполнения программы, которые были записаны в базе промежуточных результатов для данного процессора,

передаются другому менее загруженному процессору системы или, если все процессоры загружены, дополнительному резервному процессору, который может быть предусмотрен в системе;

при этом если резервный процессор не занят выполнением программы, то процесс выполнения программы неисправного процессора продолжится в резервном;

если резервный процессор окажется занятым выполнением программы, то процесс выполнения программы неисправного процессора продолжится в диспетчере;

после устранения сигнала несоответствия, поступившего от соответствующего процессора, диспетчер переводит его в статус активного и работа системы продолжается.

Работа системы заключается в следующем.

Во время работы системы каждый процессор выполняет независимую программу или независимый элемент одной программы, а диспетчер отслеживает их работу за счет периодического запуска диагностической (контрольной) программы. Если при выполнении диагностической программы от каждого процессора поступают сигналы соответствия правильности работы, система работает в штатном режиме.

Если же время работы системы на диспетчер от какого-либо процессора поступает какой либо сигнал несоответствия, то диспетчер определяет от какого процессора пришел сигнал и тип сигнала несоответствия. Для обеспечения обращения к диспетчеру в коды команд процессоров вводится дополнительная команда, при появлении которой и выдается сигнал обращения.

А каждая подпрограмма диспетчера начинается с команды обмена, по которой из памяти выбирается соответствующая подпрограмма обмена. Набор таких подпрограмм хранится в памяти диспетчера и предназначен для гибкого управления обменом информацией между диспетчером и другими процессорами системы. После каждого цикла

выполнения стандартной подпрограммы и обмена информацией диспетчера переходит в исходное состояние.

В ходе работы системы по мере необходимости (необходимость определяется конкретным алгоритмом работы системы) в каждом процессоре через определенные заданные промежутки времени выполняется подпрограмма сохранения промежуточных результатов выполнения программы. Результаты выполнения программы на данный момент времени каждого процессора запоминаются и поступают в память диспетчера. Это позволяет в любой момент времени вернуться к выполнению прерванной программы на момент последнего запомненного результата.

При поступлении, например, сигнала сбоя от какого-либо процессора на вход диспетчера, то проверяется от какого по номеру процессора поступил сигнал и его периодичность.

Обычно практика показывает, что проверку на сбой можно осуществлять до трех или пяти раз. И если после этого сбой повторяется, то считается, что устройство неисправно в противном случае исправно.

Для обеспечения проверки на исправность диспетчер осуществляет повторный запуск процессора, от которого поступил сигнал сбоя. И если сигнал сбоя поступил менее трех или пяти раз подряд, то процессор считается исправным и работа системы осуществляется в штатном режиме. Если количество подряд поступивших сбоев оказалось более трех или пяти раз, то процессор считается неисправным и лишается статуса активный до устранения неисправности.

При возникновении неисправности в результате сбоев необходимо последние сохраненные промежуточные результаты выполнения программы, которые были записаны в базе промежуточных результатов для данного процессора передать другому менее загруженному процессору системы или, если все процессоры загружены, дополнительному резервному процессору, который может быть

предусмотрен в системе. Обычно резервный процессор бывает предусмотрен.

При этом, если резервный процессор не занят выполнением программы, то процесс выполнения программы неисправного процессора продолжится в резервном.

Если резервный процессор окажется занятым выполнением программы, то процесс выполнения программы неисправного резервный процессора продолжится в диспетчере.

После устранения неисправности и передачи промежуточных результатов выполнения программы, которая выполнялась в менее загруженном процессоре, резервном или диспетчере сигналом исправности выполнение программы продолжится.

Кроме того, при возникновении и поступлении на вход диспетчера сигнала несоответствия, который соответствует нештатной ситуации в работе одного из процессоров и, наиболее вероятно может быть вызвано перегрузкой, связанной, например, с недостаточностью памяти или времени выполнения заданной программы, по команде диспетчера часть программы (возможно часть программных модулей) может быть после получения последних сохраненных промежуточных результатов передана для выполнения в менее загруженном процессоре, резервном или диспетчере.

Данная ситуация в работе системы может быть реализована при условии возможности параллельного выполнения.

После устранения несоответствий система будет функционировать в штатном режиме.

Прерывание программ производится следующим образом.

По сигналу прерывания, поступающему от диспетчера, производится запоминание состояния прерываемой программы путем одновременной передачи содержимого всех регистров в ячейки памяти запоминающих устройств и запись этой информации в память, например, в вершину

соответствующего стека конкретного процессора. Этот же сигнал устанавливает время записи информации в запоминающее устройство и поступает на вход указателя стека и увеличивает его содержимое на единицу, формируя тем самым в указателе стека код адреса следующей свободной ячейки памяти запоминающих устройств. В результате этого в общие регистры конкретного процессора будет загружен вектор прерывания, который будет использоваться процессором для перехода к прерывающей программе. Прерывающая программа заканчивается командой "Восстановить", по которой устройство управления процессора формирует сигнал восстановления. Этот сигнал поступает на вход указателя стека и уменьшает его содержимое на единицу, формируя тем самым код адреса последней занятой ячейки памяти, который поступает на адресные входы всех запоминающих устройств. В результате этого в общих регистрах будет восстановлено состояние прерванной программы и процессор продолжит ее выполнение.

Если при выполнении контроля хода программ каждого процессора, а процессоры работают в штатном режиме, то сигналы "несоответствия" в диспетчер выдаваться не будут. Если же по какой-либо причине процессе выполнения программы будут выдавать сигналы "несоответствия", то ВС будет работать, как описано выше, в соответствии с выданным сигналом.

Таким образом, обеспечивается распределение нагрузки между процессорами в вычислительной системе.

Похожие патенты RU2715284C1

название год авторы номер документа
ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА 2013
  • Парамонов Николай Борисович
  • Парамонов Юрий Николаевич
RU2533688C1
СПОСОБ, УСТРОЙСТВО УПРАВЛЕНИЯ СИСТЕМОЙ ОБСЛУЖИВАНИЯ ТЕЛЕВИДЕНИЯ В СЕТЯХ ПЕРЕДАЧИ ДАННЫХ ПО ПРОТОКОЛУ IP, И СИСТЕМА ОБСЛУЖИВАНИЯ ТЕЛЕВИДЕНИЯ В СЕТЯХ ПЕРЕДАЧИ ДАННЫХ ПО ПРОТОКОЛУ IP 2010
  • Лю Юй
  • Лю Хао
  • Ван Иньлон
RU2520408C2
УСТРОЙСТВО ДЛЯ КОНТРОЛЯ И РЕЗЕРВИРОВАНИЯ ИНФОРМАЦИОННОЙ СИСТЕМЫ 2010
  • Тимофеева Елена Геннадиевна
  • Парамонов Николай Борисович
  • Парамонов Юрий Николаевич
RU2453079C2
СПОСОБ РАСПРЕДЕЛЕНИЯ НАГРУЗКИ МЕЖДУ СЕРВЕРАМИ СЕТИ ДОСТАВКИ КОНТЕНТА (CDN) 2011
  • Городецкий Ярослав Игоревич
  • Ивленков Сергей Владимирович
RU2454711C1
СПОСОБ ФОРМИРОВАНИЯ ОТКАЗОУСТОЙЧИВОЙ ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЫ И ОТКАЗОУСТОЙЧИВАЯ ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА 2010
  • Сыров Анатолий Сергеевич
  • Андреев Виктор Петрович
  • Смирнов Виктор Владимирович
  • Астрецов Владимир Александрович
  • Кособоков Виктор Николаевич
  • Синельников Владимир Васильевич
  • Каравай Михаил Федорович
  • Дорский Ростислав Юрьевич
  • Зимин Дмитрий Юрьевич
  • Калугина Ирина Юрьевна
RU2439674C1
РЕЗЕРВИРОВАННАЯ МНОГОКАНАЛЬНАЯ ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА 2013
  • Русанов Валентин Николаевич
  • Киселев Александр Юрьевич
  • Сильянов Николай Владимирович
RU2527191C1
Устройство для перезапуска вычислительного комплекса при обнаружении сбоя 1980
  • Рукоданов Юрий Петрович
  • Барановский Владимир Дмитриевич
  • Путилов Владимир Борисович
  • Голубкин Алексей Владимирович
  • Мартынов Николай Петрович
SU962956A1
Устройство для перезапуска вычислительного комплекса при обнаружении сбоя 1988
  • Бочечка Сергей Григорьевич
  • Макаров Сергей Борисович
  • Виноградов Михаил Юрьевич
SU1541608A1
СПОСОБ НАСТРОЙКИ СЕТЕВОГО ВИДЕОЗАПИСЫВАЮЩЕГО УСТРОЙСТВА (ВАРИАНТЫ) И САМОВОССТАНАВЛИВАЮЩАЯСЯ СИСТЕМА ВИДЕОНАБЛЮДЕНИЯ 2013
  • Карей Джеймс
RU2665310C1
СПОСОБ АВТОМАТИЧЕСКОГО ВЫЯВЛЕНИЯ НЕИСПРАВНОСТЕЙ СИСТЕМ КОНТРОЛЯ И УПРАВЛЕНИЯ ДОСТУПОМ 2021
  • Горбунов Вадим Александрович
  • Пех Андрей Евгеньевич
  • Гайн Ильдар Раисович
  • Абдрахманов Артур Мансурович
RU2765616C1

Реферат патента 2020 года Способ диспетчеризации распределения нагрузки процессоров в вычислительной системе

Изобретение относится к области вычислительной техники. Техническим результатом является обеспечение распределения нагрузки между процессорами в вычислительной системе. Раскрыт способ диспетчеризации распределения нагрузки процессоров в вычислительной системе, при котором производится постоянный мониторинг всех процессоров системы для определения их активности посредством обнаружения отказов и процессор лишается статуса активного, если он удовлетворяет условию отказа: недоступен или же перегружен, при этом дополнительно введены следующие действия: каждый процессор, входящий в состав вычислительной системы, выполняет независимую программу, все характеристики вычислительного процесса каждого процессора через определенные фиксированные промежутки времени поступают на вход диспетчера, диспетчер, в качестве которого может использоваться более мощный процессор или сервер, отслеживает их работу, в диспетчере периодически запускается диагностическая (контрольная) программа, предназначенная для определения состояния каждого процессора: степень загрузки, время выполнения программы и другие состояния, при этом каждый процессор формирует внутренние сигналы соответствия или несоответствия правильной работы, которые передаются диспетчеру, при поступлении сигнала несоответствия диспетчер определяет, от какого процессора пришел сигнал и какому состоянию он соответствует: неисправность, аварийный останов, превышено заданное время выполнения программы, сбой в работе или недостаточность памяти, после поступления сигнала несоответствия диспетчер определяет, какой процессор менее загружен и возможность перераспределения нагрузки между другими процессорами, кроме того, диспетчер через определенный промежуток времени производит поочередный опрос всех процессоров на предмет загруженности, процессор лишается статуса активного, если он удовлетворяет условию отказа: недоступен, или же перегружен, эта информация вносится в базу данных диспетчера, при этом в ходе работы системы в каждом процессоре через определенные заданные промежутки времени выполняется подпрограмма сохранения промежуточных результатов выполнения программы, результаты выполнения программы на данный момент времени каждого процессора запоминаются и поступают в память диспетчера; при возникновении неисправности в результате сбоев последние сохраненные промежуточные результаты выполнения программы, которые были записаны в базе промежуточных результатов для данного процессора, передаются другому менее загруженному процессору системы или, если все процессоры загружены, дополнительному резервному процессору, который может быть предусмотрен в системе; при этом если резервный процессор не занят выполнением программы, то процесс выполнения программы неисправного процессора продолжится в резервном; если резервный процессор окажется занятым выполнением программы, то процесс выполнения программы неисправного процессора продолжится в диспетчере; после устранения сигнала несоответствия, поступившего от соответствующего процессора, диспетчер переводит его в статус активного и работа системы продолжается.

Формула изобретения RU 2 715 284 C1

Способ диспетчеризации распределения нагрузки процессоров в вычислительной системе, при котором производится постоянный мониторинг всех процессоров системы для определения их активности посредством обнаружения отказов и процессор лишается статуса активного, если он удовлетворяет условию отказа: недоступен, или же перегружен, отличающийся тем, что дополнительно введены следующие действия: каждый процессор, входящий в состав вычислительной системы, выполняет независимую программу, все характеристики вычислительного процесса каждого процессора через определенные фиксированные промежутки времени поступают на вход диспетчера, диспетчер, в качестве которого может использоваться более мощный процессор или сервер, отслеживает их работу, в диспетчере периодически запускается диагностическая (контрольная) программа, предназначенная для определения состояния каждого процессора: степень загрузки, время выполнения программы и другие состояния, при этом каждый процессор формирует внутренние сигналы соответствия или несоответствия правильной работы, которые передаются диспетчеру, при поступлении сигнала несоответствия диспетчер определяет, от какого процессора пришел сигнал и какому состоянию он соответствует: неисправность, аварийный останов, превышено заданное время выполнения программы, сбой в работе или недостаточность памяти, после поступления сигнала несоответствия диспетчер определяет, какой процессор менее загружен и возможность перераспределения нагрузки между другими процессорами, кроме того, диспетчер через определенный промежуток времени производит поочередный опрос всех процессоров на предмет загруженности, процессор лишается статуса активного, если он удовлетворяет условию отказа: недоступен или же перегружен, эта информация вносится в базу данных диспетчера, при этом в ходе работы системы в каждом процессоре через определенные заданные промежутки времени выполняется подпрограмма сохранения промежуточных результатов выполнения программы, результаты выполнения программы на данный момент времени каждого процессора запоминаются и поступают в память диспетчера;

при возникновении неисправности в результате сбоев последние сохраненные промежуточные результаты выполнения программы, которые были записаны в базе промежуточных результатов для данного процессора, передаются другому менее загруженному процессору системы или, если все процессоры загружены, дополнительному резервному процессору, который может быть предусмотрен в системе;

при этом если резервный процессор не занят выполнением программы, то процесс выполнения программы неисправного процессора продолжится в резервном;

если резервный процессор окажется занятым выполнением программы, то процесс выполнения программы неисправного процессора продолжится в диспетчере;

после устранения сигнала несоответствия, поступившего от соответствующего процессора, диспетчер переводит его в статус активного и работа системы продолжается.

Документы, цитированные в отчете о поиске Патент 2020 года RU2715284C1

СПОСОБ РАСПРЕДЕЛЕНИЯ НАГРУЗКИ МЕЖДУ СЕРВЕРАМИ СЕТИ ДОСТАВКИ КОНТЕНТА (CDN) 2011
  • Городецкий Ярослав Игоревич
  • Ивленков Сергей Владимирович
RU2454711C1
US 6768716 B1, 27.07.2004
US 5031089 A, 09.07.1991
US 6223205 B1, 24.04.2001.

RU 2 715 284 C1

Авторы

Парамонов Николай Борисович

Александров Александр Владимирович

Бочаров Никита Алексеевич

Панова Ольга Юрьевна

Тимофеев Геннадий Сергеевич

Даты

2020-02-26Публикация

2019-01-30Подача