Спецкурс Разработка серверов и серверных приложений...

Post on 16-Jun-2015

346 views 5 download

description

В 70-годах прошлого века в ИТ-отрасли сложилось стойкое убеждение, что будущее будет за многопроцессорными системами. Активно разрабатывались методы написания параллельных программ, в том числе и модель акторов Карла Хьюита. Однако все попытки создать многопроцессорную систему завершились провалом - полученные системы оказались дорогими и существенно не превосходили однопроцессорные системы. Самым известным провалом стал японский проект по разработке вычислительных машин 5-го поколения, на который было потрачено 500 млн. долларов. Причина заключается в законе Амдала, который устанавливает ограничения на увеличение производительности при распараллеливании программ. Кроме того, на рынке появилась компания Intel, которая сумела создать успешный однопоточный процессор и постепенно наращивать производительность своих процессоров. Это было время, когда программистам для ускорения своих программ не надо было делать ничего - достаточно дождаться более мощной версии процессора. Только спустя 30 лет, когда Intel уперлась в технологические проблемы наращивания производительности процессоров в лоб, интерес к параллельным технологиям опять возрос. Возникает резонный вопрос: этот интерес надолго или опять повторится история 70-х? В статье Герба Саттера 2005 года Бесплатного супа больше не будет: фундаментальный поворот к параллельности в программном обеспечении утверждается, что нет - больше не возврата к однопоточным программам, и программисты теперь будут вынуждены заботиться о параллельности...

Transcript of Спецкурс Разработка серверов и серверных приложений...

4ЫВАНАЕ

СЕРВЕРНЫХ ПРИЛОЖЕНИЙ

РАЗРАБОТКА СЕРВЕРОВ и

ТюменцевЕвгений Александрович

ИМИТ кафедра МЛЛП – 14 лет, ФКН – 1 годВ ИТ-отрасли 9 лет

Занимаюсь разработкой серверных приложений с 2006 года

etyumentcev@gmail.com

Преподаватель 2

Вместо предисловия

Многопоточность?Это Вам не это!

3

Нужны специалисты 4

Не показалось…

Edward A. Lee

Edward A. Lee

The problem with Threads.

“Non-trivial multi-threaded programs are incomprehensible to human…”

2006

5

Скучно и нудно 6

Книги для чтения 7

Рекомендую посмотреть 8

Цель 9

Как есть

Архитектура

Взаимодействие

Измеримость

Оптимизация

Глава 1. Немного истории. 10

1970-ыe годы

Искусственный интеллект Будущее за многопроцессорными

системами Проект 5-е поколение

11

Вычислимость

Машина Тьюринга Машина Поста Λ-исчисление Черча

12

Состояние программы

с1 с2 с3 сn…

13

Ограничение вычислимости

с1 с2 с3 сn…

Требование глобального времени

14

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

Акторы

Carl Hewitt

Carl Hewitt, Peter Bishop, Richard Steiger

A Universal Modular ACTORFormalism for Artificial Intelligence

1973

16

Актор – вычислительная сущность

• Отправить конечное число сообщений другим акторам

• Создать конечное число акторов• Выбрать поведение для приема

следующего сообщения

Определение актора 17

Схема приложения 18

ЖЦ актора 19

В чем разница? 20

Синхронизация Акторы

Что-то пошло не так 21

Япония, 1982-1992 $500 млн Логическая обработка данных Сверхбольшие БД Многопроцессорные рабочие

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

Закон Амдала 22

Wikipedia

Однопроцессорные системы 23

Ничего не надо делать, чтобы приложение начало работать быстрее – с выходом нового процессора это получается автоматически

Реабилитация акторов

Herb Sutter

Herb Sutter

The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software

2005

24

Закон Мура 25

Разрядность, инструкции 26

Дальнейшее наращивание разрядности и расширение набора инструкций не дает ощутимого эффекта

Наращивание тактовой частоты 27

При дальнейшем наращивании тактовой частоты электрический сигнал не успевает преодолеть нужное расстояние внутри процессора

Тепловыделение 28

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

А может ситуация повториться? 29

Internet изменил представления о роли и назначении компьютеров