Презентация проекта Балансировка загрузки Учебная лаборатория 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 систем, и т.п. Вопросы