здесь - Parallels

advertisement
Презентация проекта
Балансировка загрузки
Учебная лаборатория SWsoft на ФИТ НГУ
Лидер проекта: Лобачёв Иван
Разработчики: Ковалёв Дмитрий, Арискин Дмитрий,
Чеботарёв Сергей
Постановка задачи
Провести исследовательскую работу
 Разработать систему для
балансировки загрузки кластера

Задача балансировки загрузки
Дано:
 Множество вычислительных узлов, объединенных в сеть
 Множество взаимодействующих параллельных задач
Нужно:
 С наибольшей эффективностью выполнить задачи на узлах.
Одно из решений:
 Применить балансировку загрузки
Балансировка загрузки - равномерное распределение задач по
узлам во время работы системы
Область применения

Многопроцессорные вычислительные
системы типа кластер
Подзадачи:

Сбор статистики
Исследования по теме: Иван Лобачев
Разработка: Иван Лобачев и Дмитрий Арискин

Алгоритм балансировки
Исследования по теме: Дмитрий Ковалёв
Разработка: Сергей Чеботарёв

Перенос процессов
Исследование по теме: Валерий Гилёв

Визуализация
Разработка: Дмитрий Ковалёв
Алгоритм балансировки
загрузки многопроцессорной
системы
Чеботарёв Сергей
Граф процессов

Система представляется в виде графа процессов
(или задач), которые взаимодействуют между
собой через потоки данных
Работа системы
Истоки

Сток
Компоненты системы:




Истоки данных
Сток данных
Задачи
Потоки данных
Порядок работы задачи
 Ожидание входных данных со всех входящих
потоков
 Обработка данных
 Отправка данных в выходные потоки с
проверкой того, что каждый поток свободен
 Переход в состояние ожидания входных данных
Порядок работы потока
 Ожидание данных с отправителя
 Передача данных в приёмщик
 Переход в состояние ожидания данных
«Прогон» системы



Передаём данные из истоков
В цикле вычисляем каждое последующее
состояние системы, исходя из предыдущего
После того как сток получает все данные,
система завершает работу
Результаты «прогона»
Task 0
(Begin1,End1)
Task 1
(Begin5,End5)
Task 2
(Begin6,End6)
Task 3
(Begin7,End7)
Task 4
(Begin8,End8)
(Begin2,End2)
(Begin3,End3)
…..
(Begin4,End4)
Распределение запусков по
процессорам
Распределение запусков по алгоритму
расписания
Сокращение числа процессоров за счёт
переноса задач
Proc 0
(PID,Begin,End)
(PID,Begin,End)
(PID,Begin,End)
(PID,Begin,End)
Proc 1
(PID,Begin,End)
(PID,Begin,End)
(PID,Begin,End)
(PID,Begin,End)
Proc 2
(PID,Begin,End)
(PID,Begin,End)
(PID,Begin,End)
(PID,Begin,End)
Proc 3
(PID,Begin,End)
(PID,Begin,End)
(PID,Begin,End)
(PID,Begin,End)
Proc 4
(PID,Begin,End)
(PID,Begin,End)
(PID,Begin,End)
(PID,Begin,End)
Сбор статистики
Арискин Дмитрий
Сбор статистики

Информация о текущем состоянии системы
 Загруженность узлов
 Характеристики отдельной задачи
 Топология связей между задачами

История жизни системы
 Время начала и окончания процесса, эффективное
процессорное время
 Время возникновения и исчезновения связи
Реализация
Локальный сборщик
 Глобальный
сборщик
 Взаимодействие
через SNMP

Main Server
SNMP
Local Machines
Локальный сборщик

Информация о процессах
– Pid / name
– Открытые сокеты
– Процессорное время

Интерфейс /proc
+ Простота доступа
– Нехватка нужной
информации

Модуль расширения
SNMP
MIB
Local
Collector
Snmp Agent
?
/proc
/dev/kmem
Task1
kernel
Task2
Глобальный сборщик




Сбор информации с
нескольких хостов
Анализ и обработка
информации
Отчет о текущем
состоянии системы
Ведение лога
Центральный компьютер
Statistics
Collector
Log
Current State
Результаты


Система обеспечивает контроль текущего
состояния системы и данные для профилирующего
алгоритма.
Недостатки системы
– Нехватка информации
– накладные расходы
Планы
Оптимизация
 Дальнейшее расширение базы SNMP

Визуализация
Ковалёв Дмитрий
Визуализация
Отладка системы
 Мониторинг текущего состояния
системы

Визуализатор
Возможности
Автоматическое и ручное обновление
графа
 Перемещение и выделение вершин
 Раскрашивание вершин
 Изменение масштаба изображения

Монитор загрузки
Планы
Повышение информативности и
функциональности
 Визуализатор как элемент управления
 Перенос приложения на Mono

Результаты работы

Налажен механизм сбора статистики. В данный момент
доступна информация
–
–
–
–



Загрузка процессора
Загрузка процессора каждым процессом
Топология связей между процессами
Время жизни процессов и связей
Написан визуализатор собираемых данных
Найдено и проверено средство для переноса процессов (Mosix)
Написан уникальный алгоритм балансировки загрузки
Планы на будущее
Дальнейшее расширение базы SNMP,
добавление недостающих данных
 Внедрение в MPI
 Добавление возможности
балансировки Web серверов, Grid
систем, и т.п.

Вопросы
Download