Надежность и отказоустойчивость параллельных ЭВМ
Параллельные ЭВМ, в частности, многопроцессорные, наряду с высоким быстродействием естественным образом обеспечивают высокую надежность и отказоустойчивость вычислений. Это достигается за счет многоэлементности (многопроцессорности) и способности к реконфигурации этих ЭВМ. В этом параграфе надежность и отказоустойчивость рассматриваются преимущественно в отношении оборудования, а не программного обеспечения.
Приведем некоторые сведения из теории надежности, необходимые для дальнейшего рассмотрения.
Надежность определяется как свойство технического изделия выполнять заданные функции в течение требуемого времени.
Основным понятием теории надежности является отказ, под которым понимают случайное событие, нарушающее работоспособность изделия. Применительно к вычислительной технике различают два вида отказов: устойчивые (собственно отказы) и самоустраняющиеся (сбой, перемежающиеся отказы). Сбой возникает вследствие одновременного неблагоприятного изменения нескольких параметров и существует кратковременно. Перемежающиеся отказы могут возникать, например, при плохом контакте в соединителе. Сбои встречаются в ЭВМ наиболее часто.
Основными параметрами надежности для невосстанавливаемых изделий являются интенсивность отказов λ, вероятность безотказной работы P(t), среднее время безотказной работы T:
Здесь m - число изделий, отказавших за время t, а N - число исправных элементов на начало промежутка времени. Следовательно, λ определяет долю (а не количество) изделий, отказавших в единицу времени, в качестве которой обычно принимают один час. Интенсивность принимается постоянной на этапе нормальной эксплуатации изделий.
Для микросхем обычно λ =10-6...10-8 1/час, поэтому среднее время безотказной работы большое: T=106...108 часов. Но в ЭВМ обычно входят тысячи микросхем. Поскольку
где λЭВМ, λi - интенсивность отказов ЭВМ и микросхемы соответственно, а N - число микросхем в составе ЭВМ, то время безотказной работы ЭВМ может составлять всего десятки или сотни часов.
Для восстанавливаемых систем наиболее важным параметром является наработка на отказ tср. Если восстановление является полным, то время наработки на отказ tср восстанавливаемой системы соответствует времени безотказной работы T невосстанавливаемой системы.
По назначению вычислительные системы, к которым относятся и многопроцессорные ЭВМ, можно разделить на две группы: системы для управления в реальном масштабе времени и информационно-вычислительные системы. Для первых отказ может вызвать тяжелые последствия, поэтому одним из основных показателей эффективности таких систем является надежность. Вторые не критичны к отказу, основным показателем их эффективности является производительность.
Рассмотрим показатели надежности ЭВМ, применяемых для систем управления в реальном времени. Как говорилось выше, наработка на отказ ЭВМ невысока. Основной способ повысить ее - резервирование. Различают два вида резервирования: общее и поэлементное. При общем резервировании резервируется вся ЭВМ, т. е. в случае выхода из строя она заменяется такой же. При поэлементном резервировании резервируются отдельные части ЭВМ (процессоры, каналы) и в случае отказов они заменяются идентичными. Наиболее употребительным является постоянное (горячее) резервирование, при котором резервное устройство выполняет ту же нагрузку, что и основное, и при отказе последнего резервное устройство без задержки замещает основное. Число резервных устройств может быть более одного.
Общее резервирование значительно повышает надежность системы, в частности для системы без восстановления вероятность безотказной работы Pрез(t) равна:
где P(t) - вероятность безотказной работы одной ЭВМ, а m - число ЭВМ в системе. Так, если P(t) = 0,9, а m = 2 (используется дублирование), то Pрез(t) = 0,99. Для восстанавливаемых систем и при m = 3...4 резервирование позволяет достичь характеристик, близких к идеальным.
Однако, резервирование неэкономично, так как объем оборудования возрастает в m раз, а производительность остается на уровне одной ЭВМ. Такую систему нельзя назвать и параллельной, поскольку в последней каждая ЭВМ выполняет независимую работу. Значительно эффективнее поэлементное резервирование, которое прямолинейно реализуется структурой многопроцессорной ЭВМ.
Пусть многопроцессорная ЭВМ содержит m одинаковых процессоров, l из которых являются избыточными. Избыточный процессор полноценно заменяет любой из основных в случае отказа последнего, то есть реализуется плавающее резервирование. Каждый из основных процессоров выполняет независимую часть работы.
Пусть процессор имеет интенсивность отказов λ и интенсивность восстановления μ (μ = 1/Tμ , где Tμ - среднее время восстановления процессора). В этом случае средняя наработка на отказ многопроцессорной системы с l резервными элементами:
Так как 1/(mλ) - наработка на отказ неизбыточной ЭМВ, то при малых l выигрыш надежности избыточной ЭВМ будет:
В практически важных случаях μ/λ>>1, тогда G[μ/(mλ)]l. Для ЭВМ обычно μ/(mλ)≥100, то уже при l=2 или 3 наработка на отказ избыточной ЭВМ будет приближаться к границе долговечности.
Система с плавающим резервированием должна обладать способностью к реконфигурированию.
Все вышеприведенное относилось к системам управления реального времени, которые можно определить как двухпозиционные системы: работает - не работает. Именно для таких систем основной характеристикой функционирования является надежность.
Информационно-вычислительные системы являются многопозиционными. Функции, выполняемые этими системами, можно разделить на основные и второстепенные. Если отказ одного из элементов делает невозможным выполнение одной из второстепенных функций, это не препятствует дальнейшему функционированию системы. Если же отказ затрагивает исполнение основной функции, то в результате автоматической реконфигурации выполнение этой основной функции передается на оставшиеся работоспособные элементы (возможно, с вытеснением второстепенных функций). В таких системах возможен отказ более чем одного элемента при сохранении работоспособности системы. После восстановления отказавших элементов система будет выполнять функции в полном объеме. Восстановление производится в процессе функционирования системы.
Системы, обладающие вышеуказанными свойствами, называют отказоустойчивыми (толерантными, "живучими").
Очевидно, для отказоустойчивых систем не подходит понятие отказа в вышеописанном случае, а надежность не является основным показателем эффективности. В таких системах отказом следует считать такой отказ элементов системы (в общем случае многократный), который вызывает поражение одной из основных функций. Что касается эффективности, то для информационно-вычислительных систем одним из основных ее показателей является производительность, которую можно определить выражением:
где Vc - средняя производительность системы, V - производительность одного элемента системы (процессора), m - максимальное число элементов в системе, i - число элементов в конфигурации, pi - вероятность этой конфигурации.
Системы с восстановлением имеют существенно лучшее распределение вероятностей pi, чем системы без восстановления.
Частным случаем отказоустойчивых систем являются системы с постепенной деградацией, в которых ремонт и восстановление невозможны или по каким-либо причинам нецелесообразны. Такие системы продолжают функционировать до тех пор, пока число работоспособных элементов не достигнет минимально допустимого уровня.
Центральным качеством надежных и отказоустойчивых систем является автоматическая реконфигурация. Реконфигурация возможна, если в многопроцессорной ЭВМ имеются аппаратные и программные средства контроля и диагностики, реконфигурации и повторного запуска системы после отказа (рестарта).
Средства контроля могут быть реализованы аппаратным, программным или смешанным способом. Аппаратные средства контроля предназначены для контроля передачи информации и кон-троля правильности выполнения арифметико-логических операций.
Контроль путей пересылки информации (память - АЛУ, память - ВнУ и др.) производится на основе избыточного кодирования (коды Хэмминга, Грея и др.). Особенное распространение имеет простой код с проверкой четности, требующий только одного дополнительного разряда на блок двоичных разрядов (обычно восьми). Эти же методы и дублирование блоков используется для контроля операций в АЛУ. Аппаратный контроль выполняется в темпе основных вычислений, что и является основным его достоинством.
Программный контроль не требует дополнительного оборудования, однако он выполняется с задержкой во времени. К программным методам контроля относятся тестовый и программно-логический контроль. Тестовый контроль выполняется периодически, либо при наличии свободного времени в ЭВМ, либо после обнаружения отказа другими средствами. В этом случае тестовый контроль частично выполняет функции диагностики. Примерами программно-логического контроля являются: двойной просчет, решение задачи по основному и упрощенному алгоритму, проверка предельных значений переменных и др.
Аппаратной основой реконфигурации является наличие развитой системы коммутации, позволяющей исключать из структуры многопроцессорной ЭВМ неисправные элементы в случае отказов и устанавливать новые связи между исправными элементами. Разработано большое количество типов коммутаторов. Наиболее перспективными являются коммутаторы типа многомерный куб. Следует отметить, что коммутаторы являются неотъемлемыми элементами как параллельных, так и отказоустойчивых ЭВМ.
К системному и прикладному программному обеспечению отказоустойчивой ЭВМ предъявляются следующие требования:
В наибольшей степени этим условиям удовлетворяют параллельные ЭВМ типа МКМД с децентрализованным управлением.
Для обеспечения рестарта в процессе вычислений необходимо создавать контрольные точки, то есть запоминать результаты вычислений. Рестарт осуществляется с ближайшей контрольной точки. Чем чаще устанавливаются контрольные точки, тем меньше времени будет потрачено на повторение вычислений в процессе рестарта, однако создание контрольных точек также требует дополнительного времени.
Составлено по материалам книги Г.И. Шпаковский. Организация параллельных ЭВМ и суперскалярных процессоров