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

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

вычислительную среду

Петрищев Д.В. Институт проблем информатики РАН, г. Москва, Россия,

the_dip @таП. га

Поскольку научно-технический потенциал государства в значительной степени определяется уровнем развития высокопроизводительных вычислительных систем, актуальной задачей является поиск эффективных методов организации вычислений в многопроцессорных вычислительных системах. В отделе «Проблем построения информационно-вычислительных систем высокого параллелизма» Института проблем информатики Российской академии наук разработаны новые принципы организации вычислительного процесса и на их основе создана перспективная вычислительная система с автоматическим распределением ресурсов (ВСАРР), использующая модель вычислений, управляемую потоком данных, с динамически формируемым контекстом вычислений [1].

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

Системное программное обеспечение (ПО) сервера приложений включает в

себя:

• ПО клиента (выполняется на ПЭВМ пользователя).

• ПО сервера (выполняется на хост-машине).

Сервер приложений в целом выполняет следующие основные функции:

• Организация доступа пользователей к ВСАРР по локальной или глобальной сети.

• Учёт и хранение прикладных программ, а также файлов с исходными данными и результатами вычислений для того, чтобы пользователи могли обмениваться результатами своей работы.

• Организация многопользовательского, многозадачного режима работы ВСАРР.

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

• ВСАРР обладает большой вычислительной мощностью, поэтому имеет смысл использовать её в режиме коллективного доступа.

• ВСАРР не обладает полнофункциональными средствами ввода-вывода, поэтому необходимы специальные средства её интеграции в традиционную вычислительную среду.

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

В этом плане, из операционных систем с монолитным ядром наибольший интерес представляет Linux. Её ключевые особенности таковы:

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

• Адресное пространство разбито на четыре сегмента: код ядра, данные и стек ядра, код программ пользователя, данные и стек программ пользователя. Ядро скомпилировано для выполнения в режиме совпадения логических и физических адресов. Разделение адресного пространства между программами пользователя происходит с помощью страничной адресации. Поддерживаются трёхуровневая иерархия таблиц страниц, откачка и подкачка страниц, отображение объектов (например, файлов) на адресное пространство процесса, разделяемая между процессами память.

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

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

• Поддерживаются символьные, блочные и сетевые внешние

U /—i с» • • и 1 и

устройства. С каждым устройством ассоциирован определённый файл. Драйвера устройств являются частью ядра и поддерживают определённый интерфейс с другими частями ядра.

• Поддерживаются более пятнадцати файловых систем. Используется механизм Virtual File System (VFS) - промежуточный уровень абстракции, который позволяет подключать дополнительные файловые системы по мере необходимости.

В целом, операционная система Linux представляется достаточно сложной. Её монолитная архитектура делает перенос на потоковую архитектуру весьма

• • и с» /—i с» U

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

Ключевые особенности микроядра Mach таковы:

• Выполняющиеся программы организованы в задачи и нити.

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

• Поддерживается работа с памятью: задача может выделять регионы в своём адресном пространстве, задача может обращаться к адресному пространству другой задачи, задача может отобразить некоторый

объект (например, внешнее устройство) на определённый регион своего адресного пространства.

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

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

Ключевые особенности микроядра L4 таковы:

• Выполняющиеся программы организованы в нити. Такие понятия, как

"задача", "процесс" и т. п., на уровне микроядра не предусмотрены (от ft ft

них осталась только возможность расположить несколько нитей в общем адресном пространстве).

• Используется концепция виртуальных регистров. Это статические объекты, которые есть у каждой нити. Реализация зависит от аппаратной платформы. Thread Control Registers (TCR) - регистры для быстрого обмена управляющей информацией между нитью и микроядром. Message Registers (MR) - регистры для межпроцессной коммуникации. Buffer Registers (BR) - вспомогательные регистры для межпроцессной коммуникации.

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

• Адресное пространство разбито на регионы. Регион состоит из страниц. Права доступа - чтение, запись, выполнение - задаются для всего региона.

• Поддерживается межпроцессная коммуникация. Коммуникация синхронная, небуферизованная. То есть, системные вызовы посылки и приёма сообщения являются блокирующими (с возможностью таймаута). Сообщение содержит заголовок и данные (нетипизированные и типизированные). Нетипизированные данные никак не интерпретируются микроядром. Типизированные данные -строки, регионы.

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

Функции микроядра можно разбить на следующие группы:

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

• Функции для работы с аппаратурой (например, функция инициализации контроллера прерываний или функция вывода символа на экран).

• Вспомогательные "платформонезависимые" функции (например, функция форматированного вывода строки символов на экран).

Каждая из этих групп функций должна переноситься на потоковую архитектуру по-своему:

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

• Функции для работы с аппаратурой также должны быть разработаны заново.

• Вспомогательные "платформонезависимые" функции переносятся практически без изменений.

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

1. Бурцев В.С. Новые принципы организации вычислительных процессов высокого параллелизма // Материалы Международной научно-технической конференции «Интеллектуальные и многопроцессорные системы - 2003». Т. 1. Таганрог: Изд-во ТРТУ, 2003.

2. Петрищев Д.В., Ширай А.Е. Программные аспекты интеграции вычислительной системы с нетрадиционной архитектурой в традиционную вычислительную среду // Журнал «Искусственный интеллект» 3'2004. Донецк: Изд-во ИПИИ, 2004.