Изобретение относится к вычислительной технике и может быть использовано для построения мультипроцессорных супер-ЭВМ.
Известно устройство для распределения заданий между ЭВМ в многомашинной вычислительной системе [АС СССР №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 (сетей доставки контента), а более конкретно, к способу распределения нагрузки между серверами только в таких сетях.
Техническим результатом является обеспечение распределения нагрузки между процессорами в вычислительной системе.
Технический результат достигается тем, что в «Способе диспетчеризации распределения нагрузки процессоров в вычислительной системе», при котором производиться постоянный мониторинг всех процессоров системы для определения их активности посредством обнаружения отказов и процессор лишается статуса активного, если он удовлетворяет условию отказа: недоступен, или же перегружен, дополнительно введены следующие действия: каждый процессор, входящий в состав вычислительной системы, выполняет независимую программу, все характеристики вычислительного процесса каждого процессора через определенные фиксированные промежутки времени поступают на вход диспетчера, диспетчер, в качестве которого может использоваться более мощный процессор или сервер, отслеживает их работу, в диспетчере периодически запускается диагностическая (контрольная) программа, предназначенная для определения состояния каждого процессора: степени загрузки, время выполнения программы и другие состояния, при этом каждый процессор формирует внутренние сигналы соответствия или несоответствия правильной работы, которые передаются диспетчеру, при поступлении сигнала несоответствия диспетчер определяет от какого
процессора пришел сигнал и какому состоянию он соответствует: неисправность, аварийный останов, превышено заданное время выполнения программы, сбой в работе или недостаточность памяти, после поступления сигнала несоответствия диспетчер определяет какой процессор менее загружен и возможность перераспределения нагрузки между другими процессорами, кроме того диспетчер через определенный промежуток времени производит поочередный опрос всех процессоров на предмет загруженности, процессор лишается статуса активного, если он удовлетворяет условию отказа: недоступен, или же перегружен, эта информация вносится в базу данных диспетчера, при этом в ходе работы системы в каждом процессоре через определенные заданные промежутки времени выполняется подпрограмма сохранения промежуточных результатов выполнения программы, результаты выполнения программы на данный момент времени каждого процессора запоминаются и поступают в память диспетчера;
при возникновении неисправности в результате сбоев последние сохраненные промежуточные результаты выполнения программы, которые были записаны в базе промежуточных результатов для данного процессора, передаются другому менее загруженному процессору системы или, если все процессоры загружены, дополнительному резервному процессору, который может быть предусмотрен в системе;
при этом если резервный процессор не занят выполнением программы, то процесс выполнения программы неисправного процессора продолжится в резервном;
если резервный процессор окажется занятым выполнением программы, то процесс выполнения программы неисправного процессора продолжится в диспетчере;
после устранения сигнала несоответствия, поступившего от соответствующего процессора, диспетчер переводит его в статус активного и работа системы продолжается.
Способ содержит следующие действия.
Каждый процессор, входящий в состав вычислительной системы, выполняет независимую программу, все характеристики вычислительного процесса каждого процессора через определенные фиксированные промежутки времени поступают на вход диспетчера, диспетчер, в качестве которого может использоваться более мощный процессор или сервер, отслеживает их работу, в диспетчере периодически запускается диагностическая (контрольная) программы, предназначенная для определения состояния каждого процессора: степени загрузки, время выполнения программы и другие состояния, при этом каждый процессор формирует внутренние сигналы соответствия или несоответствия правильной работы, которые передаются диспетчеру, при поступлении сигнала несоответствия диспетчер определяет от какого процессора пришел сигнал и какому состоянию он соответствует: неисправность, аварийный останов, превышено заданное время выполнения программы, сбой в работе или недостаточность памяти, после поступления сигнала несоответствия диспетчер определяет какой процессор менее загружен и возможность перераспределения нагрузки между другими процессорами, кроме того диспетчер через определенный промежуток времени производит поочередный опрос всех процессоров на предмет загруженности, процессор лишается статуса активного, если он удовлетворяет условию отказа: недоступен, или же перегружен, эта информация вносится в базу данных диспетчера, при этом в ходе работы системы в каждом процессоре через определенные заданные промежутки времени выполняется подпрограмма сохранения промежуточных результатов выполнения программы, результаты выполнения программы на данный момент времени каждого процессора запоминаются и поступают в память диспетчера;
при возникновении неисправности в результате сбоев последние сохраненные промежуточные результаты выполнения программы, которые были записаны в базе промежуточных результатов для данного процессора,
передаются другому менее загруженному процессору системы или, если все процессоры загружены, дополнительному резервному процессору, который может быть предусмотрен в системе;
при этом если резервный процессор не занят выполнением программы, то процесс выполнения программы неисправного процессора продолжится в резервном;
если резервный процессор окажется занятым выполнением программы, то процесс выполнения программы неисправного процессора продолжится в диспетчере;
после устранения сигнала несоответствия, поступившего от соответствующего процессора, диспетчер переводит его в статус активного и работа системы продолжается.
Работа системы заключается в следующем.
Во время работы системы каждый процессор выполняет независимую программу или независимый элемент одной программы, а диспетчер отслеживает их работу за счет периодического запуска диагностической (контрольной) программы. Если при выполнении диагностической программы от каждого процессора поступают сигналы соответствия правильности работы, система работает в штатном режиме.
Если же время работы системы на диспетчер от какого-либо процессора поступает какой либо сигнал несоответствия, то диспетчер определяет от какого процессора пришел сигнал и тип сигнала несоответствия. Для обеспечения обращения к диспетчеру в коды команд процессоров вводится дополнительная команда, при появлении которой и выдается сигнал обращения.
А каждая подпрограмма диспетчера начинается с команды обмена, по которой из памяти выбирается соответствующая подпрограмма обмена. Набор таких подпрограмм хранится в памяти диспетчера и предназначен для гибкого управления обменом информацией между диспетчером и другими процессорами системы. После каждого цикла
выполнения стандартной подпрограммы и обмена информацией диспетчера переходит в исходное состояние.
В ходе работы системы по мере необходимости (необходимость определяется конкретным алгоритмом работы системы) в каждом процессоре через определенные заданные промежутки времени выполняется подпрограмма сохранения промежуточных результатов выполнения программы. Результаты выполнения программы на данный момент времени каждого процессора запоминаются и поступают в память диспетчера. Это позволяет в любой момент времени вернуться к выполнению прерванной программы на момент последнего запомненного результата.
При поступлении, например, сигнала сбоя от какого-либо процессора на вход диспетчера, то проверяется от какого по номеру процессора поступил сигнал и его периодичность.
Обычно практика показывает, что проверку на сбой можно осуществлять до трех или пяти раз. И если после этого сбой повторяется, то считается, что устройство неисправно в противном случае исправно.
Для обеспечения проверки на исправность диспетчер осуществляет повторный запуск процессора, от которого поступил сигнал сбоя. И если сигнал сбоя поступил менее трех или пяти раз подряд, то процессор считается исправным и работа системы осуществляется в штатном режиме. Если количество подряд поступивших сбоев оказалось более трех или пяти раз, то процессор считается неисправным и лишается статуса активный до устранения неисправности.
При возникновении неисправности в результате сбоев необходимо последние сохраненные промежуточные результаты выполнения программы, которые были записаны в базе промежуточных результатов для данного процессора передать другому менее загруженному процессору системы или, если все процессоры загружены, дополнительному резервному процессору, который может быть
предусмотрен в системе. Обычно резервный процессор бывает предусмотрен.
При этом, если резервный процессор не занят выполнением программы, то процесс выполнения программы неисправного процессора продолжится в резервном.
Если резервный процессор окажется занятым выполнением программы, то процесс выполнения программы неисправного резервный процессора продолжится в диспетчере.
После устранения неисправности и передачи промежуточных результатов выполнения программы, которая выполнялась в менее загруженном процессоре, резервном или диспетчере сигналом исправности выполнение программы продолжится.
Кроме того, при возникновении и поступлении на вход диспетчера сигнала несоответствия, который соответствует нештатной ситуации в работе одного из процессоров и, наиболее вероятно может быть вызвано перегрузкой, связанной, например, с недостаточностью памяти или времени выполнения заданной программы, по команде диспетчера часть программы (возможно часть программных модулей) может быть после получения последних сохраненных промежуточных результатов передана для выполнения в менее загруженном процессоре, резервном или диспетчере.
Данная ситуация в работе системы может быть реализована при условии возможности параллельного выполнения.
После устранения несоответствий система будет функционировать в штатном режиме.
Прерывание программ производится следующим образом.
По сигналу прерывания, поступающему от диспетчера, производится запоминание состояния прерываемой программы путем одновременной передачи содержимого всех регистров в ячейки памяти запоминающих устройств и запись этой информации в память, например, в вершину
соответствующего стека конкретного процессора. Этот же сигнал устанавливает время записи информации в запоминающее устройство и поступает на вход указателя стека и увеличивает его содержимое на единицу, формируя тем самым в указателе стека код адреса следующей свободной ячейки памяти запоминающих устройств. В результате этого в общие регистры конкретного процессора будет загружен вектор прерывания, который будет использоваться процессором для перехода к прерывающей программе. Прерывающая программа заканчивается командой "Восстановить", по которой устройство управления процессора формирует сигнал восстановления. Этот сигнал поступает на вход указателя стека и уменьшает его содержимое на единицу, формируя тем самым код адреса последней занятой ячейки памяти, который поступает на адресные входы всех запоминающих устройств. В результате этого в общих регистрах будет восстановлено состояние прерванной программы и процессор продолжит ее выполнение.
Если при выполнении контроля хода программ каждого процессора, а процессоры работают в штатном режиме, то сигналы "несоответствия" в диспетчер выдаваться не будут. Если же по какой-либо причине процессе выполнения программы будут выдавать сигналы "несоответствия", то ВС будет работать, как описано выше, в соответствии с выданным сигналом.
Таким образом, обеспечивается распределение нагрузки между процессорами в вычислительной системе.
название | год | авторы | номер документа |
---|---|---|---|
ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА | 2013 |
|
RU2533688C1 |
СПОСОБ, УСТРОЙСТВО УПРАВЛЕНИЯ СИСТЕМОЙ ОБСЛУЖИВАНИЯ ТЕЛЕВИДЕНИЯ В СЕТЯХ ПЕРЕДАЧИ ДАННЫХ ПО ПРОТОКОЛУ IP, И СИСТЕМА ОБСЛУЖИВАНИЯ ТЕЛЕВИДЕНИЯ В СЕТЯХ ПЕРЕДАЧИ ДАННЫХ ПО ПРОТОКОЛУ IP | 2010 |
|
RU2520408C2 |
УСТРОЙСТВО ДЛЯ КОНТРОЛЯ И РЕЗЕРВИРОВАНИЯ ИНФОРМАЦИОННОЙ СИСТЕМЫ | 2010 |
|
RU2453079C2 |
СПОСОБ РАСПРЕДЕЛЕНИЯ НАГРУЗКИ МЕЖДУ СЕРВЕРАМИ СЕТИ ДОСТАВКИ КОНТЕНТА (CDN) | 2011 |
|
RU2454711C1 |
СПОСОБ ФОРМИРОВАНИЯ ОТКАЗОУСТОЙЧИВОЙ ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЫ И ОТКАЗОУСТОЙЧИВАЯ ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА | 2010 |
|
RU2439674C1 |
РЕЗЕРВИРОВАННАЯ МНОГОКАНАЛЬНАЯ ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА | 2013 |
|
RU2527191C1 |
Устройство для перезапуска вычислительного комплекса при обнаружении сбоя | 1980 |
|
SU962956A1 |
Устройство для перезапуска вычислительного комплекса при обнаружении сбоя | 1988 |
|
SU1541608A1 |
СПОСОБ НАСТРОЙКИ СЕТЕВОГО ВИДЕОЗАПИСЫВАЮЩЕГО УСТРОЙСТВА (ВАРИАНТЫ) И САМОВОССТАНАВЛИВАЮЩАЯСЯ СИСТЕМА ВИДЕОНАБЛЮДЕНИЯ | 2013 |
|
RU2665310C1 |
СПОСОБ АВТОМАТИЧЕСКОГО ВЫЯВЛЕНИЯ НЕИСПРАВНОСТЕЙ СИСТЕМ КОНТРОЛЯ И УПРАВЛЕНИЯ ДОСТУПОМ | 2021 |
|
RU2765616C1 |
Изобретение относится к области вычислительной техники. Техническим результатом является обеспечение распределения нагрузки между процессорами в вычислительной системе. Раскрыт способ диспетчеризации распределения нагрузки процессоров в вычислительной системе, при котором производится постоянный мониторинг всех процессоров системы для определения их активности посредством обнаружения отказов и процессор лишается статуса активного, если он удовлетворяет условию отказа: недоступен или же перегружен, при этом дополнительно введены следующие действия: каждый процессор, входящий в состав вычислительной системы, выполняет независимую программу, все характеристики вычислительного процесса каждого процессора через определенные фиксированные промежутки времени поступают на вход диспетчера, диспетчер, в качестве которого может использоваться более мощный процессор или сервер, отслеживает их работу, в диспетчере периодически запускается диагностическая (контрольная) программа, предназначенная для определения состояния каждого процессора: степень загрузки, время выполнения программы и другие состояния, при этом каждый процессор формирует внутренние сигналы соответствия или несоответствия правильной работы, которые передаются диспетчеру, при поступлении сигнала несоответствия диспетчер определяет, от какого процессора пришел сигнал и какому состоянию он соответствует: неисправность, аварийный останов, превышено заданное время выполнения программы, сбой в работе или недостаточность памяти, после поступления сигнала несоответствия диспетчер определяет, какой процессор менее загружен и возможность перераспределения нагрузки между другими процессорами, кроме того, диспетчер через определенный промежуток времени производит поочередный опрос всех процессоров на предмет загруженности, процессор лишается статуса активного, если он удовлетворяет условию отказа: недоступен, или же перегружен, эта информация вносится в базу данных диспетчера, при этом в ходе работы системы в каждом процессоре через определенные заданные промежутки времени выполняется подпрограмма сохранения промежуточных результатов выполнения программы, результаты выполнения программы на данный момент времени каждого процессора запоминаются и поступают в память диспетчера; при возникновении неисправности в результате сбоев последние сохраненные промежуточные результаты выполнения программы, которые были записаны в базе промежуточных результатов для данного процессора, передаются другому менее загруженному процессору системы или, если все процессоры загружены, дополнительному резервному процессору, который может быть предусмотрен в системе; при этом если резервный процессор не занят выполнением программы, то процесс выполнения программы неисправного процессора продолжится в резервном; если резервный процессор окажется занятым выполнением программы, то процесс выполнения программы неисправного процессора продолжится в диспетчере; после устранения сигнала несоответствия, поступившего от соответствующего процессора, диспетчер переводит его в статус активного и работа системы продолжается.
Способ диспетчеризации распределения нагрузки процессоров в вычислительной системе, при котором производится постоянный мониторинг всех процессоров системы для определения их активности посредством обнаружения отказов и процессор лишается статуса активного, если он удовлетворяет условию отказа: недоступен, или же перегружен, отличающийся тем, что дополнительно введены следующие действия: каждый процессор, входящий в состав вычислительной системы, выполняет независимую программу, все характеристики вычислительного процесса каждого процессора через определенные фиксированные промежутки времени поступают на вход диспетчера, диспетчер, в качестве которого может использоваться более мощный процессор или сервер, отслеживает их работу, в диспетчере периодически запускается диагностическая (контрольная) программа, предназначенная для определения состояния каждого процессора: степень загрузки, время выполнения программы и другие состояния, при этом каждый процессор формирует внутренние сигналы соответствия или несоответствия правильной работы, которые передаются диспетчеру, при поступлении сигнала несоответствия диспетчер определяет, от какого процессора пришел сигнал и какому состоянию он соответствует: неисправность, аварийный останов, превышено заданное время выполнения программы, сбой в работе или недостаточность памяти, после поступления сигнала несоответствия диспетчер определяет, какой процессор менее загружен и возможность перераспределения нагрузки между другими процессорами, кроме того, диспетчер через определенный промежуток времени производит поочередный опрос всех процессоров на предмет загруженности, процессор лишается статуса активного, если он удовлетворяет условию отказа: недоступен или же перегружен, эта информация вносится в базу данных диспетчера, при этом в ходе работы системы в каждом процессоре через определенные заданные промежутки времени выполняется подпрограмма сохранения промежуточных результатов выполнения программы, результаты выполнения программы на данный момент времени каждого процессора запоминаются и поступают в память диспетчера;
при возникновении неисправности в результате сбоев последние сохраненные промежуточные результаты выполнения программы, которые были записаны в базе промежуточных результатов для данного процессора, передаются другому менее загруженному процессору системы или, если все процессоры загружены, дополнительному резервному процессору, который может быть предусмотрен в системе;
при этом если резервный процессор не занят выполнением программы, то процесс выполнения программы неисправного процессора продолжится в резервном;
если резервный процессор окажется занятым выполнением программы, то процесс выполнения программы неисправного процессора продолжится в диспетчере;
после устранения сигнала несоответствия, поступившего от соответствующего процессора, диспетчер переводит его в статус активного и работа системы продолжается.
СПОСОБ РАСПРЕДЕЛЕНИЯ НАГРУЗКИ МЕЖДУ СЕРВЕРАМИ СЕТИ ДОСТАВКИ КОНТЕНТА (CDN) | 2011 |
|
RU2454711C1 |
US 6768716 B1, 27.07.2004 | |||
US 5031089 A, 09.07.1991 | |||
US 6223205 B1, 24.04.2001. |
Авторы
Даты
2020-02-26—Публикация
2019-01-30—Подача