BC/NW 2012; №2 (21):2.4

 

БАЗОВАЯ МОДЕЛЬ И АРХИТЕКТУРА ВИРТУАЛЬНОЙ МНОГОМАШИННОЙ ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЫ

 

Калинина Г.А., Мороховец Ю.Е., Шполянский М.И.

 

Сложность вычислительных систем (ВС) постоянно растет, поэтому существующие методы их создания, не основанные на применении современных моделей вычислений, уже не могут обеспечить требуемых показателей качества в приемлемые сроки при разумных затратах сил и средств [1, 2].

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

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

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

Исходным понятием базовой модели является понятие схемы вычислений. Схема состоит из вычислительных компонентов и каналов связи, обеспечивающих передачу типизированных сообщений с выходов одних компонентов на входы других компонентов. Пример схемы, отвечающей базовой модели, показан на рис. 1. Здесь кружками показаны вычислительные компоненты, точками на границах кружков – их входы и выходы. Стрелками, соединяющими выходы и входы компонентов, обозначены буферизированные каналы связи. Буферы каналов связи показаны точками, находящимися в середине соответствующих стрелок. Предполагается, что буферы имеют ограниченный размер.

Рис. 1. Пример схемы вычислений

Функционирование схемы децентрализовано – каждый компонент работает независимо от других компонентов по собственной, заложенной в него программе. Исходная информация помещается в память компонентов до начала работы схемы. Буферы каналов связи перед началом вычислений пусты. Вычисление заканчивается, когда останавливаются все компоненты схемы. Результаты извлекаются из памяти компонентов после их остановки.

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

Для определения функций, образующих коммуникационный интерфейс компонентов, воспользуемся рис. 2. На рис. 2 выделены вход x и выход y, а также ассоциированные с ними буфер входного канала   и буфер выходного канала , соответственно.

Рис. 2. Вычислительный компонент с входными и выходными буферами

Вызовы функций, обеспечивающих прием сообщений на вход x и их выдачу на выход y, имеют следующий вид:

?bufIpt(x) – логическая функция, проверяющая наличие сообщений в буфере bx. Если сообщения в   есть, то ?bufIpt(x) = true, в противном случае ?bufIpt(x) = false;

?bufOpt(y) – логическая функция, проверяющая наличие мест для записи сообщений в буфере   . Если места в    есть, то ?bufOpt(y) = true, в противном случае ?bufOpt(y) = false;

!bufIpt(x) – функция, останавливающая выполнение компонента до появления сообщений в буфере . Если сообщения в  есть, управление сразу же возвращается в точку, следующую за вызовом функции bufIpt;

!bufOpt(x) – функция, останавливающая выполнение компонента до появления мест в буфере   . Если места в  есть, управление сразу же возвращается в точку, следующую за вызовом функции bufOpt;

^bufIpt(x) – функция, инициирующая прием сообщения из непустого буфера   на вход x;

^bufOpt(y) – функция, инициирующая выдачу сообщения в непереполненный буфер     с выхода y;

?ipt(x) – логическая функция, проверяющая завершение приема сообщения из буфера   на вход x. Если вход x готов к использованию (прием сообщения завершен), то ?ipt(x) = true, в противном случае ?ipt(x) = false;

?opt(y) – логическая функция, проверяющая завершение выдачи сообщения в буфер    с входа y. Если выход y готов к использованию (выдача сообщения завершена), то ?opt(x) = true, в противном случае ?opt(x) = false;

!ipt(x) – функция, останавливающая выполнение компонента до завершения приема сообщения из буфера  на вход  x. Если вход x уже готов, управление возвращается в точку, следующую за вызовом функции !ipt;

!opt(y) – функция, останавливающая выполнение компонента до завершения выдачи сообщения в буфер  с выхода y. Если выход y уже готов, управление возвращается в точку, следующую за вызовом функции !opt.

Для реализации представленных выше схем вычислений предлагается использовать семейство многомашинных виртуальных ВС, основанное на применении кольцевого ассоциативного коммуникатора [3]. Обобщенная структура виртуальной ВС показана на рис. 3.

Рис. 3. Обобщенная структура виртуальной ВС

Здесь меткой M обозначены вычислительные машины, меткой BM – буферные памяти машин, COM – коммуникатор.  Квадратами, размещенными на границе коммуникатора, показаны его порты доступа.  

Литература

1.     Платунов А.Е. Роль вычислительных моделей и механизмов в проектировании встроенных систем // Научно-технический вестник СПбГУ ИТМО. Выпуск 14. Информационные технологии, вычислительные и управляющие системы. – СПб.: СПбГУ ИТМО, 2004. – С. 164-169

2.     Климов А.В., Окунев А.С., Степанов А.М. Проблемы развития модели вычислений dataflow и особенности ее архитектурной реализации. – Интернет-публикация Института точной механики и вычислительной техники http://www.ipmce.ru/about/press/articles/ problem_dataflow/ (ссылка верна на 1 июня 2012 г.).

3.     Мороховец Ю.Е., Шполянский М.И. Коммуникатор многопроцессорной вычислительной системы. // Труды XIX Международной НТК «Информационные средства и технологии», Том 1. – М.: Издательский дом МЭИ, 2011. – С. 288-290.