ТЕОРИЯ И ПРАКТИКА МНОГОПОТОЧНОГО ПРОГРАММИРОВАНИЯ Тема 1 Введение Д. ф.- м. н., профессор А. Г. Тормасов Базовая Кафедра « Теоретическая и Прикладная Информатика.

Презентация:



Advertisements
Похожие презентации
ТЕОРИЯ И ПРАКТИКА МНОГОПОТОЧНОГО ПРОГРАММИРОВАНИЯ Тема 15 Методика разработки и анализа неблокирующих алгоритмов. Д.ф.-м.н., профессор А.Г. Тормасов Базовая.
Advertisements

ТЕОРИЯ И ПРАКТИКА МНОГОПОТОЧНОГО ПРОГРАММИРОВАНИЯ Тема 6 Проблемы и специфика параллельного программирования Д. ф.- м. н., профессор А. Г. Тормасов Базовая.
ТЕОРИЯ И ПРАКТИКА МНОГОПОТОЧНОГО ПРОГРАММИРОВАНИЯ Тема 11 Свойства примитивов по отношению к числам консенсуса Д. ф.- м. н., профессор А. Г. Тормасов Базовая.
ТЕОРИЯ И ПРАКТИКА МНОГОПОТОЧНОГО ПРОГРАММИРОВАНИЯ Тема 2 Современные компьютеры и подсистема памяти Д. ф.- м. н., профессор А. Г. Тормасов Базовая кафедра.
Машинная команда Энциклопедия учителя информатики Газета «Первое сентября»
АЛГОРИТМЫ Умение составлять алгоритмы просто необходимо, если человек хочет поручить обработку информации машине Алгоритм - определенная последовательность.
Алгоритм. Свойства алгоритма. Автор: Германова Светлана Борисовна Учитель информатики и ИКТ МОУ СОШ 37 г. Твери.
Иерархия памяти в компьютере. Кэш-память Процессоры работают быстрее чем память! При обращении процессора к памяти из-за разницы в скорости работы процессору.
Выполнили: Мартышкин А. И. Кутузов В. В., Трояшкин П. В., Руководитель проекта – Мартышкин А. И., аспирант, ассистент кафедры ВМиС ПГТА.
Планирование выполнения инструкций для векторных процессоров с переменной длиной векторов Пантелеев Алексей Юрьевич Национальный исследовательский ядерный.
РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ МОДЕЛИРОВАНИЯ КОНКУРЕНТНОГО РЫНКА НА КЛАСТЕРНЫХ СИСТЕМАХ Авторы: Е.В. Болгова, А.С. Кириллов, Д.В. Леонов Научный.
Автоматное программирование А. А. Шалыто Санкт-Петербургский государственный университет информационных технологий, механики и оптики 2009 г.
1 Разработка и анализ параллельных поисковых структур данных, не чувствительных к размеру кеша Акишев Искандер Рустемович Научный руководитель: Елизаров.
1 НИРС – научно-исследовательская работа студентов Требования для студентов, обучающихся на кафедре «Прикладная математика» Составил: И.Штурц.
Учитель информатики Кюкяйской СОШ,Сунтарского улуса, Республики Саха Федоров Александр Михайлович,2010 год.
ТЕОРИЯ И ПРАКТИКА МНОГОПОТОЧНОГО ПРОГРАММИРОВАНИЯ Тема 3 Система команд, атомарность и порядок Д. ф.- м. н., профессор А. Г. Тормасов Базовая кафедра «
RISC-архитектуры ( Reduced Instruction Set Computer)
Пример обобщения концепции машины Тьюринга Дипломник: Макаров А.А. Научный руководитель: проф. Граничин О.Н. СПбГУ, математико-механический факультет,
ПРОГРАММА ДОПОЛНИТЕЛЬНОЙ ОБРАЗОВАТЕЛЬНОЙ УСЛУГИ Математические модели в решении технических и экономических задач Саратовского государственного аграрного.
Архитектура ЭВМ (лекция 7) проф. Петрова И.Ю. Курс Информатики.
Транксрипт:

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

Почему ?... Производители процессоров « уткнулись в множество стен »: Мощность ( выше частота –> больше мощность -> больше потерь на тепло – и как отдавать тепло ?) Скорость света ( скоро будет так, что за один такт сигнал уже не успевает передаться с одного конца ЦПУ на другой !) Скорость памяти ( тормозит выполнение программ, часто количество промахов кэша определяет производительность !) Умозрительное исполнение ограничено ( сложность растет экспоненциально с глубиной ) 2 Теоретическая и Прикладная Информатика, МФТИ

