- •Теории параллельных вычислений
- •Часть 1
- •Теории параллельных вычислений. Часть 1. Методические указания / Сост. К.В.Кротов - Севастополь: Изд-во СевНту, 2009.- 87 с.
- •Содержание
- •1 Параллельные вычисления. Вводные понятия
- •1.1 Параллелизм уровня заданий
- •Отличие мультипрограммирования от распараллеливания
- •Параллельность в режиме мультипрограммирования
- •1.2 Параллелизм уровня программ
- •Особенности параллелизма уровня программ
- •1.3 Параллелизм уровня команд
- •2 Эффективность функционирования параллельных вычислительных систем
- •Закон Амдала
- •2.2 Закон Густафсона
- •3 Классификация параллельных вычислительных систем
- •1). По количеству потоков команд и данных в системе:
- •3.1 Система окод (sisd)
- •3.2 Система мкод (misd)
- •3.3 Системы класса окмд (simd)
- •3.4 Системы мкмд (mimd)
- •2). Признак классификации в соответствии со степенью связанности элементов вс.
- •3.5 Матричные системы (окмд)
- •3.6 Системы с ансамблем процессоров (окмд)
- •3). Признак классификации вс на основе межпроцессорного обмена
- •Классификация систем типа мкмд (mimd)
- •Симметричные мультипроцессоры (smp)
- •3.7 Структурная организация smp-систем
- •3.9 Гибридные системы (numa-системы)
- •4 Вычислительные кластеры
- •Организация кластера
- •Магистральные системы (конвейерные)
- •5 Организация конвейерных вычислений. Конвейер команд
- •Организация конвейера команд
- •Временная диаграмма конвейера
- •5.1 Арифметический конвейер
- •Временные диаграммы
- •5.2 Понятие векторных вычислений (операций)
- •Упрощенная схема векторного процессора
- •Организация векторного процессора
- •Временные диаграммы обработки векторов
- •Структура реализации векторного процессора
- •6 Примеры систем, реализующих конвейерные вычисления
- •6.1 Вс с вычислительной магистралью и с реализацией модели «Память-память»
- •Особенности функционирования системы
- •6.2 Вс с арифметико-командной магистралью и с реализацией модели «Регистр – регистр»
- •Функциональная схема вычислительной системы
- •Секция (группа) функциональных устройств
- •Группа буферных регистров
- •Секция управления
- •7 Системы класса simd. Матричные системы
- •Упрощенная структурная организация вс
- •Организация и функционирование блоков матричной вс
- •7.1 Организация процессорного элемента (пэ)
- •7.2 Упрощенная организация системы (MasPar)
- •7.3 Контроллер массива
- •Особенности, связанные с управлением пэ
- •Функциональная схема
- •8 Системы класса mimd
- •Архитектуры mimd систем
- •9 Smp системы
- •Архитектура smp
- •10 Организация простых коммутаторов
- •Функциональная организация процессора (xmp)
- •11Составные перекрестные коммутаторы
- •11.1 Коммутатор Клоза
- •Функциональная организация связей
- •Принцип формирования коммутатора
- •11.2 Коммуникационная сеть omega
- •12 Примеры реализации smp систем (систем с общедоступной памятью)
- •21.3 Сервер hp 9000
- •13 Системы pvm. Общие понятия
- •13.1 Особенности реализации распределенных вычислений в pvm
- •13.2 Архитектура pvm
- •13.3 Понятие идентификатора задачи (Tid)
- •13.4 Модели передачи сообщений в pvm
- •13.5 Технология создания pvm-программ
- •13.6 Определение (задание) конфигурации вычислительного кластера (параллельной виртуальной машины)
- •13.7 Организация распределённого выполнения параллельных программ на пк вычислительного кластера с обменом сообщениями между ними
- •13.8 Управление конфигурацией вычислительного кластера средствами pvm
- •13.9 Взаимодействие распределено выполняемых процессов с помощью сообщений. Образование каналов передачи данных
- •14 Основные понятия распределенных вычислений
- •14.1 Основные понятия передачи сообщений по каналам
- •14.2 Схемы «Взаимодействующие равные» при обмене между процессами
- •Централизованное решение
- •Распределенное («симметричное ») решение
- •Кольцевое решение
- •14.3 Взаимодействие процессов по схеме «Клиент-сервер»
- •Общая схема взаимодействия между клиентом и сервером
- •Упрощенная схема взаимодействия клиента с ресурсами
- •Информационные структуры сервера
- •14.4 Модели взаимодействия распределенных процессов Модель «зонд-эхо»
- •Построение топологии вычислительного кластера
- •Шаги процесса формирования топологий (1 вариант)
- •Алгоритм формирования топологии кластера (вариант 2)
- •Особенности построения топологии кластера с циклами
- •Построение остовного дерева кластера
- •15 Алгоритм распределенной синхронизации доступа к обзщим ресурсам
- •15.1 Распределенные семафоры
- •Понятие логических часов в распределенных семафорах
- •15.2 Алгоритм передачи маркера
- •16 Изучение алгоритмов работы с распределенными базами данных
14 Основные понятия распределенных вычислений
Отличие параллельных вычислений: наличие общей разделяемой памяти, взаимодействующей между процессами при обращении к общим переменным.
Распределенные вычисления характеризуются наличием локальной памяти у каждой ВМ, входящей в ВС (отсутствие разделяемых переменных), обмен между процессами путем передачи сообщений.
С взаимодействующими процессами могут быть сопоставлены некоторые каналы передачи, то есть канал – это средство идентификации взаимодействующих процессов.
Канал - это некоторая абстрактная конструкция, идентифицирующая обменивающиеся процессы. Канал обеспечивает реализацию схем взаимодействия между распределенными процессами. Схемы взаимодействия различаются способами использования каналов (однонаправленная или двунаправленная), методами (алгоритмами) реализации взаимодействия.
Модели реализации взаимодействия распределенных процессов:
«Производитель-потребитель».
«Взаимодействующие равные» (двунаправленный канал).
«Клиент-сервер» (двунаправленный канал). Клиент формирует запрос на данные, сервер формирует и передает требуемую информацию.
«Удаленный вызов процедур». Процесс запрашивает и получает доступ к общему вычислительному ресурсу, передает ему данные, получает результат. Возможны различные механизмы синхронизации доступа к общему ресурсу.
14.1 Основные понятия передачи сообщений по каналам
Канал – идентификатор процесса. Канал – это очередь передаваемых сообщений. Передача не блокирующая, так как предполагается очередь неограниченной длины. Очередь идентифицируется соответствующим приемником сообщений.
Рисунок 14.1 – Схема реализации очереди
Задание идентификатора канала при обмене сообщениями предполагает определение очереди сообщений к соответствующему приемнику, в который выставляются данные.
14.2 Схемы «Взаимодействующие равные» при обмене между процессами
«Взаимодействующие равные» предполагает использование каналов при передаче сообщений в обоих направлениях.
Пример: имеется n процессов, каждый из которых формирует одно значение локальной переменной. Необходимо определить минимальное и максимальное значение из совокупности данных.
Централизованное решение
Процесс Р0 последовательно опрашивает каналы (очереди) на наличие в них данных. При готовности данных определяется результат, который распределяется между процессами Р1- Р3. Задержка при обработке связана с готовностью данных от источника. При формировании результата, P0 широковещательно рассылает его между источниками.
Распределенное («симметричное ») решение
Каждый процесс взаимодействует с остальными при получении от них данных. Каждый процесс независимо от других вычисляет минимальные и максимальные совокупности. Выполняется параллельная реализация программ. Данная схема – аналог схемы ОКМД (много экземпляров одной программы обрабатывают распределенные данные). Недостаток – избыточность в передаче сообщений.
