
- •Билет №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
2. Теория интерфейсов
Интерфейс обеспечивает соединение двух разных объектов. Для взаимодействия компьютерных программ применяются наборы функций. Интерфейс СОМ включает в себя набор функций, которые реализуются компонентами и используются клиентами. В СОМ интерфейсом является также определенная структура в памяти, содержащая массив указателей на функции. Все остальное — это детали реализации, которые СОМ не касаются. Поскольку каждый компонент СОМ может поддерживать сколь угодно много интерфейсов, для реализации компонента с несколькими интерфейсами используется множественное наследование абстрактных базовых классов.
Неизменность интерфейсов
Для клиента компонент представляет собой набор интерфейсов. Компоненты есть реализации интерфейсов. Компонент можно удалить и заменить другим; если новый компонент поддерживает те же интерфейсы, что и старый. Приложение определяет интерфейсы между компонентами. В то время как интерфейсы неизменны, компоненты могут появляться и исчезать. Замена компонентов может изменить поведение приложения, но не его архитектуру. Одно из самых больших преимуществ компонентной модели — возможность повторного использования архитектуры приложения. При помощи тщательно разработанных интерфейсов можно создать архитектуры, пригодные к повторному использованию.
Итак, клиент подсоединяется к компоненту через интерфейс. Если компонент изменяется без изменения интерфейса, то изменений в клиенте не потребуется. Аналогично, если клиент изменяется без изменения интерфейса, то нет необходимости изменять компонент. При изменении интерфейса возникает необходимость изменять и клиент и компонент. При модификации компонента не изменяют существующий интерфейс, но добавляют новый. Множественные интерфейсы позволяют компоненту поддерживать новые интерфейсы в дополнение к существующим.
З
адача
- Дать пример фабрики класса
//Фабрика класса
class COMPFactory : public IClassFactory {
public: // IUnknown
virtual HRESULT __stdcall QueryInterface(const IID& iid, void** ppv);
virtual ULONG __stdcall AddRef();
virtual ULONG __stdcall Release();
// IClassFactory
virtual HRESULT __stdcall CreateInstance(IUnknown* pUnknownOuter,
const IID& iid, void** ppv);
virtual HRESULT __stdcall LockServer(BOOL bLock);
COMPFactory() : m_cRef(1) {}
private:
long m_cRef;
};
Билет №23
1. Граф задач. Назначение задач на процессоры. Обмен данными. План решения задач на каждом процессоре. Планирование выполнения графа задач на узлах распределенной системы с учетом обмена данными
Рассмотренные ранее методы планирования учитывали, главным образом, характеристики операций, выполняемых параллельно или последовательно на узлах распределенной параллельной системы. Они не учитывали обмен данными между операциями и между узлами, на которых операции выполняются.
С ейчас мы рассмотрим модель и алгоритмы планирования, учитывающие временные параметры как операций, выполняемых на узлах, так и операций, выполняемых в каналах передачи данных. Предполагается, что время выполнения операции не зависит от процессора, на который она назначается. Аналогично, время выполнения операции обмена данными не зависит от канала передачи данных, в котором она выполняется.
Граф задач (Task graph).
Граф задач – это ориентированный ациклический граф G=(V, E), где
V – множество узлов, |V| = v, представляющих задачи, каждая из которых описывается множеством инструкций (операторов), выполняемых последовательно на одном процессоре;
E – множество дуг |E| = e, представляющих передаваемые данные и отношения предшествования между узлами.
Вершина ni графа метится числом w(ni), описывающим время решения задачи. Дуга (i,j) графа метится числом cij, описывающим время передачи данных от задачи ni к задаче nj.
Входным называется узел, не имеющий входящих дуг. Выходным называется узел, не имеющий исходящих дуг.
Задача не может начать выполнение не получив данные от родительских задач.
Коэффициентом «коммуникация/вычисление» (communication-to-computation ratio - CCR) графа задач называется отношение среднего времени передачи данных от одной задачи к другой к среднему времени решения задачи.
Решение задач может происходить параллельно с передачами данных. Время передачи данных между двумя задачи, равное cij в исходном графе, принимается равным нулю при назначении задач на один процессор.
Пример графа задач дан на рис.1. Он включает четыре задачи n1, n2, n3, n4, имеющие время решения 5, 20, 10 и 8 единиц каждая. Время передачи данных между задачами n1, n2 составляет 1 единицу, между задачами n1, n3 – 20 единиц, между задачами n2, n4 – 1 единицу, между задачами n3, n4 – 10 единиц. Время реализации графа задач определяется суммарным весом всех узлов и дуг наиболее длинного пути на графе и равно 54. Коэффициент «коммуникация/вычисление» CCR=0.73.