воскресенье, 7 сентября 2008 г.

[Проекты] ОРСВМ... Или "Компьютер - это сеть" Sun Microsystem

Перечитывая свои публикации проекта "КС2Мх" и снова обдумывая цели и задачи понял что вычислительных мощностей 8-разрядного 2МГц-го процессора i8080 мне не хватит для нормальной (в режиме реального времени) работы модуля и поддержки в нем системы журнала вычислений и задач (которые появились в нем недавно в связи с тем, что проект переориентирован на отказоустойчивые системы вычислений). Кроме того устаревшие ИМС превысят все разумные пределы по потребляемой мощности. А затраты на питание очень хочется свести к минимально разумным.

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

А также в модель устройства мультипроцессорного модуля снова внесены существенные изменения. Это идея распределенных вычислителей, т.е. сети разнородных микропроцессорных устройств предоставляющих свои свободные ресурсы для удаленного расчета задач. Тем самым появляется возможность максимально эффективного использования доступных микропроцессорных систем, т.е. грубо говоря кофемолка, телевизор, пылесос и компьютер могут вместе трудиться на общей задачей, например расчитывать физику или 3D-сцену в вашей любимой игре. И при этом должно быть совсем не важно на какой конкретно микропроцессорной архитектуре построено устройство, какая ОС им управляет и по каким каналам связи оно нам доступно.

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

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

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

Вычислителем может быть любое микропроцессорное устройство обладающее соединением с сетью и поддерживающим определенный набор проколов. Например, планируется помимо создания мультипроцессорного модуля и собственной ОС (под архитектуру ARM или Power), также написать драйвера для платформы x86 под ОС Windows (NT) и Linux, с поддержкой всех ролей сети.

Для правильного функционирования в сети должны присутствовать все модули, хотя минимально необходимо, только первые три... но тот же контролер безопасности существенно поможет в случае наличия вредоносных модулей или ошибок программно-аппаратного характера. Также контролер безопасности координирует действия "местных" управляющих модулей, следит за динамической конфигурацией сети, ведет учет системных задач и осуществляет синхронизацию с другими контролерами безопасности в сети (в сети могут единовременно существовать множество контролеров, из них выбирается главный синхронизирующий всех, остальные работают каждый в своей зоне ответственности + в фоновом режиме дублируют главный, чтобы перехватить управление в случае ЧП)...
рис 1.
все системы в норме.
зеленый - активный (главный) контролер безопасности;
желтый - работающий в фоне;
ИМ - исполнительный модуль;
КБ - контролер безопасности;
БП - банк памяти.
(соответствующем цветом помечены зоны ответственности каждого КБ... зеленая - глобальная, зона главного КБ; желтая - локальная.)

рис.2
выход из строя одного КБ

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

По этой же модели планирую теперь создать и сам мультипроцессорный модуль. Но на новой аппаратной платформе. В качестве главного процессора рассматриваются 32-х разрядные версии ARM или Power с тактовой частотой выше 100-200МГц.

В связи с существенной переориентацией проекта он вновь переименован из КС2Мх в ОРСВМ (Отказоустойчивая Распределенная Сеть Вычислительных Модулей). Что касается сроков реализации, то экспериментальный образец сети из мультипроцессорного модуля и 2- х компьютеров (с ОС Windows и Linux) планирую создать к 2010 году... Конец этого года и начало 2009 будет посвящен более подробной отработке теории и накоплению необходимо оборудования.

Комментариев нет: