
- •Билет №1
- •1.Составные части и свойства распределенной системы
- •2. Удаленный сервер
- •Билет №2
- •1. Параллелизм в распределенной системе
- •2. Реализация локального сервера
- •Билет №3
- •1. Закон Амдала
- •2. Заместитель/заглушка. Компилятор midl
- •Билет №4
- •1. Ускорение решения задачи в распределенной параллельной системе
- •2. Язык idl
- •Билет №5
- •1. Последовательные операции. Параллельные операции. Число процессоров.
- •2. Назначение данных на узлы распределенной системы. Модель назначения объектов на узлы. Сокращение трафика в каналах передачи данных.
- •Билет №6
- •1. Планирование параллельной распределенной обработки данных.
- •2. Модель назначения объектов на узлы. Частоты запросов к объектам. Длины объектов. Производительность узлов. Производительность каналов передачи данных.
- •Билет №7
- •1. Параллелизм в пространстве и во времени (конвейерный параллелизм)
- •2. Среднее время обработки одного запроса. Минимизация времени
- •Многошаговое планирование на базе asap
- •Билет №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
- •Билет №15
- •1. Граф предшествования и граф распараллеленности операций
- •2. Фабрика класса
- •Билет №16
- •1. Свертывание графа распараллеленности операций
- •2. Использование динамической библиотеки. Экспорт функций из библиотеки. Загрузка и выгрузка dll
- •Билет №17
- •1. Синтез последовательно параллельного плана
- •2. Динамическая компоновка. Библиотеки dll. Создание динамической библиотеки
- •Билет №18
- •1. Модель разнородной распределенной системы
- •2. Управление временем жизни компонента. Подсчет ссылок
- •Билет №19
- •1. Сведение планирования к задаче целочисленного линейного программирования
- •2. Запрос интерфейса. Интерфейс iUnknown. Реализация интерфейса
- •Билет №20
- •1. Задача минимизации ресурсов при заданном времени реализации плана
- •2. Таблица виртуальных функций
- •Билет №21
- •1. Целочисленное линейное программирование. Пример. Целевая функция. Система ограничений
- •Многошаговое планирование на базе asap
- •Билет №22
- •1. Планирование выполнения графа задач на узлах распределенной системы с учетом обмена данными
- •2. Теория интерфейсов
- •Неизменность интерфейсов
- •Билет №23
- •1. Граф задач. Назначение задач на процессоры. Обмен данными. План решения задач на каждом процессоре. Планирование выполнения графа задач на узлах распределенной системы с учетом обмена данными
- •Планирование графа задач
- •2. Языки и инструменты программирования распределенной обработки данных.
- •Билет №24
- •1. Стратегии планирования на графе задач. Планирование графа задач
- •2. Процессы и потоки. Многопоточные приложения. Модель многопоточных приложений
- •Билет №25
- •1. Стратегия планирования «Наиболее ранняя задача первая» (Earliest Task First - etf). Стратегия планирования «Наиболее ранняя задача первая» (Earliest Task First - etf)
- •2. Инкапсуляция. Полиморфизм. Виртуальные функции. Чисто абстрактные базовые классы. Множественное наследование. Инкапсуляция.
- •Полиморфизм и виртуальные функции
- •Чисто абстрактные базовые классы
- •Множественное наследование классов. Компоненты
- •Типы операций:
- •Билет №26
- •1. Стратегия планирования «Зануление дуг» (Edge Zeroing - ez). Стратегия планирования «Зануление дуг» (Edge Zeroing - ez)
- •2. Преимущество использования компонентов. Требования к компонентам. Преимущества использования компонентов
- •Требования к компонентам
- •Билет №27
- •2. Модель компонентных объектов com.
- •Билет №28
- •1. Стратегия планирования «Управление мобильностью» (Mobility Directed - md). Стратегия планирования «Управление мобильностью» (Mobility Directed - md)
- •2. Интерфейс передачи сообщений (Message Passing Interface - mpi). Интерфейс передачи сообщений mpi
- •Билет №29
- •1. Граф взаимодействия задач. Граф разнородной сети. Планирование решения задач в разнородной распределенной системе
- •Постановка проблемы
- •2 . Интерфейс OpenMp. Интерфейс OpenMp
- •Билет №30
- •Постановка проблемы
- •Алгоритм а* оптимального назначения задач на процессоры
- •2. Технологический стандарт написания распределённых приложений corba. Технологический стандарт corba
Билет №1
1.Составные части и свойства распределенной системы
Распределенная система - система, в которой обработка информации сосредоточена не на одной вычислительной машине, а распределена между несколькими компьютерами(процессами).
Существует шесть основных характеристик распределенных систем.
Совместное использование ресурсов. Распределенные системы допускают совместное использование как аппаратных (жестких дисков, принтеров), так и программных (файлов, компиляторов) ресурсов.
Открытость. Это возможность расширения системы путем добавления новых ресурсов.
Параллельность. В распределенных системах несколько процессов могут одновременно выполнятся на разных компьютерах в сети. Эти процессы могут взаимодействовать во время их выполнения.
Масштабируемость. Под масштабируемостью понимается возможность добавления новых свойств и методов.
Отказоустойчивость. Наличие нескольких компьютеров позволяет дублирование информации и устойчивость к некоторым аппаратным и программным ошибкам. Распределенные системы в случае ошибки могут поддерживать частичную функциональность. Полный сбой в работе системы происходит только при сетевых ошибках.
Прозрачность. Пользователям предоставляется полный доступ к ресурсам в системе, в то же время от них скрыта информация о распределении ресурсов по системе.
Наиболее важными параметрами параллельной распределенной системы являются время выполнения алгоритма или производительность системы, а также объем используемых вычислительных ресурсов.
2. Удаленный сервер
Удаленный сервер — это сервер вне процесса, работающий на другой машине.
Можно написать CLIENT.EXE и SERVER.EXE для локальной сети и далее каких-либо изменений CLIENT.EXE и SERVER.EXE могут работать друг с другом по сети. Для этого Вам потребуется по крайней мере два компьютера, на которых работает Windows NT 4.0 или Windows 95 с установленной поддержкой DCOM. Естественно, эти компьютеры должны быть соединены между собой сетью.
Чтобы заставить клиента использовать удаленный сервер, воспользуемся программой конфигурации DCOMDCOMCNFG.EXE, которая входит в состав Windows NT. Эта программа позволяет изменять различные параметры приложений, установленных на компьютере, в том числе и то, исполняются ли они локально или удаленно.
Задача - Свертывание графа распараллеленности операций
Граф распараллеленности операций является исходными данными для синтеза последовательно-параллельного плана методом свертывания. Свертывание графа выполняется посредством пошагового склеивания вершин-операций, при этом в графе появляются более сложные вершины, которым соответствуют частичные (последовательные или параллельные) планы и которые также метятся двумя величинами:
временем Ti реализации частичного плана;
вектором bi чисел процессоров различных типов, необходимых для реализации частичного плана.
Рассмотрим последовательно-параллельное планирование с целью минимизации времени решения задачи при заданных ограничениях на ресурсы. Ограничения на ресурсы представим вектором bmax=(b1max,…,bmmax) максимального числа используемых процессоров каждого типа.
Склеивание вершин x и y образует новую вершину xy. Граф преобразуется путем удаления вершин x и y, удаления множества ребер, инцидентных этим вершинам, а также путем добавления вершины xy, добавления ребер, инцидентных этим вершинам и вершинам из множества xy, где (x) – множество вершин, смежных с вершиной x в исходном графе. Если вершины x и y соединены ребром, они склеиваются параллельно, если не соединены - склеиваются последовательно. Параллельное склеивание вершин не должно приводить к нарушению ограничений на число процессоров, описываемых вектором bmax. Если нарушение ограничений возможно, ребро заранее удаляется из графа. Время выполнения Txy и вектор bxy вершины xy определяется как
1) Txy=max(Tx,Ty) и bxy=bx+by, если вершины склеиваются параллельно,
2) Txy=Tx + Ty и bxy=max(bx,by), если вершины склеиваются последовательно.
Различный порядок склеивания пар вершин приводит к построению различных в общем случае последовательно-параллельных планов. Существенное влияние на эффективность свертывания графа оказывает потеря ребер в результате склеивания вершин. Потеря ребра происходит тогда, когда существует вершина z, соединенная ребром скажем с вершиной x и не соединенная с вершиной y. В результате склеивания вершины xy и z не соединены ребром. Это означает потерю потенциального параллелизма между вершинами y и z, что может сказаться отрицательно на минимизации времени решения задачи. В силу сказанного, в первую очередь необходимо выбирать вершины, склеивание которых приводит к минимальной потере ребер.
При каждом склеивании в представление последовательно-параллельного плана добавляется либо функция seq либо функция par.
Синтезируем последовательно-параллельный план, минимизирующий время решения задачи на двух процессорах первого типа и двух процессорах второго типа путем свертывания графа распараллеленности операций, изображенного на рис.3. Процесс склеивания вершин графа представлен на рис.4. Помеченные на рис.4с перечеркивающими линиями ребра соединяют частичные планы, которые не могут быть склеены параллельно из-за возможного нарушения ограничений на число процессоров. Эти ребра удаляются из графа.
Процесс свертывания графа опишем следующими шагами:
Шаг 1. Склеиваются вершины 3 и 4. Поскольку вершины не соединены ребром, они склеиваются последовательно. Результат склеивания представлен на рис.4а. Новая вершина 34 метится метками 3 и (1,1). Ей соответствует частичный план seq(3,4).
Шаг 2. Склеиваются вершины 1 и 2. Вершины не соединены ребром, следовательно, они склеиваются последовательно. Результат склеивания представлен на рис.4b. Новая вершина 12 метится метками 3 и (1,1). Ей соответствует частичный план seq(1,2).
Шаг 3. Склеиваются вершины 12 и 34. Вершины соединены ребром, следовательно, они склеиваются параллельно. Результат склеивания представлен на рис.4c. Новая вершина 1234 метится метками 3 и (2,2). Ей соответствует частичный план par(seq(1,2), seq(3,4)). Анализируя граф из рис.4c, видим, что вершины 6 и 1234 соединены ребром, но не могут быть склеены параллельно, следовательно, ребро (6, 1234) удаляется из графа. Аналогичным образом удаляется ребро (7, 1234).
Шаг 4. Склеиваются вершины 6 и 7. Вершины не соединены ребром, следовательно, они склеиваются последовательно. Результат склеивания представлен на рис.4d. Новая вершина 67 метится метками 3 и (1,1). Ей соответствует частичный план seq(6,7).
Шаг 5. Склеиваются вершины 5 и 67. Вершины соединены ребром, следовательно, они склеиваются параллельно. Результат склеивания представлен на рис.4e. Новая вершина 567 метится метками 3 и (2,1). Ей соответствует частичный план par(5, seq(6,7)).
Шаг 6. Склеиваются вершины 1234, 567 и 8. Вершины не соединены ребром, следовательно, они склеиваются последовательно. В результате склеивания получаем граф, включающий одну вершину. Новая вершина 12345678 метится метками 7 и (2,2). Ей соответствует последовательно-параллельный план (рис.5) seq(par(seq(1,2),seq(3, 4)),par(5,seq(6,7)),8).
Рис.4a-e. Склеивание вершин графа распараллеленности операторов
a.
b.
c.
d.
d.
e.