А потому, что... Решение : « потроха наружу », и пусть программист заботится о производительности ! Примерно так же как во времена начала перехода CISC -> RISC Типичный современный компьютер : Много быстрых ядер и гиперпотоков Много кэшей разного уровня Медленная память ( штраф за обращение !) Написание программы в « традиционном » последовательном стиле на 16 потоковой системе приведет к тому, что … от полной мощности системы ваша программа может получить уже около 1/16 ~ 5- 6%! Теоретическая и Прикладная Информатика, МФТИ 3

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

До курса : Умею программировать ( слегка ) Знаю язык С Знаю на уровне прикладного программиста Аппаратуру ОС и АПИ системных вызовов Базовые синхронизационные вызовы Знаю что такое машина Тьюринга 5 Теоретическая и Прикладная Информатика, МФТИ

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

Содержание курса Основы архитектуры современных микрокомпьютерных систем Только те сведения, которые влияют на производительность программ Способы явного и неявного программного манипулирования компонентами аппаратуры Аппаратура, система команд и языки программирования ( С - подобные ) Акцент на архитектуру x86 Некоторые необычные понятия параллельного программирования Уровни абстракции, не - существование « а на самом деле...» Атомарность Время Корректность Специфика работы с разделяемой памятью Общие проблемы параллельности и частные проблемы раздельного доступа Методы организации синхронного доступа 7 Теоретическая и Прикладная Информатика, МФТИ

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

Содержание курса Свобода – наша цель Свободные, свободные от блокировок, свободные от ожидания и с ограниченным от ожидания прогрессом Эффективность разных свободных алгоритмов Невозможность – наш ограничитель Невозможно улучшить примитив Невозможно решить задачу о консенсусе инструкциями чтения записи Невозможно решить задачу о консенсусе для системы со сбоями Невозможно … Но ! Невозможно решить точно не означает нерешаемо ! Пример : Ethernet 9 Теоретическая и Прикладная Информатика, МФТИ

Содержание курса Неблокирующие алгоритмы – наше будущее ? Существующие алгоритмы Когда можно применять, и зачем Как реализовать Как создать новый Упражнения и задание (TBD) 10 Теоретическая и Прикладная Информатика, МФТИ

После курса : Уметь анализировать работу параллельных потоков, использующих общую ( разделяемую ) память Понимать проблемы и терминологию параллельного программирования, математический аппарат, применяемый для описания и анализа Знать современные подходы к организации параллельных вычислений, в том числе высокопроизводительных Знать ограничения алгоритмики и не заниматься « квадратурой круга » или изобретением велосипеда Уметь создавать эффективные параллельные алгоритмы и понимать, когда их применение оправдано 11 Теоретическая и Прикладная Информатика, МФТИ

Дополнения Источники, на базе которых появился курс Потребность в новых алгоритмах и программах Книга Шафита, Херлихая и курсы на ее основе Недостатки имеющихся источников ( слишком « молодая » тема ) Личный опыт программирования и написания высокопроизводительных программ ( как следствие – использование С и x86 для примеров ) Литература Увы, почти вся англоязычная, причем большинство в виде « зубодробительных » научных статей Готовится пособие по курсу ( уже выпущена часть про аппаратуру ) Практические занятия Задание со списком задач (TBD) Практикум – реализация и анализ какого либо алгоритма Дополнение к курсу в виде библиотеки неблокирующих алгоритмов Комментарии, ошибки в материалах, предложения – welcome! 12 Теоретическая и Прикладная Информатика, МФТИ

НИР На кафедре информатики МФТИ ведется работа по методам анализа неблокирующих алгоритмов Можно ли построить автоматический метод анализа алгоритмов на корректность и отсутствие неразрешенных гонок ( сейчас это крайне сложно, например, анализ неблокирующей хеш таблицы на корректность методом машинной верификации занял 2 года !). Новые подходы к неблокирующим алгоритмам, не использующим блокировки шины (CAS) и барьеры Защищены ( к. ф.- м. н.) 2 первые диссертации по этим темам Желающие заниматься – welcome! 13 Теоретическая и Прикладная Информатика, МФТИ

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