Односторонный вызов (отправка сообщения)



Предмет распределенных вычислений и классификация по способам организации вычислительного сценария (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 - ~ ближе у функциональным языкам + модель обмена сообщениями. Недостатки – более высокая трудоемкость разработки, основанная на иной модели приложения. Преимущества – масштабируемость; устойчивость к выходу из строя некоторых узлов.

 

 

Основные элементы архитектуры процессов РВС. Серверный и клиентский фрагменты процессов (исполняемого кода). Каркасы и представители удаленных процедур (удаленных объектов). Маршаллинг и демаршаллинг при вызовах удаленных методов. «Представители» и «каркасы» удаленных объектов. Различные способы взаимодействия клиентских и серверных компонент (по типам вызовов «удаленных» методов): синхронный (блокирующий), односторонний, асинхронный («отложенный»).

Типовая структура процессов РВС

 

Синхронный вызов (блокирующий)

 

Односторонный вызов (отправка сообщения)

 

 

Асинхронный вызов (неблокирующий)

 

Шаблон «хранитель будущего результата»

Маршалинг — процесс преобразования представления объекта в памяти в формат данных, пригодный для хранения или передачи. Обычно применяется, когда данные необходимо передавать между различными частями одной программы или от одной программы к другой.

 

Противоположный процесс называется демаршалингом (также называемый десериализацией).

 


 

Основные этапы разработки РВС на основе существующих технологий объектно-ориентированного промежуточного ПО (ОО ППО) на примере программного инструментария Ice, Internet Communication Engine. «Контрактный» принцип проектирования. Проектирование интерфейсов на языке Slice. Назначение предкомпилятора из Slice в различные языки программирования.

«Контрактный» принцип проектирования

В его рамках программная система рассматривается в виде множества взаимодействующих компонентов, чьи отношения строятся на основе точно определенной спецификации взаимных обязательств - контрактов. Контрактное Проектирование обеспечивает:

• лучшее понимание ОО метода и — в более широком плане — процесса конструирования ПО;

• систематический подход к построению не содержащих "багов" ОО систем;

• эффективную концептуальную схему для отладки, тестирования и — в конечном итоге — гарантии качества;

• метод для документирования программных компонентов;

• лучшее понимание и управление механизмом наследования;

• метод для обработки ненормальных ситуаций, обеспечивающий, в частности, безопасную и эффективную языковую конструкцию для обработки исключений.

Декомпозиция при вычислении обратной матрицы. Возможные схемы распределенного сценария вычислений: LU-разложение; блочная декомпозиция и дополнение Шура. Оценки эффективности реализации в РВС.


Дата добавления: 2018-02-18; просмотров: 552; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!