Секреты высокой производительности в многоядерных системах ☠️

Хардкор

GO
Оптимизация

Доклад принят в программу конференции

Мнение Программного комитета о докладе

По мере увеличения количества ядер CPU производительность привычных инструментов вроде sync.RWMutex может перестать устраивать, и даже atomic'и могут начать тормозить. Никита расскажет, почему так происходит и какие подходы можно использовать для увеличения производительности.

Целевая аудитория

Программисты, которые освоили стандартные подходы к работе с конкурентностью и хотят узнать, как улучшить производительность своих программ при работе на многоядерных системах. А также просто любители системной разработки.

Тезисы

Когда нам приходится работать в многоядерных системах, где доступно значительно больше ядер, чем привычные 4 или 8, то стандартные подходы и даже стандартная библиотека могут не обеспечивать достаточной производительности. Поговорим о том, как в таких условиях выжимать максимум из доступного CPU.

Из доклада вы узнаете:
* почему и когда стоит шардировать работу с atomic-значениями и с map;
* зачем нужны такие алгоритмы, как biased locking for reader writer locks;
* что такое оптимистичное чтение и когда его можно использовать.

Мы также рассмотрим протокол MESI, работу кэша CPU и способы его эффективного использования.

Никита Галушко

VK, ВКонтакте

Вот уже 10 лет плотно сидит на Go. Пишет разной степени сложности бэкенды и насаждает Effective Go где только возможно :)

VK, ВКонтакте

VK — это более 200 технологичных и высоконагруженных проектов, свыше 15 000 сотрудников. ВКонтакте, ОК, VK Cloud, Дзен, Маруся, VK Play — это лишь часть продуктов VK, которыми ежедневно пользуются миллионы людей. ВКонтакте — крупнейшая социальная сеть в России. Команда ВКонтакте разрабатывает технологические решения, которые отвечают критериям быстродействия, отказоустойчивости и качества, чтобы пользователи получали максимум для общения, работы, учебы, развлечения и творчества.

Видео