SlideShare a Scribd company logo
1 of 4
How to use
Many-core CPUs
Roundtable: Google, Intel, Rambler, Yandex
Threads
✔ Hard to program:
✔ Correctness
✔ Performance
✔ Unavoidable: 8 or 16 cores is commodity
✔ Alternatives:
✔ Message passing – slow
✔ Shared memory – even harder, usually no benefits
Correctness
✔ Deadlocks
✔ C++: custom Mutex w/ builtin deadlock detector
✔ C++: static analysis (gcc plugin, opensourse)
✔ Java: run-time detector
✔ Races
✔ C++: run-time detector: ThreadSanitizer (Valgrind)
✔ Linux, Windows, Mac; opensource
✔ Java: ThreadSanitizer (beta)
Performance
✔ Contension (threads compete for shared resource)
✔ Custom Mutex w/ contention profiling and web interface
✔ Cache locality (no ping-ponging between threads)
✔ Custom malloc (TCMalloc, opensource)
✔ Profiling: mostly PMU-based
✔ Oprofile, perfmon, google perf tools (opensource)

More Related Content

More from Fuenteovejuna

Интеграция открытых технологий и взаимодействие со сторонними проектами в усл...
Интеграция открытых технологий и взаимодействие со сторонними проектами в усл...Интеграция открытых технологий и взаимодействие со сторонними проектами в усл...
Интеграция открытых технологий и взаимодействие со сторонними проектами в усл...
Fuenteovejuna
 
Оптимизация одного из топовых приложений для социальной сети ВКонтакте: 1000 ...
Оптимизация одного из топовых приложений для социальной сети ВКонтакте: 1000 ...Оптимизация одного из топовых приложений для социальной сети ВКонтакте: 1000 ...
Оптимизация одного из топовых приложений для социальной сети ВКонтакте: 1000 ...
Fuenteovejuna
 
Практическое создание крупного масштабируемого web 20 c нуля, Дмитрий Бородин
Практическое создание крупного масштабируемого web 20 c нуля, Дмитрий БородинПрактическое создание крупного масштабируемого web 20 c нуля, Дмитрий Бородин
Практическое создание крупного масштабируемого web 20 c нуля, Дмитрий Бородин
Fuenteovejuna
 
Social Monitoring Tool codename Looking Glass, Patrice Pelland
Social Monitoring Tool codename Looking Glass, Patrice PellandSocial Monitoring Tool codename Looking Glass, Patrice Pelland
Social Monitoring Tool codename Looking Glass, Patrice Pelland
Fuenteovejuna
 
Компиляция скриптов PHP. Алексей Романенко
Компиляция скриптов PHP. Алексей РоманенкоКомпиляция скриптов PHP. Алексей Романенко
Компиляция скриптов PHP. Алексей Романенко
Fuenteovejuna
 
Использование 0MQ для построения low latency распределёных систем, Андрей Охл...
Использование 0MQ для построения low latency распределёных систем, Андрей Охл...Использование 0MQ для построения low latency распределёных систем, Андрей Охл...
Использование 0MQ для построения low latency распределёных систем, Андрей Охл...
Fuenteovejuna
 
Некоторые аспекты влияния сходимости протокола BGP на доступность сетевых рес...
Некоторые аспекты влияния сходимости протокола BGP на доступность сетевых рес...Некоторые аспекты влияния сходимости протокола BGP на доступность сетевых рес...
Некоторые аспекты влияния сходимости протокола BGP на доступность сетевых рес...
Fuenteovejuna
 
