- •Теории параллельных вычислений
- •Часть 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.3 Параллелизм уровня команд
Причина: обработка нескольких команд или частей одной команды может быть совмещена во времени (в любой момент времени вычислительная система реализует более одной вычислительной операции).
Принцип, определяющий параллелизм команд - совмещение вычислительных операций.
Возможная реализация:
Возможность выполнения разных операций на нескольких арифметико-логических устройствах (АЛУ) вычислительных систем (параллелизм операций).
Конвейеризация – последовательное соединение вычислительных блоков, позволяющее совмещать выполнение фаз операций.
2 Эффективность функционирования параллельных вычислительных систем
Введение в состав вычислительной сети n процессов (увеличение числа ПЭ) - увеличение в n раз производительности вычислительной системы (линейная зависимость).
Причины невозможности достижения максимальной производительности:
Невозможность полного распараллеливания задач (в программе существует строго последовательная часть);
Невозможность равномерной загрузки процессорных элементов. Невозможен запуск задач на свободных ПЭ по причине неготовности данных для них.
Производительность ВС характеризуется ускорением ее работы, зависит от числа процессоров n и доли «последовательных операторов» f:
S = g (n, f) (1)
S = Ts / Tp, (2)
где n – число процессов;
f – доля «последовательных операторов»;
Ts – время выполнения одной задачи (однопроцессорная вычислительная система);
Tp – параллельная вычислительная система.
Закон Амдала
Условия (исходные предпосылки):
Объем вычислений при переходе к параллельным ВС остается неизменным.
Программный код разбивается на две части последовательный и параллельный.
Через f обозначается доля операторов от общего числа операторов в программе, которые должны выполняться строго последовательно.
Через (1-f) обозначается доля операторов в распараллеленной части программы.
Графическая реализация постановки задачи (з-н Амдала) представлена на рис.2.1.
Рисунок 2.1 – Графическая реализация постановки задачи
(з-н Амдала)
Тp=fTs + (1-f)Ts / n (3)
S= Ts / Тp = f Ts n/ (1-f) Ts=n/1+(n-1)f (4)
Вид зависимости ускорения S от числа процессоров при разных значениях f представлен на рис. 2.2.
Рисунок 2.2 -Вид зависимости ускорения S
от числа процессоров при разных значениях f
Таким образом, увеличение числа процессорных элементов не обуславливает рост производительности вычислительных систем, то есть производительность остается постоянной.
2.2 Закон Густафсона
Предпосылки:
Отрицание предпосылки о неизменности размера вычислительных задач при переходе к многопроцессорной вычислительной системе.
Увеличение мощности вычислительной системы обуславливает выполнение большего объема, при этом дополнительные вычисления выполняются в распараллеленной части (разностная аппроксимация процессов).
Таким образом, оставаясь неизменной, последовательная часть уменьшает свою долю в общей программе.
Графическая реализация постановки задачи (з-н Густафсона) представлена на рис.2.3.
Рисунок 2.3 – Графическая реализация постановки задачи
(з-н Густафсона)
Первоначальный размер части кода, который мог бы выполняться параллельно;
Увеличен объем вычислительной задачи при переходе к параллельной вычислительной системе.
Таким образом, объем параллельных вычислений увеличивается при росте числа процессоров в системе (линейно). Тогда ускорение вычисления может быть определено: S=Ts/Tp=n+(1-n)*f.
