Введение в параллельные и распределенные вычисления

Содержание

Слайд 2

ІОЦ КНУ імені Тараса Шевченка, 2005 р Автор курса и преподаватель

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Автор курса и преподаватель

Судаков Александр

Александрович
кандидат физико-математических наук,
доцент радиофизического факультета Киевского национального университета имени Тараса Шевченко,
руководитель лаборатории параллельных вычислений информационно-вычислительного центра Киевского национального университета имени Тараса Шевченко
Слайд 3

ІОЦ КНУ імені Тараса Шевченка, 2005 р Задачи курса Теоретические основы

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Задачи курса

Теоретические основы работы параллельных

и распределенных систем
Технологии построения параллельных и распределенных систем
Практические навыки построения и работы с параллельными и распределенными системами
Практические навыки разработки параллельных и распределенных программ
Слайд 4

ІОЦ КНУ імені Тараса Шевченка, 2005 р Для чего это нужно

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Для чего это нужно ?

Все

современные компьютерные системы используют элементы параллельной обработки информации
Многопроцессорность, конвейерная обработка …
Все современные компьютерные системы используют распределенные вычисления
Многозадачность, базы данных, файловые сервера…
Пользователи привыкли к тому, что можно работать «сразу» с несколькими компьютерами и программами
Интернет, локальные сети, связанные объекты…
Некоторые задачи можно сегодня решить только с помощью параллельных и распределенных вычислений
получение «чрезвычайно» высокой производительности
получение высокой надежности и отказоустойчивости
Некоторые ресурсы распределены по определению
Специалисты по компьютерным системам должны в этом разбираться
Слайд 5

ІОЦ КНУ імені Тараса Шевченка, 2005 р Научные и промышленные задачи,

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Научные и промышленные задачи, требующие

параллельных вычислений

Квантовая физика, химия, молекулярная биология
Микроэлектроника
Статистическое моделирование (метод Монте-Карло)
Ядерная физика

Слайд 6

ІОЦ КНУ імені Тараса Шевченка, 2005 р Химия Есть формула вещества

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Химия

Есть формула вещества (лекарственный препарат),

найти, как это вещество вступает в реакцию, насколько оно устойчиво и как действует
Слайд 7

ІОЦ КНУ імені Тараса Шевченка, 2005 р Как решается задача Свойства

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Как решается задача

Свойства вещества определяются

типом атомов, положением ядер и электронной конфигурацией
Для нахождения электронной конфигурации необходимо решать уравнения квантовой физики
Количество операций, и объем оперативной памяти, необходимые для решения определяются числом электронов молекулы N
Количество операций пропорционально N4-N7
Объем оперативной памяти пропорционален N3-N4
Слайд 8

ІОЦ КНУ імені Тараса Шевченка, 2005 р Оценка времени и ресурсов

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Оценка времени и ресурсов

Количество атомов

29
Количество электронов N=130
Количество базисных функций 280
Количество операций N5~1013
Задачу необходимо решать десятки/сотни раз ~1015
Время на процессоре производительностью 1 млрд. операций в секунду около недели
Памяти около 4 Гбайт
Необходимо несколько процессоров
Слайд 9

ІОЦ КНУ імені Тараса Шевченка, 2005 р Молекулярная биохимия Есть вирусный

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Молекулярная биохимия

Есть вирусный белок для

которого нужно подобрать лекарственный препарат, который будет на него действовать
Количество атомов несколько тысяч
Слайд 10

ІОЦ КНУ імені Тараса Шевченка, 2005 р Как решается задача Используются

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Как решается задача

Используются приближенные методы

классической физики
количество операций MN2 , где M количество итераций, N количество атомов
Требует интенсивного обмена между процессорами
Время расчета – несколько недель
Слайд 11

ІОЦ КНУ імені Тараса Шевченка, 2005 р Микро (нано) электроника Исследование

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Микро (нано) электроника

Исследование поведения атомов

на поверхности кремния для создания новых технологий
Требует квантово-физических расчетов
Слайд 12

ІОЦ КНУ імені Тараса Шевченка, 2005 р Ядерная физика Взаимодействие ионизирующего

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Ядерная физика

Взаимодействие ионизирующего излучения с

веществом
Моделируется поведение большого количества частиц
Обработкая данных с ускорителей
Слайд 13

ІОЦ КНУ імені Тараса Шевченка, 2005 р Использование распределенных вычислений Интернет приложения Высоконадежные системы Параллельные вычисления

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Использование распределенных вычислений

