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