Soumettre la recherche
Mettre en ligne
CiklumCPPSat24032012:GennadiyMaryanichenko-ScalableMessageProcessing
•
Télécharger en tant que PPTX, PDF
•
0 j'aime
•
181 vues
Ciklum Ukraine
Suivre
Technologie
Spirituel
Signaler
Partager
Signaler
Partager
1 sur 21
Télécharger maintenant
Recommandé
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...
a15464321646213
Хочу знать, сколько уникальных посетителей было на моём сайте за произвольный...
Хочу знать, сколько уникальных посетителей было на моём сайте за произвольный...
Ontico
ПВТ - осень 2014 - Лекция 3 - Стандарт POSIX Threads
ПВТ - осень 2014 - Лекция 3 - Стандарт POSIX Threads
Alexey Paznikov
Семинар 9. Параллельное программирование на MPI (часть 2)
Семинар 9. Параллельное программирование на MPI (часть 2)
Mikhail Kurnosov
ПВТ - осень 2014 - Лекция 6 - Атомарные операции. Внеочередное выполнение инс...
ПВТ - осень 2014 - Лекция 6 - Атомарные операции. Внеочередное выполнение инс...
Alexey Paznikov
ПВТ - осень 2014 - Лекция 4 - Стандарт POSIX Threads. Реентерабельность. Сигн...
ПВТ - осень 2014 - Лекция 4 - Стандарт POSIX Threads. Реентерабельность. Сигн...
Alexey Paznikov
Семинар 12. Параллельное программирование на MPI (часть 5)
Семинар 12. Параллельное программирование на MPI (часть 5)
Mikhail Kurnosov
ПВТ - весна 2015 - Лекция 3. Реентерабельность. Сигналы. Локальные данные пот...
ПВТ - весна 2015 - Лекция 3. Реентерабельность. Сигналы. Локальные данные пот...
Alexey Paznikov
Recommandé
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...
a15464321646213
Хочу знать, сколько уникальных посетителей было на моём сайте за произвольный...
Хочу знать, сколько уникальных посетителей было на моём сайте за произвольный...
Ontico
ПВТ - осень 2014 - Лекция 3 - Стандарт POSIX Threads
ПВТ - осень 2014 - Лекция 3 - Стандарт POSIX Threads
Alexey Paznikov
Семинар 9. Параллельное программирование на MPI (часть 2)
Семинар 9. Параллельное программирование на MPI (часть 2)
Mikhail Kurnosov
ПВТ - осень 2014 - Лекция 6 - Атомарные операции. Внеочередное выполнение инс...
ПВТ - осень 2014 - Лекция 6 - Атомарные операции. Внеочередное выполнение инс...
Alexey Paznikov
ПВТ - осень 2014 - Лекция 4 - Стандарт POSIX Threads. Реентерабельность. Сигн...
ПВТ - осень 2014 - Лекция 4 - Стандарт POSIX Threads. Реентерабельность. Сигн...
Alexey Paznikov
Семинар 12. Параллельное программирование на MPI (часть 5)
Семинар 12. Параллельное программирование на MPI (часть 5)
Mikhail Kurnosov
ПВТ - весна 2015 - Лекция 3. Реентерабельность. Сигналы. Локальные данные пот...
ПВТ - весна 2015 - Лекция 3. Реентерабельность. Сигналы. Локальные данные пот...
Alexey Paznikov
ПВТ - осень 2014 - Лекция 5 - Многопоточное программирование в языке С++. Р...
ПВТ - осень 2014 - Лекция 5 - Многопоточное программирование в языке С++. Р...
Alexey Paznikov
Векторизация кода (семинар 1)
Векторизация кода (семинар 1)
Mikhail Kurnosov
Кулагин И.И., Пазников А.А., Курносов М.Г. Оптимизация информационных обменов...
Кулагин И.И., Пазников А.А., Курносов М.Г. Оптимизация информационных обменов...
Alexey Paznikov
Лекция 1. Основные понятия стандарта MPI. Дифференцированные обмены
Лекция 1. Основные понятия стандарта MPI. Дифференцированные обмены
Alexey Paznikov
Семинар 1. Многопоточное программирование на OpenMP (часть 1)
Семинар 1. Многопоточное программирование на OpenMP (часть 1)
Mikhail Kurnosov
Валентин Коновалов "Кэш МЯК"
Валентин Коновалов "Кэш МЯК"
Yandex
28523p
28523p
ivanov156w2w221q
ПВТ - весна 2015 - Лекция 8. Многопоточное программирование без использования...
ПВТ - весна 2015 - Лекция 8. Многопоточное программирование без использования...
Alexey Paznikov
Хранение данных на виниле / Константин Осипов (tarantool.org)
Хранение данных на виниле / Константин Осипов (tarantool.org)
Ontico
ПВТ - весна 2015 - Лекция 7. Модель памяти С++. Внеочередное выполнение инстр...
ПВТ - весна 2015 - Лекция 7. Модель памяти С++. Внеочередное выполнение инстр...
Alexey Paznikov
2013-01-05 01 Леонид Евдокимов. Web scale. Взорвется все
2013-01-05 01 Леонид Евдокимов. Web scale. Взорвется все
Омские ИТ-субботники
Лекция 13. Многопоточность и GIL
Лекция 13. Многопоточность и GIL
Roman Brovko
Лекция 8. Итераторы, генераторы и модуль itertools.
Лекция 8. Итераторы, генераторы и модуль itertools.
Roman Brovko
Оптимизация производительности Python
Оптимизация производительности Python
PyNSK
Модульность и управляемая многопоточность встраиваемых С++ приложений - трудн...
Модульность и управляемая многопоточность встраиваемых С++ приложений - трудн...
corehard_by
как написать масштабируемую баннерокрутилку. денис бирюков, артем гавриченков...
как написать масштабируемую баннерокрутилку. денис бирюков, артем гавриченков...
rit2011
Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»
Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»
Platonov Sergey
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3
Eugeniy Tyumentcev
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3
etyumentcev
Сверхоптимизация кода на Python
Сверхоптимизация кода на Python
ru_Parallels
Сверхоптимизация кода на Python
Сверхоптимизация кода на Python
CodeFest
паскаль 10кл 14
паскаль 10кл 14
Ирина Куликова
Contenu connexe
Tendances
ПВТ - осень 2014 - Лекция 5 - Многопоточное программирование в языке С++. Р...
ПВТ - осень 2014 - Лекция 5 - Многопоточное программирование в языке С++. Р...
Alexey Paznikov
Векторизация кода (семинар 1)
Векторизация кода (семинар 1)
Mikhail Kurnosov
Кулагин И.И., Пазников А.А., Курносов М.Г. Оптимизация информационных обменов...
Кулагин И.И., Пазников А.А., Курносов М.Г. Оптимизация информационных обменов...
Alexey Paznikov
Лекция 1. Основные понятия стандарта MPI. Дифференцированные обмены
Лекция 1. Основные понятия стандарта MPI. Дифференцированные обмены
Alexey Paznikov
Семинар 1. Многопоточное программирование на OpenMP (часть 1)
Семинар 1. Многопоточное программирование на OpenMP (часть 1)
Mikhail Kurnosov
Валентин Коновалов "Кэш МЯК"
Валентин Коновалов "Кэш МЯК"
Yandex
28523p
28523p
ivanov156w2w221q
ПВТ - весна 2015 - Лекция 8. Многопоточное программирование без использования...
ПВТ - весна 2015 - Лекция 8. Многопоточное программирование без использования...
Alexey Paznikov
Хранение данных на виниле / Константин Осипов (tarantool.org)
Хранение данных на виниле / Константин Осипов (tarantool.org)
Ontico
ПВТ - весна 2015 - Лекция 7. Модель памяти С++. Внеочередное выполнение инстр...
ПВТ - весна 2015 - Лекция 7. Модель памяти С++. Внеочередное выполнение инстр...
Alexey Paznikov
2013-01-05 01 Леонид Евдокимов. Web scale. Взорвется все
2013-01-05 01 Леонид Евдокимов. Web scale. Взорвется все
Омские ИТ-субботники
Tendances
(11)
ПВТ - осень 2014 - Лекция 5 - Многопоточное программирование в языке С++. Р...
ПВТ - осень 2014 - Лекция 5 - Многопоточное программирование в языке С++. Р...
Векторизация кода (семинар 1)
Векторизация кода (семинар 1)
Кулагин И.И., Пазников А.А., Курносов М.Г. Оптимизация информационных обменов...
Кулагин И.И., Пазников А.А., Курносов М.Г. Оптимизация информационных обменов...
Лекция 1. Основные понятия стандарта MPI. Дифференцированные обмены
Лекция 1. Основные понятия стандарта MPI. Дифференцированные обмены
Семинар 1. Многопоточное программирование на OpenMP (часть 1)
Семинар 1. Многопоточное программирование на OpenMP (часть 1)
Валентин Коновалов "Кэш МЯК"
Валентин Коновалов "Кэш МЯК"
28523p
28523p
ПВТ - весна 2015 - Лекция 8. Многопоточное программирование без использования...
ПВТ - весна 2015 - Лекция 8. Многопоточное программирование без использования...
Хранение данных на виниле / Константин Осипов (tarantool.org)
Хранение данных на виниле / Константин Осипов (tarantool.org)
ПВТ - весна 2015 - Лекция 7. Модель памяти С++. Внеочередное выполнение инстр...
ПВТ - весна 2015 - Лекция 7. Модель памяти С++. Внеочередное выполнение инстр...
2013-01-05 01 Леонид Евдокимов. Web scale. Взорвется все
2013-01-05 01 Леонид Евдокимов. Web scale. Взорвется все
Similaire à CiklumCPPSat24032012:GennadiyMaryanichenko-ScalableMessageProcessing
Лекция 13. Многопоточность и GIL
Лекция 13. Многопоточность и GIL
Roman Brovko
Лекция 8. Итераторы, генераторы и модуль itertools.
Лекция 8. Итераторы, генераторы и модуль itertools.
Roman Brovko
Оптимизация производительности Python
Оптимизация производительности Python
PyNSK
Модульность и управляемая многопоточность встраиваемых С++ приложений - трудн...
Модульность и управляемая многопоточность встраиваемых С++ приложений - трудн...
corehard_by
как написать масштабируемую баннерокрутилку. денис бирюков, артем гавриченков...
как написать масштабируемую баннерокрутилку. денис бирюков, артем гавриченков...
rit2011
Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»
Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»
Platonov Sergey
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3
Eugeniy Tyumentcev
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3
etyumentcev
Сверхоптимизация кода на Python
Сверхоптимизация кода на Python
ru_Parallels
Сверхоптимизация кода на Python
Сверхоптимизация кода на Python
CodeFest
паскаль 10кл 14
паскаль 10кл 14
Ирина Куликова
Как мы храним 75 млн пользователей (Денис Бирюков)
Как мы храним 75 млн пользователей (Денис Бирюков)
Ontico
Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...
Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...
Yandex
Java threads - part 3
Java threads - part 3
Nakraynikov Oleg
Similaire à CiklumCPPSat24032012:GennadiyMaryanichenko-ScalableMessageProcessing
(14)
Лекция 13. Многопоточность и GIL
Лекция 13. Многопоточность и GIL
Лекция 8. Итераторы, генераторы и модуль itertools.
Лекция 8. Итераторы, генераторы и модуль itertools.
Оптимизация производительности Python
Оптимизация производительности Python
Модульность и управляемая многопоточность встраиваемых С++ приложений - трудн...
Модульность и управляемая многопоточность встраиваемых С++ приложений - трудн...
как написать масштабируемую баннерокрутилку. денис бирюков, артем гавриченков...
как написать масштабируемую баннерокрутилку. денис бирюков, артем гавриченков...
Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»
Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3
Сверхоптимизация кода на Python
Сверхоптимизация кода на Python
Сверхоптимизация кода на Python
Сверхоптимизация кода на Python
паскаль 10кл 14
паскаль 10кл 14
Как мы храним 75 млн пользователей (Денис Бирюков)
Как мы храним 75 млн пользователей (Денис Бирюков)
Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...
Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...
Java threads - part 3
Java threads - part 3
Plus de Ciklum Ukraine
"How keep normal blood pressure using TDD" By Roman Loparev
"How keep normal blood pressure using TDD" By Roman Loparev
Ciklum Ukraine
"Through the three circles of the it hell" by Roman Liashenko
"Through the three circles of the it hell" by Roman Liashenko
Ciklum Ukraine
Alex Pazhyn: Google_Material_Design
Alex Pazhyn: Google_Material_Design
Ciklum Ukraine
Introduction to amazon web services for developers
Introduction to amazon web services for developers
Ciklum Ukraine
Your 1st Apple watch Application
Your 1st Apple watch Application
Ciklum Ukraine
Test Driven Development
Test Driven Development
Ciklum Ukraine
Back to the future: ux trends 2015
Back to the future: ux trends 2015
Ciklum Ukraine
Developing high load systems using C++
Developing high load systems using C++
Ciklum Ukraine
Collection view layout
Collection view layout
Ciklum Ukraine
Introduction to auto layout
Introduction to auto layout
Ciklum Ukraine
Groovy on Android
Groovy on Android
Ciklum Ukraine
Unit Testing: Special Cases
Unit Testing: Special Cases
Ciklum Ukraine
Material design
Material design
Ciklum Ukraine
Kanban development
Kanban development
Ciklum Ukraine
Mobile sketching
Mobile sketching
Ciklum Ukraine
More UX in our life
More UX in our life
Ciklum Ukraine
Model-View-Controller: Tips&Tricks
Model-View-Controller: Tips&Tricks
Ciklum Ukraine
Unit Tesing in iOS
Unit Tesing in iOS
Ciklum Ukraine
Future of Outsourcing report published in The Times featuring Ciklum's CEO To...
Future of Outsourcing report published in The Times featuring Ciklum's CEO To...
Ciklum Ukraine
Михаил Попчук "Cкрытые резервы команд или 1+1=3"
Михаил Попчук "Cкрытые резервы команд или 1+1=3"
Ciklum Ukraine
Plus de Ciklum Ukraine
(20)
"How keep normal blood pressure using TDD" By Roman Loparev
"How keep normal blood pressure using TDD" By Roman Loparev
"Through the three circles of the it hell" by Roman Liashenko
"Through the three circles of the it hell" by Roman Liashenko
Alex Pazhyn: Google_Material_Design
Alex Pazhyn: Google_Material_Design
Introduction to amazon web services for developers
Introduction to amazon web services for developers
Your 1st Apple watch Application
Your 1st Apple watch Application
Test Driven Development
Test Driven Development
Back to the future: ux trends 2015
Back to the future: ux trends 2015
Developing high load systems using C++
Developing high load systems using C++
Collection view layout
Collection view layout
Introduction to auto layout
Introduction to auto layout
Groovy on Android
Groovy on Android
Unit Testing: Special Cases
Unit Testing: Special Cases
Material design
Material design
Kanban development
Kanban development
Mobile sketching
Mobile sketching
More UX in our life
More UX in our life
Model-View-Controller: Tips&Tricks
Model-View-Controller: Tips&Tricks
Unit Tesing in iOS
Unit Tesing in iOS
Future of Outsourcing report published in The Times featuring Ciklum's CEO To...
Future of Outsourcing report published in The Times featuring Ciklum's CEO To...
Михаил Попчук "Cкрытые резервы команд или 1+1=3"
Михаил Попчук "Cкрытые резервы команд или 1+1=3"
CiklumCPPSat24032012:GennadiyMaryanichenko-ScalableMessageProcessing
1.
Message processing.
2.
Цель. Сравнить реализации.
3.
Измерения.
ProcessingTime. T/(iterCount х producersCount)
4.
Измерения. 1.
Start producers thread. 2. Save start time. 3. Signal producers. 4. Wait for completing. 5. Save finish time.
5.
Измерения.
Producer. while (!start) SwitchToThread(); for(i = 0;i < iterCount;++i) if(processor.Queue(msg));
6.
Измерения.
ProcessMessage. cnt=Increment(&processedCnt); if(cnt == iterCnt*producersCnt) SetEvent(completeEvent);
7.
Измерения.
ProcessTest. startTime = rdtsc(); start = true; WaitFor(completeEvent); finishTime = rdtsc();
8.
Код.
MessageProcessor. (MessageQueue + ThreadPool).
9.
Код. FakeProcessor. void Queue(Task*msg) {
msg->Process(); }
10.
Код. TrivialProcessor. CircularBuffer
+ Mutex + ThreadPool
11.
Код.
buffer TrivialProcessor. 0 1 CircularBuffer deleter 2 - used 3 - used + 4 - used Mutex inserter 5 + ... 2^n ThreadPool
12.
Код. LockFreeProcessor. CircularBuffer
+ Magic + ThreadPool
13.
Код. LockFreeProcessor. old = Increment(&inserter)
- 1; old &= mask; if(0 != CompareExchange( &_array[old], newVal, 0)) { /* !!! */}
14.
Код. MpscProcessor. n x MpscQueue
+ ThreadPool + rand() % n
15.
Код. MpscProcessor. i = rand()
% n; queues[i].Push(msg);
16.
Результат.
17.
Результат.
18.
Результат.
19.
Результат.
20.
За децентрализацию!!!
21.
Всем спасибо!!!
Télécharger maintenant