Интернет приложения
Высоконадежные системы
Параллельные

вычисления
Слайд 14

ІОЦ КНУ імені Тараса Шевченка, 2005 р Программа курса Лекции (40

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Программа курса

Лекции (40 часов)
Семинарские занятия

(30 часов)
Практические занятия (30 часов)
Лабораторные занятия (40 часов)
Слайд 15

ІОЦ КНУ імені Тараса Шевченка, 2005 р Лекции Введение (1 лекция)

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Лекции

Введение (1 лекция)
Средства параллельных и

распределенных вычислений (9 лекций)
Теоретические основы параллельных вычислений (5 лекций)
Разработка параллельных и распределенных систем (5 лекций)
Контрольные работы (2 занятия)
Зачет
Слайд 16

ІОЦ КНУ імені Тараса Шевченка, 2005 р Семинарские занятия (15 занятий)

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Семинарские занятия (15 занятий)

Распределенные операционные

системы
Задачи, требующие параллельных вычислений и соответствующее программное обеспечение: 3D анимация, математические пакеты, физические, химические, экономические и д.р. задачи
WWW технология, Java и их применение
MS Windows домен, Active directory, NetBios
Средства коммуникации для параллельных кластеров: Myrinet, SCI
Промышленные высоконадежные кластеры
Промышленные высокопроизводительные системы (суперкомпьютери, кластеры)
Распределенные файловые системы (NFS, AFS, GFS), SAN
Метакомпьютеры и GRID системы, globus, condor
Компиляторы и реализации библиотек для разработки параллельних и распределенных программ
Распределенные и параллельные системы управления базами данных
Средства создания параллельных программ для MS Windows (COM, Corba, .NET)
Pear-to-pear системы
Параллельные алгоритмы поиска, шифрования и дешифрования (2 години)
Языки программирования с внутренним параллелизмом и поддержкой распределенных систем
Слайд 17

ІОЦ КНУ імені Тараса Шевченка, 2005 р Лабораторные работы (6 работ)

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Лабораторные работы (6 работ)

Работа в

командной строке Linux (15.05.2012)
Работа на удаленных машинах по SSH, RSH (16.05.2012)
Распределенные системы имен (NIS) (17.05.2012)
Сетевые файловые системы (NFS, amd) (18.05.2012)
Менеджер ресурсов и менеджер заданий, кластер типа Beowulf (21.05.2011-22.05.2012)
Запуск PVM и MPI на кластере Beowulf (23.05.2012)
Слайд 18

ІОЦ КНУ імені Тараса Шевченка, 2005 р Практические занятия (6 занятий)

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Практические занятия (6 занятий)


Разработка программ

на основе интерфейса socket
Разработка многопоточных программ
Разработка с использованием RPC
Разработка расчетных MPI программ
Разработка расчетных OpenMP программ
Измерение производительности
Слайд 19

ІОЦ КНУ імені Тараса Шевченка, 2005 р Литература Параллельные вычисления в

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Литература

Параллельные вычисления в России http://www.parallel.ru


Обчислювальний кластер Київського національного університету імені Тараса Шевченка http://www.cluster.kiev.ua
В.П. Гергель, Р.Г. Стронгин Основы параллельных вычислений для многопроцессорных вычислительных машин. Нижний новгород: Изд-во ННГУ им. Лобачевского, 2000, 176 с.
К. Хьюз, Т. Хьюз. Параллельное и распределенное программирование с использование С++. Перс. с англ. М: Издательский дом «Вильямс», 2004, 672 с.
И. Н Молчанов. Введение в алгоритмы параллельных вычислений. — К.: Наукова Думка, 1990. — 128 с.
Distributed information systems http://www.iks.inf.ethz.ch/education/ws04/eai/
Слайд 20

ІОЦ КНУ імені Тараса Шевченка, 2005 р Что такое параллельные и распределенные вычисления?

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Что такое параллельные и распределенные

вычисления?
Слайд 21

ІОЦ КНУ імені Тараса Шевченка, 2005 р Определение параллельных и распределенных

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Определение параллельных и распределенных вычислений

Параллельные

вычисления – для вычисления одновременно используется несколько физических устройств
Распределенные вычисления – вычисление выполняется в нескольких адресных пространствах (с помощью нескольких процессов)
Слайд 22

ІОЦ КНУ імені Тараса Шевченка, 2005 р Особенности параллельных вычислений Одновременная

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Особенности параллельных вычислений

Одновременная и не

одновременная работа нескольких устройств
Основное использование параллелизма
Уровни параллелизма
Сложности, связанные с параллелизмом
Истинный и псевдопараллелизм
Слайд 23

ІОЦ КНУ імені Тараса Шевченка, 2005 р Параллельно – значит одновременно

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Параллельно – значит одновременно

В промежутки

времени 1 и 2 «происходит» процесс A
В промежутки времени 2 и 3 «происходит» процесс B
В промежуток времени 2 процессы A и B «происходят» одновременно, то есть параллельно
Слайд 24

ІОЦ КНУ імені Тараса Шевченка, 2005 р Не одновременно – значит

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Не одновременно – значит не

параллельно

Когда процесс A выполняется, процесс B – не выполняется
Процессы A и B выполняются не параллельно

Слайд 25

ІОЦ КНУ імені Тараса Шевченка, 2005 р Примеры параллельного выполнения Двухпроцессорный

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Примеры параллельного выполнения

Двухпроцессорный компьютер
Дисковый массив

из нескольких дисков
Заводской конвейер
Бригада рабочих, которые копают яму
Одновременная работа диска и процессора (ассинхронный режим)
Параллельная работа нескольких видеоадаптеров
Слайд 26

ІОЦ КНУ імені Тараса Шевченка, 2005 р Двухпроцессорный компьютер Каждый процессор выполняет свою программу

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Двухпроцессорный компьютер

Каждый процессор выполняет свою

программу
Слайд 27

ІОЦ КНУ імені Тараса Шевченка, 2005 р Асинхронный режим чтения диска

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Асинхронный режим чтения диска

Запрос на


предварительное
считывание
данных с диска

время

Выполнение
других действий

Получение
данных

Использование
даннх

Получение
запроса

Считывание
данных

Выдача данных

Приложение

Диск

Слайд 28

ІОЦ КНУ імені Тараса Шевченка, 2005 р Примеры не параллельного выполнения

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Примеры не параллельного выполнения

Многозадачная

операционная система с разделением времени
Сеть Ethernet с общей средой передачи данных (CMACD)
Синхронный режим доступа к жесткому диску
Слайд 29

ІОЦ КНУ імені Тараса Шевченка, 2005 р Операционная система с разделением

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Операционная система с разделением времени

Каждая

программа получает свой квант времени
Переключение между программами происходит быстро
Кажется, что все программы выполняются одновременно
На самом деле – не параллельно
Слайд 30

ІОЦ КНУ імені Тараса Шевченка, 2005 р Использование параллелизма Единственная цель - увеличение производительности

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Использование параллелизма

Единственная цель - увеличение

производительности
Слайд 31

ІОЦ КНУ імені Тараса Шевченка, 2005 р Производительность Производительность – количество

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Производительность

Производительность – количество операций, которые

выполняются в единицу времени
Чем сложнее задача, тем большая производительность системы нужна для ее решения в обозримом времени
Если увеличить количество операций, которые выполняются одновременно, то возрастет производительность системы
Слайд 32

ІОЦ КНУ імені Тараса Шевченка, 2005 р Пути повышения производительности Интенсивные:

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Пути повышения производительности

Интенсивные:
Использование новых физических

принципов построения компьютерных систем (оптические компьютеры, наноэлектроника, высокомолекулярная электроника)
Экстенсивные:
Увеличение тактовой частоты устройств
Использование параллельной обработки
Слайд 33

ІОЦ КНУ імені Тараса Шевченка, 2005 р Новые технологии Наилучший вариант,

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Новые технологии

Наилучший вариант, но…
Физические

основы современных компьютерных технологий были разработаны лет 30 назад (физика полупроводников и диэлектриков)
Новые физические методы станут технологиями примерно лет через 30
Слайд 34

ІОЦ КНУ імені Тараса Шевченка, 2005 р Увеличение тактовой частоты Производительность

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Увеличение тактовой частоты

Производительность пропорциональна тактовой

частоте
Увеличение тактовой частоты приводит к увеличению потребляемой мощности и к необходимости усиленного охлаждения
Увеличение тактовой частоты приводит возрастанию влияния паразитных обратных связей и к необходимости введения новых технических решения
Слайд 35

ІОЦ КНУ імені Тараса Шевченка, 2005 р Параллельные вычисления Если один

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Параллельные вычисления

Если один рабочий выкопает

яму за 1 час, то 2 рабочих – за 30 минут
Если одни процессор медленно…, то можно поставить 2, 3, 100 … и будет быстро
Можно повышать производительность без введения принципиально новых физических и технических решений
Никаким другим методом сегодня нельзя достичь такого повышения производительности, как за счет параллельной обработки
Слайд 36

ІОЦ КНУ імені Тараса Шевченка, 2005 р Уровни параллелизма Уровень мелких

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Уровни параллелизма

Уровень мелких структурных единиц

(fine graine)
уровень инструкций
На уровне средних структурных единиц
Уровень подпрограмм
На уровне крупных структурных единиц (course graine)
Уровень объектов
Уровень приложений
Слайд 37

ІОЦ КНУ імені Тараса Шевченка, 2005 р Параллелизм на уровне машинных

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Параллелизм на уровне машинных инструкций

Две

(или больше) машинных инструкций выполняется одновременно
Суперскалярные и векторные процессоры
Конвейеры
Есть во всех современных процессорах (SSE, MMX)
Слайд 38

ІОЦ КНУ імені Тараса Шевченка, 2005 р Параллелизм на уровне процедур

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Параллелизм на уровне процедур

Каждая процедура

(функция, метод) выполняется на своем процессоре
Используется при многопоточном программировании
Поток – часть процесса, которая выполняется параллельно с другими такими же частями
Слайд 39

ІОЦ КНУ імені Тараса Шевченка, 2005 р Параллелизм на уровне объектов

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Параллелизм на уровне объектов

Методы каждого

объекта выполняются одновременно с методами других объектов
Объект – это данные и те действия (методы, функции), которые с этими данными можно выполнять
Используются в многопоточных программах и распределенных объектных системах (COM, CORBA)
Слайд 40

ІОЦ КНУ імені Тараса Шевченка, 2005 р Параллелизм на уровне приложений

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Параллелизм на уровне приложений

Каждое приложение

выполняется на своем процессоре или на своем компьютере одновременно с другими приложениями
Используется для кластерных вычислений и других распределенных систем
Слайд 41

ІОЦ КНУ імені Тараса Шевченка, 2005 р Какой уровень лучше? Для

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Какой уровень лучше?

Для каждой задачи

– свой
Для повышения скорости вычислений — повышать уровень
Для уменьшения задержек — понижать уровень
Часто в одной и той же параллельной программе применяется сразу несколько уровней
Например, параллельная программа выполняется на 4-х узлах кластера – уровень приложений, на каждом узле используется многопоточная обработка – уровень процедур, а каждый поток выполняется на процессоре с конвейерной обработкой – уровень инструкций
Слайд 42

ІОЦ КНУ імені Тараса Шевченка, 2005 р Сложности, связанные с параллелизмом

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Сложности, связанные с параллелизмом

Необходимость специальных

параллельных алгоритмов
Необходимость специальных параллельных программ
Необходимость специальных аппаратных устройств для параллельных вычислений
Слайд 43

ІОЦ КНУ імені Тараса Шевченка, 2005 р Параллельные алгоритмы Классическое определение:

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Параллельные алгоритмы

Классическое определение: Алгоритм –

последовательность операций, которую необходимо выполнить для решения задачи
Параллельный алгоритм – последовательность нужно разбить на одновременно выполняемые последовательности - распараллелить
Очень часто задача распараллеливания чрезвычайно сложна
Иногда применяются свои уникальные «параллельные» подходы
Не все алгоритмы можно эффективно распереллелить
Слайд 44

ІОЦ КНУ імені Тараса Шевченка, 2005 р Декомпозиция, связь и синхронизация

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Декомпозиция, связь и синхронизация

Каждый параллельный

алгоритм имеет три составляющие:
Декомпозиция
Связь
Синхронизация
Слайд 45

ІОЦ КНУ імені Тараса Шевченка, 2005 р Декомпозиция Декомпозиция – разбиение

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Декомпозиция

Декомпозиция – разбиение задачи на

части, которые выполняются параллельно
Декомпозиция данных – данные, с которыми работает программа разбиваются на меньшие части и с каждой частью выполняются свои операции
Декомпозиция функций – последовательность действий разбивается на участки, которые выполняются параллельно
Слайд 46

ІОЦ КНУ імені Тараса Шевченка, 2005 р Пример декомпозиции Расчет прогноза

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Пример декомпозиции

Расчет прогноза погоды

для Украины
Территория разбивается на более мелкие области и для каждой области выполняется расчет на своем процессоре, параллельно с остальными

CPU1

CPU10

Слайд 47

ІОЦ КНУ імені Тараса Шевченка, 2005 р Связь Разные процессоры должны обмениваться между собой информацией

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Связь

Разные процессоры должны обмениваться между

собой информацией
Слайд 48

ІОЦ КНУ імені Тараса Шевченка, 2005 р Пример связи Расчет прогноза

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Пример связи

Расчет прогноза погоды для

Украины
Между соседними областями должен выполняться обмен информацией о состоянии погоды на границе областей
Слайд 49

ІОЦ КНУ імені Тараса Шевченка, 2005 р Синхронизация Обеспечение того, что

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Синхронизация

Обеспечение того, что все параллельно

выполняющиеся части в определенные моменты времени находятся в нужном состоянии
Например, задача решена, только когда все параллельно выполняющиеся части завершают свою работу
Чтобы данные, считанные из переменной корректными, нужно гарантировать, что их в эту переменную записали
Слайд 50

ІОЦ КНУ імені Тараса Шевченка, 2005 р Использование специальных параллельных алгоритмов

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Использование специальных параллельных алгоритмов

Пример: найти

сумму
for (i=0; iВ таком виде задача существенно последовательная
Для распараллеивания воспользуемся ассоциативность сложения
Слайд 51

ІОЦ КНУ імені Тараса Шевченка, 2005 р Пример - конвейер

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Пример - конвейер

Слайд 52

ІОЦ КНУ імені Тараса Шевченка, 2005 р Состояния конвейера

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Состояния конвейера

Слайд 53

ІОЦ КНУ імені Тараса Шевченка, 2005 р Сложность Параллельный алгоритм получается

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Сложность

Параллельный алгоритм получается значительно сложнее

последовательного
При небольшом количестве слагаемых или при большом количестве процессоров можно получить не выигрыш а проигрыш в скорости
При очень большом количестве слагаемых и не очень большом количестве процессоров выигрыш в скорости будет существенным по сравнению с последовательным случаем
Эффективность распараллеливания зависит от задачи
Слайд 54

ІОЦ КНУ імені Тараса Шевченка, 2005 р Специальные параллельные программы Последовательная

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Специальные параллельные программы

Последовательная программа выполняется

на одном процессоре, потому не получает никакого преимущества от параллельного выполнения
Для параллельных программ кроме самих вычислений необходимо реализовать связь и синхронизацию
Необходимо реализовать декомпозицию
Для упрощения существуют специальные компиляторы и библиотеки
Сложность отладки и профилирования
Слайд 55

ІОЦ КНУ імені Тараса Шевченка, 2005 р Аппаратные средства параллельных вычислений

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Аппаратные средства параллельных вычислений

Для параллельных

вычислений нужно несколько процессоров или компьютеров
Несколько процессоров/компьютеров всегда в сумме дороже, чем один процессор/компьютер
Необходимо обеспечение высокоскоростных каналов связи между процессорами/компьютерами
С увеличением количества и сложности оборудования часто уменьшается его надежность
Слайд 56

ІОЦ КНУ імені Тараса Шевченка, 2005 р Примеры параллельных систем Кластер

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Примеры параллельных систем

Кластер Киевского национального
Университета

имени Тараса Шевченко

Кластеры Института кибернетики
НАН Украины имени Глушкова

Слайд 57

ІОЦ КНУ імені Тараса Шевченка, 2005 р Законы Гроша (Grosch) и

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Законы Гроша (Grosch) и Мура

(Moore)

Закон Гроша: Производительность компьютера пропорциональна квадрату стоимости компьютера (сейчас уже не работает)
Закон Мура: Производительность последовательных процессоров возрастает в два раза каждые 18-24 месяца

Слайд 58

ІОЦ КНУ імені Тараса Шевченка, 2005 р Истинный и псевдопараллелизм Для

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Истинный и псевдопараллелизм

Для многозадачных операционных

систем с одним процессором одновременного выполнения получить нельзя, но кажется, что задачи выполняются одновременно
В такой ситуации проблемы параллелизма остаются, а повышения производительности нет - псевдопараллелизм
Слайд 59

ІОЦ КНУ імені Тараса Шевченка, 2005 р Параллелизм и конкуренция Concurrent

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Параллелизм и конкуренция

Concurrent и Parallel

- синонимы
Параллелизм – одновременность выполнения задачи
Конкуренция – одновременность использования ресурсов
Слайд 60

ІОЦ КНУ імені Тараса Шевченка, 2005 р Выводы относительно параллелизма Производительность

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Выводы относительно параллелизма

Производительность последовательных ЭВМ

не может возрастать до бесконечности
Единственный способ получить чрезвычайно высокую производительность на существующем техническом уровне – это использовать параллельные вычисления на уровне инструкций, процедур, объектов, приложений
Современные (даже последовательные компьютеры) используют параллелизм
Использование параллельных вычислений ведет к удорожанию оборудования
Параллельные вычисления требуют разработки специальных алгоритмов и использования специальных средств программирования
Не все задачи можно эффективно распараллелить
Слайд 61

ІОЦ КНУ імені Тараса Шевченка, 2005 р Распределенные вычисления Вычисление выполняется

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Распределенные вычисления

Вычисление выполняется в нескольких

адресных пространствах (с помощью нескольких процессов)
Процесс (task) – единица выполнения задания, которая включает выполняющийся код и ресурсы, которые это код использует и которые защищены от доступа других процессов
Адресное пространство – это то, как память и другие ресурсы представляются процессу
Слайд 62

ІОЦ КНУ імені Тараса Шевченка, 2005 р Распределенные программы Несколько процессов

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Распределенные программы

Несколько процессов выполняются
на

одной машине и служат для
решения общей задачи

Программы выполняется на разных машинах и служат для решения
общей задачи

Слайд 63

ІОЦ КНУ імені Тараса Шевченка, 2005 р Преимущества распределенных систем Возможность

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Преимущества распределенных систем

Возможность использования ресурсов,

которые находятся на разных аппаратных платформах или принадлежат разным программам
Возможность специализации ресурсов
Возможность децентрализации
Возможность создания избыточности ресурсов для повышения надежности
Слайд 64

ІОЦ КНУ імені Тараса Шевченка, 2005 р Использование ресурсов, которые находятся

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Использование ресурсов, которые находятся на

разных компьютерах

Доступ к удаленным сетевым ресурсам
Предоставление доступа пользователей других машин к своим ресурсам
Распределенные вычисления сейчас стали синонимом слова Интернет

Слайд 65

ІОЦ КНУ імені Тараса Шевченка, 2005 р Специализация Если есть ресурс,

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Специализация

Если есть ресурс, который необходим

большому количеству людей, то его необязательно размещать на компьютерах всех пользователей, которым он нужна
Можно создать один ресурс, к которому будет выполняться доступ многих пользователей
Слайд 66

ІОЦ КНУ імені Тараса Шевченка, 2005 р Децентрализация Данные очень большого

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Децентрализация

Данные очень большого объема можно

разнести по нескольким физическим системам
Пример: большие поисковые системы
Слайд 67

ІОЦ КНУ імені Тараса Шевченка, 2005 р Обеспечение надежности Создается несколько

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Обеспечение надежности

Создается несколько копий одного

ресурса и в случае выхода из строя одной копии, все остальные будут доступны
Пример: несколько копий базы данных, или несколько задач, которые выполняют одни и те же действия
Слайд 68

ІОЦ КНУ імені Тараса Шевченка, 2005 р Сложности Декомпозиция, связь, синхронизация Усложнение программирования

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Сложности

Декомпозиция, связь, синхронизация
Усложнение программирования

Слайд 69

ІОЦ КНУ імені Тараса Шевченка, 2005 р Параллельные и распределенные вычисления

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Параллельные и распределенные вычисления

Много общего

в целях и подходах
Не все параллельные вычисления являются распределенными
Не все распределенные вычисления являются параллельными
Слайд 70

ІОЦ КНУ імені Тараса Шевченка, 2005 р Система с совместно используемой

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Система с совместно используемой памятью

Параллельная,

но не распределенная
Все программы могут совместно использовать одни и те же данные
Слайд 71

ІОЦ КНУ імені Тараса Шевченка, 2005 р Система с зеркалированием Компьютер

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Система с зеркалированием

Компьютер A выполняет

работу, а компьютер B является резервным на случай выхода компьютера A из строя
Компьютеры не работают одновременно
Слайд 72

ІОЦ КНУ імені Тараса Шевченка, 2005 р Выводы Параллельные и распределенные

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Выводы

Параллельные и распределенные вычисления позволяют

решать проблемы производительности, надежности и обеспечения доступа к ресурсам
Тем не менее использование параллельных и распределенных вычислений требует усложнения алгоритмов, программирования и аппаратных средств
У параллельных и распределенных вычислений много общего, но есть некоторые отличия