20130420 bitbyte

39
Бутылочное горлышко многопоточных программ Кто виноват? Что делать? Алексей Николаенков 25.04.2013 1

description

 

Transcript of 20130420 bitbyte

Page 1: 20130420 bitbyte

Бутылочное горлышко многопоточных программ

Кто виноват? Что делать?

Алексей Николаенков

25.04.2013 1

Page 2: 20130420 bitbyte

DEMO TIME!

Page 3: 20130420 bitbyte

25.04.2013 3

«Ситуация с таможенным досмотром отправлений остается сложной. В целом 41 таможенник (против 384 сотрудников Почты) в четырех основных международных местах почтового обмена России (...) в сутки может досмотреть менее 33 тонн, в то время как, только на аэропорты московского узла за минувшие сутки прибыло почти 39 тонн почты. Распределяй не распределяй, ежедневно недосмотренные таможней 6 тонн оседает в терминалах».

«ПОЧТОВЫЕ ЗАВАЛЫ ТАЮТ под стахановским напором почтовиков» 15.04.2013 ФГУП «Почта России». Орфография и пунктуация авторские.

Page 4: 20130420 bitbyte

25.04.2013 4

Page 5: 20130420 bitbyte

Обработка запросов

25.04.2013 5

Обработка

Выполнение

Обработка

Обработка

Выполнение

Запрос

Запрос

Запрос

Результат

Результат

Page 6: 20130420 bitbyte

Обработка запросов

25.04.2013 6

Page 7: 20130420 bitbyte

Обработка запросов

25.04.2013 7

Page 8: 20130420 bitbyte

Обработка запросов

25.04.2013 8

Page 9: 20130420 bitbyte

Обработка запросов

25.04.2013 9

Обработка

Выполнение

Обработка

Обработка

Выполнение

Запрос

Запрос

Запрос

Результат

Результат

Page 10: 20130420 bitbyte

Пример

25.04.2013 10

Producer Consumer

Lock

Заблокировать

Lock

Page 11: 20130420 bitbyte

Пример

25.04.2013 11

Producer Consumer

Lock

Заблокировать

Lock

Page 12: 20130420 bitbyte

Пример

25.04.2013 12

Producer Consumer

Lock Lock

Page 13: 20130420 bitbyte

Пример

25.04.2013 13

Producer Consumer

Lock

Page 14: 20130420 bitbyte

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

25.04.2013 14

Page 15: 20130420 bitbyte

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

25.04.2013 15

Page 16: 20130420 bitbyte

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

25.04.2013 16

Page 17: 20130420 bitbyte

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

• Есть задержка

25.04.2013 17

Page 18: 20130420 bitbyte

Скоро демо!

25.04.2013 18

Обработка

Выполнение

Обработка

Обработка

Выполнение

Запрос

Запрос

Запрос

Результат

Результат

Page 19: 20130420 bitbyte

DEMO TIME!

Page 20: 20130420 bitbyte

«Ожидание»

25.04.2013 20

Producer Consumer

Lock

Заблокировать

Lock

Page 21: 20130420 bitbyte

Результаты

25.04.2013 21

Общее количество операций

120 миллионов

Page 22: 20130420 bitbyte

Результаты

25.04.2013 22

Общее количество операций 250 миллионов

Page 23: 20130420 bitbyte

Результаты

25.04.2013 23

Общее количество операций 250 миллионов

Page 24: 20130420 bitbyte

Результаты

25.04.2013 24

0

50

100

150

200

250

300

0,00%

10,00%

20,00%

30,00%

40,00%

50,00%

60,00%

70,00%

80,00%

90,00%

100,00%

2 4 6 8 16 20 1000

Ожидание( %)

Операции (млн)

Page 25: 20130420 bitbyte

Закон Амдала

• 𝑃 – часть работы, которая может выполняться параллельно

• 𝑁 – количество «исполнителей»

25.04.2013 25

1 – P P

1 Тв 1 – P P/N

Page 26: 20130420 bitbyte

Закон Амдала

• 𝑃 – часть работы, которая может выполняться

параллельно

• 𝑁 – количество «исполнителей»

25.04.2013 26

S(𝑁) =1

1 − 𝑃 + 𝑃𝑁

Page 27: 20130420 bitbyte

Закон Амдала

25.04.2013 27

Page 28: 20130420 bitbyte

Выводы C ростом числа «исполнителей»:

• постоянный рост ускорения не обеспечивается;

• увеличиваются накладные расходы на организацию работы;

25.04.2013 28

Page 29: 20130420 bitbyte

ПОЭКСПЕРИМЕНТИРУЕМ?

25.04.2013 29

Page 30: 20130420 bitbyte

Ограниченный буфер

Lock

Page 31: 20130420 bitbyte

Неограниченный буфер Put lock

Take lock

Page 32: 20130420 bitbyte

Основан на CAS (Compare and SWAP) 1. Прочитать переменную 2. Провести вычисления 3. Проверить, что значение переменной прежнее

1. Да: запись результата 2. Нет: goto 1.

Неограниченный буфер #2

Page 33: 20130420 bitbyte

25.04.2013 33

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

Page 34: 20130420 bitbyte

Devexperts

25.04.2013 34

Page 35: 20130420 bitbyte

Наша команда – это 300 профессионалов в области программирования,

тестирования и поддержки ПО

Page 36: 20130420 bitbyte

Офисы разработки расположены в Санкт-Петербурге и Ростове-на-Дону!

Офисы

Page 37: 20130420 bitbyte

- свободный график работы

- своя столовая

- комфортные рабочие места

- корпоративные мероприятия

- командировки по всему миру

- курсы английского языка

- неполная занятость и поддержка

в написании научных работ

Отличные условия работы!

Page 38: 20130420 bitbyte

Если Вам захотелось присоединиться к команде Devexperts,

пишите и звоните нам:

Тел.: (812) 438-16-26

E-mail: [email protected]

Вакансии: hh.ru и itmozg.ru.

Наши новости: devexperts.com и ВКонтакте.

Контакты

Page 39: 20130420 bitbyte

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

25.04.2013 39