
- •Билет №1
- •1.Составные части и свойства распределенной системы
- •2. Удаленный сервер
- •Билет №2
- •1. Параллелизм в распределенной системе
- •2. Реализация локального сервера
- •Билет №3
- •1. Закон Амдала
- •2. Заместитель/заглушка. Компилятор midl
- •Билет №4
- •1. Ускорение решения задачи в распределенной параллельной системе
- •2. Язык idl
- •Билет №5
- •1. Последовательные операции. Параллельные операции. Число процессоров.
- •2. Назначение данных на узлы распределенной системы. Модель назначения объектов на узлы. Сокращение трафика в каналах передачи данных.
- •Билет №6
- •1. Планирование параллельной распределенной обработки данных.
- •2. Модель назначения объектов на узлы. Частоты запросов к объектам. Длины объектов. Производительность узлов. Производительность каналов передачи данных.
- •Билет №7
- •1. Параллелизм в пространстве и во времени (конвейерный параллелизм)
- •2. Среднее время обработки одного запроса. Минимизация времени
- •Многошаговое планирование на базе asap
- •1 31 6 Типы операций:
- •Билет №8
- •1. Синхронное и асинхронное планирование.
- •2. Время обработки всех запросов к объектам. Загрузка узлов. Загрузка каналов передачи данных.
- •Билет №9
- •1. Планирование при ограничениях на ресурсы, время, достижимость
- •2. Локальный вызов процедуры. Маршалинг Локальный вызов процедуры
- •Маршалинг
- •Билет №10
- •Стратегия планирования asap Алгоритм планирования asap (как можно раньше)
- •2. Серверы в exe.
- •Билет №11
- •1. Стратегия планирования alap
- •2. Включение и агрегирование компонентов
- •Стратегия планирования «Группировка доминирующей последовательности» (Dominant Sequence Clustering - dsc)
- •Билет №12
- •1. Стратегия спискового планирования
- •Регистрация компонента в реестре
- •Билет №13
- •1. Многошаговое планирование
- •2. Функции CoGetClassObject и DllGetClassObject и их использование
- •Билет №14
- •1. Цепочечное планирование
- •2. Интерфейс iClassFactory
- •AБилет №15
- •1. Граф предшествования и граф распараллеленности операций
- •2. Фабрика класса
- •Билет №16
- •1. Свертывание графа распараллеленности операций
- •2. Использование динамической библиотеки. Экспорт функций из библиотеки. Загрузка и выгрузка dll
- •Билет №17
- •1. Синтез последовательно параллельного плана
- •2. Динамическая компоновка. Библиотеки dll. Создание динамической библиотеки
- •Билет №18
- •1. Модель разнородной распределенной системы
- •2. Управление временем жизни компонента. Подсчет ссылок
- •Билет №19
- •1. Сведение планирования к задаче целочисленного линейного программирования
- •2. Запрос интерфейса. Интерфейс iUnknown. Реализация интерфейса
- •1 31 6 Типы операций:
- •Билет №20
- •1. Задача минимизации ресурсов при заданном времени реализации плана
- •2. Таблица виртуальных функций
- •Билет №21
- •1. Целочисленное линейное программирование. Пример. Целевая функция. Система ограничений
- •Многошаговое планирование на базе asap
- •Билет №22
- •1. Планирование выполнения графа задач на узлах распределенной системы с учетом обмена данными
- •2. Теория интерфейсов
- •Неизменность интерфейсов
- •Билет №23
- •1. Граф задач. Назначение задач на процессоры. Обмен данными. План решения задач на каждом процессоре. Планирование выполнения графа задач на узлах распределенной системы с учетом обмена данными
- •Планирование графа задач
- •2. Языки и инструменты программирования распределенной обработки данных.
- •1 31 6 Типы операций:
- •Билет №24
- •1. Стратегии планирования на графе задач. Планирование графа задач
- •2. Процессы и потоки. Многопоточные приложения. Модель многопоточных приложений
- •Билет №25
- •1. Стратегия планирования «Наиболее ранняя задача первая» (Earliest Task First - etf). Стратегия планирования «Наиболее ранняя задача первая» (Earliest Task First - etf)
- •2 . Инкапсуляция. Полиморфизм. Виртуальные функции. Чисто абстрактные базовые классы. Множественное наследование. Инкапсуляция.
- •Полиморфизм и виртуальные функции
- •Чисто абстрактные базовые классы
- •Множественное наследование классов. Компоненты
- •1 31 6 Типы операций:
- •Билет №26
- •1. Стратегия планирования «Зануление дуг» (Edge Zeroing - ez). Стратегия планирования «Зануление дуг» (Edge Zeroing - ez)
- •2. Преимущество использования компонентов. Требования к компонентам. Преимущества использования компонентов
- •Требования к компонентам
- •Билет №27
- •2. Модель компонентных объектов com.
- •1 31 6 Типы операций:
- •Билет №28
- •1. Стратегия планирования «Управление мобильностью» (Mobility Directed - md). Стратегия планирования «Управление мобильностью» (Mobility Directed - md)
- •2. Интерфейс передачи сообщений (Message Passing Interface - mpi). Интерфейс передачи сообщений mpi
- •Билет №29
- •1. Граф взаимодействия задач. Граф разнородной сети. Планирование решения задач в разнородной распределенной системе
- •Постановка проблемы
- •2. Интерфейс OpenMp. Интерфейс OpenMp
- •Билет №30
- •Постановка проблемы
- •Алгоритм а* оптимального назначения задач на процессоры
- •2. Технологический стандарт написания распределённых приложений corba. Технологический стандарт corba
Алгоритм а* оптимального назначения задач на процессоры
Алгоритм А* реализует стратегию поиска первого наилучшего. Алгоритм широко используется для решения задач искусственного интеллекта. Он может использоваться как для древовидных так и не древовидных графов. Обход дерева поиска оптимального назначения задач на процессоры алгоритм начинает с корня. Получаемое начальное решение проблемы можно назвать нулевым. Промежуточной нетерминальной вершине дерева поиска соответствует частичное решение проблемы (одни задачи назначены, другие нет), вершине-листу (терминальной вершине) соответствует полное решение (все задачи назначены на процессоры). Стоимостная функция f(d) вычисляется для каждой вершины d дерева поиска. Значением f(d) является оценочная стоимость наиболее «дешевого» решения от корня к листу, проходящего через вершину d. Эту стоимость можно записать в виде:
, (2)
где g(d) – стоимость решения, ассоциируемая с путем от корня дерева до вершины d; b(d) – нижняя граница стоимости решения, ассоциируемого с путем от вершины d до одного из листьев дерева.
Под раскрытием вершины понимается генерация всех ее дочерних вершин в дереве поиска и вычисление значения функции f для каждой дочерней вершины. Сгенерированные вершины упорядочиваются по убыванию значения функции стоимости. Алгоритм поддерживает упорядоченный список сгенерированных вершин, называемый OPEN. Поскольку из списка выбирается всегда первая вершина с наименьшей стоимостью, алгоритм гарантирует нахождение оптимального решения путем последовательного раскрытия вершин.
Для проблемы поиска оптимального назначения задач на процессоры имеет место следующее:
пространством поиска является дерево;
начальная вершина (корень) дерева описывает нулевое назначение задач на процессоры;
промежуточные (нетерминальные) вершины описывают частичные назначения задач на процессоры;
вершины-листья (терминальные) описывают полные назначения.
При расчете значения функции f(d), слагаемое g(d) есть стоимость частичного назначения задач на процессоры в вершине d, т.е. частичная загрузка наиболее загруженного процессора p, определяемая посредством соотношения (1). Для вычисления b(d) используются два подмножества задач: подмножество Tp и подмножество U. Подмножество Tp включает задачи, уже назначенные на процессор p. Подмножество U включает задачи, еще не назначенные на процессоры и имеющие одну или более связей с задачами из множества Tp. Каждая задача ti из U будет назначена на процессор p или другой процессор q, имеющий прямую связь с p. Следовательно, мы можем ассоциировать два вида стоимости с каждым назначением ti: либо Xip (время решения ti на p), либо сумму Hpi времен обмена данными всех задач из Tp, имеющих связи с задачей ti. С использованием минимального значения стоимостей двух видов
cost(ti) = min (Xip, Hpi) (3)
принимается решение о назначении или не назначении ti на p. Нижняя граница b(d) стоимости назначения оставшихся вершин на процессоры оценивается выражением:
. (4)
на каждом шаге работы алгоритма А*.
Описание алгоритма А* дано на рис.1. Особенностью этого описания является генерация случайного начального назначения задач на процессоры. Начальное значение позволяет сократить число раскрываемых вершин в дереве поиска и тем самым ускорить нахождение оптимального значения.
Сгенерировать случайное решение Пусть S_Opt есть стоимость этого решения Сгенерировать корневой узел s дерева поиска и построить начальное состояние списка OPEN Присвоить f(s)=0 Repeat Выбрать узел d с минимальным значением f(d) if (d не есть полное решение) Сгенерировать дочерние вершины узла d for каждой дочерней вершины d’ do if (d’ не находится на нижнем уровне дерева поиска) f(d’) = g(d’) + b(d’) else f(d’) = g(d’) end if if (f(d’) ≤ S_Opt) Вставить d’ в список OPEN end for end if if (d является полным решением) Вывести решение d Until (d является решением) or (список OPEN пустой) |
Рис.1. Алгоритм А* оптимального назначения задач на процессоры