
- •12. Концепция грид-вычислений, область применения и типы грид-систем. Понятие виртуальной организации.
- •13. Отличие грид-систем от других распределенных вычислительных систем. Требования к программной инфраструктуре грид. Примеры грид-систем и технологий.
- •16. Грид-системы из персональных компьютеров (гспк). Отличия от сервисных гридов. Технологии добровольных вычислений на примере платформы boinc.
- •19. Характеристики поизводительности параллельных программ: ускорение, эффективность, формулы для их измерения. Закон Амдала.
- •20. Системы с распределенной и общей памятью. Основные средства программирования. Процессы и потоки.
- •21. Библиотека mpi. Модель spmd. Точечные и коллективные обмены сообщениями. Библиотека mpi. Коммуникаторы и группы процессов.
- •22. Стандарт posix Threads. Создание и завершение потока. Организация критических секций с помощью механизма мьютексов.
- •23. Пакет OpenMp. Общая организация. Директивы parallel и for.
- •27. Архитектуры smp, mpp, pvp. Кластерная архитектура.
6. Предмет распределенных вычислений и классификация по способам организации вычислительного сценария (High-Performance, High Throughput Computing, Data Intensive Computing, Many Task Computing.). Вызовы «удаленных» процедур (RPC) и обмен сообщениями (MOM) - как основные стили организации взаимодействия в РВС; их сходства и отличия. Представление о РВС как о совокупности взаимодействующих (по сети) процессов.
Предмет курса
Место и роль распределенных вычислений в ИТ
характерные области применения (варианты использования) РВС
Принципы организации и функционирования РВС
общие правила взаимодействия элементов РВС
«типовые» элементы РВС, выполненных по существующим стандартам
характерные этапы жизненного цикла РВС (проектирование, программная реализация, развертывание)
Примеры решения вычислительных задач в РВС
High-Performance (Distributed) supercomputing (HPC Grid)
задачи, требующие существенных вычислительных мощностей, процессорного времени, памяти (MPI, PV микро-параллельные выч.);
Многопроцессорные выч. комплексы (МВК), кластеры, использование GPU (nVIDIA CUDA, Compute Unified Device Architecture)
High-Throughput Computing (HTC)
решение большого числа слабо связанных подзадач при помощи простаивающих вычислительных ресурсов в течение длительного времени (SETI@home, BOINC, …)
Data-intensive computing - вычисления с привлечением больших объемов распределенных данных (ГИС, …)
Many-Task Computing сложные алгоритмы распределенных вычислений, предусматривающие интенсивный обмен промежуточными результатами решения вспомогательных подзадач (различного вида), на которые декомпозируется исходная задача
Distributed Systems (HLA, High Level Architecture, IEEE 1516*)
Имитационное моделирование сложных технических и военных систем
Кооперация в рамках работ над сложными техническими проектами
Грид-вычисления – совместное использование выч. ресурсов (МВК/МВУ, суперкомп., кластеры) нескольких организаций на принципах «кооперации»
Desktop Grid - использование временно неиспользуемых ресурсов многоядерных процессоров настольных (персональных) компьютеров «обычных» пользователей.
Облачные вычисления – реинкарнация модели ВЦ, аренда грубой выч. мощности для создания виртуальных ВС, в т.ч. И РВС
От RPC (Remote Procedure Call) к MOM (Message Oriented Middleware)
RPC - процедурный, пусть даже и объектно-ориентированный, стиль программирования РВС. Преимущества – привычность для традиционного программиста «монолитных» приложений. Недостатки – высокая чувствительность к сбоям во взаимодействии «по сети»; проблемы масштабирования (например, автоматическое увеличение производительности при появлении новых узлов).
MOM - ~ ближе у функциональным языкам + модель обмена сообщениями. Недостатки – более высокая трудоемкость разработки, основанная на иной модели приложения. Преимущества – масштабируемость; устойчивость к выходу из строя некоторых узлов.
7. Основные элементы архитектуры процессов РВС. Серверный и клиентский фрагменты процессов (исполняемого кода). Каркасы и представители удаленных процедур (удаленных объектов). Маршаллинг и демаршаллинг при вызовах удаленных методов. «Представители» и «каркасы» удаленных объектов. Различные способы взаимодействия клиентских и серверных компонент (по типам вызовов «удаленных» методов): синхронный (блокирующий), односторонний, асинхронный («отложенный»).
Типовая структура процессов РВС
С
инхронный
вызов (блокирующий)
Односторонный вызов (отправка сообщения)
А
синхронный
вызов (неблокирующий)
Ш
аблон
«хранитель будущего результата»
Маршалинг — процесс преобразования представления объекта в памяти в формат данных, пригодный для хранения или передачи. Обычно применяется, когда данные необходимо передавать между различными частями одной программы или от одной программы к другой.
П
ротивоположный
процесс называется демаршалингом
(также называемый десериализацией).
8. Основные этапы разработки РВС на основе существующих технологий объектно-ориентированного промежуточного ПО (ОО ППО) на примере программного инструментария Ice, Internet Communication Engine. «Контрактный» принцип проектирования. Проектирование интерфейсов на языке Slice. Назначение предкомпилятора из Slice в различные языки программирования.
«Контрактный» принцип проектирования
В его рамках программная система рассматривается в виде множества взаимодействующих компонентов, чьи отношения строятся на основе точно определенной спецификации взаимных обязательств - контрактов. Контрактное Проектирование обеспечивает:
лучшее понимание ОО метода и — в более широком плане — процесса конструирования ПО;
систематический подход к построению не содержащих "багов" ОО систем;
эффективную концептуальную схему для отладки, тестирования и — в конечном итоге — гарантии качества;
метод для документирования программных компонентов;
лучшее понимание и управление механизмом наследования;
метод для обработки ненормальных ситуаций, обеспечивающий, в частности, безопасную и эффективную языковую конструкцию для обработки исключений.
9-10. Декомпозиция при вычислении обратной матрицы. Возможные схемы распределенного сценария вычислений: LU-разложение; блочная декомпозиция и дополнение Шура. Оценки эффективности реализации в РВС.
LU-разложение матрицы. Сценарий распределенного LU-разложения на основе блочной декомпозиции и дополнения Шура.
Использование разложения (первый вариант)
Пусть M - матрица [N×N]. LU-разложение {L, U, P}: L - нижне-треугольная; U -верхне-треугольная; P - перестановочная матрица.
L⋅U=P⋅Μ .
Пусть EN единичная матрица. Для вычисления M^(-1) нужно решить уравнение (прямой и обратной прогонкой) L⋅U⋅X=P⋅EN ⇒ X=M^(-1) (M⋅X=P^(-1)⋅(L⋅U⋅X)=P^(-1)⋅P⋅EN=EN).
Процедура Maxima lu_backsub(LU,B), где LU - результат lu_factor(M), позволяет решать L⋅U⋅X=P⋅B для произвольной прямоугольной матрицы B[N×M].
Е
сли
«расслоить» матрицу EN на K не пересекающихся
«вертикальных полос»
, где
,
т
о
параллельное выполнение lu_backsub(LU,
позволяет одновременно получить K
«групп столбцов» M-1[nk-1:nk]
обратной матрицы M-1.
При K=N такая схема означает параллельное вычисление столбцов M-1.
Блочное распараллеливание (два блока)
Обращение мартиц с помощью дополниения Шура
Известный алгоритм обращения матриц, основанный на «блочной декомпозиции» и дополнении Шура.
Вычисления отдельными блоками позволяют получить более гибкий для дальнейшей оптимизации «рекурсивный» алгоритм (т.к. вычисление A-1 и S-1 и умножение распараллеливаются).
Пусть M[N×N] разделена на четыре блока [N/2×N/2]. Стоимость параллельного вычисления блоков обратной матрицы (символ «||»):
12. Концепция грид-вычислений, область применения и типы грид-систем. Понятие виртуальной организации.
Концепция грид
Грид является географически распределённой инфраструктурой, объединяющей множество ресурсов разных типов (процессоры, долговременная и оперативная память, хранилища и базы данных, сети), доступ к которым пользователь может получить из любой точки, независимо от места их расположения.
Идея грид-компьютинга возникла вместе с распространением персональных компьютеров, развитием интернета и технологий пакетной передачи данных на основе оптического волокна (SONET, SDH и ATM), а также технологий локальных сетей (Gigabit Ethernet). Полоса пропускания коммуникационных средств стала достаточной, чтобы при необходимости привлечь ресурсы другого компьютера. Учитывая, что множество подключенных к глобальной сети компьютеров большую часть рабочего времени простаивает и располагает ресурсами, большими, чем необходимо для решения их повседневных задач, возникает возможность применить их неиспользуемые ресурсы в другом месте.
Повсеместный, стандартный, надежный и дешевый доступ к ресурсам
Сложность инфраструктуры скрыта от пользователя (прозрачность)
Легкость интеграции новых ресурсов
Динамическое перераспределение нагрузки иотказоустойчивость
Управление сложным ансамблем ресурсов
Типы грид-систем
В настоящее время выделяют три основных типа грид-систем:
Добровольные гриды — гриды на основе использования добровольно предоставляемого свободного ресурса персональных компьютеров;
Научные гриды — хорошо распараллеливаемые приложения программируются специальным образом (например, с использованием Globus Toolkit);
Гриды на основе выделения вычислительных ресурсов по требованию (коммерческий грид, англ. enterprise grid) — обычные коммерческие приложения работают на виртуальном компьютере, который, в свою очередь, состоит из нескольких физических компьютеров, объединённых с помощью грид-технологий.
Понятие виртуальной организации
В компьютерных Грид-системах различные организации, имеющие общие научные или практические интересы, на добровольной основе создают объединение, которое в грид-технологиях называется виртуальной организацией (ВО). Участники ВО связаны между собой с помощью Интернета таким образом, что их вычислительные мощности объединяются. Система включает в себя вычислительные ресурсы и ресурсы хранения данных, но при этом каждая организация контролирует использование своих ресурсов. Пользователи могут получать практически неограниченные ресурсы для вычислений и хранения данных, не задумываясь об их происхождении. Каждый из участников ВО предоставляет свои вычислительные ресурсы (или их часть) для использования другими участниками и, в тоже время, получает доступ к ресурсам других участников ВО.
13. Отличие грид-систем от других распределенных вычислительных систем. Требования к программной инфраструктуре грид. Примеры грид-систем и технологий.
Требуемая инфраструктура
Разделяемые ресурсы
Сетевая
– Internet или научные/частные каналы
Программная
Необходимы стандарты и технологии, позволяющие организовать разделяемое использование ресурсов и координированное решение задач в рамках динамичных виртуальных организаций.
Важные требования
Автономность владельцев ресурсов
Безопасность
Непрерывность функционирования
Качество обслуживания
Тест на звание «грид» (Ian Foster, 2002)
Система, которая:
– Координирует использование ресурсов при отсутствии централизованного управления этими ресурсами
– Использует стандартные, открытые, универсальные протоколы и интерфейсы
– Обеспечивает качество обслуживания
Что не является гридом?
– Кластер, сетевое хранилище данных, сеть, …
– Важные компоненты грида, но сами по себе им не являются
Виды грид-систем
Поставщики ресурсов = P
Пользователи ресурсов = U
P >> U : desktop grid
– Добровольные проекты (BOINC), объединение ресурсов внутри организации (Condor)
U >> P : service grid (в режиме 7/24)
– Национальные и глобальные грид-инфраструктуры (EGI, OSG, WLHC, DEISA, TeraGrid...)
U ~ P ?
14-15. Программное обеспечение сервисных гридов, основные компоненты. Обеспечение безопасности в грид. Управление ресурсами.
Программное обеспечение сервисных гридов, основные компоненты. Управление данными. Информационные сервисы.
Сервисные гриды
Сервисные гриды соединяют кластеры, установленные в различных организациях. Это решение дешевле по отношению к суперкомпьютерам, но также требует выделенных ресурсов и значительных усилий, связанных с эксплуатацией. Инфраструктура сервисных гридов состоит из набора сервисов, обеспечивающих доступ к брокерам ресурсов, информационным службам, хранилищам данных, вычислительным ресурсам. Пользователи сервисных гридов имеют соответствующие права доступа к предоставляемым сервисам. Контроль доступа к ресурсам осуществляется посредством сертификатов безопасности. Хорошо известны следующие технологии создания сервисных гридов, как Globus, LCG-2/gLite (EGEE).
Globus Toolkit
Основанное на открытых стандартах, свободно распространяемое ПО для создания грид-систем
Разработка ведется в рамках Globus Alliance (http://www.globus.org/)
Набор готовых решений и базовых сервисов, обеспечивающих функционирование грид
Унификация внешних интерфейсов и использование стандартов (Open Grid Forum)
Open source: Apache License
Безопасность
– Унифицированный механизм безопасности грид
Безопасность:
Конфиденциальность
– Только отправитель и получатель могут прочитать сообщение
Целостность
– Получатель сообщения может однозначно определить, совпадает ли полученное им сообщение с отправленным
Аутентификация
– Получатель и отправитель сообщения должны быть уверены в том, что в действительности взаимодействуют с требуемой стороной
Современный подход:
Алгоритмы шифрования с открытым ключом (public key cryptography)
Управление ресурсами
– Унифицированный интерфейс запуска заданий
Запуск заданий:
Унифицированный сервис GRAM:
Grid Resource Allocation Manager - Унифицированный сервис для запуска заданий из грид в локальной системе управления ресурсами
Основные обязанности
– Авторизация
– Подготовка среды выполнения
– Передача данных
– Мониторинг и управление жизненным циклом задания
– Остановка задания, очистка ресурсов
Метапланировщик GridWay
Управление данными
– Репликация, поиск, передача и доступ к данным
Передача данных
– GridFTP
– Reliable File Transfer (RFT) - сервис, позволяющий заказать надежную передачу данных между узлами грид
Репликация и поиск данных
– Replica Location Service (RLS) - логический идентификатор файла (имя): не зависит от местоположения файла; один для всех реплик файла.
– Data Replication Service (DRS) - физический идентификатор файла (адрес): местоположение конкретной реплики.
Доступ к базам данных
– OGSA-DAI - сервис доступа к базам данных.
Информационные сервисы
– Мониторинг и поиск ресурсов грид
Стандартные интерфейсы
– Публикации и доступа к данным
– Обнаружения данных
– Подписки на уведомления об изменении данных
Стандартная XML-схема описания данных
– GLUE
Monitoring and Discovery System (MDS4)
Поставщики информации
– Грид-сервисы (GRAM, RFT, RLS)
– Локальные системы мониторинга и
управления ресурсами
Коллективные сервисы
– Index Service - агрегация информации
– Trigger Service - уведомления о событиях
Клиенты
– WebMDS — Web-интерфейс
– Интерфейс командной строки