Тандемные DDoS-атаки. Проблематика уязвимостей в спецификации TCP IP (фундаме...
Тандемные DDoS-атаки. Проблематика уязвимостей в спецификации TCP IP (фундаме...Тандемные DDoS-атаки. Проблематика уязвимостей в спецификации TCP IP (фундаме...
Тандемные DDoS-атаки. Проблематика уязвимостей в спецификации TCP IP (фундаме...
Fuenteovejuna
 
Быстрое развёртывание шаблонов и статики в Mail.ru, Николай Кондратов
Быстрое развёртывание шаблонов и статики в Mail.ru, Николай КондратовБыстрое развёртывание шаблонов и статики в Mail.ru, Николай Кондратов
Быстрое развёртывание шаблонов и статики в Mail.ru, Николай Кондратов
Fuenteovejuna
 
Мониторинг XXI-век, Алиса Смирнова, Дима Никоненко
Мониторинг XXI-век, Алиса Смирнова, Дима НиконенкоМониторинг XXI-век, Алиса Смирнова, Дима Никоненко
Мониторинг XXI-век, Алиса Смирнова, Дима Никоненко
Fuenteovejuna
 
Native Client, Евгений Эльцин
Native Client, Евгений ЭльцинNative Client, Евгений Эльцин
Native Client, Евгений Эльцин
Fuenteovejuna
 
Tarantool Silverbox, Юрий Востриков
Tarantool Silverbox, Юрий ВостриковTarantool Silverbox, Юрий Востриков
Tarantool Silverbox, Юрий Востриков
Fuenteovejuna
 
Real time indexes in Sphinx, Yaroslav Vorozhko
Real time indexes in Sphinx, Yaroslav VorozhkoReal time indexes in Sphinx, Yaroslav Vorozhko
Real time indexes in Sphinx, Yaroslav Vorozhko
Fuenteovejuna
 
Sphinx для высоко-нагруженных и масштабируемых проектов, Вячеслав Крюков
Sphinx для высоко-нагруженных и масштабируемых проектов, Вячеслав КрюковSphinx для высоко-нагруженных и масштабируемых проектов, Вячеслав Крюков
Sphinx для высоко-нагруженных и масштабируемых проектов, Вячеслав Крюков
Fuenteovejuna
 
Масштабируемая система голосования на базе PostgreSQL PgQ, Сергей Нековаль
Масштабируемая система голосования на базе PostgreSQL PgQ, Сергей НековальМасштабируемая система голосования на базе PostgreSQL PgQ, Сергей Нековаль
Масштабируемая система голосования на базе PostgreSQL PgQ, Сергей Нековаль
Fuenteovejuna
 
Вы решили написать собственное хранилище, Илья Космодемьянский
Вы решили написать собственное хранилище, Илья КосмодемьянскийВы решили написать собственное хранилище, Илья Космодемьянский
Вы решили написать собственное хранилище, Илья Космодемьянский
Fuenteovejuna
 
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл КоринскийСравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
Fuenteovejuna
 
InnoDB Architecture and Performance Optimization, Peter Zaitsev
InnoDB Architecture and Performance Optimization, Peter ZaitsevInnoDB Architecture and Performance Optimization, Peter Zaitsev
InnoDB Architecture and Performance Optimization, Peter Zaitsev
Fuenteovejuna
 
Cloud APIs - обзор API западных провайдеров и API Scalaxy, Нат Гаджибалаев
Cloud APIs - обзор API западных провайдеров и API Scalaxy, Нат ГаджибалаевCloud APIs - обзор API западных провайдеров и API Scalaxy, Нат Гаджибалаев
Cloud APIs - обзор API западных провайдеров и API Scalaxy, Нат Гаджибалаев
Fuenteovejuna
 
The Magic of Hot Streaming Replication, Bruce Momjian
The Magic of Hot Streaming Replication, Bruce MomjianThe Magic of Hot Streaming Replication, Bruce Momjian
The Magic of Hot Streaming Replication, Bruce Momjian
Fuenteovejuna
 

More from Fuenteovejuna (20)

Интеграция открытых технологий и взаимодействие со сторонними проектами в усл...
Интеграция открытых технологий и взаимодействие со сторонними проектами в усл...Интеграция открытых технологий и взаимодействие со сторонними проектами в усл...
Интеграция открытых технологий и взаимодействие со сторонними проектами в усл...
 
Оптимизация одного из топовых приложений для социальной сети ВКонтакте: 1000 ...
Оптимизация одного из топовых приложений для социальной сети ВКонтакте: 1000 ...Оптимизация одного из топовых приложений для социальной сети ВКонтакте: 1000 ...
Оптимизация одного из топовых приложений для социальной сети ВКонтакте: 1000 ...
 
Практическое создание крупного масштабируемого web 20 c нуля, Дмитрий Бородин
Практическое создание крупного масштабируемого web 20 c нуля, Дмитрий БородинПрактическое создание крупного масштабируемого web 20 c нуля, Дмитрий Бородин
Практическое создание крупного масштабируемого web 20 c нуля, Дмитрий Бородин
 
Social Monitoring Tool codename Looking Glass, Patrice Pelland
Social Monitoring Tool codename Looking Glass, Patrice PellandSocial Monitoring Tool codename Looking Glass, Patrice Pelland
Social Monitoring Tool codename Looking Glass, Patrice Pelland
 
Компиляция скриптов PHP. Алексей Романенко
Компиляция скриптов PHP. Алексей РоманенкоКомпиляция скриптов PHP. Алексей Романенко
Компиляция скриптов PHP. Алексей Романенко
 
Использование 0MQ для построения low latency распределёных систем, Андрей Охл...
Использование 0MQ для построения low latency распределёных систем, Андрей Охл...Использование 0MQ для построения low latency распределёных систем, Андрей Охл...
Использование 0MQ для построения low latency распределёных систем, Андрей Охл...
 
Некоторые аспекты влияния сходимости протокола BGP на доступность сетевых рес...
Некоторые аспекты влияния сходимости протокола BGP на доступность сетевых рес...Некоторые аспекты влияния сходимости протокола BGP на доступность сетевых рес...
Некоторые аспекты влияния сходимости протокола BGP на доступность сетевых рес...
 
Тандемные DDoS-атаки. Проблематика уязвимостей в спецификации TCP IP (фундаме...
Тандемные DDoS-атаки. Проблематика уязвимостей в спецификации TCP IP (фундаме...Тандемные DDoS-атаки. Проблематика уязвимостей в спецификации TCP IP (фундаме...
Тандемные DDoS-атаки. Проблематика уязвимостей в спецификации TCP IP (фундаме...
 
Быстрое развёртывание шаблонов и статики в Mail.ru, Николай Кондратов
Быстрое развёртывание шаблонов и статики в Mail.ru, Николай КондратовБыстрое развёртывание шаблонов и статики в Mail.ru, Николай Кондратов
Быстрое развёртывание шаблонов и статики в Mail.ru, Николай Кондратов
 
Мониторинг XXI-век, Алиса Смирнова, Дима Никоненко
Мониторинг XXI-век, Алиса Смирнова, Дима НиконенкоМониторинг XXI-век, Алиса Смирнова, Дима Никоненко
Мониторинг XXI-век, Алиса Смирнова, Дима Никоненко
 
Native Client, Евгений Эльцин
Native Client, Евгений ЭльцинNative Client, Евгений Эльцин
Native Client, Евгений Эльцин
 
Tarantool Silverbox, Юрий Востриков
Tarantool Silverbox, Юрий ВостриковTarantool Silverbox, Юрий Востриков
Tarantool Silverbox, Юрий Востриков
 
Real time indexes in Sphinx, Yaroslav Vorozhko
Real time indexes in Sphinx, Yaroslav VorozhkoReal time indexes in Sphinx, Yaroslav Vorozhko
Real time indexes in Sphinx, Yaroslav Vorozhko
 
Sphinx для высоко-нагруженных и масштабируемых проектов, Вячеслав Крюков
Sphinx для высоко-нагруженных и масштабируемых проектов, Вячеслав КрюковSphinx для высоко-нагруженных и масштабируемых проектов, Вячеслав Крюков
Sphinx для высоко-нагруженных и масштабируемых проектов, Вячеслав Крюков
 
Масштабируемая система голосования на базе PostgreSQL PgQ, Сергей Нековаль
Масштабируемая система голосования на базе PostgreSQL PgQ, Сергей НековальМасштабируемая система голосования на базе PostgreSQL PgQ, Сергей Нековаль
Масштабируемая система голосования на базе PostgreSQL PgQ, Сергей Нековаль
 
Вы решили написать собственное хранилище, Илья Космодемьянский
Вы решили написать собственное хранилище, Илья КосмодемьянскийВы решили написать собственное хранилище, Илья Космодемьянский
Вы решили написать собственное хранилище, Илья Космодемьянский
 
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл КоринскийСравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
 
InnoDB Architecture and Performance Optimization, Peter Zaitsev
InnoDB Architecture and Performance Optimization, Peter ZaitsevInnoDB Architecture and Performance Optimization, Peter Zaitsev
InnoDB Architecture and Performance Optimization, Peter Zaitsev
 
Cloud APIs - обзор API западных провайдеров и API Scalaxy, Нат Гаджибалаев
Cloud APIs - обзор API западных провайдеров и API Scalaxy, Нат ГаджибалаевCloud APIs - обзор API западных провайдеров и API Scalaxy, Нат Гаджибалаев
Cloud APIs - обзор API западных провайдеров и API Scalaxy, Нат Гаджибалаев
 
The Magic of Hot Streaming Replication, Bruce Momjian
The Magic of Hot Streaming Replication, Bruce MomjianThe Magic of Hot Streaming Replication, Bruce Momjian
The Magic of Hot Streaming Replication, Bruce Momjian
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Recently uploaded (20)

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 

How to use many core CPUs, Константин Серебряный

  • 1. How to use Many-core CPUs Roundtable: Google, Intel, Rambler, Yandex
  • 2. Threads ✔ Hard to program: ✔ Correctness ✔ Performance ✔ Unavoidable: 8 or 16 cores is commodity ✔ Alternatives: ✔ Message passing – slow ✔ Shared memory – even harder, usually no benefits
  • 3. Correctness ✔ Deadlocks ✔ C++: custom Mutex w/ builtin deadlock detector ✔ C++: static analysis (gcc plugin, opensourse) ✔ Java: run-time detector ✔ Races ✔ C++: run-time detector: ThreadSanitizer (Valgrind) ✔ Linux, Windows, Mac; opensource ✔ Java: ThreadSanitizer (beta)
  • 4. Performance ✔ Contension (threads compete for shared resource) ✔ Custom Mutex w/ contention profiling and web interface ✔ Cache locality (no ping-ponging between threads) ✔ Custom malloc (TCMalloc, opensource) ✔ Profiling: mostly PMU-based ✔ Oprofile, perfmon, google perf tools (opensource)