37
МарГТУ 2008 г. 1 Распределенные вычисления Введение в распределенные вычисления. Сети Петри. Лекция 1 Подготовил: Хованский Е. П.

01 вводная

Embed Size (px)

DESCRIPTION

Лекция по РВ

Citation preview

Page 1: 01 вводная

МарГТУ 2008 г. 1

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

Введение в распределенные вычисления. Сети Петри.

Лекция 1Подготовил: Хованский Е. П.

Page 2: 01 вводная

МарГТУ 2008 г. 2

Лабораторные работы. Требования

Языки программирования: С++ и C# под MS Visual Studio 2003, 2005 – для C# (для поддержки семафоров).

Исходный код и стабильно работающая программа. Схема потоков, как в примерах к 1 и 2 работе или,

желательно, использовать Сети Петри (программа находится в папке Help\Сети_Петри) (для первых двух лабораторных).

Защита лабораторных работ: презентовать свою работу («похвалить» её) и рассказать основные моменты реализации.

Page 3: 01 вводная

МарГТУ 2008 г. 3

Баллы. Лабораторные работы

Максимальное количество баллов за работу: 10 баллов. Время на выполнение – 2 недели, затем количество

полученных вами баллов будет снижено на 1/4, а еще через две недели еще на 1/4, и так далее...

То есть формула дисконтирования следующая: Где S0 – количество заработанных за решение баллов, а

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

2

43

0

w

SS

Page 4: 01 вводная

МарГТУ 2008 г. 4

Баллы. Теория

За пропуск одной лекции минус 2 балла. Контрольные проверочные работы (10-12 минут) – 3-5

баллов за работу.

Page 5: 01 вводная

МарГТУ 2008 г. 5

Лабораторные работы. Бонусы

Сдача лабораторной на неделю раньше срока – бонус 1 балл, на две недели – бонус 2 балла и т. д.

Сроки сдачи: 1 – 22 - 29 сентября; 2 – 6 - 13 октября; 3 – 20 - 27 октября; и т. д.

Всего работ 5-7. Те кто сделает 7 лабораторную (при условии сделанных 6 предыдущих), в качестве бонуса можно будет ее засчитать за РГР в следующем семестре.

P.S. Требования к защите лабораторных работ могут бытьизменены преподавателем.

Page 6: 01 вводная

МарГТУ 2008 г. 6

Организация параллельности вычислений

введения избыточности функциональных устройств (многопроцессорности);

разработка и оптимизация алгоритмов.

Page 7: 01 вводная

МарГТУ 2008 г. 7

Избыточность функциональных устройств

Супер ЭВМ. Сети. Кластеры. Многоядерные процессоры.

Page 8: 01 вводная

МарГТУ 2008 г. 8

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

Потери производительности для организации параллелизма (гипотеза Минского) – ускорение a ~ log2N, где N число процессоров.

Существование последовательных вычислений. Закон Амдаля об ускорении процесса вычисления:

Где f – доля последовательных вычислений.

Page 9: 01 вводная

МарГТУ 2008 г. 9

Проблематика параллельных вычислений.

Зависимость эффективности параллелизма от учета характерных свойств параллельных систем

Существующее программное обеспечение ориентировано в основном на последовательные ЭВМ

Page 10: 01 вводная

МарГТУ 2008 г. 10

Направления исследований.

разработка параллельных вычислительных систем; анализ эффективности параллельных; формирование общих принципов разработки

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

создание и развитие системного программного обеспечения для параллельных вычислительных систем

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

Page 11: 01 вводная

МарГТУ 2008 г. 11

Пути достижения параллелизма.

независимость функционирования отдельных устройств ЭВМ;

избыточность элементов вычислительной системы:

использование специализированных устройств;

дублирование устройств ЭВМ путем использования;

конвейерная реализация обрабатывающих устройств.

Page 12: 01 вводная

МарГТУ 2008 г. 12

Режимы исполнения программ

многозадачный режим (режим разделения времени);

параллельное выполнение; распределенные вычисления.

Распределённые вычисле"ния (distributed computing, grid computing, volunteer computing) — способ решения трудоёмких вычислительных задач с использованием двух и более компьютеров объединённых в сеть.

Page 13: 01 вводная

МарГТУ 2008 г. 13

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

Параллельная программа представляет систему независимо исполняющихся взаимодействующих процессов

Page 14: 01 вводная

МарГТУ 2008 г. 14

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

Пусть необходимо начислить зарплату и вычислить сумму денег, подлежаыщих выдаче на руки. Оставляя в стороне излишние здесь детали, будем предполагать, что зарплату составляют некоторая базисная зарплата N0 плюс надбавки N1, N2, ..., Nn (выражаются в процентах к базисной зарплате) минус налог Nn-1 (выражаются в процентах к начисленной сумме).

Page 15: 01 вводная

МарГТУ 2008 г. 15

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

• Пусть процессы Р0, P1, Р2, ... , Рn, Рn+1 соответственно выполняют эти операции.

• Процессы Р1, P2,..., Рn, Рn+1 выполняются асинхронно.

(Р0 + P1 + Pn+1 + P2 + ... + Рn) ≠ (Р0 + Pn+1 + P1 + Р2 + ... + Рn)

Page 16: 01 вводная

МарГТУ 2008 г. 16

Некорректное считывание данных

