Линчик Михаил Игоревич, 318 группа, ФРТК, МФТИ Научный руководитель: Морозов Ю.В.

реклама
Линчик Михаил Игоревич,
318 группа, ФРТК, МФТИ
Научный руководитель: Морозов Ю.В.
 В настоящее время многомашинные
вычислительные комплексы (ММВК) на
базе микропроцессоров ЗАО «МЦСТ»
представляется пользователю как
набор отдельных машин.
 Статическое распределение задач и
неэффективная загрузка.
реализовать программный продукт,
учитывающий особенности ММВК, который
создаёт пользователю этого ММВК
видимость работы с единым
вычислительным ресурсом с автоматическим
и динамическим распределением задач.
память
память
каналы
обмена
данными
память
память
Узел #1
Узел #2
Узел #3
Узел #4
Пр-во пользоват.
Пр-во пользоват.
Пр-во пользоват.
Пр-во пользоват.
Аппаратура
Аппаратура
Аппаратура
Аппаратура
switch
 сложность разработки;
 сложность поддержки;
 проблемы переносимости;
 необходимость создания окружения,
среды разработки программ;
Пр-во пользоват.
Пр-во пользоват.
Главный
Узел #1
Узел #2
Аппаратура
Аппаратура
Пр-во пользоват.
Узел #3
Аппаратура
 необходимость портирования
библиотек межпроцессорного
взаимодействия;
 адаптация старого и создание нового
ПО с использованием библиотек;
 специальные Unix-подобные ОС для
ускорения работы;
Пр-во пользоват.
Узел #4
Аппаратура
Пр-во пользоват.
Главный
Узел #1
Пр-во пользоват.
Узел #2
Аппаратура
запросы
Аппаратура
Пр-во пользоват.
Узел #3
Аппаратура
 статическое распределение нагрузки;
Пр-во пользоват.
Узел #4
Аппаратура
Узел #2
Пр-во пользоват.
кс
Узел #1
Аппаратура
Пр-во пользоват.
кс
Пр-во пользоват.
СЕТЬ
кс
Аппаратура
Аппаратура
Пр-во пользоват.
 Ни один пакет не работает со
Sparc-совместимой архитектурой
 Ни один пакет не позволяет в
полной мере использовать
возможности RDMA
Узел #3
кс
Аппаратура
Узел #4
Создать программное обеспечение, основанное на
механизме миграции процессов и организующее
кластер с балансировкой нагрузки из узлов ММВК,
которые:
 имеют Sparc-совместимый процессор и
оперативную память
 соединены посредством Ethernet или
RDMA каналов
 находятся под управлением ОС Linux.
Узел №1
Узел №2
Proc 5
Proc 4
Proc 3
Proc 2
Proc 1
Proc 2
Proc 1
Proc 4
Proc 3
Proc 2
Proc 1
Узел №3
Proc 1
Узел №4
процессы
процессы
daemon+управление
Системные вызовы
Подсистема
управления
процессами
Файловая
подсистема
устройства
драйвер
драйвер
сетевой
драйвер
ф-сть для
работы с
процессами
драйвер
драйвер
драйвер
драйвер
Подсистема
ввода/вывода
программа управл.
ОС
Управление
do_ioctl()
{
…
}
Админ.
Блок миграции
Процессы
Proc1
Приёмник
Proc2
Proc3
Блок
восстановл.
процесса
Очередь
пакетов
sk_buff
sk_buff
Интерфейс взаимод.
с драйвером
dev_queue_xmit()
{
…….
}
netif_rx()
{
…….
}
Драйвер
 Внесение изменений в ядро:
• установка дополнений к коду уже
существующих файлов ядра;
• добавление новых файлов в
существующие каталоги ядра;
• внесение изменений в файлы,
отвечающие за сборку (Makefile);
 Перекомпиляция и сборка ядра
 Подключение драйвера (модуля) к новому
ядру.
 Запустить драйвера с помощью
стандартной утилиты ifconfig up:
 старт нитей
(администратор, приёмник),
 регистрация в кластере,
 инициализация картины
кластера на данном узле
 Повторить для каждого узла
Структуры узлов
node_count
nodes
……………
proc_count
migr_procs
node_count
………..
address
* nodes
address
* nodes
address
* nodes
exproc_count
exproc_count
exproc_count
* exprocs
* exprocs
* exprocs
improc_count
improc_count
improc_count
* improcs
* owner
* improcs
* owner
* improcs
* owner
local_pid
remote_pid
* procs
* data_unit
* owner
local_pid
remote_pid
* procs
* data_unit
* owner
Структуры процессов
local_pid
remote_pid
* procs
* data_unit
* owner
proc_count
Информационная
единица
Структуры
процессов
Header
template
1) Инициализация информационной
* cur_skb
full_length
……
sk_buff
* owner
Ethernet CloseNet
заголовок заголовок
Данные
единицы (шаблон заголовка и др. поля);
2) Добавление данных: автоматически
добавляются пакеты для расширения
объёма;
3) Завершение работы с инф. единицей:
сформированные пакеты отправляются.
1) Полученные пакеты автоматически
добавляются к информ. единице
процесса и упорядочиваются;
2) Последовательное извлечение данных
(в порядке заполнения);
3) Завершение работы с инф. единицей:
удаление пакетов.
 Передача процесса на другой узел:
• отправить запрос,
• остановить процесс,
• переложить работу на процесс,
• удалить ненужные данные
 Удаленная работа
(исполнение системных вызовов на домашнем узле)
Запуск миграции (ioctl)
Узел #1
Подготовительные
операции
Отправка запроса
(сообщ.)
Узел #2
проверка возможности
принять процесс
переложить миграцию
на сам процесс
Передача процессом
своих данных
- нить-приёмник
- текущий процесс
отправить разрешение
на миграцию
создать новый процесс
и переложить работу по
заполнению на него
завершить заполнение
и запуститься
- код драйвера
Удалить ненужные
данные
Ждать удалённых
запросов
Отправить сообщение о
конце миграции
Узел #1
Узел #2
Процесс сделал
системный вызов и
перешёл в пр-во ядра
Собирает данные
Предварительная
обработка
Отправка запроса
Пробуждение процесса
Обработка запроса
процессом
Отправка результатов
Получение данных
Пробуждение процесса
- нить-приёник
- текущий процесс
Обработка данных
Завершение системного
вызова
 Исследованы различные кластерные технологии,
технологии поддержки распределённых вычислений и
модели ОС.
 Реализована миграция простого вычислительного
процесса (без зависимых от домашнего узла системных
вызовов) между узлами через ethernet каналы с
возможностью легко перейти на RDMA каналы.
 Проведены тесты на двух макетах процессоров R-500S.
 Спроектирована и находится в стадии исследования и
разработки полнофункциональная система миграции
процессов.
Скачать