2. МарГТУ 2011 г. 2
Лабораторные работы.
Требования
Языки программирования: С++ и C# под MS Visual Studio 2003,
2005 – для C# (для поддержки семафоров).
Исходный код и стабильно работающая программа.
Схема потоков, как в примерах к 1 и 2 работе и использовать
Сети Петри (программа находится в папке HelpСети_Петри).
Защита лабораторных работ: презентовать свою работу
(«похвалить» её) и рассказать основные моменты реализации.
3. МарГТУ 2011 г. 3
Баллы. Теория и посещение
За посещение одной лекции - +0,2 балла.
За посещение одной практики - +0,2 балла.
За пропуск одной лекции - минус 0,5 балла.
За пропуск одной практики (при не сдаче лабораторных в срок)
– минус 0,5 балла.
Контрольные проверочные работы (10-20 минут) – 3-5 балла за
работу.
4. МарГТУ 2011 г. 4
Лабораторные работы. Баллы.
Максимальное количество баллов за работу: 8-12 баллов.
Время на выполнение – 2-3 недели, затем количество
полученных вами баллов будет снижаться на 0,5 за каждую
неделю.
5. МарГТУ 2011 г. 5
Лабораторные работы. Бонусы
Сдача лабораторной на неделю раньше срока – бонус
1 балл, на две и более недели – бонус 2 балла и т.
д., при условии отличной защиты без замечаний.
Сроки сдачи:
1 : 27 сентября (ПС-41);
2 : 11 октября;
3 : 1 ноября;
4 : 22 ноября;
5 : 13 декабря.
Всего работ 5.
6. МарГТУ 2011 г. 6
Организация параллельности
вычислений
введения избыточности функциональных устройств
(многопроцессорности);
разработка и оптимизация алгоритмов.
8. МарГТУ 2011 г. 8
Параллельные Вычисления.
Потери производительности для организации
параллелизма (гипотеза Минского) – ускорение
a ~ log2N, где N число процессоров.
Существование последовательных вычислений.
Закон Амдаля об ускорении процесса
вычисления:
Где f – доля последовательных вычислений.
9. МарГТУ 2011 г. 9
Проблематика параллельных
вычислений.
Зависимость эффективности параллелизма от
учета характерных свойств параллельных систем
Существующее программное обеспечение
ориентировано в основном на последовательные
ЭВМ
10. МарГТУ 2011 г. 10
Направления исследований.
разработка параллельных вычислительных систем;
анализ эффективности параллельных;
формирование общих принципов разработки параллельных
алгоритмов для решения сложных вычислительно
трудоемких задач
создание и развитие системного программного обеспечения
для параллельных вычислительных систем
создание и развитие параллельных алгоритмов для решения
прикладных задач в разных областях практических
приложений.
11. МарГТУ 2011 г. 11
Пути достижения
параллелизма.
независимость функционирования отдельных
устройств ЭВМ;
избыточность элементов вычислительной
системы:
использование специализированных устройств;
дублирование устройств ЭВМ путем использования;
конвейерная реализация обрабатывающих
устройств.
12. МарГТУ 2011 г. 12
Режимы исполнения программ
многозадачный режим (режим разделения
времени);
параллельное выполнение;
распределенные вычисления.
Распределённые вычисле́ния (distributed computing,
grid computing, volunteer computing) — способ решения
трудоёмких вычислительных задач с использованием
двух и более компьютеров объединённых в сеть.
13. МарГТУ 2011 г. 13
Некорректное вычисление
данных
Пусть необходимо начислить зарплату и вычислить сумму
денег, подлежащих выдаче на руки. Оставляя в стороне
излишние здесь детали, будем предполагать, что зарплату
составляют некоторая базисная зарплата N0 плюс надбавки
N1, N2, ..., Nn (выражаются в процентах к базисной
зарплате) минус налог Nn-1 (выражаются в процентах к
начисленной сумме).
14. МарГТУ 2011 г. 14
Некорректное вычисление
данных
• Пусть процессы Р0, P1, Р2, ... , Рn, Рn+1
соответственно выполняют эти операции.
• Процессы Р1, P2,..., Рn, Рn+1 выполняются
асинхронно.
(Р0 + P1 + Pn+1 + P2 + ... + Рn) ≠
(Р0 + Pn+1 + P1 + Р2 + ... + Рn)
15. МарГТУ 2011 г. 15
Некорректное считывание
данных
• Пусть в банке А есть счет acc1, на котором находится 500
тыс. руб., а в банке В - счет асс2, на котором находится 300
тыс. руб, и необходимо переслать 100 тыс. руб. со счета
асc1 на счет асс2. Сумма денег на обоих счетах неизменна
до и после выполнения пересылки и равна 800 тыс руб.
Пусть процесс P1 посылает деньги из банка А в банк В, а
процесс Р2 принимает посланные деньги в банке B.
16. МарГТУ 2011 г. 16
Некорректное считывание
данных. Исходные данные.
• А.асс1 = 500 тыс. руб.
• В.асс2 = 300 тыс. руб.
17. МарГТУ 2011 г. 17
Некорректное считывание
данных. Исходные данные.
Процесс Р1 Процесс Р2
А.асc1: = А.асc1 - 100; receive
(x,A,y);
x: = 100
send (x, B, y); B.acc2: =
B.acc2 + y;
18. МарГТУ 2011 г. 18
Некорректное считывание
данных.
• сумма А.асс1 + В.асс2 может равняться 700
тыс.руб. (если значение А.асс1 было считано
после его изменения, а значение В.асс2 - до
изменения)
• 800 тыс. руб – считывание после пересылки.
• сумма А.асс1 + В.асс2 может равняться 900
тыс.руб. (если значение А.асс1 было считано до
его изменения, а значение В.асс2 - после
изменения)
19. МарГТУ 2011 г. 19
Определение сети Петри
математическая модель, которая имеет широкое
применение для описания поведения параллельных
устройств и процессов;
есть двудольный ориентированный граф.
20. МарГТУ 2011 г. 20
Определение сети Петри
N = (T, P, A), T Р = Ø, где
Т = {t1, t2, ..., tn} - подмножество вершин, называющихся
переходами;
Р = {p1, р2, ..., pm} - подмножество вершин, называющихся
местами;
А (T×P) (P×T) - множество ориентированных дуг.
21. МарГТУ 2011 г. 21
Пример №1 сети Петри
граф: продукционные правила:
22. МарГТУ 2011 г. 22
Разметка сети Петри
Состояние - определяется системой условий.
Фишки – запись, объекты и т. д. (изображается
точкой)
Места – условия в сети (буфер пуст, файл закрыт)
(изображается кружком).
Переходы – события в сети (посылка или
получение сообщения в буфер, запись в файл)
(изображается палочкой, чертой).
Задается формально: М: Р → I, I = {0,1,2,..}
23. МарГТУ 2011 г. 23
Пример №2 сети Петри
М0 = {1,0,0} М1 = {1,1,1} М2 = {1,2,3}
26. МарГТУ 2011 г. 26
Граф достижимости
Разметка М называется достижимой, если при некоторой
последовательности срабатываний сети, начиная с
начальной разметки М0, она переходит к разметке М.
Множество разметок, достижимых в порядке срабатывания
сети, представляется разверткой сети.
Множество достижимых разметок удобно представлять
графом достижимости, который показывает все достижимые
разметки и последовательности срабатываний переходов,
приводящих к ним.
28. МарГТУ 2011 г. 28
Дедлоки
Состояние дедлока возникает, когда запрос
ресурсов в системе не может быть удовлетворен и
система останавливается (ни один переход не
может сработать).
30. МарГТУ 2011 г. 30
Пример 5. Задача о философах
Пять философов, прогуливаясь и размышляя,
время от времени испытывают приступы голода.
Тогда они заходят в столовую, где стоит круглый
стол, на нем всегда приготовлены пять блюд.
Между соседними блюдами лежит одна вилка
(всего лежат ровно пять вилок).
31. МарГТУ 2011 г. 31
Пример 5. Задача о философах
Голодный философ:
входит в столовую, садится за стол и берет вилку слева;
берет вилку справа;
ест (обязательно двумя вилками);
кладет обе вилки на стол, выходит из столовой и
продолжает думать.
32. МарГТУ 2011 г. 32
Пример 5. Задача о философах
варианты поведения философов:
Одновременно взяли все левую вилку;
Два философа одновременно взяли одну вилку;
Стеснительный философ не должен умирать голодной
смертью из-за того, что его вилки постоянно раньше него
хватают напористые соседи;
Легко представить себе ситуацию, когда банда
сговорившихся философов завладеет всеми вилками и,
передавая их только в своей среде, уморит голодом всех
прочих.