- •Теории параллельных вычислений
- •Часть 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 Изучение алгоритмов работы с распределенными базами данных
1 Параллельные вычисления. Вводные понятия
Повышение производительности вычислений за счет использования ВС.
Реализация вычислительных систем возможна путем:
Распараллеливание задач в рамках одной ВМ (однопроцессорная вычислительная система).
Создание многопроцессорных систем или многомашинных сетей (то есть многопроцессорное и многомашинное ВС).
Особенности вычислительных систем - наличие средств, реализующих параллельную обработку, путем построения параллельных ветвей в вычислениях (под параллельными ветвями подразумеваются выполняющиеся одновременно части одного алгоритма).
Уровни параллелизма:
Уровень заданий. Приложения (задания) являются независимыми и не взаимодействуют друг с другом в ходе своего выполнения. Реализация возможна в рамках многопроцессорных систем. За каждым процессорным элементом (ПЭ) ВМ закрепляется конкретное задание.
Уровень программ. Части одной задачи выполняются в составе многопроцессорной ВС и взаимодействуют при выполнении. (Вычислительные системы с параллельно функционирующими процессорными элементами).
Уровень команд. Выполнение команды разделяется на фазы. Предполагается совмещение разных фаз нескольких команд в конвейерном устройстве.
1.1 Параллелизм уровня заданий
Реализуются в многомашинных или многопроцессорных вычислительных системах. Возможна параллельная реализация заданий в однопроцессорной вычислительной машине. Режим реализации - мультипрограммирование.
Отличие мультипрограммирования от распараллеливания
Распараллеливание – это распределение одного процесса обработки между различными устройствами.
Мультипрограммирование – это совмещение разных вычислительных процессов в одном устройстве (процессоре).
Особенности мультипрограммирования:
Квантование процессорного времени.
Если в ходе выполнения процесс требует ввода-вывода, то он переводится в состояние ожидания (с выделением ресурсов другим вычислительным процессам).
Ресурсы ожидавшему процессу выделяются после окончания ввода-вывода.
Параллельность в режиме мультипрограммирования
Параллельность (параллелизм) в режиме мультипрограммирования – это совместная работа центрального процессора (ЦП) и устройств ввода-вывода (Рис. 1.1).
Пример:
Рисунок 1.1 - Пример оптимизации вычислительного процесса в режиме
мультипрограммирования
1.2 Параллелизм уровня программ
Типы параллельности:
Параллельность независимых участков, частей одной программы.
Параллельность итераций внутри цикла (итерации независимы друг от друга).
Пример: параллельных независимых итераций.
For i=1 to N do
A[i] = B[i]+C[i], где i, j –номера итераций
Так как суммы независимы Bi+Ci и Bj+Cj при j<i, то вычисления могут проводиться в цикле в любой последовательности и выполняться одновременно.
Особенности параллелизма уровня программ
Причина возникновения параллелизма - возможность разбиения множества обрабатываемых данных на независимые подмножества (декомпозиция области определения задач);
Каждое подмножество обрабатывается отдельным процессом (распределение данных между частями вычислительных задач);
Каждый процесс реализуется на назначенном ему процессорном элементе (ПЭ).
Выводы: таким образом, параллелизм уровня программ предполагает независимое решение некоторых задач.
