ТЕОРИЯ И ПРАКТИКА МНОГОПОТОЧНОГО ПРОГРАММИРОВАНИЯ Тема 5 Некоторые понятия, используемые при разработке параллельных программ Д. ф.- м. н., профессор А.

Slides:



Advertisements
Similar presentations
Выпускная квалификационная работа на тему: «Применение интернет-технологий как фактор повышения эффективности функционирования организации (на примере.
Advertisements

ЗАРЯДКА НА АНГЛИЙСКОМ ЯЗЫКЕ.  Зарядка на уроке английского языка может стать самым любимым и веселым занятием для детей, при том, что она проходит исключительно.
Астрометрические каталоги К.В.Куимов, ГАИШ МГУ. Определение астрометрического каталога Астрометрический каталог – понятие неопределённое. Например, это.
Схема распределения грантов городам-участникам программы Тасис (TCAS) Экологические гранты для муниципалитетов.
Системы с наследованием. Если систему можно представить в виде : Где - непрерывные функции, то такая система называется системой с наследованием. Математическое.
Системы отбора. Условные обозначения (1) (2) (3) (4) (5) (6) (7) Математическое моделирование процессов отбора2.
Елена Станиславовна Петрова Учитель-логопед высшей категории ГДОУ детский сад №47 комбинированного вида Фрунзенского района г. Санкт-Петербурга 2011 год.
ЛОМОНОСОВ И МАТЕМАТИКА. Большое значение Ломоносов придавал математике, рекомендуя широко применять математические методы в других науках. Математику,
Грековой Марии. Играет важную роль в формулировке современных теорий. Некоторые симметрии в современной физике считаются точными, другие — лишь приближёнными.
R1R2R3R4R5R6R7R1R2R3R4R5R6R7. Аксиома R 1. В пространстве существуют плоскости. В каждой плоскости пространства выполняются все аксиомы планиметрии.
Тел. (495) Москва, а/я 212 Рабочая группа по реформе МВД Москва, 2010 Новикова Асмик, Фонд «Общественный вердикт»
Некомпенсаторное агрегирование и рейтингование студентов Авторы: Гончаров Алексей Александрович, Чистяков Вячеслав Васильевич. НФ ГУ ВШЭ 2010 год.
Раквиашвили А.А. к.э.н., доцент, экономический факультет МГУ имени М.В. Ломоносова Рациональность индивидуального выбора и современный либерализм.
ТЕОРИЯ И ПРАКТИКА МНОГОПОТОЧНОГО ПРОГРАММИРОВАНИЯ Тема 3 Система команд, атомарность и порядок Д. ф.- м. н., профессор А. Г. Тормасов Кафедра информатики.
Всевоволод Головизнин, MVC – паттерн проектирование, в котором бизнес - логика, управляющая логика и интерфейс разделены на три отдельных компонента.
СВОЯ-ИГРА.
Стресс и здоровье Презентация Нефёдовой Евгении Николаевны, классного руководителя 9 «Б» класса МОУ СОШ № 30 города Энгельса Саратовской области 2010 год.
Bank ownership and lending behavior Alejandro Micco, Ugo Panizza Politicians and banks: Political influences on government-owned banks in emerging markets.
АВДАШЕВА СВЕТЛАНА КАФЕДРА ЭКОНОМИЧЕСКОГО АНАЛИЗА ОРГАНИЗАЦИЙ И РЫНКОВ 2011/2012 УЧЕБНЫЙ ГОД Теория отраслевых рынков (по выбору для 3 курса факультета.
Учитель математики Кулакова Т.М. МОУ ООШ №15 г.о Новокуйбышевск Самарской области Сентябрь 2011г.
Что за хулиган толкает пассажиров автобуса то вперед, то назад? Этот хулиган, вернее, хулиганка -
Виртуальная лаборатория для первоначального обучения проектированию программ Н. Н. Красильников, В. Г. Парфенов, Ф. Н. Царев, А. А. Шалыто Кафедра компьютерных.
ООП Классы – 2. Ссылки Ссылка – еще одно имя объекта. Используйте ссылки вместо указателя. Это более безопасно. Complex c(10,10); Complex c2& = c; c2+=10;
Блок 3. Семейства белков I. Множественное выравнивание Первый курс, весна 2008, А.Б.Рахманинова.
Разработка программного обеспечения (Software Engineering) Часть 2. Создание ПО.
Кафедра ЮНЕСКО по НИТ1 Формализация понятия «Алгоритм» Информатика.
1 Генерация контекстных ограничений для баз данных Выполнил: Жолудев В. Научный руководитель: Терехов А.Н. Рецензент: Иванов А.Н.
Номинация «Лучшее предложение по развитию массового спорта» «Строительство Роллердрома в городе Челябинск» Предложение подготовлено: Бобковой Екатериной.
Основы цифровой обработки речевых сигналов. Общая схема процесса речеобразования x[n] – дискретные отсчеты сигнала возбуждения y[n] – дискретные отсчеты.
Понятие риска применительно к инвестиционным проектам
Apache Harmony или как сделать курсовую работу в рамках этого проекта Фурсов Михаил.
Сравнение различных методов хранения XML в реляционных базах данных и в разных системах. Нгуен Тхань Хуен- 545 группа Руководитель : Б.А. Новиков Рецензент:
1 Ребенок в Сети. Ребенок играет?
Поиск ошибок в программах на языке Ruby с использованием вывода типов Санкт-Петербург, 2008г. Выполнил: Шпынов Олег, 545 гр. Научный руководитель: Ломов.
 Нужно много различных протоколов связи  Каждый из них может реализовываться на разных платформах Современные сети Много устройств, компьютеров и сетей.
Software & Services Group, Developer Products Division Copyright© 2010, Intel Corporation. All rights reserved. *Other brands and names are the property.
"The European Molecular Biology Open Software Suite"
Формантный синтезатор речи. Часть 1. Полюсы и нули – иное понимание Полюс – это пара чисел (B, F), B – ширина форманты, F – частота форманты Нуль – это.
Американские авиадиспетчеры По теме «Контрактная природа фирмы»
Оптимизация Just – in - time компилятора методом профилирования значений Соколов Андрей Владимирович, ФФ НГУ, 3 курс, Руководитель:
1 Влияние машинной архитектуры Структура и принципы работы компьютера На разрабатываемый язык программирования машинная архитектура влияет двояко: –непосредственно.
Симулятор квантовых вычислений Выполнил: Гедерцев А.С. Руководитель, д.ф.-м.н., профессор: Граничин О.Н.
Универмаги в большей степени, чем специализированные магазины заинтересованы в поддержании своей репутации. Как данный фактор может повлиять на систему.
Увеличение модульности программного обеспечения на языке Java Курсовая работа студента 345 группы Абишева Тимура Маратовича Научный руководитель: Профессор.
Кураева Екатерина Анатольевна, заместитель директора по УВР, учитель математики сш № 29.
Реализация XPath над S-выражениями 2007 Миленин Евгений, гр. 544 Кафедра Системного Программирования Математико-Механический ф-т, СПбГУ Научный руководитель:
Маршрут, цепь, цикл Маршрутом называют последовательность вершин и ребер, в которой любые два соседних элемента инцидентны (т.е. соединены). Например:
Методы анализа данных. Статистическая проверка гипотез.
Формализованы ли цели? Устраивает ли вас команда? Каковы этапы процесса? Изменение ИТ структуры? Нужны подрядчики? 1.
Библиотека для работы с конечными множествами, использующая графический процессор в качестве основного вычислительного устройства Новосибирский Государственный.
Проверка эквивалентности срединной и линейной осей многоугольника Дипломная работа студента 545 группы Подколзина Максима Валериевича Санкт-Петербургский.
SCAD OFFICE. Об устойчивости равновесия железобетонных конструкций.
TMG Tel: 8 (495) Fax: 8 (477) Technology Management Group ООО «TMG» PayKeeper.
Множественное выравнивание С.А.Спирин, весна
Времена года в немецком языке Die Jahreszeit in der Deutschesprache Времена года в немецком языке Die Jahreszeit in der Deutschesprache Выполнили: Драгунов.
Учитель Антонова О.Я. Учитель Антонова О.Я. Зерноградская поликлиника.
XML Схемы XML документов. XML Schema созданая Microsoft позволяет избавиться от DTD блоков. Основа – использование пространств имен и очень точная типизация.
Обработка исключений в C# Единая техника обнаружения ошибок времени выполнения и передачи информации о них.
OAUTHОРИЗАЦИЯ И API СОЦИАЛЬНЫХ СЕТЕЙ Артём Курапов.
R E F R I G E R A T I O N A N D A I R C O N D I T I O N I N G Блок мониторинга и централизованного управления АK-SM 350.
КРУПНЕЙШАЯ ТЕХНИЧЕСКАЯ КОНФЕРЕНЦИЯ MICROSOFT В УКРАИНЕ Metro приложения: работа с данными Краковецкий Александр, MVP/RD/PhD. DevRain Solutions.
Алгебра логики это раздел математики, изучающий высказывания, рассматриваемые со стороны их логических значений (истинности или ложности) и логических.
Захватывающее предложение по организации игры «Мафия» для event-агентств наши клиенты: тел.: сайт: (495)
Захватывающее предложение по организации игры «Мафия» для event-агентств наши клиенты: тел.: сайт: (495)
Jokes Jokes Jokes Teacher: Where's your text book? Student: At home. Teacher: What's it doing there? Student: Having a.
Урок-сказка по математике в 5 классе.
November CTP Андрей Коршиков MCP-клуб, Краснодар Декабрь 2009.
* Любой табак кроме WTO Депозит берется в течение 20 мин, как подошли все гости* В депозит входят все позиции в меню* Депозит не возвращается*
10 интересных фактов о Японии и Японцах. В состав Японии входит островов. При этом четыре наиболее крупных из них - Кюсю, Хонсю, Хоккайдо и Сикоку,
Presentation transcript:

ТЕОРИЯ И ПРАКТИКА МНОГОПОТОЧНОГО ПРОГРАММИРОВАНИЯ Тема 5 Некоторые понятия, используемые при разработке параллельных программ Д. ф.- м. н., профессор А. Г. Тормасов Базовая кафедра « Теоретическая и Прикладная Информатика », МФТИ

Тема Некоторые понятия, используемые при разработке параллельных программ. Уровни абстракции, которыми мыслит программист, и корректность программ. Время, простые временные отметки и ограниченные во времени отметки времени. О вероятностях и ошибках. 2 Теоретическая и Прикладная Информатика, МФТИ

Модель исполнения Программист, пишущий программу, имеет « в голове » модель того как она будет исполняться Эта модель эволюционирует Когда то были инженеры, которые « знают как течет ток в процессоре » Когда то были инженеры - математики, которые знают как дифурами, переложенными на набор модулей и функций фортран, описывается задача Сейчас есть программисты, оперирующие понятиями объекты, методы, связи и тд в исполняемой программе ( забыв о подпрограммах и модулях ) Часть программистов манипулирует понятиями « распределенной веб - объектной системы » и тд Теоретическая и Прикладная Информатика, МФТИ 3

Модель исполнения Типичная современня модель исполнения параллельных программ : 1.“ мой код исполняется одним процессором в одиночестве без перерывов ” 2.Операторы исполняются последовательно один за другим, « целиком » ( псевдоатомарно ) 3.Если несколько процессоров, то поделим код на куски, где опять см пп 1,2! Теоретическая и Прикладная Информатика, МФТИ 4

Но почему ? А потому, что... Свели задачу к известной ( старая история про то « как программист кипятит чайник »?) А как по другому то ? А по другому то сверхсложно, недоступно обычному программисту - инженеру ! Теоретическая и Прикладная Информатика, МФТИ 5

Как ? Для этого « изобрели » множество процедур, гарантирующих исполнение кода « в одиночестве » ( разновидности критических секций по сути своей ) будем называть их « примитивами синхронизации » Примитив потому что обычно неделим Их стало очень много ( в ядре Windows 7 – 16 типов !) Технически они все используют примерно один и тот же набор низкоуровневых операций платформы ( х 86) Теоретическая и Прикладная Информатика, МФТИ 6

Примитивы Согласно теореме об эквивалентности примитивов с одинаковым числом консенсуса ( которая будет доказана далее ), любой из них может быть реализован через любые другие примитивы одного уровня консенсуса Их существование – исключительно удобство уровня абстракции, которым пользуется программист Для повышения эффективности, но, в первую очередь, для уменьшения ошибок и приближения « модели апи » к « модели программы » Теоретическая и Прикладная Информатика, МФТИ 7

Корректность программ Одно из самых основных понятий остается одинаковым с самых давних времен – корректность « Программа должна быть правильной » ?! Теоретическая и Прикладная Информатика, МФТИ 8

« корректно работающая программа » Что это такое ? При каких условиях ? Если сломался ЦПУ, должна ли программа работать ? А на борту космического корабля ? Будет ли корректна программа, дающие разные ответы в одинаковых условиях ? Теоретическая и Прикладная Информатика, МФТИ 9

« корректно работающая программа » Если выбранный ( и закодированный ) алгоритм не всегда работает так как мы ожидали – программа корректна ? Мы просто не предусмотрели всех вариантов ! – наша ошибка ? Предусмотреть все варианты невозможно математически ? Условно - корректная программа RSA алгоритм базируется на задаче нахождения простых чисел, и на невозможности ее стабильного решения за какое то время Недавно новый результат в фундаментальной математике уменьшил перебор на 2-3 порядка ! Заменить ключи 768 бит на 2048 бит. На момент написания – корректна, но потом... Один из вариантов задачи корректности программ в математической постановке будет рассмотрен при рассказе об оценке наличия неразрешенных условий гонок Теоретическая и Прикладная Информатика, МФТИ 10

Время как одна из абстракций Одновременно сложное и простое понятие, о котором знают все Понятие события и отношение Одно событие раньше другого Эти события – одновременны Есть « абсолютное знание » с точки зрения которого это правильно или нет А если нет такого ? Теоретическая и Прикладная Информатика, МФТИ 11

Отношения и порядок А какая инструкция сейчас исполняется ? Умозрительное исполнение Неатомарность большинства инструкций Что есть окончание работы команды ? Например, Последний такт процессора Время попадания результата в кэш ( который из них ) Время попадания результата в память Видимость результата соседним процессором Теоретическая и Прикладная Информатика, МФТИ 12

Отношения и порядок Последовательность записей в память может меняться процессором ! А одновременно ли исполняются две эти инструкции ? Если мы не знаем когда она кончается, то... А влияет ли исполнение этой инструкции на вот эту ? Ключевой вопрос – взаимовлияние ! Теоретическая и Прикладная Информатика, МФТИ 13

Наблюдаемая упорядоченность Результат действия одних инструкций по отношению к состоянию других инструкций Даже если мы можем « измерить » все оборудование, не поможет « знать точно состояние ячейки »! Скорее, не просто « может быть так », а « так является » Команды « наблюдения » влияют на наблюдаемые Совсем как в квантовой механике Процесс измерения меняет измеряемую величину ? Измеряемое явление не существует до момента измерения ! Теоретическая и Прикладная Информатика, МФТИ 14

Наше время Последовательность операций внутри одного потока как последовательность переданных на исполнение CPU команд Общее время все потоки разделяют одно и тоже понятие времени В дальнейшем понятие времени будет формализовано Теоретическая и Прикладная Информатика, МФТИ 15

Временные отметки (TS) Один из важных приемов – используется во множестве алгоритмов « в какой то степени уникальное » значение счетчика « монотонно » растет Пример : время, прошедшее с какого то момента Теоретическая и Прикладная Информатика, МФТИ 16

Временные отметки TS_instance CreateTS(); Создает экземпляр временной метки TS_value GetTSvalue(TS_instance); получает новое значение временной метки ( и, обычно, инкрементирует ее экземпляр ) int CompareTSvalues(TS_value, TS_value); сравнивает два значения Изменение внутреннего счетчика По запросу Постоянно меняющееся значение ( например, RDTSC) Обычно целое слово (4 байта ) Теоретическая и Прикладная Информатика, МФТИ 17

Временные отметки Пример – счетчик в алгоритме булочной Проблемы Переполнение (Y2K – проблема 2000 года ) Точность Калибровка (RDTSC) Гарантии уникальности Теоретическая и Прикладная Информатика, МФТИ 18

Ограниченные отметки Как избежать проблем переполнения ? получить такие значения счетчиков, которые можно сравнивать всегда Есть сложные реализации, с гарантией Пример – реализация с ограничением схемы использования Сканирование – чтение отметки другого потока Самопометка – выставка себе большей метки Только последовательно ( упорядоченно ) Теоретическая и Прикладная Информатика, МФТИ 19

Ограниченные отметки ассиметричный упорядоченный граф ( предшествования ) для представления Ребро от a к b означает что а позднее Нет транзитивности (a→b + b→c != a→c) Метка потока « переползает » по ребрам Теоретическая и Прикладная Информатика, МФТИ 20

Ограниченные отметки G есть граф предшествования, и A и B есть его подграфы Определение : А доминирует над B в графе G, если каждая вершина графа A имеет ребра, идущие к каждой вершине графа B. Определение : Операция размножения графа G через H (G o H) есть некоммутативный оператор следующего вида : Заменим каждую вершину графа G копией графа H ( обозначаемой далее H ), причем H доминирует над Hu в G o H, если доминирует над u в G. Определение : граф предшествования для k потоков T k есть : T 1 – единственная вершина ; T 2 – определен выше ; T k = T 2 o T k-1 при к > 2. Используя предложенный граф T k, можно всегда найдти новое место для знака потока, который будет доминировать надо всеми остальными потоками Теоретическая и Прикладная Информатика, МФТИ 21

Вероятности и ошибки Можно ли пренебречь маловероятным событием ? неатомарная инкрементация i++ в 2 потоках Мала вероятность совпадения ? На 1 М ошибка ~10 раз, несколько раз в секунду ! Теоретическая и Прикладная Информатика, МФТИ 22

Вероятности и ошибки Другой пример – сравнение страниц (4 кб ) Можно сравнивать побайтово ( а если их много ?) Можно сгенерировать хеш и сравнить его Второй случай имеет « встроенную » ошибку Для 64 бит хеша с учетом парадокса дня рождения надо сделать 6 сравнений (10 5 байт ) для достижения вероятности совпадения , т. е. 1 отказ на байт Первый – тоже ! ( ЕСС память ) 1 отказ на байт, хотя, возможно, это разные ошибки Теоретическая и Прикладная Информатика, МФТИ 23

Выводы Программист использует понятные ему абстракции ( понятия ) в рамках модели исполнения Типовые понятия ( кроме обычных для языка ) включают Корректность программы Время и процесс выполнения кода Наблюдаемый порядок выполнения инструкций, отношения между ними Примитивы синхронизации Для « прямой » работы со временем используются временные отметки Они часто используются для организации параллельных алгоритмов и имеют специфику реализации Типовая модель исполнения для параллельного программирования является продолжением последовательной Чаще всего используется модель « автономного исполнения участков кода » При выборе алгоритмов, в том числе паралельных, необходимо учитывать вероятности и ошибки 24 Теоретическая и Прикладная Информатика, МФТИ

(с) А. Тормасов, г. Базовая кафедра « Теоретическая и Прикладная Информатика » ФУПМ МФТИ crec.mipt.ru_ Для коммерческого использования курса просьба связаться с автором. Теоретическая и Прикладная Информатика, МФТИ 25