• Пусть в банке А есть счет acc1, на котором находится 500 тыс. руб., а в банке В - счет асс2, на котором находится 300 тыс. руб, и необходимо переслать 100 тыс. руб. со счета асc1 на счет асс2. Сумма денег на обоих счетах неизменна до и после выполнения пересылки и равна 800 тыс руб. Пусть процесс P1 посылает деньги из банка А в банк В, а процесс Р2 принимает посланные деньги в банке B.

Page 17: 01 вводная

МарГТУ 2008 г. 17

Некорректное считывание данных. Исходные данные.

• А.асс1 = 500 тыс. руб.• В.асс2 = 300 тыс. руб.

Page 18: 01 вводная

МарГТУ 2008 г. 18

Некорректное считывание данных. Исходные данные.

• А.асс1 = 500 тыс. руб.• В.асс2 = 300 тыс. руб.

Page 19: 01 вводная

МарГТУ 2008 г. 19

Некорректное считывание данных. Исходные данные.

Процесс Р1                            Процесс Р2 А.асc1: = А.асc1 - 100;            receive (x,A,y); x: = 100 send (x, B, y);                          B.acc2: = B.acc2 + y;

Page 20: 01 вводная

МарГТУ 2008 г. 20

Некорректное считывание данных.

• сумма А.асс1 + В.асс2 может равняться 700 тыс.руб. (если значение А.асс1 было считано после его изменения, а значение В.асс2 - до изменения)

• 800 тыс. руб – считывание после пересылки.

• сумма А.асс1 + В.асс2 может равняться 900 тыс.руб. (если значение А.асс1 было считано до его изменения, а значение В.асс2 - после изменения)

Page 21: 01 вводная

МарГТУ 2008 г. 21

Определение сети Петри

математическая модель, которая имеет широкое применение для описания поведения параллельных устройств и процессов;

есть двудольный ориентированный граф.

Page 22: 01 вводная

МарГТУ 2008 г. 22

Определение сети Петри

N = (T, P, A), T Р = Ø, где Т = {t1, t2, ..., tn} - подмножество вершин,

называющихся переходами; Р = {p1, р2, ..., pm} - подмножество вершин,

называющихся местами; А (T×P) (P×T) - множество ориентированных

дуг.

Page 23: 01 вводная

МарГТУ 2008 г. 23

Пример №1 сети Петри

граф: продукционные правила:

Page 24: 01 вводная

МарГТУ 2008 г. 24

Разметка сети Петри

Состояние - определяется системой условий.

Фишки – запись, объекты и т. д. (изображается точкой)

Места – условия в сети (буфер пуст, файл закрыт) (изображается кружком).

Переходы – события в сети (посылка или получение сообщения в буфер, запись в файл) (изображается палочкой, чертой).

Задается формально: М: Р → I, I = {0,1,2,..}

Page 25: 01 вводная

МарГТУ 2008 г. 25

Пример №2 сети Петри

М0 = {1,0,0} М1 = {1,1,1} М2 = {1,2,3}

Page 26: 01 вводная

МарГТУ 2008 г. 26

Пример №2 сети Петри

Page 27: 01 вводная

МарГТУ 2008 г. 27

Сеть Петри как устройство

Page 28: 01 вводная

МарГТУ 2008 г. 28

Граф достижимости

Разметка М называется достижимой, если при некоторой последовательности срабатываний сети, начиная с начальной разметки М0, она переходит к разметке М.

Множество разметок, достижимых в порядке срабатывания сети, представляется разверткой сети.

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

Page 29: 01 вводная

МарГТУ 2008 г. 29

Граф достижимости. Пример 3.

Page 30: 01 вводная

МарГТУ 2008 г. 30

Дедлоки

Состояние дедлока возникает, когда запрос ресурсов в системе не может быть удовлетворен и система останавливается (ни один переход не может сработать).

Page 31: 01 вводная

МарГТУ 2008 г. 31

Дедлоки. Пример 4.

Page 32: 01 вводная

МарГТУ 2008 г. 32

Пример 5. Задача о философах

Пять философов, прогуливаясь и размышляя, время от времени испытывают приступы голода. Тогда они заходят в столовую, где стоит круглый стол, на нем всегда приготовлены пять блюд. Между соседними блюдами лежит одна вилка (всего лежат ровно пять вилок).

Page 33: 01 вводная

МарГТУ 2008 г. 33

Пример 5. Задача о философах

Голодный философ: входит в столовую, садится за стол и берет вилку

слева; берет вилку справа; ест (обязательно двумя вилками); кладет обе вилки на стол, выходит из столовой и

продолжает думать.

Page 34: 01 вводная

МарГТУ 2008 г. 34

Пример 5. Задача о философах

варианты поведения философов: Одновременно взяли все левую вилку; Два философа одновременно взяли одну вилку; Стеснительный философ не должен умирать

голодной смертью из-за того, что его вилки постоянно раньше него хватают напористые соседи;

Легко представить себе ситуацию, когда банда сговорившихся философов завладеет всеми вилками и, передавая их только в своей среде, уморит голодом всех прочих.

Page 35: 01 вводная

МарГТУ 2008 г. 35

Пример 5. Один философ.

Page 36: 01 вводная

МарГТУ 2008 г. 36

Page 37: 01 вводная

МарГТУ 2008 г. 37

Спасибо за внимание!